Files
Paradise/code/game/objects/effects/spawners/random_spawners.dm
T
Qwertytoforty 76a845d380 Modsuits. Ready for review, sorry for the ammount of files changed 👉 👈 (#21147)
* biting off more than I can chew, but I feel like hurting myself

* more shit

* progress continues, moral stays sameish

* bite of 2587

* mod_theme down, but probably broken

* 385 errors, 16 warnings, zero tgui interactions

* 292 19

* final strech to buggy mess, break time

* it compiles. It almost fucking certainly doesnt work, but it compiles

* fudhsciffubgsbgpgb actions not working as should for modules

* fuck it we'll just open the pr as we work on it

* icons work now

* tgui stuff

* more progress

* JUDGEMENT

* IT LIVES. TGUI LIVES. Special thanks to Sirryan and my brother.

* jetpacks, gps, and go do what exo-suits yourself

* almost ready

* sorry to whoever has to review this

* should work™️

* should be good now

* pushing changes so I can do reviews next

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* lore™️ Adds illegals level to modsuit parts from syndicate.

* early returns

* and these illegals

* no uplink reference idiot

* mod inhands are a good idea

* this is needed for inhands nerd

* Bomb detector working, modsutis cover ears. skin things

* overslotting removal, cyborg charging, ert loadout for gamma

* duplicated signal

* modsuit themes, removes broken mister / bad base type module, 2 cores in robotics.

* tether module, orb module, holster stuff

* built in no slip, cheaper 87

* removes modules already installed, engineer ert get jetpack, equip into modsuit storage

* comments spaces and duplicate flags

* Some adjustments and thoughts on armor, heads get guns because they are cool like that / looting command members armor

* Apply suggestions from code review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Compile TGUI, slowdown adjustment, Modsuit to MODsuit

* sonar, do after, more equipment, acid handling

* overlay bugs / ERT / DS suits autodeploy

* middle click action buttons

* traders, sec modsuit energy nerf

* surplus weighting

* Kinesis module.

* Pathfinder module, kinesis balance, blueprint for pathfinder and kinesis

* more power / unused module removed

* name, ds fix, pre equipped to cc suit

* depot / grammer

* ok should be good™️

* overslot, dupe gun, missing suit storage

* stealth nerf, new kit

* gun stuff  / ds theme

* bio armor is gone

* let me push changes please thank you

* makes shocks work right

* copies over some changes TG made to module prices after porting

* Merge remote-tracking branch 'upstream/master' into Because-I-hate-myself-and-someone-has-to-try-it-

* sirryans changes

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Update code/modules/telesci/gps.dm

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Update code/modules/telesci/gps.dm

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Control define, ERT / DS have gloves / boots again.

* Apply suggestions from code review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* More changes

* god I hate tgui. Why do all the bundles live underground, instead of in my basement?

* she updates my master till I testmerge

* modsuits can recharge again

* fixes a lot of shit

* Ready for TM probably

* sure fuck it whatever that makes sense I guess

* the pinpointer works better™️

* Another storage module bug fix

* hair and medical stuff

* fuck fuck fuck

* fixes sonar

* Bag exploit fixes / plasma runtimes / ear nerf

* dna lock improvement / cryostorage

* whoops

* Ball form second cooldown wasn't helping, no more infinite cores

* she springs my lock till I ***SNAP***

* plasmaman no longer die

* fixes modsuit emp issues

* atmos no longer fucking dies

* Fixes, module printing, and a restriction on newly constructed modsuits

* Inventory code my hated

* WOOO PREFERENCE CODE WOOOOO

* icons my hated

* fix for mods / spaceproof shit

* holy shit whhhyyyyy

* backpack first

* Update mod_theme.dm

* prevent infinite gun arms / infinite modsuit cores / syndicate modules

* fixes tm error

* scream loudly if species sprites break. They shouldn't, but, you know.

* deconflicted with luck

* converts to refit for species

* fix pathfinder

* fixes modsuits being funky power wise

* lockboxes :gatto: , as well as DN-MP shield lock, and slight nerf to atmos modsuit

* nerfs the atmos modsuit

* magboots for ds / CC modsuit

* downside of autosave: typing in wrong window saves bad stuff

* Gamma ERT have internal cameras again.

* spellcheck when

* ah fuck

* yes delete the null that works

* whoops

* fixes error / description

* un vulps your cannon

* fixes tails disapeering on base modsuits

* space to underscore

* tgui fix / tajaran

* springlock buff, cryopod fix

* u helps

* WHO PUTS A GUN IN ITEMS

* tgui moment

* mining modsuit nerf / hidden holster module

* PAIN

* UNATHI TIDE STATION WIDE

* I love special code

* slightly dense

* shark jumpscare

* fixes ghost item, fixes springlock being bad

* YIPPEEEE IT WORKED

* she decons my flict

* pain

* ebbas days are numbered :^)

