mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
Merge remote-tracking branch 'upstream/master' into AnPrimAssistants
This commit is contained in:
@@ -7014,9 +7014,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"amG" = (
|
||||
/turf/closed/wall,
|
||||
/area/space)
|
||||
"amH" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
req_one_access_txt = "13,8"
|
||||
@@ -46794,7 +46791,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/space/nearstation)
|
||||
/area/maintenance/starboard/fore)
|
||||
"bOZ" = (
|
||||
/obj/machinery/chem_master/condimaster{
|
||||
name = "CondiMaster Neo";
|
||||
@@ -70554,7 +70551,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/space/nearstation)
|
||||
/area/maintenance/starboard/aft)
|
||||
"cJg" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/item/bedsheet/medical,
|
||||
@@ -81152,10 +81149,6 @@
|
||||
/obj/machinery/vr_sleeper,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"evy" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/space)
|
||||
"eEe" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 8
|
||||
@@ -81385,10 +81378,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"hKW" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space/basic,
|
||||
/area/maintenance/aft)
|
||||
"ioI" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -82834,10 +82823,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"wkz" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
"wlH" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -113085,7 +113070,7 @@ cCq
|
||||
cgN
|
||||
cMl
|
||||
bTs
|
||||
hKW
|
||||
lMJ
|
||||
aaf
|
||||
aaf
|
||||
aaf
|
||||
@@ -113342,7 +113327,7 @@ cCq
|
||||
cLA
|
||||
bTs
|
||||
bTs
|
||||
hKW
|
||||
lMJ
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
@@ -119762,9 +119747,9 @@ cEA
|
||||
aaf
|
||||
aaa
|
||||
aaa
|
||||
blx
|
||||
dvY
|
||||
cJf
|
||||
blx
|
||||
dvY
|
||||
aaa
|
||||
dbN
|
||||
gsT
|
||||
@@ -120019,9 +120004,9 @@ blx
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
wkz
|
||||
ack
|
||||
uim
|
||||
wkz
|
||||
ack
|
||||
aaa
|
||||
aaf
|
||||
dbR
|
||||
@@ -121287,7 +121272,7 @@ ciL
|
||||
cgs
|
||||
csc
|
||||
dvY
|
||||
evy
|
||||
dxk
|
||||
krD
|
||||
lsv
|
||||
txj
|
||||
@@ -129695,8 +129680,8 @@ aaa
|
||||
aaa
|
||||
aaf
|
||||
aaa
|
||||
amG
|
||||
blx
|
||||
dnh
|
||||
dnh
|
||||
bOY
|
||||
dqT
|
||||
aaf
|
||||
|
||||
@@ -2822,7 +2822,7 @@
|
||||
req_access_txt = "65"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/space/nearstation)
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"ahi" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
@@ -2923,8 +2923,15 @@
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/main)
|
||||
"ahr" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/space)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Security External Airlock";
|
||||
req_access_txt = "63"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"ahs" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/structure/transit_tube,
|
||||
@@ -4686,7 +4693,7 @@
|
||||
pixel_y = 20
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
/area/space/nearstation)
|
||||
"alc" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/fancy/cigarettes/cigars,
|
||||
@@ -6629,13 +6636,6 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"apn" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Security External Airlock";
|
||||
req_access_txt = "63"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"apo" = (
|
||||
@@ -8698,9 +8698,18 @@
|
||||
/turf/closed/wall,
|
||||
/area/bridge)
|
||||
"atZ" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard)
|
||||
"aua" = (
|
||||
/obj/structure/closet/secure_closet/freezer/money,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
|
||||
@@ -23763,18 +23772,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/bridge)
|
||||
"bcO" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 9
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard)
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"bcQ" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/structure/cable{
|
||||
@@ -39888,12 +39891,6 @@
|
||||
/area/science/mixing)
|
||||
"bMp" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
req_access_txt = "8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/mixing)
|
||||
"bMq" = (
|
||||
@@ -40373,11 +40370,10 @@
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/science/mixing)
|
||||
"bNq" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 6
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/space,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/science/mixing)
|
||||
"bNr" = (
|
||||
/obj/structure/window/reinforced{
|
||||
@@ -40813,10 +40809,11 @@
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/science/mixing)
|
||||
"bOu" = (
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
|
||||
dir = 1
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/turf/open/space,
|
||||
/area/science/mixing)
|
||||
"bOv" = (
|
||||
/obj/structure/window/reinforced{
|
||||
@@ -41104,12 +41101,15 @@
|
||||
/turf/open/floor/engine/n2o,
|
||||
/area/engine/atmos)
|
||||
"bPl" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 9
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
/obj/machinery/door/airlock/external{
|
||||
req_access_txt = "8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/mixing)
|
||||
"bPn" = (
|
||||
/obj/machinery/door/airlock/grunge{
|
||||
name = "Chapel"
|
||||
@@ -53174,10 +53174,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/aft)
|
||||
"dhS" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"dir" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 5
|
||||
@@ -59590,7 +59586,7 @@
|
||||
},
|
||||
/obj/machinery/door/airlock/external,
|
||||
/turf/open/floor/plating,
|
||||
/area/space/nearstation)
|
||||
/area/chapel/asteroid/monastery)
|
||||
"rBh" = (
|
||||
/obj/structure/mopbucket,
|
||||
/obj/item/mop,
|
||||
@@ -77801,7 +77797,7 @@ aiu
|
||||
aiu
|
||||
axC
|
||||
axB
|
||||
rKr
|
||||
azN
|
||||
axB
|
||||
aaa
|
||||
aaa
|
||||
@@ -82501,8 +82497,8 @@ aht
|
||||
aaa
|
||||
aaa
|
||||
abI
|
||||
dhS
|
||||
cqS
|
||||
bGI
|
||||
bNs
|
||||
rzF
|
||||
bNs
|
||||
bOw
|
||||
@@ -90640,9 +90636,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
ahi
|
||||
ahi
|
||||
aoz
|
||||
ahr
|
||||
aoz
|
||||
aqG
|
||||
arD
|
||||
asO
|
||||
@@ -90898,8 +90894,8 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
cdm
|
||||
cdm
|
||||
aqG
|
||||
arE
|
||||
arA
|
||||
@@ -94741,7 +94737,7 @@ ags
|
||||
adX
|
||||
adX
|
||||
adX
|
||||
ahr
|
||||
adX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -94997,7 +94993,7 @@ cnC
|
||||
adX
|
||||
adX
|
||||
adX
|
||||
shH
|
||||
adX
|
||||
alb
|
||||
aaa
|
||||
aaa
|
||||
@@ -95255,7 +95251,7 @@ agt
|
||||
agD
|
||||
agR
|
||||
ahh
|
||||
atZ
|
||||
ahi
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -95511,7 +95507,7 @@ agg
|
||||
adX
|
||||
adX
|
||||
adX
|
||||
shH
|
||||
adX
|
||||
alb
|
||||
aaa
|
||||
aaa
|
||||
@@ -95769,7 +95765,7 @@ ags
|
||||
adX
|
||||
adX
|
||||
adX
|
||||
shH
|
||||
adX
|
||||
aFj
|
||||
aht
|
||||
aht
|
||||
@@ -105617,9 +105613,9 @@ bIN
|
||||
dAF
|
||||
bCV
|
||||
bCV
|
||||
bNq
|
||||
bCV
|
||||
bOu
|
||||
aht
|
||||
bNq
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -105875,8 +105871,8 @@ bJT
|
||||
wOS
|
||||
bMp
|
||||
bPl
|
||||
mZE
|
||||
aht
|
||||
bcO
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -106131,9 +106127,9 @@ fBz
|
||||
bCV
|
||||
bCV
|
||||
bCV
|
||||
bCV
|
||||
ahi
|
||||
aht
|
||||
aht
|
||||
abI
|
||||
abI
|
||||
abI
|
||||
@@ -109182,7 +109178,7 @@ aXC
|
||||
aYF
|
||||
baG
|
||||
sut
|
||||
bcO
|
||||
oCX
|
||||
rWE
|
||||
baG
|
||||
dsv
|
||||
@@ -109439,7 +109435,7 @@ aEl
|
||||
aEl
|
||||
baG
|
||||
rWE
|
||||
oCX
|
||||
atZ
|
||||
rWE
|
||||
baG
|
||||
aEj
|
||||
|
||||
@@ -17,9 +17,9 @@ For fast lookups, this is generated using regenerate_donator_grouping_list()
|
||||
/proc/regenerate_donator_grouping_list()
|
||||
GLOB.donators_by_group = list() //reinit everything
|
||||
var/list/donator_list = GLOB.donators_by_group //cache
|
||||
var/list/tier_1 = TIER_1_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_1] = tier_1.Copy() //The .Copy() is to "decouple"/make a new list, rather than letting the global list impact the config list.
|
||||
var/list/tier_2 = tier_1 + TIER_2_DONATORS //Using + on lists implies making new lists, so we don't need to manually Copy().
|
||||
var/list/tier_3 = TIER_3_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_3] = tier_3.Copy() //The .Copy() is to "decouple"/make a new list, rather than letting the global list impact the config list.
|
||||
var/list/tier_2 = tier_3 + TIER_2_DONATORS //Using + on lists implies making new lists, so we don't need to manually Copy().
|
||||
donator_list[DONATOR_GROUP_TIER_2] = tier_2
|
||||
var/list/tier_3 = tier_2 + TIER_3_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_3] = tier_3
|
||||
var/list/tier_1 = tier_2 + TIER_1_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_1] = tier_1
|
||||
|
||||
@@ -53,8 +53,6 @@
|
||||
|
||||
/datum/wires/airlock/interactable(mob/user)
|
||||
var/obj/machinery/door/airlock/A = holder
|
||||
if(!A.hasSiliconAccessInArea(user) && A.isElectrified() && A.shock(user, 100))
|
||||
return FALSE
|
||||
if(A.panel_open)
|
||||
return TRUE
|
||||
|
||||
@@ -73,6 +71,8 @@
|
||||
/datum/wires/airlock/on_pulse(wire)
|
||||
set waitfor = FALSE
|
||||
var/obj/machinery/door/airlock/A = holder
|
||||
if(!A.hasSiliconAccessInArea(usr) && A.isElectrified() && A.shock(usr, 100))
|
||||
return FALSE
|
||||
switch(wire)
|
||||
if(WIRE_POWER1, WIRE_POWER2) // Pulse to loose power.
|
||||
A.loseMainPower()
|
||||
@@ -127,6 +127,8 @@
|
||||
|
||||
/datum/wires/airlock/on_cut(wire, mend)
|
||||
var/obj/machinery/door/airlock/A = holder
|
||||
if(!A.hasSiliconAccessInArea(usr) && A.isElectrified() && A.shock(usr, 100))
|
||||
return FALSE
|
||||
switch(wire)
|
||||
if(WIRE_POWER1, WIRE_POWER2) // Cut to loose power, repair all to gain power.
|
||||
if(mend && !is_cut(WIRE_POWER1) && !is_cut(WIRE_POWER2))
|
||||
@@ -174,4 +176,4 @@
|
||||
A.update_icon()
|
||||
if(WIRE_ZAP1, WIRE_ZAP2) // Ouch.
|
||||
if(isliving(usr))
|
||||
A.shock(usr, 50)
|
||||
A.shock(usr, 50)
|
||||
|
||||
@@ -47,8 +47,11 @@
|
||||
spawn_option(stored_options[choice],M)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/choice_beacon/proc/spawn_option(obj/choice,mob/living/M)
|
||||
var/obj/new_item = new choice()
|
||||
/obj/item/choice_beacon/proc/create_choice_atom(atom/choice, mob/owner)
|
||||
return new choice()
|
||||
|
||||
/obj/item/choice_beacon/proc/spawn_option(atom/choice,mob/living/M)
|
||||
var/obj/new_item = create_choice_atom(choice, M)
|
||||
var/obj/structure/closet/supplypod/bluespacepod/pod = new()
|
||||
pod.explosionSize = list(0,0,0,0)
|
||||
new_item.forceMove(pod)
|
||||
@@ -152,10 +155,50 @@
|
||||
augment_list[initial(A.name)] = A
|
||||
return augment_list
|
||||
|
||||
/obj/item/choice_beacon/augments/spawn_option(obj/choice,mob/living/M)
|
||||
/obj/item/choice_beacon/augments/spawn_option(atom/choice,mob/living/M)
|
||||
new choice(get_turf(M))
|
||||
to_chat(M, "<span class='hear'>You hear something crackle from the beacon for a moment before a voice speaks. \"Please stand by for a message from S.E.L.F. Message as follows: <b>Item request received. Your package has been transported, use the autosurgeon supplied to apply the upgrade.</b> Message ends.\"</span>")
|
||||
|
||||
/obj/item/choice_beacon/pet //donator beacon that summons a small friendly animal
|
||||
name = "pet beacon"
|
||||
desc = "Straight from the outerspace pet shop to your feet."
|
||||
var/static/list/pets = list("Crab" = /mob/living/simple_animal/crab,
|
||||
"Cat" = /mob/living/simple_animal/pet/cat,
|
||||
"Space cat" = /mob/living/simple_animal/pet/cat/space,
|
||||
"Kitten" = /mob/living/simple_animal/pet/cat/kitten,
|
||||
"Dog" = /mob/living/simple_animal/pet/dog,
|
||||
"Corgi" = /mob/living/simple_animal/pet/dog/corgi,
|
||||
"Pug" = /mob/living/simple_animal/pet/dog/pug,
|
||||
"Exotic Corgi" = /mob/living/simple_animal/pet/dog/corgi/exoticcorgi,
|
||||
"Fox" = /mob/living/simple_animal/pet/fox,
|
||||
"Red Panda" = /mob/living/simple_animal/pet/redpanda,
|
||||
"Possum" = /mob/living/simple_animal/opossum)
|
||||
var/pet_name
|
||||
|
||||
/obj/item/choice_beacon/pet/generate_display_names()
|
||||
return pets
|
||||
|
||||
/obj/item/choice_beacon/pet/create_choice_atom(atom/choice, mob/owner)
|
||||
var/mob/living/simple_animal/new_choice = new choice()
|
||||
new_choice.butcher_results = null //please don't eat your pet, chef
|
||||
var/obj/item/pet_carrier/donator/carrier = new() //a donator pet carrier is just a carrier that can't be shoved in an autolathe for metal
|
||||
carrier.add_occupant(new_choice)
|
||||
new_choice.mob_size = MOB_SIZE_TINY //yeah we're not letting you use this roundstart pet to hurt people / knock them down
|
||||
new_choice.pass_flags = PASSTABLE | PASSMOB //your pet is not a bullet/person shield
|
||||
new_choice.density = FALSE
|
||||
new_choice.blood_volume = 0 //your pet cannot be used to drain blood from for a bloodsucker
|
||||
new_choice.desc = "A pet [initial(choice.name)], owned by [owner]!"
|
||||
new_choice.can_have_ai = FALSE //no it cant be sentient damnit
|
||||
if(pet_name)
|
||||
new_choice.name = pet_name
|
||||
new_choice.unique_name = TRUE
|
||||
return carrier
|
||||
|
||||
/obj/item/choice_beacon/pet/spawn_option(atom/choice,mob/living/M)
|
||||
pet_name = input(M, "What would you like to name the pet? (leave blank for default name)", "Pet Name")
|
||||
..()
|
||||
|
||||
//choice boxes (they just open in your hand instead of making a pod)
|
||||
/obj/item/choice_beacon/box
|
||||
name = "choice box (default)"
|
||||
desc = "Think really hard about what you want, and then rip it open!"
|
||||
@@ -163,21 +206,17 @@
|
||||
icon_state = "deliverypackage3"
|
||||
item_state = "deliverypackage3"
|
||||
|
||||
/obj/item/choice_beacon/box/spawn_option(obj/choice,mob/living/M)
|
||||
to_chat(M, "<span class='hear'>The box opens, revealing the [choice]!</span>")
|
||||
/obj/item/choice_beacon/box/spawn_option(atom/choice,mob/living/M)
|
||||
var/choice_text = choice
|
||||
if(ispath(choice_text))
|
||||
choice_text = initial(choice.name)
|
||||
to_chat(M, "<span class='hear'>The box opens, revealing the [choice_text]!</span>")
|
||||
playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
M.temporarilyRemoveItemFromInventory(src, TRUE)
|
||||
M.put_in_hands(new choice)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/choice_beacon/box/plushie
|
||||
name = "choice box (plushie)"
|
||||
desc = "Using the power of quantum entanglement, this box contains every plush, until the moment it is opened!"
|
||||
icon = 'icons/obj/plushes.dmi'
|
||||
icon_state = "box"
|
||||
item_state = "box"
|
||||
|
||||
/obj/item/choice_beacon/box/spawn_option(choice,mob/living/M)
|
||||
/obj/item/choice_beacon/box/plushie/spawn_option(choice,mob/living/M)
|
||||
if(ispath(choice, /obj/item/toy/plush))
|
||||
..() //regular plush, spawn it naturally
|
||||
else
|
||||
@@ -188,6 +227,31 @@
|
||||
M.put_in_hands(new choice)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/choice_beacon/box/carpet //donator carpet beacon
|
||||
name = "choice box (carpet)"
|
||||
desc = "Contains 50 of a selected carpet inside!"
|
||||
var/static/list/carpet_list = list(/obj/item/stack/tile/carpet/black/fifty = "Black Carpet",
|
||||
"Black & Red Carpet" = /obj/item/stack/tile/carpet/blackred/fifty,
|
||||
"Monochrome Carpet" = /obj/item/stack/tile/carpet/monochrome/fifty,
|
||||
"Blue Carpet" = /obj/item/stack/tile/carpet/blue/fifty,
|
||||
"Cyan Carpet" = /obj/item/stack/tile/carpet/cyan/fifty,
|
||||
"Green Carpet" = /obj/item/stack/tile/carpet/green/fifty,
|
||||
"Orange Carpet" = /obj/item/stack/tile/carpet/orange/fifty,
|
||||
"Purple Carpet" = /obj/item/stack/tile/carpet/purple/fifty,
|
||||
"Red Carpet" = /obj/item/stack/tile/carpet/red/fifty,
|
||||
"Royal Black Carpet" = /obj/item/stack/tile/carpet/royalblack/fifty,
|
||||
"Royal Blue Carpet" = /obj/item/stack/tile/carpet/royalblue/fifty)
|
||||
|
||||
/obj/item/choice_beacon/box/carpet/generate_display_names()
|
||||
return carpet_list
|
||||
|
||||
/obj/item/choice_beacon/box/plushie
|
||||
name = "choice box (plushie)"
|
||||
desc = "Using the power of quantum entanglement, this box contains every plush, until the moment it is opened!"
|
||||
icon = 'icons/obj/plushes.dmi'
|
||||
icon_state = "box"
|
||||
item_state = "box"
|
||||
|
||||
/obj/item/choice_beacon/box/plushie/generate_display_names()
|
||||
var/list/plushie_list = list()
|
||||
//plushie set 1: just subtypes of /obj/item/toy/plush
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
var/has_lock_sprites = TRUE //whether to load the lock overlays or not
|
||||
var/allows_hostiles = FALSE //does the pet carrier allow hostile entities to be held within it?
|
||||
|
||||
/obj/item/pet_carrier/donator
|
||||
custom_materials = null //you cant just use the loadout item to get free metal!
|
||||
|
||||
/obj/item/pet_carrier/Destroy()
|
||||
if(occupants.len)
|
||||
for(var/V in occupants)
|
||||
|
||||
@@ -243,10 +243,24 @@ LINEN BINS
|
||||
|
||||
/obj/item/bedsheet/random/Initialize()
|
||||
..()
|
||||
var/type = pick(typesof(/obj/item/bedsheet) - /obj/item/bedsheet/random)
|
||||
var/type = pick(typesof(/obj/item/bedsheet) - list(/obj/item/bedsheet/random, /obj/item/bedsheet/chameleon))
|
||||
new type(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/bedsheet/chameleon //donator chameleon bedsheet
|
||||
name = "chameleon bedsheet"
|
||||
desc = "Bedsheet technology has truly gone too far."
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/bedsheet/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/bedsheet
|
||||
chameleon_action.chameleon_name = "Bedsheet"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/bedsheet/chameleon, /obj/item/bedsheet/random), only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
//bedsheet bin
|
||||
/obj/structure/bedsheetbin
|
||||
name = "linen bin"
|
||||
desc = "It looks rather cosy."
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
REMOVE_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude")
|
||||
REMOVE_TRAIT(user, TRAIT_NODISMEMBER, "fortitude")
|
||||
REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude")
|
||||
REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "fortitude")
|
||||
REMOVE_TRAIT(user, TRAIT_NORUNNING, "fortitude")
|
||||
if(!ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/H = owner
|
||||
|
||||
@@ -801,7 +801,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(!subcategories.Find(gear_subcategory))
|
||||
gear_subcategory = subcategories[1]
|
||||
|
||||
var/firstsubcat = FALSE
|
||||
var/firstsubcat = TRUE
|
||||
for(var/subcategory in subcategories)
|
||||
if(firstsubcat)
|
||||
firstsubcat = FALSE
|
||||
|
||||
@@ -199,12 +199,16 @@
|
||||
|
||||
/obj/item/clothing/gloves/evening
|
||||
name = "evening gloves"
|
||||
desc = "Thin, pretty gloves intended for use in regal feminine attire, but knowing Space China these are just for some maid fetish."
|
||||
desc = "Thin, pretty gloves intended for use in regal feminine attire. A tag on the hem claims they were 'maid' in Space China, these were probably intended for use in some maid fetish."
|
||||
icon_state = "evening"
|
||||
item_state = "evening"
|
||||
strip_delay = 40
|
||||
equip_delay_other = 20
|
||||
transfer_prints = TRUE
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
strip_mod = 0.9
|
||||
custom_price = PRICE_ALMOST_CHEAP
|
||||
|
||||
/obj/item/clothing/gloves/evening/black
|
||||
name = "midnight gloves"
|
||||
desc = "Thin, pretty gloves intended for use in sexy feminine attire. A tag on the hem claims they pair great with black stockings."
|
||||
icon_state = "eveningblack"
|
||||
item_state = "eveningblack"
|
||||
|
||||
@@ -35,18 +35,20 @@
|
||||
|
||||
return destinations
|
||||
|
||||
/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent)
|
||||
/obj/item/wormhole_jaunter/proc/activate(mob/user, adjacent, force_entry = FALSE)
|
||||
if(!turf_check(user))
|
||||
return
|
||||
|
||||
var/list/L = get_destinations(user)
|
||||
if(!L.len)
|
||||
to_chat(user, "<span class='notice'>The [src.name] found no beacons in the world to anchor a wormhole to.</span>")
|
||||
to_chat(user, "<span class='notice'>The [name] found no beacons in the world to anchor a wormhole to.</span>")
|
||||
return
|
||||
var/chosen_beacon = pick(L)
|
||||
var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon))
|
||||
var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), 100, null, FALSE, get_turf(chosen_beacon))
|
||||
if(adjacent)
|
||||
try_move_adjacent(J)
|
||||
if(force_entry)
|
||||
J.teleport(user, force = TRUE)
|
||||
playsound(src,'sound/effects/sparks4.ogg',50,1)
|
||||
qdel(src)
|
||||
|
||||
@@ -73,7 +75,7 @@
|
||||
if(user.get_item_by_slot(SLOT_BELT) == src)
|
||||
to_chat(user, "Your [name] activates, saving you from the chasm!</span>")
|
||||
SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation
|
||||
activate(user, FALSE)
|
||||
activate(user, FALSE, TRUE)
|
||||
else
|
||||
to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.</span>")
|
||||
|
||||
@@ -84,9 +86,10 @@
|
||||
icon_state = "bhole3"
|
||||
desc = "A stable hole in the universe made by a wormhole jaunter. Turbulent doesn't even begin to describe how rough passage through one of these is, but at least it will always get you somewhere near a beacon."
|
||||
mech_sized = TRUE //save your ripley
|
||||
teleport_channel = TELEPORT_CHANNEL_WORMHOLE
|
||||
innate_accuracy_penalty = 6
|
||||
|
||||
/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M)
|
||||
/obj/effect/portal/jaunt_tunnel/teleport(atom/movable/M, force = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
// KERPLUNK
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
return
|
||||
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
new /obj/item/grown/bananapeel(target)
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/banana_peel/update_icon()
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
/obj/item/clothing/under/misc/keyholesweater = 2,
|
||||
/obj/item/clothing/under/misc/stripper/mankini = 2,
|
||||
/obj/item/clothing/under/costume/jabroni = 2,
|
||||
/obj/item/clothing/gloves/evening/black = 2,
|
||||
/obj/item/dildo/flared/huge = 3
|
||||
)
|
||||
premium = list(
|
||||
|
||||
4
html/changelogs/AutoChangeLog-pr-13182.yml
Normal file
4
html/changelogs/AutoChangeLog-pr-13182.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "silicons"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "airlocks now only shock on pulse/wirecutters instead of on tgui panel open."
|
||||
4
html/changelogs/AutoChangeLog-pr-13204.yml
Normal file
4
html/changelogs/AutoChangeLog-pr-13204.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "three new items are in the loadout for all donators"
|
||||
5
html/changelogs/AutoChangeLog-pr-13209.yml
Normal file
5
html/changelogs/AutoChangeLog-pr-13209.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
author: "silicons"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "wormhole jaunters work"
|
||||
- tweak: "wormhole jaunters no longer get interference from bags of holding"
|
||||
4
html/changelogs/AutoChangeLog-pr-13239.yml
Normal file
4
html/changelogs/AutoChangeLog-pr-13239.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "zeroisthebiggay"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "contraband black evening gloves in kinkvend"
|
||||
4
html/changelogs/AutoChangeLog-pr-13243.yml
Normal file
4
html/changelogs/AutoChangeLog-pr-13243.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "MrJWhit"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixes areas on expanded airlocks"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
@@ -7,6 +7,27 @@
|
||||
category = LOADOUT_CATEGORY_DONATOR
|
||||
ckeywhitelist = list("This entry should never appear with this variable set.") //If it does, then that means somebody fucked up the whitelist system pretty hard
|
||||
|
||||
/datum/gear/donator/pet
|
||||
name = "Pet Beacon"
|
||||
slot = SLOT_IN_BACKPACK
|
||||
path = /obj/item/choice_beacon/pet
|
||||
ckeywhitelist = list()
|
||||
donator_group_id = DONATOR_GROUP_TIER_1 // can be accessed by all donators
|
||||
|
||||
/datum/gear/donator/carpet
|
||||
name = "Carpet Beacon"
|
||||
slot = SLOT_IN_BACKPACK
|
||||
path = /obj/item/choice_beacon/box/carpet
|
||||
ckeywhitelist = list()
|
||||
donator_group_id = DONATOR_GROUP_TIER_1
|
||||
|
||||
/datum/gear/donator/chameleon_bedsheet
|
||||
name = "Chameleon Bedsheet"
|
||||
slot = SLOT_NECK
|
||||
path = /obj/item/bedsheet/chameleon
|
||||
ckeywhitelist = list()
|
||||
donator_group_id = DONATOR_GROUP_TIER_1
|
||||
|
||||
/datum/gear/donator/donortestingbikehorn
|
||||
name = "Donor item testing bikehorn"
|
||||
slot = SLOT_IN_BACKPACK
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
/datum/gear/gloves/evening
|
||||
name = "Evening gloves"
|
||||
path = /obj/item/clothing/gloves/evening
|
||||
|
||||
/datum/gear/gloves/midnight
|
||||
name = "Midnight gloves"
|
||||
path = /obj/item/clothing/gloves/evening/black
|
||||
|
||||
/datum/gear/gloves/goldring
|
||||
name = "A gold ring"
|
||||
|
||||
Reference in New Issue
Block a user