mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-19 12:13:38 +01:00
Merge branch 'master' into upstream-merge-10095
This commit is contained in:
@@ -67,6 +67,11 @@
|
||||
#define MAT_PLASTITANIUMGLASS "plastitanium glass"
|
||||
#define MAT_GOLDHULL "gold hull"
|
||||
|
||||
#define RESIZE_MINIMUM 0.25
|
||||
#define RESIZE_MAXIMUM 2
|
||||
#define RESIZE_MINIMUM_DORMS 0.01
|
||||
#define RESIZE_MAXIMUM_DORMS 6
|
||||
|
||||
#define RESIZE_HUGE 2
|
||||
#define RESIZE_BIG 1.5
|
||||
#define RESIZE_NORMAL 1
|
||||
|
||||
@@ -58,7 +58,8 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define INIT_ORDER_SKYBOX 30
|
||||
#define INIT_ORDER_MAPPING 25
|
||||
#define INIT_ORDER_DECALS 20
|
||||
#define INIT_ORDER_PLANTS 18 // Must initialize before atoms.
|
||||
#define INIT_ORDER_PLANTS 19 // Must initialize before atoms.
|
||||
#define INIT_ORDER_PLANETS 18
|
||||
#define INIT_ORDER_JOB 17
|
||||
#define INIT_ORDER_ALARM 16 // Must initialize before atoms.
|
||||
#define INIT_ORDER_ATOMS 15
|
||||
@@ -69,7 +70,6 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define INIT_ORDER_LIGHTING 0
|
||||
#define INIT_ORDER_AIR -1
|
||||
#define INIT_ORDER_ASSETS -3
|
||||
#define INIT_ORDER_PLANETS -4
|
||||
#define INIT_ORDER_HOLOMAPS -5
|
||||
#define INIT_ORDER_NIGHTSHIFT -6
|
||||
#define INIT_ORDER_OVERLAY -7
|
||||
|
||||
@@ -11,7 +11,7 @@ var/global/list/traits_costs = list() // Just path = cost list, saves time in c
|
||||
var/global/list/all_traits = list() // All of 'em at once (same instances)
|
||||
var/global/list/active_ghost_pods = list()
|
||||
|
||||
var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference") //TFF 5/8/19 - Suit Sensors global list
|
||||
var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference")
|
||||
|
||||
//stores numeric player size options indexed by name
|
||||
var/global/list/player_sizes_list = list(
|
||||
@@ -173,8 +173,8 @@ var/global/list/tf_vore_egg_types = list(
|
||||
"Spotted pink" = /obj/item/weapon/storage/vore_egg/pinkspots)
|
||||
|
||||
var/global/list/edible_trash = list(/obj/item/broken_device,
|
||||
/obj/item/clothing/accessory/collar, //TFF 10/7/19 - add option to nom collars,
|
||||
/obj/item/device/communicator, //TFF 19/9/19 - add option to nom communicators and commwatches,
|
||||
/obj/item/clothing/accessory/collar,
|
||||
/obj/item/device/communicator,
|
||||
/obj/item/clothing/mask,
|
||||
/obj/item/clothing/glasses,
|
||||
/obj/item/clothing/gloves,
|
||||
|
||||
@@ -6,9 +6,6 @@ SUBSYSTEM_DEF(planets)
|
||||
flags = SS_BACKGROUND
|
||||
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
|
||||
|
||||
var/static/list/new_outdoor_turfs = list()
|
||||
var/static/list/new_outdoor_walls = list()
|
||||
|
||||
var/static/list/planets = list()
|
||||
var/static/list/z_to_planet = list()
|
||||
|
||||
@@ -20,7 +17,6 @@ SUBSYSTEM_DEF(planets)
|
||||
/datum/controller/subsystem/planets/Initialize(timeofday)
|
||||
admin_notice("<span class='danger'>Initializing planetary weather.</span>", R_DEBUG)
|
||||
createPlanets()
|
||||
allocateTurfs(TRUE)
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/planets/proc/createPlanets()
|
||||
@@ -36,64 +32,36 @@ SUBSYSTEM_DEF(planets)
|
||||
continue
|
||||
z_to_planet[Z] = NP
|
||||
|
||||
/datum/controller/subsystem/planets/proc/addTurf(var/turf/T,var/is_edge)
|
||||
if(is_edge)
|
||||
new_outdoor_walls |= T
|
||||
else
|
||||
new_outdoor_turfs |= T
|
||||
// DO NOT CALL THIS DIRECTLY UNLESS IT'S IN INITIALIZE,
|
||||
// USE turf/simulated/proc/make_indoors() and\
|
||||
// tyrf/simulated/proc/make_outdoors()
|
||||
/datum/controller/subsystem/planets/proc/addTurf(var/turf/T)
|
||||
if(z_to_planet.len >= T.z && z_to_planet[T.z])
|
||||
var/datum/planet/P = z_to_planet[T.z]
|
||||
if(!istype(P))
|
||||
return
|
||||
if(istype(T, /turf/unsimulated/wall/planetary))
|
||||
P.planet_walls += T
|
||||
else if(istype(T, /turf/simulated) && T.outdoors)
|
||||
P.planet_floors += T
|
||||
T.vis_contents |= P.weather_holder.visuals
|
||||
T.vis_contents |= P.weather_holder.special_visuals
|
||||
|
||||
|
||||
/datum/controller/subsystem/planets/proc/removeTurf(var/turf/T,var/is_edge)
|
||||
if(is_edge)
|
||||
new_outdoor_walls -= T
|
||||
else
|
||||
new_outdoor_turfs -= T
|
||||
|
||||
if(z_to_planet.len >= T.z)
|
||||
var/datum/planet/P = z_to_planet[T.z]
|
||||
if(!P)
|
||||
return
|
||||
if(is_edge)
|
||||
P.planet_floors -= T
|
||||
else
|
||||
if(istype(T, /turf/unsimulated/wall/planetary))
|
||||
P.planet_walls -= T
|
||||
T.vis_contents -= P.weather_holder.visuals
|
||||
T.vis_contents -= P.weather_holder.special_visuals
|
||||
|
||||
/datum/controller/subsystem/planets/proc/allocateTurfs(var/initial = FALSE)
|
||||
var/list/currentlist = new_outdoor_turfs
|
||||
while(currentlist.len)
|
||||
var/turf/simulated/OT = currentlist[currentlist.len]
|
||||
currentlist.len--
|
||||
if(istype(OT) && OT.outdoors && z_to_planet.len >= OT.z && z_to_planet[OT.z])
|
||||
var/datum/planet/P = z_to_planet[OT.z]
|
||||
P.planet_floors |= OT
|
||||
OT.vis_contents |= P.weather_holder.visuals
|
||||
OT.vis_contents |= P.weather_holder.special_visuals
|
||||
if(!initial && MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
currentlist = new_outdoor_walls
|
||||
while(currentlist.len)
|
||||
var/turf/unsimulated/wall/planetary/PW = currentlist[currentlist.len]
|
||||
currentlist.len--
|
||||
if(istype(PW) && z_to_planet.len >= PW.z && z_to_planet[PW.z])
|
||||
var/datum/planet/P = z_to_planet[PW.z]
|
||||
P.planet_walls |= PW
|
||||
if(!initial && MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
/datum/controller/subsystem/planets/proc/unallocateTurf(var/turf/simulated/T)
|
||||
if(istype(T) && z_to_planet[T.z])
|
||||
var/datum/planet/P = z_to_planet[T.z]
|
||||
P.planet_floors -= T
|
||||
T.vis_contents -= P.weather_holder.visuals
|
||||
T.vis_contents -= P.weather_holder.special_visuals
|
||||
else
|
||||
P.planet_floors -= T
|
||||
T.vis_contents -= P.weather_holder.visuals
|
||||
T.vis_contents -= P.weather_holder.special_visuals
|
||||
|
||||
|
||||
/datum/controller/subsystem/planets/fire(resumed = 0)
|
||||
if(new_outdoor_turfs.len || new_outdoor_walls.len)
|
||||
allocateTurfs()
|
||||
|
||||
if(!resumed)
|
||||
src.currentrun = planets.Copy()
|
||||
|
||||
@@ -153,8 +121,7 @@ SUBSYSTEM_DEF(planets)
|
||||
var/lum_g = new_brightness * GetGreenPart(new_color) / 255
|
||||
var/lum_b = new_brightness * GetBluePart (new_color) / 255
|
||||
var/static/update_gen = -1 // Used to prevent double-processing corners. Otherwise would happen when looping over adjacent turfs.
|
||||
for(var/I in P.planet_floors)
|
||||
var/turf/simulated/T = I
|
||||
for(var/turf/simulated/T as anything in P.planet_floors)
|
||||
if(!T.lighting_corners_initialised)
|
||||
T.generate_missing_corners()
|
||||
for(var/C in T.get_corners())
|
||||
|
||||
@@ -85,7 +85,6 @@
|
||||
name = "welding mask"
|
||||
path =/obj/item/clothing/head/welding
|
||||
|
||||
//TFF 24/12/19 - Let people print more spray bottles if needed.
|
||||
/datum/category_item/autolathe/general/spraybottle
|
||||
name = "spray bottle"
|
||||
path = /obj/item/weapon/reagent_containers/spray
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
//TFF 28/8/19 - cleanup of areas placement - removes all but rogueminer_vr stuff.
|
||||
/area
|
||||
var/limit_mob_size = TRUE //If mob size is limited in the area.
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
// Playerscale
|
||||
var/size = dna.GetUIValueRange(DNA_UI_PLAYERSCALE, player_sizes_list.len)
|
||||
if((0 < size) && (size <= player_sizes_list.len))
|
||||
H.resize(player_sizes_list[player_sizes_list[size]], TRUE)
|
||||
H.resize(player_sizes_list[player_sizes_list[size]], TRUE, ignore_prefs = TRUE)
|
||||
|
||||
// Tail/Taur Color
|
||||
H.r_tail = dna.GetUIValueRange(DNA_UI_TAIL_R, 255)
|
||||
@@ -243,7 +243,7 @@
|
||||
H.custom_exclaim = dna.custom_exclaim
|
||||
H.species.blood_color = dna.blood_color
|
||||
var/datum/species/S = H.species
|
||||
S.produceCopy(dna.base_species,dna.species_traits,src)
|
||||
S.produceCopy(dna.species_traits,src)
|
||||
// VOREStation Edit End
|
||||
|
||||
H.force_update_organs() //VOREStation Add - Gotta do this too
|
||||
|
||||
@@ -257,9 +257,17 @@
|
||||
for(var/obj/thing in E.implants)
|
||||
var/implantSubData[0]
|
||||
var/obj/item/weapon/implant/I = thing
|
||||
implantSubData["name"] = I.name
|
||||
implantSubData["known"] = istype(I) && I.known_implant
|
||||
implantData.Add(list(implantSubData))
|
||||
//VOREStation Block Edit Start
|
||||
var/obj/item/device/nif/N = thing
|
||||
if(istype(I))
|
||||
implantSubData["name"] = I.name
|
||||
implantSubData["known"] = istype(I) && I.known_implant
|
||||
implantData.Add(list(implantSubData))
|
||||
else
|
||||
implantSubData["name"] = N.name
|
||||
implantSubData["known"] = istype(N) && N.known_implant
|
||||
implantData.Add(list(implantSubData))
|
||||
//VOREStation Block Edit End
|
||||
|
||||
organData["implants"] = implantData
|
||||
organData["implants_len"] = implantData.len
|
||||
@@ -464,8 +472,11 @@
|
||||
var/unknown_body = 0
|
||||
for(var/thing in e.implants)
|
||||
var/obj/item/weapon/implant/I = thing
|
||||
var/obj/item/device/nif/N = thing //VOREStation Add: NIFs
|
||||
if(istype(I) && I.known_implant)
|
||||
imp += "[I] implanted:"
|
||||
if(istype(N) && N.known_implant) //VOREStation Add: NIFs
|
||||
imp += "[N] implanted:"
|
||||
else
|
||||
unknown_body++
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
else
|
||||
icon_state = "dbchime-standby"
|
||||
|
||||
//TFF 3/6/19 - Port Cit RP fix of infinite frames. ToDo: Make it so that you can completely deconstruct it and reconstruct it.
|
||||
/obj/machinery/doorbell_chime/attackby(obj/item/W as obj, mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
if(default_deconstruction_screwdriver(user, W))
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
var/list/logs = list() // Gets written to by exonet's send_message() function.
|
||||
|
||||
//TFF 3/6/19 - Port Cit RP fix for infinite frames
|
||||
circuit = /obj/item/weapon/circuitboard/telecomms/exonet_node
|
||||
// Proc: New()
|
||||
// Parameters: None
|
||||
|
||||
@@ -428,7 +428,7 @@ Class Procs:
|
||||
for(var/obj/I in contents)
|
||||
if(istype(I,/obj/item/weapon/card/id))
|
||||
I.forceMove(src.loc)
|
||||
//TFF 3/6/19 - port Cit RP fix of infinite frames. If it doesn't have a circuit board, don't create a frame. Return a smack instead. BONK!
|
||||
|
||||
if(!circuit)
|
||||
return 0
|
||||
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
||||
|
||||
@@ -3207,7 +3207,6 @@
|
||||
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10)
|
||||
vend_delay = 15
|
||||
|
||||
//TFF 19/12/19 - Brig version of a seed storage vendor
|
||||
/obj/machinery/seed_storage/brig
|
||||
name = "Prisoners' food seed storage"
|
||||
starting_seeds = list(
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
desc = "Used for building lights."
|
||||
icon = 'icons/obj/lighting.dmi'
|
||||
icon_state = "tube-construct-item"
|
||||
refund_amt = 2 //TFF 17/1/20 - Oversight fix for infinite steel produciton.
|
||||
refund_amt = 2
|
||||
build_machine_type = /obj/machinery/light_construct
|
||||
reverse = 1
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@
|
||||
The image seems important."
|
||||
listing_name = "Safety - Mech Operation"
|
||||
|
||||
//VOREStation Removal Start TFF 17/12/19 - lore not used in our station's own lore.
|
||||
//VOREStation Removal Start
|
||||
/*
|
||||
/datum/poster/nanotrasen/nt_4
|
||||
icon_state = "ntposter04"
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
icon_state = "lamp"
|
||||
force = 10
|
||||
center_of_mass = list("x" = 13,"y" = 11)
|
||||
brightness_on = 10 //TFF 27/11/19 - post refactor fix for intensity levels.
|
||||
brightness_on = 10
|
||||
w_class = ITEMSIZE_LARGE
|
||||
power_use = 0
|
||||
on = 1
|
||||
|
||||
@@ -950,7 +950,7 @@
|
||||
/obj/item/toy/plushie/mouse
|
||||
name = "mouse plush"
|
||||
desc = "A plushie of a delightful mouse! What was once considered a vile rodent is now your very best friend."
|
||||
icon_state = "mouseplushie" //TFF 12/11/19 - updated icon to show a sprite that doesn't replicate a dead mouse. Heck you for that! >:C
|
||||
icon_state = "mouseplushie"
|
||||
pokephrase = "Squeak!"
|
||||
|
||||
/obj/item/toy/plushie/kitten
|
||||
|
||||
@@ -31,10 +31,14 @@ var/list/turf_edge_cache = list()
|
||||
return ..()
|
||||
|
||||
/turf/simulated/proc/make_outdoors()
|
||||
if(outdoors)
|
||||
return
|
||||
outdoors = TRUE
|
||||
SSplanets.addTurf(src)
|
||||
|
||||
/turf/simulated/proc/make_indoors()
|
||||
if(!outdoors)
|
||||
return
|
||||
outdoors = FALSE
|
||||
SSplanets.removeTurf(src)
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
set category = "Fun"
|
||||
if(!check_rights(R_ADMIN, R_FUN))
|
||||
return
|
||||
|
||||
|
||||
var/size_multiplier = input(usr, "Input size multiplier.", "Resize", 1) as num|null
|
||||
if(!size_multiplier)
|
||||
return //cancelled
|
||||
@@ -21,4 +21,4 @@
|
||||
L.resize(size_multiplier, animate = TRUE, uncapped = TRUE, ignore_prefs = TRUE)
|
||||
|
||||
log_and_message_admins("has changed [key_name(L)]'s size multiplier to [size_multiplier].")
|
||||
feedback_add_details("admin_verb","RESIZE")
|
||||
feedback_add_details("admin_verb","RESIZE")
|
||||
@@ -44,7 +44,6 @@
|
||||
display_name = "collar, holo"
|
||||
path = /obj/item/clothing/accessory/collar/holo
|
||||
|
||||
//TFF 17/6/19 - public loadout addition: Indigestible Holocollar
|
||||
/datum/gear/collar/holo/indigestible
|
||||
display_name = "collar, holo (indigestible)"
|
||||
path = /obj/item/clothing/accessory/collar/holo/indigestible
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
character.weight_gain = pref.weight_gain
|
||||
character.weight_loss = pref.weight_loss
|
||||
character.fuzzy = pref.fuzzy
|
||||
character.resize(pref.size_multiplier, animate = FALSE)
|
||||
character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE)
|
||||
|
||||
/datum/category_item/player_setup_item/vore/size/content(var/mob/user)
|
||||
. += "<br>"
|
||||
|
||||
@@ -114,12 +114,7 @@
|
||||
pref.dirty_synth = 0
|
||||
|
||||
var/datum/species/S = character.species
|
||||
var/SB
|
||||
if(S.selects_bodytype)
|
||||
SB = pref.custom_base ? pref.custom_base : "Human"
|
||||
else
|
||||
SB = S.name
|
||||
var/datum/species/new_S = S.produceCopy(SB, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
|
||||
var/datum/species/new_S = S.produceCopy(pref.pos_traits + pref.neu_traits + pref.neg_traits, character, pref.custom_base)
|
||||
|
||||
//Any additional non-trait settings can be applied here
|
||||
new_S.blood_color = pref.blood_color
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
//TFF 5/8/19 - moved /datum/preferences to preferences_vr.dm
|
||||
|
||||
/datum/category_item/player_setup_item/vore/misc
|
||||
name = "Misc Settings"
|
||||
sort_order = 9
|
||||
@@ -9,16 +7,15 @@
|
||||
S["directory_tag"] >> pref.directory_tag
|
||||
S["directory_erptag"] >> pref.directory_erptag
|
||||
S["directory_ad"] >> pref.directory_ad
|
||||
S["sensorpref"] >> pref.sensorpref //TFF 5/8/19 - add sensor pref setting to load after saved
|
||||
S["sensorpref"] >> pref.sensorpref
|
||||
|
||||
/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S)
|
||||
S["show_in_directory"] << pref.show_in_directory
|
||||
S["directory_tag"] << pref.directory_tag
|
||||
S["directory_erptag"] << pref.directory_erptag
|
||||
S["directory_ad"] << pref.directory_ad
|
||||
S["sensorpref"] << pref.sensorpref //TFF 5/8/19 - add sensor pref setting to be saveable
|
||||
S["sensorpref"] << pref.sensorpref
|
||||
|
||||
//TFF 5/8/19 - add new datum category to allow for setting multiple settings when this is selected in the loadout.
|
||||
/datum/category_item/player_setup_item/vore/misc/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
if(pref.sensorpref > 5 || pref.sensorpref < 1)
|
||||
pref.sensorpref = 5
|
||||
@@ -28,7 +25,7 @@
|
||||
pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory))
|
||||
pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag))
|
||||
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
|
||||
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, sensorpreflist.len, initial(pref.sensorpref)) //TFF - 5/8/19 - add santisation for sensor prefs
|
||||
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, sensorpreflist.len, initial(pref.sensorpref))
|
||||
|
||||
/datum/category_item/player_setup_item/vore/misc/content(var/mob/user)
|
||||
. += "<br>"
|
||||
@@ -36,7 +33,7 @@
|
||||
. += "<b>Character Directory Vore Tag:</b> <a href='?src=\ref[src];directory_tag=1'><b>[pref.directory_tag]</b></a><br>"
|
||||
. += "<b>Character Directory ERP Tag:</b> <a href='?src=\ref[src];directory_erptag=1'><b>[pref.directory_erptag]</b></a><br>"
|
||||
. += "<b>Character Directory Advertisement:</b> <a href='?src=\ref[src];directory_ad=1'><b>Set Directory Ad</b></a><br>"
|
||||
. += "<b>Suit Sensors Preference:</b> <a [pref.sensorpref ? "" : ""] href='?src=\ref[src];toggle_sensor_setting=1'><b>[sensorpreflist[pref.sensorpref]]</b></a><br>" //TFF 5/8/19 - Allow selection of sensor settings from off, binary, vitals, tracking, or random
|
||||
. += "<b>Suit Sensors Preference:</b> <a [pref.sensorpref ? "" : ""] href='?src=\ref[src];toggle_sensor_setting=1'><b>[sensorpreflist[pref.sensorpref]]</b></a><br>"
|
||||
|
||||
/datum/category_item/player_setup_item/vore/misc/OnTopic(var/href, var/list/href_list, var/mob/user)
|
||||
if(href_list["toggle_show_in_directory"])
|
||||
@@ -58,7 +55,6 @@
|
||||
var/msg = sanitize(input(user,"Write your advertisement here!", "Flavor Text", html_decode(pref.directory_ad)) as message, extra = 0) //VOREStation Edit: separating out OOC notes
|
||||
pref.directory_ad = msg
|
||||
return TOPIC_REFRESH
|
||||
//TFF 5/8/19 - add new thing so you can choose the sensor setting your character can get.
|
||||
else if(href_list["toggle_sensor_setting"])
|
||||
var/new_sensorpref = input(user, "Choose your character's sensor preferences:", "Character Preferences", sensorpreflist[pref.sensorpref]) as null|anything in sensorpreflist
|
||||
if (!isnull(new_sensorpref) && CanUseTopic(user))
|
||||
|
||||
@@ -154,7 +154,6 @@
|
||||
SPECIES_VOX = 'icons/mob/species/vox/suit.dmi',
|
||||
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/suit.dmi')
|
||||
|
||||
//TFF 5/8/19 - sets Vorestation /obj/item/clothing/under sensor setting default?
|
||||
/obj/item/clothing/under
|
||||
sensor_mode = 3
|
||||
var/sensorpref = 5
|
||||
@@ -165,7 +164,6 @@
|
||||
SPECIES_GREY_YW = 'icons/mob/species/grey/uniform.dmi'/*ywedit*/
|
||||
)
|
||||
|
||||
//TFF 5/8/19 - define numbers and specifics for suit sensor settings
|
||||
/obj/item/clothing/under/New(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
sensorpref = isnull(H) ? 1 : (ishuman(H) ? H.sensorpref : 1)
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
icon_state = "grey"
|
||||
rolled_sleeves = 0
|
||||
|
||||
//TFF 5/8/19 - add a non perma-set orange jumpsuit, splits prison into its own obj with override var settings.
|
||||
//TFF 5/9/19 - add a different icon_state to both jumpsuits, orange and prison. Refactors orange and prison jumpsuit slightly.
|
||||
/obj/item/clothing/under/color/orange
|
||||
name = "orange jumpsuit"
|
||||
icon_state = "orange"
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
return
|
||||
|
||||
var/new_size = input("Put the desired size (25-200%), or (1-600%) in dormitory areas.", "Set Size", 200) as num|null
|
||||
if(!new_size)
|
||||
return //cancelled
|
||||
|
||||
//Check AGAIN because we accepted user input which is blocking.
|
||||
if (src != H.w_uniform)
|
||||
@@ -88,9 +90,9 @@
|
||||
if (H.stat || H.restrained())
|
||||
return
|
||||
|
||||
if (isnull(H.size_multiplier))
|
||||
if (isnull(H.size_multiplier)) // Why would this ever be the case?
|
||||
to_chat(H,"<span class='warning'>The uniform panics and corrects your apparently microscopic size.</span>")
|
||||
H.resize(RESIZE_NORMAL)
|
||||
H.resize(RESIZE_NORMAL, ignore_prefs = TRUE)
|
||||
H.update_icons() //Just want the matrix transform
|
||||
return
|
||||
|
||||
@@ -102,7 +104,7 @@
|
||||
if(new_size != H.size_multiplier)
|
||||
if(!original_size)
|
||||
original_size = H.size_multiplier
|
||||
H.resize(new_size/100)
|
||||
H.resize(new_size/100, ignore_prefs = TRUE) // Ignores prefs because you can only resize yourself
|
||||
H.visible_message("<span class='warning'>The space around [H] distorts as they change size!</span>","<span class='notice'>The space around you distorts as you change size!</span>")
|
||||
else //They chose their current size.
|
||||
return
|
||||
@@ -111,7 +113,7 @@
|
||||
. = ..()
|
||||
if(. && ishuman(M) && original_size)
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.resize(original_size)
|
||||
H.resize(original_size, ignore_prefs = TRUE)
|
||||
original_size = null
|
||||
H.visible_message("<span class='warning'>The space around [H] distorts as they return to their original size!</span>","<span class='notice'>The space around you distorts as you return to your original size!</span>")
|
||||
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
vermstring = "lizards"
|
||||
if(VERM_SPIDERS)
|
||||
spawn_types = list(/obj/effect/spider/spiderling)
|
||||
min_number = 6 //CHOMP Add
|
||||
max_number = 12 //CHOMP edit
|
||||
min_number = 4 //CHOMP Add
|
||||
max_number = 8 //CHOMP edit
|
||||
vermstring = "spiders"
|
||||
|
||||
spawn(0)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/datum/event/rogue_drone/announce()
|
||||
var/msg
|
||||
var/rng = rand(1,5)
|
||||
//CHOMPStation Edit Start TFF 14/1/20 - Virgo 3b -> Sif
|
||||
//CHOMPStation Edit Start
|
||||
switch(rng)
|
||||
if(1)
|
||||
msg = "A combat drone wing operating in close orbit above Sif has failed to return from a anti-piracy sweep. If any are sighted, \
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/datum/event/spider_infestation/setup()
|
||||
announceWhen = rand(announceWhen, announceWhen + 60)
|
||||
spawncount = rand(12 * severity, 18 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: Tripled amount spawned
|
||||
spawncount = rand(6 * severity, 12 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: Tripled amount spawned
|
||||
sent_spiders_to_station = 0
|
||||
|
||||
/datum/event/spider_infestation/announce()
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
desc = "It's beef. It's roasted. It's been a staple of dining tradition for centuries."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "roastbeef"
|
||||
trash = /obj/item/trash/plate //TFF 30/11/19 - Roast beef are put on plates, not waffle trays, you dunce~
|
||||
trash = /obj/item/trash/plate
|
||||
nutriment_amt = 8
|
||||
nutriment_desc = list("cooked meat" = 5)
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
/area/engineering
|
||||
holomap_color = HOLOMAP_AREACOLOR_ENGINEERING
|
||||
//TFF 11/12/19 - Minor refactor, makes mice spawn only in Atmos.
|
||||
/area/engineering/atmos_intake
|
||||
holomap_color = null
|
||||
/area/maintenance/substation/engineering
|
||||
|
||||
@@ -94,7 +94,6 @@
|
||||
to_chat(user, "You load [W] into [src].")
|
||||
return
|
||||
|
||||
//TFF 3/6/19 - fix infinite frame creation, ported from Cit RP - also allow movement of hydroponic-related machines.
|
||||
if(default_deconstruction_screwdriver(user, W))
|
||||
return
|
||||
if(W.is_wrench())
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
icon_state = "farmbot0"
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
req_one_access = list(access_robotics, access_hydroponics, access_xenobiology) //TFF 11/7/19 - adds Xenobio access on behalf of Nalarac
|
||||
req_one_access = list(access_robotics, access_hydroponics, access_xenobiology)
|
||||
|
||||
var/action = "" // Used to update icon
|
||||
var/waters_trays = 1
|
||||
|
||||
@@ -207,15 +207,6 @@
|
||||
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/verb/toggle_resizing_immunity()
|
||||
set name = "Toggle Resizing Immunity"
|
||||
set desc = "Toggles your ability to resist resizing attempts"
|
||||
set category = "IC"
|
||||
|
||||
resizable = !resizable
|
||||
to_chat(src, "<span class='notice'>You are now [resizable ? "susceptible" : "immune"] to being resized.</span>")
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/handle_flip_vr()
|
||||
var/original_density = density
|
||||
var/original_passflags = pass_flags
|
||||
|
||||
@@ -492,6 +492,7 @@ This function restores all organs.
|
||||
switch(damagetype)
|
||||
if(BRUTE)
|
||||
damageoverlaytemp = 20
|
||||
if(nif && nif.flag_check(NIF_C_BRUTEARMOR,NIF_FLAGS_COMBAT)){damage *= 0.7} //CHOMPSTATION edit. Fixes NIF armour.
|
||||
damage = damage*species.brute_mod
|
||||
|
||||
for(var/datum/modifier/M in modifiers)
|
||||
@@ -504,6 +505,7 @@ This function restores all organs.
|
||||
UpdateDamageIcon()
|
||||
if(BURN)
|
||||
damageoverlaytemp = 20
|
||||
if(nif && nif.flag_check(NIF_C_BURNARMOR,NIF_FLAGS_COMBAT)){damage *= 0.7} //CHOMPSTATION edit. Fixes NIF armour.
|
||||
damage = damage*species.burn_mod
|
||||
|
||||
for(var/datum/modifier/M in modifiers)
|
||||
|
||||
@@ -104,7 +104,8 @@
|
||||
else if (E.is_dislocated())
|
||||
stance_damage += 0.5
|
||||
|
||||
if(E) limb_pain = E.organ_can_feel_pain()
|
||||
if(E && (!E.is_usable() || E.is_broken() || E.is_dislocated())) //VOREStation Edit
|
||||
limb_pain = E.organ_can_feel_pain()
|
||||
|
||||
// Canes and crutches help you stand (if the latter is ever added)
|
||||
// One cane mitigates a broken leg+foot, or a missing foot.
|
||||
|
||||
@@ -416,7 +416,6 @@
|
||||
H.visible_message( \
|
||||
"<span class='notice'>[H] shakes [target]'s hand.</span>", \
|
||||
"<span class='notice'>You shake [target]'s hand.</span>", )
|
||||
//TFF 15/12/19 - Port nose booping from CHOMPStation
|
||||
else if(H.zone_sel.selecting == "mouth")
|
||||
H.visible_message( \
|
||||
"<span class='notice'>[H] boops [target]'s nose.</span>", \
|
||||
|
||||
@@ -42,16 +42,28 @@
|
||||
nif.nifsofts = nifsofts
|
||||
else
|
||||
..()
|
||||
/datum/species/proc/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H)
|
||||
ASSERT(to_copy)
|
||||
/datum/species/proc/produceCopy(var/list/traits,var/mob/living/carbon/human/H, var/custom_base)
|
||||
var/datum/species/S
|
||||
//If species allows custom base, and custom base is set, apply it, otherwise use default.
|
||||
if(selects_bodytype && custom_base)
|
||||
S = GLOB.all_species[custom_base]
|
||||
else
|
||||
S = GLOB.all_species[src.name]
|
||||
ASSERT(S)
|
||||
ASSERT(istype(H))
|
||||
var/datum/species/new_copy = new S.type()
|
||||
|
||||
if(ispath(to_copy))
|
||||
to_copy = "[initial(to_copy.name)]"
|
||||
if(istext(to_copy))
|
||||
to_copy = GLOB.all_species[to_copy]
|
||||
for(var/i in S.vars) //Thorough copy of species.
|
||||
if(new_copy.vars[i] != S.vars[i])
|
||||
//Skipping lists because they may contain more lists, copy those manually.
|
||||
//Also ignoring type var since it's read-only and will runtime.
|
||||
if(islist(vars[i]))
|
||||
continue
|
||||
new_copy.vars[i] = S.vars[i]
|
||||
|
||||
var/datum/species/new_copy = new to_copy.type()
|
||||
for(var/organ in S.has_limbs) //Copy important organ data generated by species.
|
||||
var/list/organ_data = S.has_limbs[organ]
|
||||
new_copy.has_limbs[organ] = organ_data.Copy()
|
||||
|
||||
new_copy.traits = traits
|
||||
|
||||
@@ -59,12 +71,20 @@
|
||||
if(new_copy.traits)
|
||||
for(var/trait in new_copy.traits)
|
||||
var/datum/trait/T = all_traits[trait]
|
||||
T.apply(new_copy,H)
|
||||
T.apply(new_copy, H)
|
||||
|
||||
//Set up a mob
|
||||
H.species = new_copy
|
||||
H.icon_state = new_copy.get_bodytype()
|
||||
|
||||
if(new_copy.holder_type)
|
||||
H.holder_type = new_copy.holder_type
|
||||
|
||||
if(H.dna)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
return new_copy
|
||||
return new_copy
|
||||
|
||||
|
||||
/datum/species/get_bodytype()
|
||||
return base_species
|
||||
@@ -447,55 +447,6 @@
|
||||
|
||||
//End of fruit gland code.
|
||||
|
||||
/datum/species/alraune/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H)
|
||||
ASSERT(to_copy)
|
||||
ASSERT(istype(H))
|
||||
|
||||
if(ispath(to_copy))
|
||||
to_copy = "[initial(to_copy.name)]"
|
||||
if(istext(to_copy))
|
||||
to_copy = GLOB.all_species[to_copy]
|
||||
|
||||
var/datum/species/alraune/new_copy = new()
|
||||
|
||||
//Initials so it works with a simple path passed, or an instance
|
||||
new_copy.base_species = to_copy.name
|
||||
new_copy.icobase = to_copy.icobase
|
||||
new_copy.deform = to_copy.deform
|
||||
new_copy.tail = to_copy.tail
|
||||
new_copy.tail_animation = to_copy.tail_animation
|
||||
new_copy.icobase_tail = to_copy.icobase_tail
|
||||
new_copy.color_mult = to_copy.color_mult
|
||||
new_copy.primitive_form = to_copy.primitive_form
|
||||
new_copy.appearance_flags = to_copy.appearance_flags
|
||||
new_copy.flesh_color = to_copy.flesh_color
|
||||
new_copy.base_color = to_copy.base_color
|
||||
new_copy.blood_mask = to_copy.blood_mask
|
||||
new_copy.damage_mask = to_copy.damage_mask
|
||||
new_copy.damage_overlays = to_copy.damage_overlays
|
||||
new_copy.traits = traits
|
||||
|
||||
//If you had traits, apply them
|
||||
if(new_copy.traits)
|
||||
for(var/trait in new_copy.traits)
|
||||
var/datum/trait/T = all_traits[trait]
|
||||
T.apply(new_copy,H)
|
||||
|
||||
//Set up a mob
|
||||
H.species = new_copy
|
||||
H.icon_state = lowertext(new_copy.get_bodytype())
|
||||
|
||||
if(new_copy.holder_type)
|
||||
H.holder_type = new_copy.holder_type
|
||||
|
||||
if(H.dna)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
return new_copy
|
||||
|
||||
/datum/species/alraune/get_bodytype()
|
||||
return base_species
|
||||
|
||||
/datum/species/alraune/get_race_key()
|
||||
var/datum/species/real = GLOB.all_species[base_species]
|
||||
return real.race_key
|
||||
|
||||
@@ -45,61 +45,14 @@
|
||||
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right, "descriptor" = "right foot")
|
||||
)
|
||||
|
||||
/datum/species/custom/get_bodytype()
|
||||
return base_species
|
||||
|
||||
/datum/species/custom/get_race_key()
|
||||
var/datum/species/real = GLOB.all_species[base_species]
|
||||
return real.race_key
|
||||
|
||||
/datum/species/custom/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H)
|
||||
ASSERT(to_copy)
|
||||
ASSERT(istype(H))
|
||||
|
||||
if(ispath(to_copy))
|
||||
to_copy = "[initial(to_copy.name)]"
|
||||
if(istext(to_copy))
|
||||
to_copy = GLOB.all_species[to_copy]
|
||||
|
||||
var/datum/species/custom/new_copy = new()
|
||||
|
||||
//Initials so it works with a simple path passed, or an instance
|
||||
new_copy.base_species = to_copy.name
|
||||
new_copy.icobase = to_copy.icobase
|
||||
new_copy.deform = to_copy.deform
|
||||
new_copy.tail = to_copy.tail
|
||||
new_copy.tail_animation = to_copy.tail_animation
|
||||
new_copy.icobase_tail = to_copy.icobase_tail
|
||||
new_copy.color_mult = to_copy.color_mult
|
||||
new_copy.primitive_form = to_copy.primitive_form
|
||||
new_copy.appearance_flags = to_copy.appearance_flags
|
||||
new_copy.flesh_color = to_copy.flesh_color
|
||||
new_copy.base_color = to_copy.base_color
|
||||
new_copy.blood_mask = to_copy.blood_mask
|
||||
new_copy.damage_mask = to_copy.damage_mask
|
||||
new_copy.damage_overlays = to_copy.damage_overlays
|
||||
new_copy.traits = traits
|
||||
new_copy.move_trail = move_trail
|
||||
new_copy.has_floating_eyes = has_floating_eyes
|
||||
|
||||
//If you had traits, apply them
|
||||
if(new_copy.traits)
|
||||
for(var/trait in new_copy.traits)
|
||||
var/datum/trait/T = all_traits[trait]
|
||||
T.apply(new_copy,H)
|
||||
|
||||
//Set up a mob
|
||||
H.species = new_copy
|
||||
H.maxHealth = new_copy.total_health
|
||||
H.hunger_rate = new_copy.hunger_factor
|
||||
|
||||
if(new_copy.holder_type)
|
||||
H.holder_type = new_copy.holder_type
|
||||
|
||||
if(H.dna)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
return new_copy
|
||||
/datum/species/custom/produceCopy(var/list/traits,var/mob/living/carbon/human/H)
|
||||
. = ..()
|
||||
H.maxHealth = H.species.total_health
|
||||
H.hunger_rate = H.species.hunger_factor
|
||||
|
||||
// Stub species overrides for shoving trait abilities into
|
||||
|
||||
|
||||
@@ -502,7 +502,7 @@ var/global/list/disallowed_protean_accessories = list(
|
||||
var/atom/reform_spot = blob.drop_location()
|
||||
|
||||
//Size update
|
||||
resize(blob.size_multiplier, FALSE)
|
||||
resize(blob.size_multiplier, FALSE, ignore_prefs = TRUE)
|
||||
|
||||
//Move them back where the blob was
|
||||
forceMove(reform_spot)
|
||||
|
||||
@@ -396,14 +396,14 @@
|
||||
//Sizing up
|
||||
if(cost > 0)
|
||||
if(refactory.use_stored_material(MAT_STEEL,cost))
|
||||
user.resize(size_factor)
|
||||
user.resize(size_factor, ignore_prefs = TRUE)
|
||||
else
|
||||
to_chat(user,"<span class='warning'>That size change would cost [cost] steel, which you don't have.</span>")
|
||||
//Sizing down (or not at all)
|
||||
else if(cost <= 0)
|
||||
cost = abs(cost)
|
||||
var/actually_added = refactory.add_stored_material(MAT_STEEL,cost)
|
||||
user.resize(size_factor)
|
||||
user.resize(size_factor, ignore_prefs = TRUE)
|
||||
if(actually_added != cost)
|
||||
to_chat(user,"<span class='warning'>Unfortunately, [cost-actually_added] steel was lost due to lack of storage space.</span>")
|
||||
|
||||
|
||||
@@ -294,56 +294,6 @@
|
||||
// HUD update time
|
||||
update_xenochimera_hud(H, danger, feral_state)
|
||||
|
||||
|
||||
/datum/species/xenochimera/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H)
|
||||
ASSERT(to_copy)
|
||||
ASSERT(istype(H))
|
||||
|
||||
if(ispath(to_copy))
|
||||
to_copy = "[initial(to_copy.name)]"
|
||||
if(istext(to_copy))
|
||||
to_copy = GLOB.all_species[to_copy]
|
||||
|
||||
var/datum/species/xenochimera/new_copy = new()
|
||||
|
||||
//Initials so it works with a simple path passed, or an instance
|
||||
new_copy.base_species = to_copy.name
|
||||
new_copy.icobase = to_copy.icobase
|
||||
new_copy.deform = to_copy.deform
|
||||
new_copy.tail = to_copy.tail
|
||||
new_copy.tail_animation = to_copy.tail_animation
|
||||
new_copy.icobase_tail = to_copy.icobase_tail
|
||||
new_copy.color_mult = to_copy.color_mult
|
||||
new_copy.primitive_form = to_copy.primitive_form
|
||||
new_copy.appearance_flags = to_copy.appearance_flags
|
||||
new_copy.flesh_color = to_copy.flesh_color
|
||||
new_copy.base_color = to_copy.base_color
|
||||
new_copy.blood_mask = to_copy.blood_mask
|
||||
new_copy.damage_mask = to_copy.damage_mask
|
||||
new_copy.damage_overlays = to_copy.damage_overlays
|
||||
new_copy.traits = traits
|
||||
|
||||
//If you had traits, apply them
|
||||
if(new_copy.traits)
|
||||
for(var/trait in new_copy.traits)
|
||||
var/datum/trait/T = all_traits[trait]
|
||||
T.apply(new_copy,H)
|
||||
|
||||
//Set up a mob
|
||||
H.species = new_copy
|
||||
H.icon_state = lowertext(new_copy.get_bodytype())
|
||||
|
||||
if(new_copy.holder_type)
|
||||
H.holder_type = new_copy.holder_type
|
||||
|
||||
if(H.dna)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
return new_copy
|
||||
|
||||
/datum/species/xenochimera/get_bodytype()
|
||||
return base_species
|
||||
|
||||
/datum/species/xenochimera/get_race_key()
|
||||
var/datum/species/real = GLOB.all_species[base_species]
|
||||
return real.race_key
|
||||
|
||||
@@ -8,7 +8,7 @@ var/list/department_radio_keys = list(
|
||||
":n" = "Science", ".n" = "Science",
|
||||
":m" = "Medical", ".m" = "Medical",
|
||||
":e" = "Engineering", ".e" = "Engineering",
|
||||
":k" = "Response Team", ".k" = "Response Team", //TFF 11/3/20 - Add Response Team to channels usable rather than resorting to :H or such.,
|
||||
":k" = "Response Team", ".k" = "Response Team",
|
||||
":s" = "Security", ".s" = "Security",
|
||||
":w" = "whisper", ".w" = "whisper",
|
||||
":t" = "Mercenary", ".t" = "Mercenary",
|
||||
@@ -27,7 +27,7 @@ var/list/department_radio_keys = list(
|
||||
":N" = "Science", ".N" = "Science",
|
||||
":M" = "Medical", ".M" = "Medical",
|
||||
":E" = "Engineering", ".E" = "Engineering",
|
||||
":k" = "Response Team", ".k" = "Response Team", //TFF 11/3/20 - Add Response Team to channels usable rather than resorting to :H or such.,
|
||||
":k" = "Response Team", ".k" = "Response Team",
|
||||
":S" = "Security", ".S" = "Security",
|
||||
":W" = "whisper", ".W" = "whisper",
|
||||
":T" = "Mercenary", ".T" = "Mercenary",
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
"Chirp" = list("chirps","chirrups","cheeps"),
|
||||
"Feline" = list("purrs","yowls","meows"),
|
||||
"Canine" = list("yaps","barks","woofs"),
|
||||
"Rodent" = list("squeaks", "SQUEAKS", "sqiks") //VOREStation Edit - TFF 22/11/19 - CHOMPStation port of pAI additions,
|
||||
"Rodent" = list("squeaks", "SQUEAKS", "sqiks") //VOREStation Edit
|
||||
)
|
||||
|
||||
var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking
|
||||
@@ -333,8 +333,7 @@
|
||||
|
||||
close_up()
|
||||
|
||||
//VOREStation Removal Start - TFF 22/11/19 - Refactored in pai_vr.dm
|
||||
/*
|
||||
/* //VOREStation Removal Start
|
||||
/mob/living/silicon/pai/proc/choose_chassis()
|
||||
set category = "pAI Commands"
|
||||
set name = "Choose Chassis"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/mob/living/silicon/pai
|
||||
var/people_eaten = 0
|
||||
icon = 'icons/mob/pai_vr.dmi'
|
||||
//TFF 22/11/19 - CHOMPStation port of pAI additions.
|
||||
var/global/list/wide_chassis = list(
|
||||
"rat",
|
||||
"panther"
|
||||
@@ -36,7 +35,6 @@
|
||||
else if(people_eaten && resting)
|
||||
icon_state = "[chassis]_rest_full"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of pAI additions.
|
||||
if(chassis in wide_chassis)
|
||||
icon = 'icons/mob/pai_vr64x64.dmi'
|
||||
pixel_x = -16
|
||||
@@ -58,7 +56,6 @@
|
||||
else if(people_eaten && resting)
|
||||
icon_state = "[chassis]_rest_full"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of pAI additions.
|
||||
if(chassis in wide_chassis)
|
||||
icon = 'icons/mob/pai_vr64x64.dmi'
|
||||
pixel_x = -16
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
else if(ismob(target))
|
||||
var/mob/living/M = target
|
||||
resize(M.size_multiplier)
|
||||
resize(M.size_multiplier, ignore_prefs = TRUE)
|
||||
|
||||
//Morphed is weaker
|
||||
melee_damage_lower = melee_damage_disguised
|
||||
@@ -165,7 +165,7 @@
|
||||
maptext = null
|
||||
|
||||
size_multiplier = our_size_multiplier
|
||||
resize(size_multiplier)
|
||||
resize(size_multiplier, ignore_prefs = TRUE)
|
||||
|
||||
//Baseline stats
|
||||
melee_damage_lower = initial(melee_damage_lower)
|
||||
@@ -183,7 +183,7 @@
|
||||
/mob/living/simple_mob/vore/hostile/morph/will_show_tooltip()
|
||||
return (!morphed)
|
||||
|
||||
/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE)
|
||||
/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
|
||||
if(morphed && !ismob(form))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
//TFF 5/8/19 - add randomised sensor setting for random button clicking
|
||||
/datum/preferences/randomize_appearance_and_body_for(var/mob/living/carbon/human/H)
|
||||
sensorpref = rand(1,5)
|
||||
@@ -728,3 +728,9 @@
|
||||
icon_state = "unathilongfrills"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/thunderthighs
|
||||
name = "Boosted Thighs"
|
||||
icon_state = "thunderthighs"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG)
|
||||
@@ -146,7 +146,6 @@
|
||||
suit_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatwolf
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
@@ -158,7 +157,6 @@
|
||||
extra_overlay = "wolf_markings"
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
|
||||
name = "Fat Wolf dual-color (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
@@ -245,7 +243,6 @@
|
||||
suit_sprites = 'icons/mob/taursuits_feline.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatfeline
|
||||
name = "Fat Feline (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
@@ -262,7 +259,6 @@
|
||||
extra_overlay = "feline_markings"
|
||||
//icon_sprite_tag = "feline2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
||||
name = "Fat Feline dual-color (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
suit_sprites = 'icons/mob/taursuits_wolf_vr.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatwolf
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
@@ -70,18 +69,6 @@
|
||||
extra_overlay2 = "wolf_markings_2"
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
|
||||
//MTosh 08/01/2020 - CHOMPstation Moved Synth Wolf up under wolf dual-color, and Fat Wolf below Synth Wolf, to better group original vorestation wolf taurs/differentiate from Chompstation Fat Taurs
|
||||
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
||||
name = "SynthWolf dual-color (Taur)"
|
||||
icon_state = "synthwolf_s"
|
||||
extra_overlay = "synthwolf_markings"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
//Mtosh 08/01/2020 - CHOMPStation changed datum tree from "tail/taur/fatwolf" to "tail/taur/wolf/fatwolf" in order to fix bug involving taur duty vest.
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
|
||||
name = "Fat Wolf 3-color (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
@@ -287,7 +274,6 @@
|
||||
suit_sprites = 'icons/mob/taursuits_feline_vr.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatfeline
|
||||
name = "Fat Feline (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
@@ -305,7 +291,6 @@
|
||||
extra_overlay2 = "feline_markings_2"
|
||||
//icon_sprite_tag = "feline2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
||||
name = "Fat Feline 3-color (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
var/datum/preferences/B = O.client.prefs
|
||||
for(var/language in B.alternate_languages)
|
||||
O.add_language(language)
|
||||
O.resize(B.size_multiplier, animate = TRUE) //VOREStation Addition: add size prefs to borgs
|
||||
O.resize(B.size_multiplier, animate = TRUE, ignore_prefs = TRUE) //VOREStation Addition: add size prefs to borgs
|
||||
O.fuzzy = B.fuzzy //VOREStation Addition: add size prefs to borgs
|
||||
|
||||
callHook("borgify", list(O))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
illegal = TRUE
|
||||
wear = 3
|
||||
access = 999 //Prevents anyone from buying it without an emag.
|
||||
activates = FALSE //It's armor.
|
||||
//CHOMPSTATION edit. Makes NIF armour toggleable.
|
||||
combat_flags = (NIF_C_BRUTEARMOR) // Default on when installed, clear when uninstalled
|
||||
|
||||
/datum/nifsoft/burn_armor
|
||||
@@ -19,7 +19,7 @@
|
||||
illegal = TRUE
|
||||
wear = 3
|
||||
access = 999 //Prevents anyone from buying it without an emag.
|
||||
activates = FALSE //It's armor.
|
||||
//CHOMPSTATION edit. Makes NIF armour toggleable.
|
||||
combat_flags = (NIF_C_BURNARMOR) // Default on when installed, clear when uninstalled
|
||||
|
||||
/datum/nifsoft/painkillers
|
||||
|
||||
+30
-35
@@ -216,15 +216,17 @@ var/datum/planet/sif/planet_sif = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_snow
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_snow
|
||||
|
||||
/*
|
||||
/datum/weather/sif/snow/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/sif/blizzard
|
||||
name = "blizzard"
|
||||
@@ -249,15 +251,17 @@ var/datum/planet/sif/planet_sif = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/*
|
||||
/datum/weather/sif/blizzard/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/sif/rain
|
||||
name = "rain"
|
||||
@@ -283,25 +287,21 @@ var/datum/planet/sif/planet_sif = null
|
||||
|
||||
/datum/weather/sif/rain/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
L.water_act(1)
|
||||
if(show_message)
|
||||
@@ -340,24 +340,21 @@ var/datum/planet/sif/planet_sif = null
|
||||
|
||||
/datum/weather/sif/storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
|
||||
|
||||
L.water_act(2)
|
||||
@@ -401,20 +398,18 @@ var/datum/planet/sif/planet_sif = null
|
||||
|
||||
/datum/weather/sif/hail/process_effects()
|
||||
..()
|
||||
for(var/humie in human_mob_list)
|
||||
var/mob/living/carbon/human/H = humie
|
||||
for(var/mob/living/carbon/H as anything in human_mob_list)
|
||||
if(H.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to pelt them with ice.
|
||||
|
||||
// If they have an open umbrella, it'll guard from hail
|
||||
var/obj/item/weapon/melee/umbrella/U
|
||||
if(istype(H.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
U = H.get_active_hand()
|
||||
else if(istype(H.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = H.get_inactive_hand()
|
||||
if(U && U.open)
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(H, "<span class='notice'>Hail patters onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
@@ -156,15 +156,17 @@ var/datum/planet/virgo3b_better/planet_virgo3b_better = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_snow
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_snow
|
||||
|
||||
/*
|
||||
/datum/weather/virgo3b_better/snow/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo3b_better/blizzard
|
||||
name = "blizzard"
|
||||
@@ -189,15 +191,17 @@ var/datum/planet/virgo3b_better/planet_virgo3b_better = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/*
|
||||
/datum/weather/virgo3b_better/blizzard/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo3b_better/rain
|
||||
name = "rain"
|
||||
@@ -220,25 +224,21 @@ var/datum/planet/virgo3b_better/planet_virgo3b_better = null
|
||||
|
||||
/datum/weather/virgo3b_better/rain/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
L.water_act(1)
|
||||
if(show_message)
|
||||
@@ -275,25 +275,21 @@ var/datum/planet/virgo3b_better/planet_virgo3b_better = null
|
||||
|
||||
/datum/weather/virgo3b_better/storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
|
||||
|
||||
L.water_act(2)
|
||||
@@ -335,20 +331,18 @@ var/datum/planet/virgo3b_better/planet_virgo3b_better = null
|
||||
|
||||
/datum/weather/virgo3b_better/hail/process_effects()
|
||||
..()
|
||||
for(var/humie in human_mob_list)
|
||||
var/mob/living/carbon/human/H = humie
|
||||
for(var/mob/living/carbon/H as anything in human_mob_list)
|
||||
if(H.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to pelt them with ice.
|
||||
|
||||
// If they have an open umbrella, it'll guard from hail
|
||||
var/obj/item/weapon/melee/umbrella/U
|
||||
if(istype(H.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
U = H.get_active_hand()
|
||||
else if(istype(H.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = H.get_inactive_hand()
|
||||
if(U && U.open)
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(H, "<span class='notice'>Hail patters onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
@@ -203,15 +203,17 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_snow
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_snow
|
||||
|
||||
/*
|
||||
/datum/weather/virgo3b/snow/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo3b/blizzard
|
||||
name = "blizzard"
|
||||
@@ -236,15 +238,17 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/*
|
||||
/datum/weather/virgo3b/blizzard/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo3b/rain
|
||||
name = "rain"
|
||||
@@ -270,25 +274,21 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
|
||||
/datum/weather/virgo3b/rain/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
L.water_act(1)
|
||||
if(show_message)
|
||||
@@ -325,25 +325,21 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
|
||||
/datum/weather/virgo3b/storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
|
||||
L.water_act(2)
|
||||
@@ -385,20 +381,18 @@ var/datum/planet/virgo3b/planet_virgo3b = null
|
||||
|
||||
/datum/weather/virgo3b/hail/process_effects()
|
||||
..()
|
||||
for(var/humie in human_mob_list)
|
||||
var/mob/living/carbon/human/H = humie
|
||||
for(var/mob/living/carbon/H as anything in human_mob_list)
|
||||
if(H.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to pelt them with ice.
|
||||
|
||||
// If they have an open umbrella, it'll guard from hail
|
||||
var/obj/item/weapon/melee/umbrella/U
|
||||
if(istype(H.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
U = H.get_active_hand()
|
||||
else if(istype(H.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = H.get_inactive_hand()
|
||||
if(U && U.open)
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(H, "<span class='notice'>Hail patters onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
@@ -32,35 +32,35 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
var/min = 0
|
||||
|
||||
switch(sun_position)
|
||||
if(0 to 0.30) // Night
|
||||
low_brightness = 0.1
|
||||
if(0 to 0.20) // Night
|
||||
low_brightness = 0.3
|
||||
low_color = "#000066"
|
||||
|
||||
high_brightness = 0.2
|
||||
high_brightness = 0.5
|
||||
high_color = "#66004D"
|
||||
min = 0
|
||||
|
||||
if(0.30 to 0.40) // Twilight
|
||||
low_brightness = 0.4
|
||||
if(0.20 to 0.30) // Twilight
|
||||
low_brightness = 0.5
|
||||
low_color = "#66004D"
|
||||
|
||||
high_brightness = 0.6
|
||||
high_brightness = 0.9
|
||||
high_color = "#CC3300"
|
||||
min = 0.40
|
||||
|
||||
if(0.40 to 0.50) // Sunrise/set
|
||||
low_brightness = 0.7
|
||||
if(0.30 to 0.40) // Sunrise/set
|
||||
low_brightness = 0.9
|
||||
low_color = "#CC3300"
|
||||
|
||||
high_brightness = 0.9
|
||||
high_brightness = 3.0
|
||||
high_color = "#FF9933"
|
||||
min = 0.50
|
||||
|
||||
if(0.50 to 1.00) // Noon
|
||||
low_brightness = 1
|
||||
if(0.40 to 1.00) // Noon
|
||||
low_brightness = 3.0
|
||||
low_color = "#DDDDDD"
|
||||
|
||||
high_brightness = 2
|
||||
high_brightness = 10.0
|
||||
high_color = "#FFFFFF"
|
||||
min = 0.70
|
||||
|
||||
@@ -187,15 +187,17 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_snow
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_snow
|
||||
|
||||
/*
|
||||
/datum/weather/virgo4/snow/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo4/blizzard
|
||||
name = "blizzard"
|
||||
@@ -217,15 +219,17 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
outdoor_sounds_type = /datum/looping_sound/weather/outside_blizzard
|
||||
indoor_sounds_type = /datum/looping_sound/weather/inside_blizzard
|
||||
|
||||
/*
|
||||
/datum/weather/virgo4/blizzard/process_effects()
|
||||
..()
|
||||
for(var/turf/simulated/floor/outdoors/snow/S in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
for(var/turf/simulated/floor/outdoors/snow/S as anything in SSplanets.new_outdoor_turfs) //This didn't make any sense before SSplanets, either
|
||||
if(S.z in holder.our_planet.expected_z_levels)
|
||||
for(var/dir_checked in cardinal)
|
||||
var/turf/simulated/floor/T = get_step(S, dir_checked)
|
||||
if(istype(T))
|
||||
if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
|
||||
T.chill()
|
||||
*/
|
||||
|
||||
/datum/weather/virgo4/rain
|
||||
name = "rain"
|
||||
@@ -248,25 +252,21 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
|
||||
/datum/weather/virgo4/rain/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain patters softly onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
L.water_act(1)
|
||||
if(show_message)
|
||||
@@ -298,25 +298,21 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
|
||||
/datum/weather/virgo4/storm/process_effects()
|
||||
..()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
for(var/mob/living/L as anything in living_mob_list)
|
||||
if(L.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to rain on them.
|
||||
|
||||
// If they have an open umbrella, it'll guard from rain
|
||||
if(istype(L.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
else if(istype(L.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_inactive_hand()
|
||||
if(U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
var/obj/item/weapon/melee/umbrella/U = L.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = L.get_inactive_hand()
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(L, "<span class='notice'>Rain showers loudly onto your umbrella!</span>")
|
||||
continue
|
||||
|
||||
|
||||
L.water_act(2)
|
||||
@@ -355,20 +351,18 @@ var/datum/planet/virgo4/planet_virgo4 = null
|
||||
|
||||
/datum/weather/virgo4/hail/process_effects()
|
||||
..()
|
||||
for(var/humie in human_mob_list)
|
||||
var/mob/living/carbon/human/H = humie
|
||||
for(var/mob/living/carbon/H as anything in human_mob_list)
|
||||
if(H.z in holder.our_planet.expected_z_levels)
|
||||
var/turf/T = get_turf(H)
|
||||
if(!T.outdoors)
|
||||
continue // They're indoors, so no need to pelt them with ice.
|
||||
|
||||
// If they have an open umbrella, it'll guard from hail
|
||||
var/obj/item/weapon/melee/umbrella/U
|
||||
if(istype(H.get_active_hand(), /obj/item/weapon/melee/umbrella))
|
||||
U = H.get_active_hand()
|
||||
else if(istype(H.get_inactive_hand(), /obj/item/weapon/melee/umbrella))
|
||||
var/obj/item/weapon/melee/umbrella/U = H.get_active_hand()
|
||||
if(!istype(U) || !U.open)
|
||||
U = H.get_inactive_hand()
|
||||
if(U && U.open)
|
||||
|
||||
if(istype(U) && U.open)
|
||||
if(show_message)
|
||||
to_chat(H, "<span class='notice'>Hail patters onto your umbrella.</span>")
|
||||
continue
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
|
||||
tesla_zap(src, 10, power/(coeff/2))
|
||||
|
||||
//TFF 3/6/19 - Port Cit RP fix for infinite frames
|
||||
/obj/machinery/power/grounding_rod
|
||||
name = "grounding rod"
|
||||
desc = "Keep an area from being fried from Edison's Bane."
|
||||
|
||||
@@ -1483,7 +1483,7 @@
|
||||
|
||||
/datum/reagent/qerr_quem
|
||||
name = "Qerr-quem"
|
||||
id = "querr_quem"
|
||||
id = "qerr_quem"
|
||||
description = "A potent stimulant and anti-anxiety medication, made for the Qerr-Katish."
|
||||
taste_description = "mint"
|
||||
reagent_state = LIQUID
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
mrate_static = TRUE
|
||||
|
||||
/datum/reagent/macrocillin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(M.size_range_check(M.size_multiplier))
|
||||
M.resize(M.size_multiplier+0.01, FALSE)//Incrrease 1% per tick. //CHOMP Edit: don't do fancy animates. Unnecessary on 1% changes. Laggy.
|
||||
M.resize(M.size_multiplier+0.01, animate = FALSE, uncapped = M.has_large_resize_bounds()) //Incrrease 1% per tick. //CHOMP Edit: don't do fancy animates. Unnecessary on 1% changes. Laggy.
|
||||
return
|
||||
|
||||
/datum/reagent/microcillin
|
||||
@@ -27,8 +26,7 @@
|
||||
mrate_static = TRUE
|
||||
|
||||
/datum/reagent/microcillin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(M.size_range_check(M.size_multiplier))
|
||||
M.resize(M.size_multiplier-0.01, FALSE) //Decrease 1% per tick. //CHOMP Edit: don't do fancy animates. Unnecessary on 1% changes. Laggy.
|
||||
M.resize(M.size_multiplier-0.01, animate = FALSE, uncapped = M.has_large_resize_bounds()) //Decrease 1% per tick. //CHOMP Edit: don't do fancy animates. Unnecessary on 1% changes. Laggy.
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
item_state = "cleaner"
|
||||
center_of_mass = list("x" = 16,"y" = 10)
|
||||
flags = OPENCONTAINER|NOBLUDGEON
|
||||
//TFF 24/12/19 - Let people print more spray bottles if needed.
|
||||
matter = list("glass" = 300, DEFAULT_WALL_MATERIAL = 300)
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// TFF 6/10/20 - Just a little thing to prevent the button
|
||||
// and console from being destroyed by explosions.
|
||||
/obj/structure/lift/button/ex_act()
|
||||
return
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
var/car_limit = 0 //how many cars an engine can pull before performance degrades. This should be 0 to prevent trailers from unhitching.
|
||||
active_engines = 1
|
||||
var/obj/item/weapon/key/key //TFF 19/1/20 - Bugfix for key being prevented from getting used again
|
||||
var/obj/item/weapon/key/key
|
||||
var/key_type = /obj/item/weapon/key/security
|
||||
var/siren = 0 //This is for eventually getting the siren sprite to work.
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
/obj/vehicle/train/security/engine/New()
|
||||
..()
|
||||
cell = new /obj/item/weapon/cell/high(src)
|
||||
key = new key_type(src) //TFF 19/1/20 - Bugfix for key being prevented from getting used again
|
||||
key = new key_type(src)
|
||||
var/image/I = new(icon = 'icons/obj/vehicles.dmi', icon_state = "cargo_engine_overlay", layer = src.layer + 0.2) //over mobs
|
||||
overlays += I
|
||||
turn_off() //so engine verbs are correctly set
|
||||
@@ -91,7 +91,7 @@
|
||||
..()
|
||||
|
||||
/obj/vehicle/train/security/engine/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, key_type)) //TFF 19/1/20 - Bugfix for key being prevented from getting used again
|
||||
if(istype(W, key_type))
|
||||
if(!key)
|
||||
user.drop_item()
|
||||
W.forceMove(src)
|
||||
|
||||
@@ -707,7 +707,6 @@
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of garbage and leftovers. Delicious?</span>")
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of gluttonous waste of food.</span>")
|
||||
//TFF 10/7/19 - Add custom flavour for collars for trash can trait.
|
||||
else if (istype(I,/obj/item/clothing/accessory/collar))
|
||||
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
|
||||
to_chat(src, "<span class='notice'>You can taste the submissiveness in the wearer of [I]!</span>")
|
||||
|
||||
@@ -45,6 +45,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
//Actual preferences
|
||||
var/digestable = TRUE
|
||||
var/devourable = TRUE
|
||||
var/resizable = TRUE
|
||||
var/feeding = TRUE
|
||||
var/absorbable = TRUE //TFF 14/12/19 - choose whether allowing absorbing
|
||||
var/digest_leave_remains = FALSE
|
||||
@@ -129,6 +130,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
|
||||
digestable = json_from_file["digestable"]
|
||||
devourable = json_from_file["devourable"]
|
||||
resizable = json_from_file["resizable"]
|
||||
feeding = json_from_file["feeding"]
|
||||
absorbable = json_from_file["absorbable"] //TFF 14/12/19 - choose whether allowing absorbing
|
||||
digest_leave_remains = json_from_file["digest_leave_remains"]
|
||||
@@ -155,6 +157,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
digestable = TRUE
|
||||
if(isnull(devourable))
|
||||
devourable = TRUE
|
||||
if(isnull(resizable))
|
||||
resizable = TRUE
|
||||
if(isnull(feeding))
|
||||
feeding = TRUE
|
||||
if(isnull(absorbable))
|
||||
@@ -197,6 +201,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
"version" = version,
|
||||
"digestable" = digestable,
|
||||
"devourable" = devourable,
|
||||
"resizable" = resizable,
|
||||
"absorbable" = absorbable,
|
||||
"feeding" = feeding,
|
||||
"digest_leave_remains" = digest_leave_remains,
|
||||
|
||||
@@ -254,6 +254,7 @@
|
||||
data["prefs"] = list(
|
||||
"digestable" = host.digestable,
|
||||
"devourable" = host.devourable,
|
||||
"resizable" = host.resizable,
|
||||
"feeding" = host.feeding,
|
||||
"absorbable" = host.absorbable,
|
||||
"digest_leave_remains" = host.digest_leave_remains,
|
||||
@@ -415,6 +416,12 @@
|
||||
host.client.prefs_vr.devourable = host.devourable
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_resize")
|
||||
host.resizable = !host.resizable
|
||||
if(host.client.prefs_vr)
|
||||
host.client.prefs_vr.resizable = host.resizable
|
||||
unsaved_changes = TRUE
|
||||
return TRUE
|
||||
if("toggle_feed")
|
||||
host.feeding = !host.feeding
|
||||
if(host.client.prefs_vr)
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
name = "Mouse Plushie"
|
||||
desc = "A plushie of a delightful mouse! What was once considered a vile rodent is now your very best friend."
|
||||
slot_flags = SLOT_HEAD
|
||||
icon_state = "mouse_brown" //TFF 12/11/19 - Change sprite to not look dead. Heck you for that choice! >:C
|
||||
icon_state = "mouse_brown"
|
||||
item_state = "mouse_brown_head"
|
||||
icon = 'icons/vore/custom_items_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_items_vr.dmi'
|
||||
|
||||
@@ -46,51 +46,12 @@
|
||||
/mob/living/get_effective_size()
|
||||
return size_multiplier
|
||||
|
||||
/**
|
||||
* Resizes the mob immediately to the desired mod, animating it growing/shrinking.
|
||||
* It can be used by anything that calls it.
|
||||
*/
|
||||
|
||||
/atom/movable/proc/size_range_check(size_select) //both objects and mobs needs to have that
|
||||
var/area/A = get_area(src) //Get the atom's area to check for size limit.
|
||||
if((A.limit_mob_size && (size_select > 200 || size_select < 25)) || (size_select > 600 || size_select <1))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
<<<<<<< HEAD
|
||||
/proc/add_to_uncapped_list(var/mob/living/L)
|
||||
if(L.size_uncapped)
|
||||
return
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
GLOB.size_uncapped_mobs_timer = addtimer(CALLBACK(GLOBAL_PROC, .check_uncapped_list), 2 SECONDS, TIMER_LOOP | TIMER_UNIQUE | TIMER_STOPPABLE)
|
||||
GLOB.size_uncapped_mobs |= weakref(L)
|
||||
|
||||
/proc/remove_from_uncapped_list(var/mob/living/L)
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
return
|
||||
|
||||
GLOB.size_uncapped_mobs -= weakref(L)
|
||||
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
deltimer(GLOB.size_uncapped_mobs_timer)
|
||||
GLOB.size_uncapped_mobs_timer = null
|
||||
|
||||
/proc/check_uncapped_list()
|
||||
for(var/weakref/wr in GLOB.size_uncapped_mobs)
|
||||
var/mob/living/L = wr.resolve()
|
||||
var/area/A = get_area(L)
|
||||
if(!istype(L))
|
||||
GLOB.size_uncapped_mobs -= wr
|
||||
continue
|
||||
|
||||
if((A.limit_mob_size && !L.size_uncapped) && (L.size_multiplier <= RESIZE_TINY || L.size_multiplier >= RESIZE_HUGE))
|
||||
L.resize(L.size_multiplier)
|
||||
GLOB.size_uncapped_mobs -= wr
|
||||
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
deltimer(GLOB.size_uncapped_mobs_timer)
|
||||
GLOB.size_uncapped_mobs_timer = null
|
||||
||||||| parent of 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
/atom/movable/proc/has_large_resize_bounds()
|
||||
var/area/A = get_area(src) //Get the atom's area to check for size limit.
|
||||
return !A.limit_mob_size
|
||||
@@ -98,66 +59,15 @@
|
||||
/proc/is_extreme_size(size)
|
||||
return (size < RESIZE_MINIMUM || size > RESIZE_MAXIMUM)
|
||||
|
||||
/proc/add_to_uncapped_list(var/mob/living/L)
|
||||
if(L.size_uncapped)
|
||||
return
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
//Could be a subsystem but arguably a giant waste of time to make into a subsystem. A subsystem that is paused on and off all the time? Eh.
|
||||
//If you're that worried, make metrics for how often this even runs and then decide.
|
||||
GLOB.size_uncapped_mobs_timer = addtimer(CALLBACK(GLOBAL_PROC, .check_uncapped_list), 2 SECONDS, TIMER_LOOP | TIMER_UNIQUE | TIMER_STOPPABLE)
|
||||
GLOB.size_uncapped_mobs |= weakref(L)
|
||||
|
||||
/proc/remove_from_uncapped_list(var/mob/living/L)
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
return
|
||||
/**
|
||||
* Resizes the mob immediately to the desired mod, animating it growing/shrinking.
|
||||
* It can be used by anything that calls it.
|
||||
*/
|
||||
|
||||
GLOB.size_uncapped_mobs -= weakref(L)
|
||||
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
deltimer(GLOB.size_uncapped_mobs_timer)
|
||||
GLOB.size_uncapped_mobs_timer = null
|
||||
|
||||
/proc/check_uncapped_list()
|
||||
for(var/weakref/wr in GLOB.size_uncapped_mobs)
|
||||
var/mob/living/L = wr.resolve()
|
||||
if(!istype(L) || L.size_uncapped)
|
||||
GLOB.size_uncapped_mobs -= wr
|
||||
continue
|
||||
|
||||
// If we get here, you're a mob, and you don't have admin exclusion (size_uncapped) to being big, and you're very likely big.
|
||||
// If you're not abnormally big, the below will do nothing, so it's fine to run anyway.
|
||||
if(!L.has_large_resize_bounds())
|
||||
L.resize(L.size_multiplier, ignore_prefs = TRUE) //Calling this will have resize() clamp it
|
||||
GLOB.size_uncapped_mobs -= wr
|
||||
|
||||
if(!GLOB.size_uncapped_mobs.len)
|
||||
deltimer(GLOB.size_uncapped_mobs_timer)
|
||||
GLOB.size_uncapped_mobs_timer = null
|
||||
=======
|
||||
/atom/movable/proc/has_large_resize_bounds()
|
||||
var/area/A = get_area(src) //Get the atom's area to check for size limit.
|
||||
return !A.limit_mob_size
|
||||
|
||||
/proc/is_extreme_size(size)
|
||||
return (size < RESIZE_MINIMUM || size > RESIZE_MAXIMUM)
|
||||
|
||||
>>>>>>> 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
|
||||
/mob/living/proc/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE)
|
||||
/mob/living/proc/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
|
||||
if(!uncapped)
|
||||
<<<<<<< HEAD
|
||||
new_size = clamp(new_size, RESIZE_TINY, RESIZE_HUGE)
|
||||
src.size_uncapped = FALSE
|
||||
remove_from_uncapped_list(src)
|
||||
else
|
||||
add_to_uncapped_list(src)
|
||||
||||||| parent of 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
new_size = clamp(new_size, RESIZE_MINIMUM, RESIZE_MAXIMUM)
|
||||
remove_from_uncapped_list(src)
|
||||
else if(is_extreme_size(new_size))
|
||||
add_to_uncapped_list(src)
|
||||
|
||||
=======
|
||||
new_size = clamp(new_size, RESIZE_MINIMUM, RESIZE_MAXIMUM)
|
||||
var/datum/component/resize_guard/guard = GetComponent(/datum/component/resize_guard)
|
||||
if(guard)
|
||||
@@ -170,7 +80,6 @@
|
||||
if(guard)
|
||||
qdel(guard)
|
||||
|
||||
>>>>>>> 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
if(size_multiplier == new_size)
|
||||
return 1
|
||||
|
||||
@@ -201,8 +110,8 @@
|
||||
else
|
||||
update_transform() //Lame way
|
||||
|
||||
/mob/living/carbon/human/resize(var/new_size, var/animate = TRUE)
|
||||
if(!resizable)
|
||||
/mob/living/carbon/human/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
|
||||
if(!resizable && !ignore_prefs)
|
||||
return 1
|
||||
if(species)
|
||||
vis_height = species.icon_height
|
||||
@@ -215,7 +124,7 @@
|
||||
apply_hud(index, HI)
|
||||
|
||||
// Optimize mannequins - never a point to animating or doing HUDs on these.
|
||||
/mob/living/carbon/human/dummy/mannequin/resize(var/new_size, var/animate = TRUE)
|
||||
/mob/living/carbon/human/dummy/mannequin/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
|
||||
size_multiplier = new_size
|
||||
|
||||
/**
|
||||
|
||||
@@ -44,12 +44,15 @@
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
var/size_select = input("Put the desired size (25-200%), (1-600%) in dormitory areas.", "Set Size", size_set_to * 100) as num
|
||||
if(!size_range_check(size_select))
|
||||
to_chat(usr, "<span class='notice'>Invalid size.</span>")
|
||||
return
|
||||
size_set_to = (size_select/100)
|
||||
var/size_select = input("Put the desired size (25-200%), (1-600%) in dormitory areas.", "Set Size", size_set_to * 100) as num|null
|
||||
if(!size_select)
|
||||
return //cancelled
|
||||
//We do valid resize testing in actual firings because people move after setting these things.
|
||||
//Just a basic clamp here to the valid ranges.
|
||||
size_set_to = clamp((size_select/100), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
|
||||
to_chat(usr, "<span class='notice'>You set the size to [size_select]%</span>")
|
||||
if(size_set_to < RESIZE_MINIMUM || size_set_to > RESIZE_MAXIMUM)
|
||||
to_chat(usr, "<span class='notice'>Note: Resizing limited to 25-200% automatically while outside dormatory areas.</span>") //hint that we clamp it in resize
|
||||
|
||||
/obj/item/weapon/gun/energy/sizegun/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -66,8 +69,10 @@
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
var/size_select = input("Put the desired size", "Set Size", size_set_to * 100) as num
|
||||
size_set_to = max(1,size_select/100) //No negative numbers
|
||||
var/size_select = input("Put the desired size (1-600%)", "Set Size", size_set_to * 100) as num|null
|
||||
if(!size_select)
|
||||
return //cancelled
|
||||
size_set_to = clamp((size_select/100), 0, 1000) //eheh
|
||||
to_chat(usr, "<span class='notice'>You set the size to [size_select]%</span>")
|
||||
|
||||
//
|
||||
@@ -88,8 +93,10 @@
|
||||
|
||||
/obj/item/projectile/beam/sizelaser/on_hit(var/atom/target)
|
||||
var/mob/living/M = target
|
||||
var/ignoring_prefs = (target == firer ? TRUE : FALSE) // Resizing yourself
|
||||
|
||||
if(istype(M))
|
||||
if(!M.resize(set_size))
|
||||
if(!M.resize(set_size, uncapped = M.has_large_resize_bounds(), ignore_prefs = ignoring_prefs))
|
||||
to_chat(M, "<font color='blue'>The beam fires into your body, changing your size!</font>")
|
||||
M.updateicon()
|
||||
return
|
||||
@@ -97,29 +104,8 @@
|
||||
|
||||
/obj/item/projectile/beam/sizelaser/admin/on_hit(var/atom/target)
|
||||
var/mob/living/M = target
|
||||
|
||||
if(istype(M))
|
||||
<<<<<<< HEAD
|
||||
M.resize(set_size, TRUE, TRUE)
|
||||
if(set_size >= RESIZE_TINY && set_size <= RESIZE_HUGE)
|
||||
M.size_uncapped = FALSE
|
||||
M.size_uncapped = TRUE
|
||||
||||||| parent of 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
|
||||
var/can_be_big = M.has_large_resize_bounds()
|
||||
var/very_big = is_extreme_size(set_size)
|
||||
|
||||
if(very_big && can_be_big) // made an extreme size in an area that allows it, don't assume adminbuse
|
||||
to_chat(firer, "<span class='warning'>[M] will lose this size upon moving into an area where this size is not allowed.</span>")
|
||||
else if(very_big) // made an extreme size in an area that doesn't allow it, assume adminbuse
|
||||
to_chat(firer, "<span class='warning'>[M] will retain this normally unallowed size outside this area.</span>")
|
||||
M.size_uncapped = TRUE
|
||||
else if(M.size_uncapped) // made a normal size after having been an extreme adminbuse size
|
||||
to_chat(firer, "<span class='warning'>[M] now returned to normal area-based size limitations.</span>")
|
||||
M.size_uncapped = FALSE
|
||||
|
||||
M.resize(set_size, uncapped = TRUE, ignoring_prefs = TRUE) // Always ignores prefs, caution is advisable
|
||||
|
||||
=======
|
||||
|
||||
var/can_be_big = M.has_large_resize_bounds()
|
||||
var/very_big = is_extreme_size(set_size)
|
||||
@@ -131,7 +117,6 @@
|
||||
|
||||
M.resize(set_size, uncapped = TRUE, ignore_prefs = TRUE) // Always ignores prefs, caution is advisable
|
||||
|
||||
>>>>>>> 4c52a2cdd4... Merge pull request #10095 from ShadowLarkens/better_resize_guard
|
||||
to_chat(M, "<font color='blue'>The beam fires into your body, changing your size!</font>")
|
||||
M.updateicon()
|
||||
return
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
icon_state = "strange"
|
||||
var/datum/geosample/geologic_data
|
||||
origin_tech = list(TECH_MATERIAL = 5)
|
||||
w_class = ITEMSIZE_SMALL //TFF 25/11/19 - fixes the strange rocks to be small size like before and not normal.
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
/obj/item/weapon/strangerock/New(loc, var/inside_item_type = 0)
|
||||
pixel_x = rand(0,16)-8
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@@ -71,8 +71,6 @@
|
||||
icon_state = "debrisexplored"
|
||||
forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/horror.ogg')
|
||||
|
||||
//TFF 26/12/19 - Sub-areas for the APCs.
|
||||
|
||||
/area/submap/debrisfield/derelict/ai_access_port
|
||||
name = "POI - Abandoned Derelict AI Acess Port"
|
||||
|
||||
|
||||
@@ -2,30 +2,29 @@
|
||||
initial_generic_waypoints = list("tether_excursion_listeningpost")
|
||||
scanner_name = "Strange Asteroid"
|
||||
scanner_desc = @{"[i]Registration[/i]: UNKNOWN
|
||||
[i]Class[/i]: Installation
|
||||
[i]Transponder[/i]: None Detected
|
||||
[b]Notice[/b]: Emitting encrypted radio-frequency traffic"}
|
||||
[i]Class[/i]: Wreckage
|
||||
[i]Transponder[/i]: None Detected"}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/mission
|
||||
/obj/item/weapon/paper/listeningpost/mission
|
||||
name = "\improper Operation: Watchtower"
|
||||
info = {"<b>Mission Details</b>: You have been assigned to a newly constructed listening post
|
||||
constructed within an asteroid in Nanotrasen space to monitor their plasma mining operations.
|
||||
constructed within an asteroid in Nanotrasen space to monitor their phoron mining operations.
|
||||
Accurate intel is crucial to the success of our operatives onboard, do not fail us."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/reciept
|
||||
/obj/item/weapon/paper/listeningpost/reciept
|
||||
name = "\improper SpacEx reciept"
|
||||
info = {"1 x Stechtkin pistol plus ammo - $600<br>1 x silencer - $200<br>shipping charge - $4360<br>total - $5160"}
|
||||
|
||||
|
||||
//////// 2558 ////////
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/april
|
||||
/obj/item/weapon/paper/listeningpost/year2558/april
|
||||
name = "\improper April 2558 report"
|
||||
info = {"A good start to the operation: intercepted Nanotrasen military communications.
|
||||
A convoy is scheduled to transfer nuclear warheads to a new military base. This
|
||||
is as good a chance as any to get our hands on some heavy weaponry, I suggest we take it."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/may
|
||||
/obj/item/weapon/paper/listeningpost/year2558/may
|
||||
name = "\improper May 2558 report"
|
||||
info = {"I have intercepted faint transmissions from what appears to be some sort of pirate
|
||||
radio station. They do not appear to be relevant to my assignment. I also learned that
|
||||
@@ -33,34 +32,34 @@
|
||||
attack in March. Ever since Townes got killed, we've lost our eyes on the inside at
|
||||
Nanotrasen. Hence my being here..."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/june
|
||||
/obj/item/weapon/paper/listeningpost/year2558/june
|
||||
name = "\improper June 2558 Report"
|
||||
info = {"Sounds like Nanotrasen stepped up their recruitment efforts. Virgo is no longer a
|
||||
secluded research station, and its scientists are no longer hand-picked. This could
|
||||
be a major oppertunity for us to start snooping around."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/july
|
||||
/obj/item/weapon/paper/listeningpost/year2558/july
|
||||
name = "\improper July 2558 Report"
|
||||
info = {"The crew has at least tripled in size since NT got rid of the application-based
|
||||
process of recruitment. We've managed to find a few people interested in aiding
|
||||
our cause. From atmospherics sabotoge to straight up bombing the place, we've got
|
||||
several people ready to go in posing as nothing but more grey tide. It's perfect."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/august
|
||||
/obj/item/weapon/paper/listeningpost/year2558/august
|
||||
name = "\improper August 2558 Report"
|
||||
info = {"Sounds like our agents have been successful in rattling things up. With their recuitment
|
||||
policies laxed, we've been able to carry out several attacks on the VORE. It sounds like
|
||||
we're the least of their problems, though. They've discovered a new technology. Something
|
||||
they're calling Redspace."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/september
|
||||
/obj/item/weapon/paper/listeningpost/year2558/september
|
||||
name = "\improper September 2558 Report"
|
||||
info = {"Something REALLY BAD is brewing at the VORE. This Redspace shit seems to have attracted
|
||||
the attention of the cult of Nar-Sie. I think Nanotrasen is trying to weaponize it. We
|
||||
need to put a stop to this before Nanotrasen can use these weapons against innocent
|
||||
people and rival companies."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/october
|
||||
/obj/item/weapon/paper/listeningpost/year2558/october
|
||||
name = "\improper October 2558 Report"
|
||||
info = {"Oh my god, if it weren't for the impending doom, I'd be laughing my ass off at
|
||||
all the hell VORE has put up with this month. Near mutiny over a retarded clown,
|
||||
@@ -71,7 +70,7 @@
|
||||
in an army from another dimension. We have no time left. We have to strike while
|
||||
there's still something worth saving."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/november
|
||||
/obj/item/weapon/paper/listeningpost/year2558/november
|
||||
name = "\improper November 2558 Report"
|
||||
info = {"Maybe these VORE people aren't so bad after all. Mike says they actually HELPED during
|
||||
our (apparently failed) attack on the Citadel. Shame they work for an evil corporation
|
||||
@@ -80,7 +79,7 @@
|
||||
crazy guy showed up on the station claiming he's from 1945. The crew seems to think it's
|
||||
legit though. Maybe he is. I don't think he is though. I'll keep monitoring the situation."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2558/december
|
||||
/obj/item/weapon/paper/listeningpost/year2558/december
|
||||
name = "\improper December 2558 Report"
|
||||
info = {"We hired a merc to capture their top Redspace scientist Kisuke Gema. Unfortunately, Colonel
|
||||
Morgan was a fucking idiot as usual and turned his back for half a second, and the nerd cut
|
||||
@@ -92,7 +91,7 @@
|
||||
|
||||
//////// 2559 ////////
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/january
|
||||
/obj/item/weapon/paper/listeningpost/year2559/january
|
||||
name = "\improper January 2559 Report"
|
||||
info = {"So, this guy from 1945 is legit. His name is Chase Monroe and he's a former Seargent in
|
||||
the USCM or something. Although I feel like the USCM didn't exist in 1945. Also a pirate
|
||||
@@ -101,7 +100,7 @@
|
||||
blow several bombs on the station, and even steal the nuke. VORE's security forces are
|
||||
showing serious signs of weakness. Maybe we could exploit this."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/february
|
||||
/obj/item/weapon/paper/listeningpost/year2559/february
|
||||
name = "\improper February 2559 Report"
|
||||
info = {"Sounds like the World War 2 guy from Earth brought some unwanted friends along. Early
|
||||
in the month, a battlecruiser showed up out of nowhere and started shooting up the station
|
||||
@@ -110,7 +109,7 @@
|
||||
the Soviets got a beef with these guys too. Sounds like they jacked one of the Soviet's ships.
|
||||
Makes sense, because a battleship like that doesn't just appear out of nowhere."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/march
|
||||
/obj/item/weapon/paper/listeningpost/year2559/march
|
||||
name = "\improper March 2559 Report"
|
||||
info = {"Hard to believe it's already been a year. NT's private navy has been running exercises more
|
||||
often than usual. They also replaced the Icarus with a new and more heavily armed cruiser called
|
||||
@@ -121,7 +120,7 @@
|
||||
say about Nanotrasen. The Truth will set us free. The truth about all the atrocities Nanotrasen
|
||||
has done over the years."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/april
|
||||
/obj/item/weapon/paper/listeningpost/year2559/april
|
||||
name = "\improper April 2559 Report"
|
||||
info = {"We were approached today by a man calling himself the 'Werwolf', alleged to be part of that group
|
||||
that attacked Nanotrasen in early February. We never understood his motives WHY he attacked them.
|
||||
@@ -131,13 +130,13 @@
|
||||
I think we're going to take the deal. When I get confirmation, I'll forward a line to Mike and Dave to
|
||||
make the trade."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/may
|
||||
/obj/item/weapon/paper/listeningpost/year2559/may
|
||||
name = "\improper May 2559 Report"
|
||||
info = {"V.O.R.E. found something. An abandoned space station with a weapon called a mind flayer. There's also
|
||||
rumor about some sort of a secret weapon NT was developing; a singularity bomb. Nothing of else of
|
||||
real interest to report."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/june
|
||||
/obj/item/weapon/paper/listeningpost/year2559/june
|
||||
name = "\improper June 2559 Report"
|
||||
info = {"The WW2 guy is dead. Went out in a blaze of glory killing Space Axis. Mike and Dave are pissed.
|
||||
They apparently broke protocol and went to help the V.O.R.E. crew in the attack, and they want to
|
||||
@@ -146,7 +145,7 @@
|
||||
NanoTrasen to deal with. Curiously, NanoTrasen refuses to officially support helping to remove this
|
||||
threat. Possible collaberation?"}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/july
|
||||
/obj/item/weapon/paper/listeningpost/year2559/july
|
||||
name = "\improper July 2559 Report"
|
||||
info = {"USDF ships have been spotted in the area. Admiral Glenn Pink is on board. This guy went MIA almost
|
||||
ten years ago, and now he's back? Why? Apparently he's got some kind of connection with V.O.R.E.'s
|
||||
@@ -154,7 +153,7 @@
|
||||
plot. I don't know who this Admiral Pink is, but I guess Ace has at least a couple friends in high
|
||||
places."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/august
|
||||
/obj/item/weapon/paper/listeningpost/year2559/august
|
||||
name = "\improper August 2559 Report"
|
||||
info = {"So, the reason Admiral Pink showed up in the last report was because these Space Axis hijacked
|
||||
one of his vessels; the USDF Jormungandr or something. Well, the crazy bastards took it back.
|
||||
@@ -166,27 +165,27 @@
|
||||
arm was destroyed, and with it, all of his genetic information to get around his cloning disorder.
|
||||
So he's finally out of our hair."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/september
|
||||
/obj/item/weapon/paper/listeningpost/year2559/september
|
||||
name = "\improper September 2559 Report"
|
||||
info = {"Of course it's not that simple. The nerd is back from the dead. Wonderful. I don't know how but
|
||||
he's back, or they have a fake Kisuke Gema, or whatever bullshit. In other news, the station has
|
||||
been slated for demolition. They're shipping a new Mark-3 Exodus-class station from Bay Shipyards
|
||||
all the way from the NanoTrasen branch in Nyx. The demolition keeps getting delayed."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/october
|
||||
/obj/item/weapon/paper/listeningpost/year2559/october
|
||||
name = "\improper October 2559 Report"
|
||||
info = {"Station was demolished and operations were put on pause for a whole week. In other news, captain
|
||||
Ace reportedly got a promotion to CentCom but something went wrong. The stronger loyalty implant
|
||||
had a negative effect on him and almost killed him. He was quickly demoted back to Captain. This
|
||||
could be useful information later. Recommend command investigate thoroughly."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/november
|
||||
/obj/item/weapon/paper/listeningpost/year2559/november
|
||||
name = "\improper November 2559 Report"
|
||||
info = {"A clown federation owned vessel called the Calypso was discovered in the Virgo system. It was a
|
||||
ghost ship. Allegedly everyone on board perished due to a joke so funny that everyone laughed
|
||||
themselves to madness, then death. NanoTrasen is trying to cover it up. No one knows why."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2559/december
|
||||
/obj/item/weapon/paper/listeningpost/year2559/december
|
||||
name = "\improper December 2559 Report"
|
||||
info = {"The V.O.R.E. discovered a new gateway location; a clown temple. We need to send someone to see
|
||||
this. Reportedly it's full of tunnel clowns and these mutants called cluwnes. A clown researcher
|
||||
@@ -199,25 +198,26 @@
|
||||
and see if he wants a job. Ask our contacts on station. Surely one of them knows who's behind
|
||||
the heist."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2560/january
|
||||
/obj/item/weapon/paper/listeningpost/year2560/january
|
||||
name = "\improper January 2560 Report"
|
||||
info = {"A group of Akula pirates tried to kidnap Kisuke Gema. They succeded, but their leader died of
|
||||
his injuries soon after. The other pirates defected. I wonder why?"}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2560/february
|
||||
/obj/item/weapon/paper/listeningpost/year2560/february
|
||||
name = "\improper February 2560 Report"
|
||||
info = {"There were a few incidents regarding a redspace anomaly in the chapel but the effects have long
|
||||
since subsided. Nothing of major interest otherwise."}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2560/march
|
||||
/obj/item/weapon/paper/listeningpost/year2560/march
|
||||
name = "\improper March 2560 Report"
|
||||
info = {"Very quiet month. Nothing of interest to report. Perhaps the calm before the storm?"}
|
||||
|
||||
/obj/item/weapon/paper/listneningpost/year2560/april
|
||||
/obj/item/weapon/paper/listeningpost/year2560/april
|
||||
name = "\improper April 2560 Report"
|
||||
info = {"A loud, painfully high pitched SSTV signal came across global comms. It seems to be a distress signal
|
||||
of some kind. To what, I have no idea. Efforts to trace the signal's origin have fallen inconclusive."}
|
||||
|
||||
<<<<<<< HEAD
|
||||
/obj/item/weapon/paper/listneningpost/oddreport
|
||||
name = "\improper Odd Report"
|
||||
info = {"I wonder how much longer they will accept my empty reports. They will cancel the case soon without
|
||||
@@ -227,3 +227,28 @@
|
||||
will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that
|
||||
stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should
|
||||
it ever rear it's ugly head again. -Donk Co. Operative #451"}
|
||||
||||||| parent of a56a61c33d... Merge pull request #10110 from Heroman3003/Listening-Post
|
||||
/obj/item/weapon/paper/listneningpost/oddreport
|
||||
name = "\improper Odd Report"
|
||||
info = {"I wonder how much longer they will accept my empty reports. They will cancel the case soon without
|
||||
results. When the pickup comes, I will tell them I have lost faith in our cause, and beg them to consider a diplomatic
|
||||
solution. How many nuclear teams have been dispatched with those nukes? I must try and prevent more from ever being sent.
|
||||
If they will not listen to reason, I will detonate the warehouse myself. Maybe some day in the immediate future, space
|
||||
will be peaceful, though I don't intend to live to see it. And that is why I write this down- it is my sacrifice that
|
||||
stabilised your worlds, traveller. Spare a thought for me, and please attempt to prevent nuclear proliferation, should
|
||||
it ever rear it's ugly head again. -Donk Co. Operative #451"}
|
||||
=======
|
||||
/obj/item/weapon/paper/crumpled/listeningpost/fanfiction
|
||||
name = "\improper Regarding Latest Report"
|
||||
info = {"I swear to god, Dave, if you send us your stupid 'Futuristic version of VORE' fanfiction instead of actual
|
||||
report again 'on accident' even one more time, I'm sending you there myself, and you know better than most
|
||||
what they do there. Your writing is trash anyway, I bet even those freaks wouldn't like it."}
|
||||
|
||||
/obj/item/weapon/paper/listeningpost/departure
|
||||
name = "\improper Notice To All Facilities"
|
||||
info = {"After recent developments and Nanotrasen deal, we're pulling back resources from the Virgo-Erigone system.
|
||||
Any facility recieving this notice is to collect all valuable equipment and data, then fly to the closest general facility
|
||||
for debrief and reassignment. And to those outdated trashy outposts specifically: all data must be digital. If it's not already,
|
||||
make it so. Most importantly, remember: we're at a truce now. No shooting NT goons unless they start getting frisky with restricted areas.
|
||||
And don't fucking forget to debrief Dave's listening post again."}
|
||||
>>>>>>> a56a61c33d... Merge pull request #10110 from Heroman3003/Listening-Post
|
||||
|
||||
+19908
-19804
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,6 @@
|
||||
icon_state = "debrisexplored"
|
||||
forced_ambience = list('sound/ambience/tension/tension.ogg', 'sound/ambience/tension/horror.ogg')
|
||||
|
||||
//TFF 26/12/19 - Sub-areas for the APCs.
|
||||
/area/tether_away/guttersite/engines
|
||||
name = "Gutter - Gutter Engineering"
|
||||
|
||||
|
||||
@@ -293,14 +293,14 @@
|
||||
/datum/map_z_level/tether_lateload/gateway_destination
|
||||
name = "Gateway Destination"
|
||||
z = Z_LEVEL_GATEWAY
|
||||
|
||||
/* // Removed due to heavy merc presence
|
||||
#include "../../gateway_vr/snow_outpost.dm"
|
||||
/datum/map_template/tether_lateload/gateway/snow_outpost
|
||||
name = "Snow Outpost"
|
||||
desc = "Big snowy area with various outposts."
|
||||
mappath = 'maps/gateway_vr/snow_outpost.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
*/
|
||||
#include "../../gateway_vr/zoo.dm"
|
||||
/datum/map_template/tether_lateload/gateway/zoo
|
||||
name = "Zoo"
|
||||
|
||||
@@ -3380,11 +3380,14 @@
|
||||
/turf/simulated/floor/bluegrid,
|
||||
/area/ai)
|
||||
"afV" = (
|
||||
/obj/machinery/atmospherics/unary/engine{
|
||||
dir = 1
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||
dir = 9
|
||||
},
|
||||
/turf/space,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||
dir = 6;
|
||||
icon_state = "intact"
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"afW" = (
|
||||
/obj/effect/floor_decal/borderfloorblack,
|
||||
@@ -3468,20 +3471,23 @@
|
||||
/turf/simulated/open,
|
||||
/area/security/brig)
|
||||
"agc" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8;
|
||||
icon_state = "propulsion_l"
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||
dir = 5;
|
||||
icon_state = "intact-fuel"
|
||||
},
|
||||
/turf/simulated/floor/tiled/asteroid_steel/airless,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/mining_outpost/shuttle)
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden{
|
||||
dir = 4;
|
||||
icon_state = "map"
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"agd" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8
|
||||
/obj/machinery/atmospherics/unary/engine{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/asteroid_steel/airless,
|
||||
/turf/space,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/mining_outpost/shuttle)
|
||||
/area/shuttle/excursion/general)
|
||||
"age" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -3506,7 +3512,7 @@
|
||||
"agf" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8;
|
||||
icon_state = "propulsion_r"
|
||||
icon_state = "propulsion_l"
|
||||
},
|
||||
/turf/simulated/floor/tiled/asteroid_steel/airless,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
@@ -3514,6 +3520,21 @@
|
||||
"agg" = (
|
||||
/turf/simulated/floor/airless,
|
||||
/area/space)
|
||||
"agh" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/asteroid_steel/airless,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/mining_outpost/shuttle)
|
||||
"agi" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 8;
|
||||
icon_state = "propulsion_r"
|
||||
},
|
||||
/turf/simulated/floor/tiled/asteroid_steel/airless,
|
||||
/turf/simulated/shuttle/plating/airless/carry,
|
||||
/area/shuttle/mining_outpost/shuttle)
|
||||
"agj" = (
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_exterior";
|
||||
@@ -21220,17 +21241,6 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/quartermaster/belterdock/refinery)
|
||||
"aXC" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||
dir = 5;
|
||||
icon_state = "intact-fuel"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||
dir = 9;
|
||||
icon_state = "intact"
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"aXD" = (
|
||||
/obj/structure/bed/chair/shuttle{
|
||||
dir = 8
|
||||
@@ -21669,12 +21679,6 @@
|
||||
/obj/machinery/mineral/input,
|
||||
/turf/simulated/floor/plating,
|
||||
/area/quartermaster/belterdock/refinery)
|
||||
"aZD" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"aZH" = (
|
||||
/obj/machinery/conveyor{
|
||||
dir = 8;
|
||||
@@ -22688,13 +22692,6 @@
|
||||
/obj/machinery/light,
|
||||
/turf/simulated/floor/tiled/monotile,
|
||||
/area/tether/exploration)
|
||||
"esH" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden{
|
||||
dir = 1;
|
||||
icon_state = "map"
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"esK" = (
|
||||
/obj/machinery/door/firedoor/glass/hidden/steel{
|
||||
dir = 1
|
||||
@@ -22881,13 +22878,6 @@
|
||||
/obj/machinery/door/firedoor/glass/hidden/steel,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/hallway/station/upper)
|
||||
"fmc" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||
dir = 6;
|
||||
icon_state = "intact"
|
||||
},
|
||||
/turf/simulated/wall/rshull,
|
||||
/area/shuttle/excursion/general)
|
||||
"fox" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -36877,7 +36867,7 @@ aUJ
|
||||
aXb
|
||||
afT
|
||||
aez
|
||||
afV
|
||||
agd
|
||||
ams
|
||||
aXq
|
||||
abe
|
||||
@@ -37019,7 +37009,7 @@ wRt
|
||||
eug
|
||||
afT
|
||||
aeG
|
||||
afV
|
||||
agd
|
||||
ams
|
||||
aXq
|
||||
abe
|
||||
@@ -37160,8 +37150,8 @@ wOI
|
||||
afO
|
||||
wOI
|
||||
aiX
|
||||
aZD
|
||||
acK
|
||||
afV
|
||||
vJd
|
||||
ams
|
||||
aXq
|
||||
abe
|
||||
@@ -37302,8 +37292,8 @@ hNx
|
||||
kTn
|
||||
ckU
|
||||
aiY
|
||||
fmc
|
||||
vJd
|
||||
xiw
|
||||
acK
|
||||
ams
|
||||
ghy
|
||||
abe
|
||||
@@ -37870,8 +37860,8 @@ aXS
|
||||
rLd
|
||||
opv
|
||||
uVS
|
||||
esH
|
||||
vJd
|
||||
xiw
|
||||
acK
|
||||
ams
|
||||
eof
|
||||
abe
|
||||
@@ -38012,8 +38002,8 @@ uGF
|
||||
wPw
|
||||
xvO
|
||||
aRv
|
||||
aXC
|
||||
acK
|
||||
agc
|
||||
vJd
|
||||
ams
|
||||
amq
|
||||
abe
|
||||
@@ -38155,7 +38145,7 @@ ikk
|
||||
efQ
|
||||
wPF
|
||||
aeG
|
||||
afV
|
||||
agd
|
||||
ams
|
||||
aSx
|
||||
krj
|
||||
@@ -38297,7 +38287,7 @@ iEV
|
||||
tEV
|
||||
xiw
|
||||
aeH
|
||||
afV
|
||||
agd
|
||||
ams
|
||||
eAm
|
||||
abe
|
||||
@@ -40335,6 +40325,7 @@ avt
|
||||
adD
|
||||
aZS
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
aes
|
||||
aet
|
||||
aet
|
||||
@@ -40351,8 +40342,23 @@ agc
|
||||
agd
|
||||
agd
|
||||
agd
|
||||
||||||| parent of d800c77374... Merge pull request #10098 from Novacat/nova-ert
|
||||
agc
|
||||
agd
|
||||
agd
|
||||
agd
|
||||
=======
|
||||
>>>>>>> d800c77374... Merge pull request #10098 from Novacat/nova-ert
|
||||
agf
|
||||
<<<<<<< HEAD
|
||||
>>>>>>> 8844a0cb02... Merge pull request #10032 from Novacat/nova-ert
|
||||
||||||| parent of d800c77374... Merge pull request #10098 from Novacat/nova-ert
|
||||
=======
|
||||
agh
|
||||
agh
|
||||
agh
|
||||
agi
|
||||
>>>>>>> d800c77374... Merge pull request #10098 from Novacat/nova-ert
|
||||
baB
|
||||
adD
|
||||
avt
|
||||
|
||||
@@ -250,7 +250,6 @@
|
||||
name = "\improper Vacant Prep Area"
|
||||
/area/vacant/vacant_site/gateway/lower
|
||||
name = "\improper Lower Vacant Prep Area"
|
||||
//TFF 5/4/20 - Mining Ops move TODO Change all Vacant areas to construction_site per vermin event location announcement.
|
||||
/area/construction/vacant_mining_ops
|
||||
name = "\improper Vacant Mining Operations"
|
||||
|
||||
@@ -267,7 +266,6 @@
|
||||
/area/tether/surfacebase/emergency_storage/atrium
|
||||
name = "\improper Atrium Emergency Storage"
|
||||
|
||||
//TFF 7/4/20 - New areas for Surface Cargo bits as well as the Mining Outpost. Some former ones deleted. Others renamed.
|
||||
// Surface Cargo/Mining EVA/Warehouse/Mining Outpost adadditions
|
||||
/area/tether/surfacebase/cargo
|
||||
name = "Surface Cargo Foyer"
|
||||
@@ -650,7 +648,6 @@
|
||||
name = "Atmospherics Gas Storage"
|
||||
icon_state = "atmos"
|
||||
|
||||
//TFF 11/12/19 - Minor refactor, makes mice spawn only in Atmos.
|
||||
/area/engineering/atmos_intake
|
||||
name = "\improper Atmospherics Intake"
|
||||
icon_state = "atmos"
|
||||
@@ -776,7 +773,6 @@
|
||||
/area/rnd/robotics/resleeving
|
||||
name = "\improper Robotics Resleeving"
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/rnd/research/testingrange
|
||||
name = "\improper Weapons Testing Range"
|
||||
icon_state = "firingrange"
|
||||
@@ -787,7 +783,6 @@
|
||||
|
||||
|
||||
//Outpost areas
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/rnd/outpost
|
||||
name = "\improper Research Outpost Hallway"
|
||||
icon_state = "research"
|
||||
@@ -939,7 +934,6 @@
|
||||
name = "Public Meeting Room"
|
||||
icon_state = "blue"
|
||||
sound_env = SMALL_SOFTFLOOR
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/chapel/observation
|
||||
name = "\improper Chapel Observation"
|
||||
icon_state = "chapel"
|
||||
@@ -1006,7 +1000,6 @@
|
||||
flags = RAD_SHIELDED
|
||||
soundproofed = TRUE
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/crew_quarters/sleep/vistor_room_1
|
||||
flags = RAD_SHIELDED | BLUE_SHIELDED
|
||||
soundproofed = TRUE
|
||||
@@ -1418,7 +1411,6 @@
|
||||
/area/shuttle/securiship/engines
|
||||
name = "\improper Securiship Engines"
|
||||
|
||||
//TFF 5/4/20 - Mining Ops move
|
||||
// Asteroid Mining belter and Mining Outpost shuttles and refinery/gear areas
|
||||
/area/quartermaster/belterdock
|
||||
name = "\improper Cargo Belter Access"
|
||||
@@ -1469,7 +1461,6 @@ area/shuttle/mining_outpost/shuttle
|
||||
name = "\improper Ninjacraft"
|
||||
icon_state = "shuttle2"
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/teleporter/departing
|
||||
name = "\improper Long-Range Teleporter"
|
||||
icon_state = "teleporter"
|
||||
|
||||
@@ -143,7 +143,6 @@
|
||||
/area/rnd/miscellaneous_lab
|
||||
)
|
||||
|
||||
//TFF 5/4/20 - Mining Ops move, airlock path change
|
||||
unit_test_exempt_from_atmos = list(
|
||||
/area/engineering/atmos_intake, // Outside,
|
||||
/area/rnd/external, // Outside,
|
||||
@@ -165,7 +164,6 @@
|
||||
)
|
||||
|
||||
lateload_single_pick = list(
|
||||
list("Snow Outpost"),
|
||||
list("Carp Farm"),
|
||||
list("Snow Field"),
|
||||
list("Listening Post")
|
||||
@@ -191,7 +189,6 @@
|
||||
belter_belt_z = list(Z_LEVEL_ROGUEMINE_1,
|
||||
Z_LEVEL_ROGUEMINE_2)
|
||||
|
||||
//TFF 16/4/20 - mining outpost shuttle defines
|
||||
mining_station_z = list(Z_LEVEL_SPACE_HIGH)
|
||||
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
..()
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
//TFF 12/4/20 Surface Mining Outpost Shuttle
|
||||
// Surface Mining Outpost Shuttle
|
||||
|
||||
/datum/shuttle/autodock/ferry/surface_mining_outpost
|
||||
name = "Mining Outpost"
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
shuttle_tag = "Trade"
|
||||
req_one_access = list(access_trader)
|
||||
|
||||
//TFF 12/4/20 - Add console for Mining Outpost Shuttle
|
||||
/obj/machinery/computer/shuttle_control/surface_mining_outpost
|
||||
name = "surface mining outpost shuttle control console"
|
||||
shuttle_tag = "Mining Outpost"
|
||||
|
||||
@@ -267,14 +267,14 @@
|
||||
/datum/map_z_level/tether_lateload/gateway_destination
|
||||
name = "Gateway Destination"
|
||||
z = Z_LEVEL_GATEWAY
|
||||
|
||||
/* //Disabled because mercs
|
||||
#include "../../gateway_vr/snow_outpost.dm"
|
||||
/datum/map_template/tether_lateload/gateway/snow_outpost
|
||||
name = "Snow Outpost"
|
||||
desc = "Big snowy area with various outposts."
|
||||
mappath = 'maps/gateway_vr/snow_outpost.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
*/ //Disabled because mercs
|
||||
#include "../../gateway_vr/zoo.dm"
|
||||
/datum/map_template/tether_lateload/gateway/zoo
|
||||
name = "Zoo"
|
||||
|
||||
@@ -250,7 +250,6 @@
|
||||
name = "\improper Vacant Prep Area"
|
||||
/area/vacant/vacant_site/gateway/lower
|
||||
name = "\improper Lower Vacant Prep Area"
|
||||
//TFF 5/4/20 - Mining Ops move TODO Change all Vacant areas to construction_site per vermin event location announcement.
|
||||
/area/construction/vacant_mining_ops
|
||||
name = "\improper Vacant Mining Operations"
|
||||
|
||||
@@ -267,7 +266,6 @@
|
||||
/area/tether/surfacebase/emergency_storage/atrium
|
||||
name = "\improper Atrium Emergency Storage"
|
||||
|
||||
//TFF 7/4/20 - New areas for Surface Cargo bits as well as the Mining Outpost. Some former ones deleted. Others renamed.
|
||||
// Surface Cargo/Mining EVA/Warehouse/Mining Outpost adadditions
|
||||
/area/tether/surfacebase/cargo
|
||||
name = "Surface Cargo Foyer"
|
||||
@@ -650,7 +648,6 @@
|
||||
name = "Atmospherics Gas Storage"
|
||||
icon_state = "atmos"
|
||||
|
||||
//TFF 11/12/19 - Minor refactor, makes mice spawn only in Atmos.
|
||||
/area/engineering/atmos_intake
|
||||
name = "\improper Atmospherics Intake"
|
||||
icon_state = "atmos"
|
||||
@@ -776,7 +773,6 @@
|
||||
/area/rnd/robotics/resleeving
|
||||
name = "\improper Robotics Resleeving"
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/rnd/research/testingrange
|
||||
name = "\improper Weapons Testing Range"
|
||||
icon_state = "firingrange"
|
||||
@@ -787,7 +783,6 @@
|
||||
|
||||
|
||||
//Outpost areas
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/rnd/outpost
|
||||
name = "\improper Research Outpost Hallway"
|
||||
icon_state = "research"
|
||||
@@ -939,7 +934,6 @@
|
||||
name = "Public Meeting Room"
|
||||
icon_state = "blue"
|
||||
sound_env = SMALL_SOFTFLOOR
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/chapel/observation
|
||||
name = "\improper Chapel Observation"
|
||||
icon_state = "chapel"
|
||||
@@ -1003,7 +997,6 @@
|
||||
flags = RAD_SHIELDED
|
||||
soundproofed = TRUE
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/crew_quarters/sleep/vistor_room_1
|
||||
flags = RAD_SHIELDED | BLUE_SHIELDED
|
||||
soundproofed = TRUE
|
||||
@@ -1412,7 +1405,6 @@
|
||||
/area/shuttle/securiship/engines
|
||||
name = "\improper Securiship Engines"
|
||||
|
||||
//TFF 5/4/20 - Mining Ops move
|
||||
// Asteroid Mining belter and Mining Outpost shuttles and refinery/gear areas
|
||||
/area/quartermaster/belterdock
|
||||
name = "\improper Cargo Belter Access"
|
||||
@@ -1460,7 +1452,6 @@ area/shuttle/mining_outpost/shuttle
|
||||
name = "\improper Ninjacraft"
|
||||
icon_state = "shuttle2"
|
||||
|
||||
//TFF 28/8/19 - cleanup of areas placement
|
||||
/area/teleporter/departing
|
||||
name = "\improper Long-Range Teleporter"
|
||||
icon_state = "teleporter"
|
||||
|
||||
@@ -138,7 +138,6 @@
|
||||
/area/rnd/miscellaneous_lab
|
||||
)
|
||||
|
||||
//TFF 5/4/20 - Mining Ops move, airlock path change
|
||||
unit_test_exempt_from_atmos = list(
|
||||
/area/engineering/atmos_intake, // Outside,
|
||||
/area/rnd/external, // Outside,
|
||||
@@ -160,7 +159,6 @@
|
||||
)
|
||||
|
||||
lateload_single_pick = list(
|
||||
list("Snow Outpost"),
|
||||
list("Carp Farm"),
|
||||
list("Snow Field"),
|
||||
list("Listening Post")
|
||||
@@ -186,7 +184,6 @@
|
||||
belter_belt_z = list(Z_LEVEL_ROGUEMINE_1,
|
||||
Z_LEVEL_ROGUEMINE_2)
|
||||
|
||||
//TFF 16/4/20 - mining outpost shuttle defines
|
||||
mining_station_z = list(Z_LEVEL_SPACE_HIGH)
|
||||
mining_outpost_z = list(Z_LEVEL_SURFACE_MINE)
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
..()
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
//TFF 12/4/20 Surface Mining Outpost Shuttle
|
||||
// Surface Mining Outpost Shuttle
|
||||
|
||||
/datum/shuttle/autodock/ferry/surface_mining_outpost
|
||||
name = "Mining Outpost"
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
shuttle_tag = "Trade"
|
||||
req_one_access = list(access_trader)
|
||||
|
||||
//TFF 12/4/20 - Add console for Mining Outpost Shuttle
|
||||
/obj/machinery/computer/shuttle_control/surface_mining_outpost
|
||||
name = "surface mining outpost shuttle control console"
|
||||
shuttle_tag = "Mining Outpost"
|
||||
|
||||
@@ -68,7 +68,7 @@ var/list/all_maps = list()
|
||||
var/ai_shell_restricted = FALSE //VOREStation Addition - are there z-levels restricted?
|
||||
var/ai_shell_allowed_levels = list() //VOREStation Addition - which z-levels ARE we allowed to visit?
|
||||
|
||||
//VOREStation Addition Start - belter stuff TFF 16/4/20 - Mining Outpost Shuttle
|
||||
//VOREStation Addition Start
|
||||
var/list/belter_docked_z = list()
|
||||
var/list/belter_transit_z = list()
|
||||
var/list/belter_belt_z = list()
|
||||
|
||||
@@ -908,6 +908,7 @@ const VoreUserPreferences = (props, context) => {
|
||||
const {
|
||||
digestable,
|
||||
devourable,
|
||||
resizable,
|
||||
feeding,
|
||||
absorbable,
|
||||
digest_leave_remains,
|
||||
@@ -1055,6 +1056,44 @@ const VoreUserPreferences = (props, context) => {
|
||||
: "Click here to turn on hunger noises.")}
|
||||
content={noisy ? "Hunger Noises Enabled" : "Hunger Noises Disabled"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<Button
|
||||
onClick={() => act("toggle_resize")}
|
||||
icon={resizable ? "toggle-on" : "toggle-off"}
|
||||
selected={resizable}
|
||||
fluid
|
||||
tooltip={"This button is to toggle your ability to be resized by others. "
|
||||
+ (resizable ? "Click here to prevent being resized." : "Click here to allow being resized.")}
|
||||
content={resizable ? "Resizing Allowed" : "No Resizing"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%" grow={1}>
|
||||
<Button
|
||||
onClick={() => act("toggle_steppref")}
|
||||
icon={step_mechanics_active ? "toggle-on" : "toggle-off"}
|
||||
selected={step_mechanics_active}
|
||||
fluid
|
||||
tooltipPosition="top"
|
||||
tooltip={step_mechanics_active
|
||||
? "This setting controls whether or not you participate in size-based step mechanics."
|
||||
+ "Includes both stepping on others, as well as getting stepped on. Click to disable step mechanics."
|
||||
: ("You will not participate in step mechanics."
|
||||
+ " Click to enable step mechanics.")}
|
||||
content={step_mechanics_active ? "Step Mechanics Enabled" : "Step Mechanics Disabled"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="32%">
|
||||
<Button
|
||||
onClick={() => act("toggle_fx")}
|
||||
icon={show_vore_fx ? "toggle-on" : "toggle-off"}
|
||||
selected={show_vore_fx}
|
||||
fluid
|
||||
tooltipPosition="top"
|
||||
tooltip={show_vore_fx
|
||||
? "This setting controls whether or not a pred is allowed to mess with your HUD and fullscreen overlays."
|
||||
+ "Click to disable all FX."
|
||||
: ("Regardless of Predator Setting, you will not see their FX settings."
|
||||
+ " Click this to enable showing FX.")}
|
||||
content={show_vore_fx ? "Show Vore FX" : "Do Not Show Vore FX"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%">
|
||||
<Button
|
||||
onClick={() => act("toggle_leaveremains")}
|
||||
@@ -1069,20 +1108,6 @@ const VoreUserPreferences = (props, context) => {
|
||||
+ " Click this to allow leaving remains.")}
|
||||
content={digest_leave_remains ? "Allow Leaving Remains Behind" : "Do Not Allow Leaving Remains Behind"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%">
|
||||
<Button
|
||||
onClick={() => act("toggle_steppref")}
|
||||
icon={step_mechanics_active ? "toggle-on" : "toggle-off"}
|
||||
selected={step_mechanics_active}
|
||||
fluid
|
||||
tooltipPosition="top"
|
||||
tooltip={step_mechanics_active
|
||||
? "This setting controls whether or not you participate in size-based step mechanics."
|
||||
+ "Includes both stepping on others, as well as getting stepped on. Click to disable step mechanics."
|
||||
: ("You will not participate in step mechanics."
|
||||
+ " Click to enable step mechanics.")}
|
||||
content={step_mechanics_active ? "Step Mechanics Enabled" : "Step Mechanics Disabled"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%">
|
||||
<Button
|
||||
onClick={() => act("toggle_pickuppref")}
|
||||
@@ -1097,20 +1122,6 @@ const VoreUserPreferences = (props, context) => {
|
||||
+ " Click this to allow picking up/being picked up.")}
|
||||
content={pickup_mechanics_active ? "Pick-up Mechanics Enabled" : "Pick-up Mechanics Disabled"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%">
|
||||
<Button
|
||||
onClick={() => act("toggle_fx")}
|
||||
icon={show_vore_fx ? "toggle-on" : "toggle-off"}
|
||||
selected={show_vore_fx}
|
||||
fluid
|
||||
tooltipPosition="top"
|
||||
tooltip={show_vore_fx
|
||||
? "This setting controls whether or not a pred is allowed to mess with your HUD and fullscreen overlays."
|
||||
+ "Click to disable all FX."
|
||||
: ("Regardless of Predator Setting, you will not see their FX settings."
|
||||
+ " Click this to enable showing FX.")}
|
||||
content={show_vore_fx ? "Show Vore FX" : "Do Not Show Vore FX"} />
|
||||
</Flex.Item>
|
||||
<Flex.Item basis="49%">
|
||||
<Button
|
||||
fluid
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user