* hidden

* r-r-r-ebuild

* fixes more bugs

* qwerty, you are dense

* fixes gps

* fix mulebot crate

* level fix

* adds back icon

* moving storage, fix bug, modules activate / deactivate message

* yeah

* yeah

* yeah™️

* steels requests

* windoors no longer make pathfinder module explode

* chat spam

* oil slicks + modsuits

* whoops

* bag check

* ofc

* Update code/modules/mod/mod_control.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/datums/uplink_items/uplink_nuclear.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/modules/mod/mod_control.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/modules/mod/modules/module_pathfinder.dm

Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>

---------

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
2023-08-19 15:36:13 -05:00

375 lines
12 KiB
Plaintext

/obj/effect/spawner/random_spawners
name = "random spawners"
icon = 'icons/effects/spawner_icons.dmi'
icon_state = "questionmark"
var/list/result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/blood/splatter = 1,
/obj/effect/decal/cleanable/blood/oil = 1,
/obj/effect/decal/cleanable/fungus = 1)
var/spawn_inside = null
// This needs to use New() instead of Initialize() because the thing it creates might need to be initialized too
// AA 2022-08-11: The above comment doesnt even make sense. If extra atoms are loaded during SSatoms.Initialize(), they still get initialised!
/obj/effect/spawner/random_spawners/New()
. = ..()
var/turf/T = get_turf(src)
if(!T)
stack_trace("Spawner placed in nullspace!")
return
randspawn(T)
/obj/effect/spawner/random_spawners/proc/randspawn(turf/T)
var/thing_to_place = pickweight(result)
if(ispath(thing_to_place, /datum/nothing))
// Nothing.
qdel(src) // See line 13, this needs moving to /Initialize() so we can use the qdel hint already
return
else if(ispath(thing_to_place, /turf))
T.ChangeTurf(thing_to_place)
else
if(ispath(spawn_inside, /obj))
var/obj/O = new thing_to_place(T)
var/obj/E = new spawn_inside(T)
O.forceMove(E)
else
new thing_to_place(T)
qdel(src)
/obj/effect/spawner/random_spawners/blood_maybe
name = "blood maybe"
icon_state = "blood"
result = list(
/datum/nothing = 20,
/obj/effect/decal/cleanable/blood/splatter = 1)
/obj/effect/spawner/random_spawners/blood_often
name = "blood often"
icon_state = "blood"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/blood/splatter = 1)
/obj/effect/spawner/random_spawners/oil_maybe
name = "oil maybe"
icon_state = "oil"
result = list(
/datum/nothing = 20,
/obj/effect/decal/cleanable/blood/oil = 1)
/obj/effect/spawner/random_spawners/oil_often
name = "oil often"
icon_state = "oil"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/blood/oil = 1)
/obj/effect/spawner/random_spawners/proc/rustify(turf/T)
var/turf/simulated/wall/W = T
if(istype(W) && !W.rusted)
W.rust()
/obj/effect/spawner/random_spawners/wall_rusted_probably
name = "rusted wall probably"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_probably/randspawn(turf/T)
if(prob(75))
rustify(T)
qdel(src)
/obj/effect/spawner/random_spawners/wall_rusted_maybe
name = "rusted wall maybe"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_maybe/randspawn(turf/T)
if(prob(25))
rustify(T)
qdel(src)
/obj/effect/spawner/random_spawners/wall_rusted_always
name = "rusted wall always"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_always/randspawn(turf/T)
rustify(T)
qdel(src)
/obj/effect/spawner/random_spawners/cobweb_left_frequent
name = "cobweb left frequent"
icon_state = "cobwebl"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/cobweb = 1)
/obj/effect/spawner/random_spawners/cobweb_right_frequent
name = "cobweb right frequent"
icon_state = "cobwebr"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/cobweb2 = 1)
/obj/effect/spawner/random_spawners/cobweb_left_rare
name = "cobweb left rare"
icon_state = "cobwebl"
result = list(
/datum/nothing = 10,
/obj/effect/decal/cleanable/cobweb = 1)
/obj/effect/spawner/random_spawners/cobweb_right_rare
name = "cobweb right rare"
icon_state = "cobwebr"
result = list(
/datum/nothing = 10,
/obj/effect/decal/cleanable/cobweb2 = 1)
/obj/effect/spawner/random_spawners/dirt_frequent
name = "dirt frequent"
icon_state = "dirt"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/dirt = 1)
/obj/effect/spawner/random_spawners/dirt_often
name = "dirt often"
icon_state = "dirt"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/dirt = 1)
/obj/effect/spawner/random_spawners/dirt_maybe
name = "dirt maybe"
icon_state = "dirt"
result = list(
/datum/nothing = 7,
/obj/effect/decal/cleanable/dirt = 1)
/obj/effect/spawner/random_spawners/fungus_maybe
name = "fungus maybe"
icon_state = "fungus"
color = "#D5820B"
result = list(
/datum/nothing = 7,
/obj/effect/decal/cleanable/fungus = 1)
/obj/effect/spawner/random_spawners/fungus_probably
name = "fungus probably"
icon_state = "fungus"
color = "#D5820B"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/fungus = 7)
/obj/effect/spawner/random_spawners/mod
name = "MOD module spawner"
desc = "Modularize this, please."
icon_state = "circuit"
/obj/effect/spawner/random_spawners/mod/maint
name = "maint MOD module spawner"
result = list(
/obj/item/mod/module/springlock = 2,
/obj/item/mod/module/balloon = 1,
/obj/item/mod/module/stamp = 1
)
// z6 DEPOT SPAWNERS
/obj/effect/spawner/random_spawners/syndicate
// Turrets
/obj/effect/spawner/random_spawners/syndicate/turret
name = "50pc int turret"
icon_state = "x"
result = list(/datum/nothing = 1,
/obj/machinery/porta_turret/syndicate/interior = 1)
/obj/effect/spawner/random_spawners/syndicate/turret/external
name = "50pc ext turret"
result = list(/datum/nothing = 1,
/obj/machinery/porta_turret/syndicate/exterior = 1)
// Mobs
/obj/effect/spawner/random_spawners/syndicate/mob
name = "50pc melee syndimob"
icon_state = "x"
color = "#333333"
result = list(/datum/nothing = 1,
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot = 1)
// Traps
/obj/effect/spawner/random_spawners/syndicate/trap
icon_state = "x"
color = "#000000"
/obj/effect/spawner/random_spawners/syndicate/trap/pizzabomb
name = "33pc trap pizza"
result = list(/obj/item/pizzabox/meat = 1,
/obj/item/pizzabox/hawaiian = 1,
/obj/item/pizzabox/margherita = 1,
/obj/item/pizzabox/vegetable = 1,
/obj/item/pizzabox/mushroom = 1,
/obj/item/pizzabox/pepperoni = 7, //Higher weight as a pizza bomb looks like pepperoni by default
/obj/item/pizzabox/garlic = 1,
/obj/item/pizzabox/firecracker = 1,
/obj/item/pizzabox/pizza_bomb/autoarm = 7)
/obj/effect/spawner/random_spawners/syndicate/trap/medbot
name = "50pc trap medibot"
result = list(/datum/nothing = 1,
/mob/living/simple_animal/bot/medbot/syndicate/emagged = 1)
/obj/effect/spawner/random_spawners/syndicate/trap/mine
name = "50pc trap landmine"
result = list(/datum/nothing = 1,
/obj/effect/mine/depot = 1)
/obj/effect/spawner/random_spawners/syndicate/trap/documents
name = "66pc trapped documents"
result = list(/obj/item/documents/syndicate/yellow = 1,
/obj/item/documents/syndicate/yellow/trapped = 1)
// Loot
/obj/effect/spawner/random_spawners/syndicate/loot
name = "common loot"
icon_state = "x3"
spawn_inside = /obj/structure/closet/secure_closet/syndicate/depot
// Loot schema: costumes, toys, useless gimmick items
result = list(/datum/nothing = 13,
/obj/item/storage/toolbox/syndicate = 1,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1,
/obj/item/deck/cards/syndicate = 1,
/obj/item/storage/secure/briefcase/syndie = 1,
/obj/item/toy/syndicateballoon = 1,
/obj/item/soap/syndie = 1,
/obj/item/clothing/under/syndicate = 1,
/obj/item/clothing/under/syndicate/tacticool = 1,
/obj/item/clothing/mask/gas/syndicate = 1,
/obj/item/suppressor = 1,
/obj/item/coin/antagtoken/syndicate = 1,
/obj/item/storage/box/syndie_kit/cutouts = 1)
/obj/effect/spawner/random_spawners/syndicate/loot/stetchkin
name = "20pc stetchkin"
icon_state = "x3"
spawn_inside = null
result = list(/datum/nothing = 1,
/obj/item/wrench = 1,
/obj/item/reagent_containers/food/snacks/syndicake = 1,
/obj/item/coin/antagtoken/syndicate = 1,
/obj/item/gun/projectile/automatic/pistol = 1)
/obj/effect/spawner/random_spawners/syndicate/loot/level2
name = "rare loot"
// Loot schema: space gear, basic armor, basic ammo (10mm, rcd), drugs, more dangerous/useful gimmick items, lower-value minerals
result = list(/datum/nothing = 27,
/obj/item/storage/box/syndie_kit/space = 1,
/obj/item/storage/box/syndie_kit/modsuit = 1,
/obj/item/clothing/shoes/magboots/syndie = 1,
/obj/item/clothing/suit/armor/vest/combat = 1,
/obj/item/ammo_box/magazine/m10mm = 1,
/obj/item/storage/pill_bottle/happy = 1,
/obj/item/storage/pill_bottle/zoom = 1,
/obj/item/storage/pill_bottle/random_drug_bottle = 2,
/obj/item/storage/backpack/duffel/syndie/med/surgery = 1,
/obj/item/clothing/shoes/chameleon/noslip = 1,
/obj/item/storage/belt/military = 1,
/obj/item/clothing/under/chameleon = 1,
/obj/item/storage/backpack/satchel_flat = 1,
/obj/item/rcd = 1,
/obj/item/rcd_ammo = 1,
/obj/item/stamp/chameleon = 1,
/obj/item/flag/chameleon = 1,
/obj/item/lighter/zippo/gonzofist = 1,
/obj/item/clothing/gloves/fingerless/rapid = 1,
/obj/item/grenade/spawnergrenade/manhacks = 1,
/obj/item/grenade/syndieminibomb = 1,
/obj/item/storage/box/syndie_kit/throwing_weapons = 1,
/obj/item/pen/edagger = 1,
/obj/item/stack/sheet/mineral/plasma{amount = 20} = 1,
/obj/item/stack/sheet/mineral/silver{amount = 20} = 1,
/obj/item/stack/sheet/mineral/gold{amount = 20} = 1,
/obj/item/mod/module/noslip = 1,
/obj/item/mod/module/visor/night = 1)
/obj/effect/spawner/random_spawners/syndicate/loot/level3
name = "officer loot"
// Loot schema: medkits, very useful devices (jammer, illegal upgrade, RCD), better quality ammo (AP, fire), basic weapons (pistol, empgrenade), high value ores (diamond, uranium)
result = list(/datum/nothing = 25,
/obj/item/jammer = 1,
/obj/item/storage/firstaid/regular = 1,
/obj/item/storage/box/syndie_kit/bonerepair = 1,
/obj/item/gun/projectile/automatic/pistol = 1,
/obj/item/stock_parts/cell/bluespace = 1,
/obj/item/card/emag = 1,
/obj/item/encryptionkey/binary = 1,
/obj/item/pinpointer/advpinpointer = 1,
/obj/item/borg/upgrade/vtec = 1,
/obj/item/borg/upgrade/syndicate = 1,
/obj/item/borg/upgrade/selfrepair = 1,
/obj/item/stack/sheet/mineral/diamond{amount = 10} = 1,
/obj/item/stack/sheet/mineral/uranium{amount = 10} = 1,
/obj/item/clothing/shoes/magboots/syndie/advance = 1,
/obj/item/grenade/empgrenade = 1,
/obj/item/grenade/clown_grenade = 1,
/obj/item/grenade/spawnergrenade/feral_cats = 1,
/obj/item/ammo_box/magazine/m10mm/ap = 1,
/obj/item/ammo_box/magazine/m10mm/fire = 1,
/obj/item/ammo_box/magazine/m10mm/hp = 1,
/obj/item/storage/box/syndie_kit/emp = 1,
/obj/item/toy/plushie/carpplushie/dehy_carp = 1,
/obj/item/clothing/glasses/hud/security/chameleon = 1,
/obj/item/mod/module/visor/thermal = 1,
/obj/item/mod/module/stealth = 1,
/obj/item/mod/module/power_kick = 1)
/obj/effect/spawner/random_spawners/syndicate/loot/level4
name = "armory loot"
spawn_inside = /obj/structure/closet/secure_closet/syndicate/depot/armory
// Loot schema: high-power weapons (m90, esword, ebow, revolver), devices that negate depot challenges (thermal glasses, chameleon device), explosives
result = list(/obj/item/gun/projectile/automatic/c20r = 1,
/obj/item/gun/projectile/automatic/m90 = 1,
/obj/item/gun/projectile/automatic/sniper_rifle/syndicate = 1,
/obj/item/melee/energy/sword/saber = 1,
/obj/item/gun/energy/kinetic_accelerator/crossbow = 1,
/obj/item/gun/projectile/revolver = 1,
/obj/item/clothing/gloves/color/yellow/power = 1,
/obj/item/twohanded/chainsaw = 1,
/obj/item/bee_briefcase = 1,
/obj/item/twohanded/fireaxe/energized = 1,
/obj/item/clothing/glasses/thermal = 1,
/obj/item/chameleon = 1,
/obj/item/reagent_containers/hypospray/autoinjector/stimulants = 1,
/obj/item/grenade/plastic/c4/x4 = 1,
/obj/item/storage/box/syndie_kit/modsuit/elite = 1)// Adding this as it is something an explorer can use to explore space better, that isn't a high powered murder weapon.
// Layout-affecting spawns
/obj/effect/spawner/random_spawners/syndicate/layout
icon_state = "x2"
/obj/effect/spawner/random_spawners/syndicate/layout/door
name = "50pc door 25pc falsewall 25pc wall"
result = list(/obj/machinery/door/airlock/hatch/syndicate = 6,
/turf/simulated/wall/mineral/plastitanium/nodiagonal = 2,
/obj/structure/falsewall/plastitanium = 2)
/obj/effect/spawner/random_spawners/syndicate/layout/door/vault
name = "80pc vaultdoor 20pc wall"
result = list(/obj/machinery/door/airlock/hatch/syndicate/vault = 4,
/turf/simulated/wall/mineral/plastitanium/nodiagonal = 1)