From 31b5559139faf102de21c203861e3475fd45572e Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 01:35:23 -0600 Subject: [PATCH 01/99] kills waldo and loops --- .../hostile/mining_mobs/hivelord.dm | 95 ++++++------------- 1 file changed, 27 insertions(+), 68 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index bdc4124ed929..9f678446ad1b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -411,7 +411,7 @@ ) var/type = pickweight(list( "Miner" = 44, - "Waldo" = 3, + "Infiltrator" = 3, "Ashwalker" = 7, "Soldier" = 3, "Oldminer" = 8, @@ -558,63 +558,26 @@ if(prob(85)) back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. backpack_contents = list() - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 + for(var/i = 1 to 3) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite=3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) ) - ) if(prob(30)) backpack_contents += list( /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( @@ -926,25 +889,21 @@ outfit = /datum/outfit/syndicatestormtroopercorpse else outfit = /datum/outfit/syndicatecommandocorpse - if("Waldo")//WE FINALLY FOUND HIM - name = "Waldo" - uniform = /obj/item/clothing/under/pants/jeans - suit = /obj/item/clothing/suit/striped_sweater - head = /obj/item/clothing/head/beanie/waldo - shoes = /obj/item/clothing/shoes/sneakers/brown + if("Infiltrator")//WE FINALLY FOUND HIM + uniform = /obj/item/clothing/under/syndicate/bloodred + gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator + suit = /obj/item/clothing/suit/armor/vest/infiltrator + head = /obj/item/clothing/head/helmet/infiltrator + shoes = /obj/item/clothing/shoes/combat/sneakboots ears = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/regular/circle + mask = new /obj/item/clothing/mask/infiltrator back = /obj/item/storage/backpack/satchel/leather backpack_contents = list() if(prob(50)) backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20 = 3, - /obj/item/dice/d20/fate/stealth/one_use = 1, /obj/item/clothing/head/chameleon/broken = 3, /obj/item/stack/marker_beacon/ten = 3, /obj/item/grenade/smokebomb = 3, From bd0d884b74b1cd3d2f0fb6bfe92751ba0d828850 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 01:39:32 -0600 Subject: [PATCH 02/99] more loops --- .../hostile/mining_mobs/hivelord.dm | 203 ++++-------------- 1 file changed, 47 insertions(+), 156 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 9f678446ad1b..dc55747d1676 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -647,63 +647,26 @@ if(prob(85)) back = /obj/item/storage/backpack backpack_contents = list() - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, + /obj/item/storage/firstaid/tactical = 1, + /obj/item/gun/ballistic/automatic/pistol/solgov = 1, + /obj/item/gps = 1, + /obj/item/stock_parts/cell/gun/upgraded = 2, + /obj/item/ammo_box/magazine/pistol556mm = 3, + /obj/item/desk_flag/solgov = 3, + /obj/item/stack/marker_beacon/ten = 3, + /obj/item/detective_scanner = 2, + /obj/item/extinguisher/mini = 3, + /obj/item/kitchen/knife/combat = 3, + /obj/item/flashlight/seclite=3, + /obj/item/ammo_casing/shotgun = 3, + /obj/item/binoculars = 3, + /obj/item/clipboard = 3 + ) ) - ) else back = pickweight(list( /obj/item/energyhalberd = 5, @@ -721,15 +684,6 @@ /obj/item/melee/transforming/energy/ctf/solgov = 1 ) ) - if(prob(50)) - l_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio/off = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) if(prob(70)) glasses = pickweight(list( /obj/item/clothing/glasses/sunglasses = 3, @@ -774,60 +728,25 @@ if(prob(70)) back = /obj/item/storage/backpack backpack_contents = list() - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/slime_extract/grey = 1, + /obj/item/slime_scanner = 1, + /obj/item/resonator/upgraded = 1, + /obj/item/gps = 1, + /obj/item/fulton_core = 2, + /obj/item/extraction_pack = 3, + /obj/item/stack/sheet/mineral/plasma/twenty = 3, + /obj/item/stack/marker_beacon/ten = 3, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 3, + /obj/item/flashlight/seclite=3, + /obj/item/research_notes/loot/medium = 3, + /obj/item/stack/sheet/metal/fifty = 3, + /obj/item/research_notes/loot/big = 1 + ) ) - ) if(prob(3)) backpack_contents += list( /obj/item/storage/box/rndboards @@ -900,45 +819,17 @@ mask = new /obj/item/clothing/mask/infiltrator back = /obj/item/storage/backpack/satchel/leather backpack_contents = list() - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/shadowcloak = 1, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 - ) - ) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, - /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/dice/d20 = 3, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 - ) - ) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/book/granter/spell/knock = 1, - /obj/item/book/granter/spell/blind = 1, - /obj/item/shadowcloak = 1, - /obj/item/book/granter/spell/smoke = 2, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 + for(var/i = 1 to 3) + if(prob(50)) + backpack_contents += pickweight(list( + /obj/item/shadowcloak = 1, + /obj/item/reagent_containers/syringe/mulligan = 2, + /obj/item/clothing/head/chameleon/broken = 3, + /obj/item/stack/marker_beacon/ten = 3, + /obj/item/grenade/smokebomb = 3, + /obj/item/grenade/flashbang = 3 + ) ) - ) if(prob(25)) r_pocket = pickweight(list( /obj/item/chameleon, From 694b5ff9f6494267a93d0549b4215aaeb9947496 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 01:46:08 -0600 Subject: [PATCH 03/99] sorts em --- .../hostile/mining_mobs/hivelord.dm | 277 +++++++++--------- 1 file changed, 144 insertions(+), 133 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index dc55747d1676..520e6232f00a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -411,14 +411,14 @@ ) var/type = pickweight(list( "Miner" = 44, - "Infiltrator" = 3, - "Ashwalker" = 7, - "Soldier" = 3, + "SRM" = 10, "Oldminer" = 8, - "Kobold" = 5, + "Ashwalker" = 7, "Golem" = 6, - "SRM" = 10, - pick("Shadow", "YeOlde", "Operative", "Cultist") = 4 + "Kobold" = 5, + "Soldier" = 3, + "Infiltrator" = 3, + pick("YeOlde", "Operative", "Shadow", "Cultist") = 4 ) ) switch(type) @@ -545,6 +545,33 @@ ) else back = /obj/item/kinetic_crusher + + if("SRM") + uniform = /obj/item/clothing/under/suit/roumain + shoes = /obj/item/clothing/shoes/workboots/mining + if(prob(50)) + suit = /obj/item/clothing/suit/armor/roumain/shadow + head = /obj/item/clothing/head/cowboy/sec/roumain/shadow + else + suit = /obj/item/clothing/suit/armor/roumain + head = /obj/item/clothing/head/cowboy/sec/roumain + if(prob(25)) + suit_store = /obj/item/gun/ballistic/shotgun/winchester + r_pocket = /obj/item/book/manual/trickwines_4_brewers + belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) + back = /obj/item/storage/backpack/cultpack + backpack_contents = list() + if(prob(75)) + backpack_contents += list(/obj/item/ammo_box/c38_box = 1) + if(prob(75)) + backpack_contents += list(pick( + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) + if("Oldminer") suit = /obj/item/clothing/suit/hooded/explorer/old mask = /obj/item/clothing/mask/gas/explorer/old @@ -606,6 +633,7 @@ /obj/item/borg/upgrade/modkit/cooldown = 1 ) ) + if("Ashwalker") mob_species = /datum/species/lizard/ashwalker uniform = /obj/item/clothing/under/costume/gladiator/ash_walker @@ -627,92 +655,7 @@ r_pocket = /obj/item/restraints/legcuffs/bola/watcher if(prob(30)) l_pocket = /obj/item/kitchen/knife/combat/bone - if("Soldier") - mob_species = /datum/species/human - if(prob(90)) - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/sechailer - head = /obj/item/clothing/head/solgov/sonnensoldner - id = /obj/item/card/id/solgov - else - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/space/hardsuit/solgov - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - mask = /obj/item/clothing/mask/gas/sechailer/swat - id = /obj/item/card/id/solgov - if(prob(85)) - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/i = 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - else - back = pickweight(list( - /obj/item/energyhalberd = 5, - /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 - ) - ) - if(prob(25)) - belt = /obj/item/storage/belt/military - if(prob(50)) - r_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio/off = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/sunglasses = 3, - /obj/item/clothing/glasses/hud/health = 3, - /obj/item/clothing/glasses/hud/health/night = 1, - /obj/item/clothing/glasses/night = 2 - ) - ) - if("Kobold") - mob_species = /datum/species/lizard/ashwalker/kobold - uniform = /obj/item/clothing/under/costume/gladiator/ash_walker - if(prob(95)) - head = /obj/item/clothing/head/helmet/gladiator - else - head = /obj/item/clothing/head/helmet/skull - suit = /obj/item/clothing/suit/armor/bone - gloves = /obj/item/clothing/gloves/bracer - if(prob(5)) - back = pickweight(list( - /obj/item/spear/bonespear = 3, - /obj/item/fireaxe/boneaxe = 2 - ) - ) - if(prob(10)) - belt = /obj/item/storage/belt/mining/primitive - if(prob(30)) - r_pocket = /obj/item/kitchen/knife/combat/bone - if(prob(30)) - l_pocket = /obj/item/kitchen/knife/combat/bone + if("Golem") mob_species = pickweight(list( /datum/species/golem/adamantine = 5, @@ -791,23 +734,95 @@ /obj/item/weldingtool/experimental ) ) - if("YeOlde") - mob_gender = FEMALE - uniform = /obj/item/clothing/under/costume/maid - gloves = /obj/item/clothing/gloves/color/white - shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/helmet/knight - suit = /obj/item/clothing/suit/armor/riot/knight - back = /obj/item/shield/riot/buckler - belt = /obj/item/nullrod/claymore - r_pocket = /obj/item/tank/internals/emergency_oxygen - mask = /obj/item/clothing/mask/breath - if("Operative") - id_job = "Operative" - if(prob(15)) - outfit = /datum/outfit/syndicatestormtroopercorpse + + if("Kobold") + mob_species = /datum/species/lizard/ashwalker/kobold + uniform = /obj/item/clothing/under/costume/gladiator/ash_walker + if(prob(95)) + head = /obj/item/clothing/head/helmet/gladiator else - outfit = /datum/outfit/syndicatecommandocorpse + head = /obj/item/clothing/head/helmet/skull + suit = /obj/item/clothing/suit/armor/bone + gloves = /obj/item/clothing/gloves/bracer + if(prob(5)) + back = pickweight(list( + /obj/item/spear/bonespear = 3, + /obj/item/fireaxe/boneaxe = 2 + ) + ) + if(prob(10)) + belt = /obj/item/storage/belt/mining/primitive + if(prob(30)) + r_pocket = /obj/item/kitchen/knife/combat/bone + if(prob(30)) + l_pocket = /obj/item/kitchen/knife/combat/bone + + if("Soldier") + mob_species = /datum/species/human + if(prob(90)) + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov + shoes = /obj/item/clothing/shoes/jackboots + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas/sechailer + head = /obj/item/clothing/head/solgov/sonnensoldner + id = /obj/item/card/id/solgov + else + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/space/hardsuit/solgov + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer/swat + id = /obj/item/card/id/solgov + if(prob(85)) + back = /obj/item/storage/backpack + backpack_contents = list() + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, + /obj/item/storage/firstaid/tactical = 1, + /obj/item/gun/ballistic/automatic/pistol/solgov = 1, + /obj/item/gps = 1, + /obj/item/stock_parts/cell/gun/upgraded = 2, + /obj/item/ammo_box/magazine/pistol556mm = 3, + /obj/item/desk_flag/solgov = 3, + /obj/item/stack/marker_beacon/ten = 3, + /obj/item/detective_scanner = 2, + /obj/item/extinguisher/mini = 3, + /obj/item/kitchen/knife/combat = 3, + /obj/item/flashlight/seclite=3, + /obj/item/ammo_casing/shotgun = 3, + /obj/item/binoculars = 3, + /obj/item/clipboard = 3 + ) + ) + else + back = pickweight(list( + /obj/item/energyhalberd = 5, + /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 + ) + ) + if(prob(25)) + belt = /obj/item/storage/belt/military + if(prob(50)) + r_pocket = pickweight(list( + /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, + /obj/item/kitchen/knife/letter_opener = 3, + /obj/item/radio/off = 3, + /obj/item/grenade/syndieminibomb/concussion = 1, + /obj/item/melee/transforming/energy/ctf/solgov = 1 + ) + ) + if(prob(70)) + glasses = pickweight(list( + /obj/item/clothing/glasses/sunglasses = 3, + /obj/item/clothing/glasses/hud/health = 3, + /obj/item/clothing/glasses/hud/health/night = 1, + /obj/item/clothing/glasses/night = 2 + ) + ) + if("Infiltrator")//WE FINALLY FOUND HIM uniform = /obj/item/clothing/under/syndicate/bloodred gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator @@ -844,6 +859,26 @@ /obj/item/flashlight/flashdark = 1 ) ) + + if("YeOlde") + mob_gender = FEMALE + uniform = /obj/item/clothing/under/costume/maid + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/helmet/knight + suit = /obj/item/clothing/suit/armor/riot/knight + back = /obj/item/shield/riot/buckler + belt = /obj/item/nullrod/claymore + r_pocket = /obj/item/tank/internals/emergency_oxygen + mask = /obj/item/clothing/mask/breath + + if("Operative") + id_job = "Operative" + if(prob(15)) + outfit = /datum/outfit/syndicatestormtroopercorpse + else + outfit = /datum/outfit/syndicatecommandocorpse + if("Shadow") mob_species = /datum/species/shadow r_pocket = /obj/item/reagent_containers/pill/shadowtoxin @@ -854,6 +889,7 @@ glasses = /obj/item/clothing/glasses/blindfold back = /obj/item/tank/internals/oxygen mask = /obj/item/clothing/mask/breath + if("Cultist") uniform = /obj/item/clothing/under/costume/roman suit = /obj/item/clothing/suit/hooded/cultrobes @@ -868,29 +904,4 @@ /obj/item/flashlight/flare/culttorch = 1, /obj/item/stack/sheet/runed_metal = 15 ) - if("SRM") - uniform = /obj/item/clothing/under/suit/roumain - shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(50)) - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - else - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/winchester - r_pocket = /obj/item/book/manual/trickwines_4_brewers - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - back = /obj/item/storage/backpack/cultpack - backpack_contents = list() - if(prob(75)) - backpack_contents += list(/obj/item/ammo_box/c38_box = 1) - if(prob(75)) - backpack_contents += list(pick( - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) . = ..() From 5842d5d79000d0c9d4a6d00b86db28d9c7991cc0 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 01:51:53 -0600 Subject: [PATCH 04/99] glasses c: --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 520e6232f00a..9f1c22b1912e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -830,7 +830,8 @@ head = /obj/item/clothing/head/helmet/infiltrator shoes = /obj/item/clothing/shoes/combat/sneakboots ears = /obj/item/radio/headset - glasses = /obj/item/clothing/glasses/regular/circle + if(prob(25)) + glasses = /obj/item/clothing/glasses/regular/circle mask = new /obj/item/clothing/mask/infiltrator back = /obj/item/storage/backpack/satchel/leather backpack_contents = list() From 8d4425147dab37236980bc9aca6eda373153126f Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 02:01:53 -0600 Subject: [PATCH 05/99] tweaking the loot for infiltrator --- .../hostile/mining_mobs/hivelord.dm | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 9f1c22b1912e..f7708b5d32ea 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -832,32 +832,33 @@ ears = /obj/item/radio/headset if(prob(25)) glasses = /obj/item/clothing/glasses/regular/circle - mask = new /obj/item/clothing/mask/infiltrator + mask = /obj/item/clothing/mask/infiltrator + id = /obj/item/card/id/syndicate back = /obj/item/storage/backpack/satchel/leather backpack_contents = list() for(var/i = 1 to 3) if(prob(50)) backpack_contents += pickweight(list( - /obj/item/shadowcloak = 1, - /obj/item/reagent_containers/syringe/mulligan = 2, - /obj/item/clothing/head/chameleon/broken = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/grenade/smokebomb = 3, - /obj/item/grenade/flashbang = 3 + + /obj/item/pen/sleepy = 3, + /obj/item/pen/edagger = 3, + /obj/item/reagent_containers/syringe/mulligan = 3, + /obj/item/suppressor = 5, + /obj/item/clothing/head/chameleon/broken = 5, + /obj/item/grenade/smokebomb = 5, + /obj/item/grenade/flashbang = 5 ) ) if(prob(25)) r_pocket = pickweight(list( - /obj/item/chameleon, + /obj/item/chameleon = 1, /obj/item/dnainjector/chameleonmut = 1, - /obj/item/flashlight/flashdark = 1 ) ) if(prob(25)) l_pocket = pickweight(list( - /obj/item/chameleon, + /obj/item/chameleon = 1, /obj/item/dnainjector/chameleonmut = 1, - /obj/item/flashlight/flashdark = 1 ) ) From 45882a2efe4176b74b9207c8d87547d5da093cd4 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 02:03:37 -0600 Subject: [PATCH 06/99] replaces the broken cham with full kit --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index f7708b5d32ea..b11e13aa93b0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -839,12 +839,11 @@ for(var/i = 1 to 3) if(prob(50)) backpack_contents += pickweight(list( - /obj/item/pen/sleepy = 3, /obj/item/pen/edagger = 3, /obj/item/reagent_containers/syringe/mulligan = 3, /obj/item/suppressor = 5, - /obj/item/clothing/head/chameleon/broken = 5, + /obj/item/storage/box/syndie_kit/chameleon = 5, /obj/item/grenade/smokebomb = 5, /obj/item/grenade/flashbang = 5 ) From 55730ba1a8fc5ce108304116f7a3e0578ef02998 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 02:23:07 -0600 Subject: [PATCH 07/99] a gun --- .../living/simple_animal/hostile/mining_mobs/hivelord.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b11e13aa93b0..1fd99d084e60 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -848,6 +848,12 @@ /obj/item/grenade/flashbang = 5 ) ) + if(prob(70)) + backpack_contents += (list( + /obj/item/gun/ballistic/automatic/pistol/APS, + /obj/item/ammo_box/magazine/pistolm9mm + ) + ) if(prob(25)) r_pocket = pickweight(list( /obj/item/chameleon = 1, From 054d8a91de7eb5b49c4c28defc877c4eb3f02217 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 02:31:19 -0600 Subject: [PATCH 08/99] cool glasses --- .../simple_animal/hostile/mining_mobs/hivelord.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 1fd99d084e60..67bd4dd04a31 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -830,8 +830,14 @@ head = /obj/item/clothing/head/helmet/infiltrator shoes = /obj/item/clothing/shoes/combat/sneakboots ears = /obj/item/radio/headset - if(prob(25)) - glasses = /obj/item/clothing/glasses/regular/circle + if(prob(70)) + glasses = pickweight(list( + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/sunglasses = 3, + /obj/item/clothing/glasses/thermal/syndi = 2, + /obj/item/clothing/glasses/night = 2 + ) + ) mask = /obj/item/clothing/mask/infiltrator id = /obj/item/card/id/syndicate back = /obj/item/storage/backpack/satchel/leather From b044626f404c1cd1ca05fdf0e23ecc79a53e5b2e Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 11:42:53 -0600 Subject: [PATCH 09/99] tweaks to operative --- .../hostile/mining_mobs/hivelord.dm | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 67bd4dd04a31..da0bfc123213 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -781,14 +781,13 @@ if(prob(75)) backpack_contents += pickweight(list( /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/tactical = 1, + /obj/item/storage/firstaid/advanced = 1, /obj/item/gun/ballistic/automatic/pistol/solgov = 1, /obj/item/gps = 1, /obj/item/stock_parts/cell/gun/upgraded = 2, /obj/item/ammo_box/magazine/pistol556mm = 3, /obj/item/desk_flag/solgov = 3, /obj/item/stack/marker_beacon/ten = 3, - /obj/item/detective_scanner = 2, /obj/item/extinguisher/mini = 3, /obj/item/kitchen/knife/combat = 3, /obj/item/flashlight/seclite=3, @@ -829,18 +828,18 @@ suit = /obj/item/clothing/suit/armor/vest/infiltrator head = /obj/item/clothing/head/helmet/infiltrator shoes = /obj/item/clothing/shoes/combat/sneakboots - ears = /obj/item/radio/headset + ears = /obj/item/radio/headset/syndicate if(prob(70)) glasses = pickweight(list( /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/sunglasses = 3, /obj/item/clothing/glasses/thermal/syndi = 2, - /obj/item/clothing/glasses/night = 2 + /obj/item/clothing/glasses/night = 2, + /obj/item/clothing/glasses/sunglasses = 3 ) ) mask = /obj/item/clothing/mask/infiltrator id = /obj/item/card/id/syndicate - back = /obj/item/storage/backpack/satchel/leather + back = /obj/item/storage/backpack backpack_contents = list() for(var/i = 1 to 3) if(prob(50)) @@ -887,10 +886,27 @@ if("Operative") id_job = "Operative" - if(prob(15)) - outfit = /datum/outfit/syndicatestormtroopercorpse + uniform = /obj/item/clothing/under/syndicate + shoes = /obj/item/clothing/shoes/combat + ears = /obj/item/radio/headset/syndicate + id = /obj/item/card/id/syndicate + r_pocket = /obj/item/tank/internals/emergency_oxygen + if(prob(25)) + suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/tank/jetpack/oxygen + if else(prob(25)) + suit = /obj/item/clothing/head/helmet/space/hardsuit/syndi + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/tank/jetpack/oxygen else - outfit = /datum/outfit/syndicatecommandocorpse + suit = /obj/item/clothing/suit/armor/vest + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + mask = /obj/item/clothing/mask/gas + head = /obj/item/clothing/head/helmet/swat + back = /obj/item/storage/backpack if("Shadow") mob_species = /datum/species/shadow From 884bf0e79aed18e2c5d2dd80ba4543a26a967049 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 11:44:08 -0600 Subject: [PATCH 10/99] gloves --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index da0bfc123213..a3279be6322b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -891,19 +891,17 @@ ears = /obj/item/radio/headset/syndicate id = /obj/item/card/id/syndicate r_pocket = /obj/item/tank/internals/emergency_oxygen + gloves = /obj/item/clothing/gloves/tackler/combat/insulated if(prob(25)) suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet - gloves = /obj/item/clothing/gloves/tackler/combat/insulated mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen if else(prob(25)) suit = /obj/item/clothing/head/helmet/space/hardsuit/syndi - gloves = /obj/item/clothing/gloves/tackler/combat/insulated mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen else suit = /obj/item/clothing/suit/armor/vest - gloves = /obj/item/clothing/gloves/tackler/combat/insulated mask = /obj/item/clothing/mask/gas head = /obj/item/clothing/head/helmet/swat back = /obj/item/storage/backpack From c68df9b089555fa72d463dfd0ba2f66fec11fd4e Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 11:45:30 -0600 Subject: [PATCH 11/99] hardsuit was helmet --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index a3279be6322b..0c5923700c70 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -897,7 +897,7 @@ mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen if else(prob(25)) - suit = /obj/item/clothing/head/helmet/space/hardsuit/syndi + suit = /obj/item/clothing/suit/space/hardsuit/syndi mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen else From a8f970ac19388f50c5f2a08c65bcf0fef9d451b6 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 11:46:05 -0600 Subject: [PATCH 12/99] no thermals --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 0c5923700c70..21682d41e253 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -832,7 +832,6 @@ if(prob(70)) glasses = pickweight(list( /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/thermal/syndi = 2, /obj/item/clothing/glasses/night = 2, /obj/item/clothing/glasses/sunglasses = 3 ) From f3ab61efd66a85b02f215c9d6f386655b6f74cc3 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 25 Nov 2023 13:24:45 -0600 Subject: [PATCH 13/99] backwards statment --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 21682d41e253..3d5d9343895f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -895,7 +895,7 @@ suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen - if else(prob(25)) + else if(prob(25)) suit = /obj/item/clothing/suit/space/hardsuit/syndi mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/tank/jetpack/oxygen From f357feaac3b7d9d2886485e81ba272db06b3a42e Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 26 Nov 2023 17:09:44 -0600 Subject: [PATCH 14/99] unsure why i am failing tests --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 3d5d9343895f..f0d34b3897cc 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -822,7 +822,7 @@ ) ) - if("Infiltrator")//WE FINALLY FOUND HIM + if("Infiltrator") uniform = /obj/item/clothing/under/syndicate/bloodred gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator suit = /obj/item/clothing/suit/armor/vest/infiltrator From bbdce8857ad42f0d51c6f09c2211af91c82b3c92 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Tue, 28 Nov 2023 18:16:24 -0600 Subject: [PATCH 15/99] Apply suggestions from code review Co-authored-by: Mark Suckerberg Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index f0d34b3897cc..d01ebeb7185f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -585,7 +585,7 @@ if(prob(85)) back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. backpack_contents = list() - for(var/i = 1 to 3) + for(var/count in 1 to 3) if(prob(70)) backpack_contents += pickweight(list( /obj/item/borg/upgrade/modkit/damage = 1, @@ -671,7 +671,7 @@ if(prob(70)) back = /obj/item/storage/backpack backpack_contents = list() - for(var/i = 1 to 3) + for(var/count in 1 to 3) if(prob(75)) backpack_contents += pickweight(list( /obj/item/slime_extract/grey = 1, From 6ed38c79f24876ef049378ff141896038d326bdb Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 28 Nov 2023 18:20:28 -0600 Subject: [PATCH 16/99] yuh --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index d01ebeb7185f..6e143d27b17c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -411,14 +411,13 @@ ) var/type = pickweight(list( "Miner" = 44, - "SRM" = 10, + "SRM" = 12, "Oldminer" = 8, "Ashwalker" = 7, "Golem" = 6, "Kobold" = 5, "Soldier" = 3, - "Infiltrator" = 3, - pick("YeOlde", "Operative", "Shadow", "Cultist") = 4 + pick("Infiltrator", "YeOlde", "Operative", "Shadow", "Cultist") = 5 ) ) switch(type) From 6d052a46136343c617c3ea208c98bb594cd0c027 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 07:31:36 -0600 Subject: [PATCH 17/99] wanna test if this works --- .../hostile/mining_mobs/hivelord.dm | 226 +++--------------- .../hostile/mining_mobs/hivelord_outfits.dm | 51 ++++ 2 files changed, 80 insertions(+), 197 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 6e143d27b17c..0dc589b3acd5 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -410,14 +410,9 @@ ) ) var/type = pickweight(list( - "Miner" = 44, - "SRM" = 12, - "Oldminer" = 8, - "Ashwalker" = 7, - "Golem" = 6, - "Kobold" = 5, - "Soldier" = 3, - pick("Infiltrator", "YeOlde", "Operative", "Shadow", "Cultist") = 5 + "Miner" = 50, + "Plain" = 40, + pick("Infiltrator", "Operative", "Soldier", "SRM") = 10 ) ) switch(type) @@ -544,33 +539,8 @@ ) else back = /obj/item/kinetic_crusher - - if("SRM") - uniform = /obj/item/clothing/under/suit/roumain - shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(50)) - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - else - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/winchester - r_pocket = /obj/item/book/manual/trickwines_4_brewers - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - back = /obj/item/storage/backpack/cultpack - backpack_contents = list() - if(prob(75)) - backpack_contents += list(/obj/item/ammo_box/c38_box = 1) - if(prob(75)) - backpack_contents += list(pick( - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) - + if("Plain") + outfit = /datum/outfit/generic if("Oldminer") suit = /obj/item/clothing/suit/hooded/explorer/old mask = /obj/item/clothing/mask/gas/explorer/old @@ -632,130 +602,6 @@ /obj/item/borg/upgrade/modkit/cooldown = 1 ) ) - - if("Ashwalker") - mob_species = /datum/species/lizard/ashwalker - uniform = /obj/item/clothing/under/costume/gladiator/ash_walker - if(prob(95)) - head = /obj/item/clothing/head/helmet/gladiator - else - head = /obj/item/clothing/head/helmet/skull - suit = /obj/item/clothing/suit/armor/bone - gloves = /obj/item/clothing/gloves/bracer - if(prob(45)) - back = pickweight(list( - /obj/item/spear/bonespear = 3, - /obj/item/fireaxe/boneaxe = 2 - ) - ) - if(prob(10)) - belt = /obj/item/storage/belt/mining/primitive - if(prob(30)) - r_pocket = /obj/item/restraints/legcuffs/bola/watcher - if(prob(30)) - l_pocket = /obj/item/kitchen/knife/combat/bone - - if("Golem") - mob_species = pickweight(list( - /datum/species/golem/adamantine = 5, - /datum/species/golem/plasma = 10, - /datum/species/golem/diamond = 10, - /datum/species/golem/gold = 10, - /datum/species/golem/silver = 10, - /datum/species/golem/plasteel = 10, - /datum/species/golem/titanium = 10, - /datum/species/golem/plastitanium = 10 - ) - ) - if(prob(70)) - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/count in 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/slime_extract/grey = 1, - /obj/item/slime_scanner = 1, - /obj/item/resonator/upgraded = 1, - /obj/item/gps = 1, - /obj/item/fulton_core = 2, - /obj/item/extraction_pack = 3, - /obj/item/stack/sheet/mineral/plasma/twenty = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 3, - /obj/item/flashlight/seclite=3, - /obj/item/research_notes/loot/medium = 3, - /obj/item/stack/sheet/metal/fifty = 3, - /obj/item/research_notes/loot/big = 1 - ) - ) - if(prob(3)) - backpack_contents += list( - /obj/item/storage/box/rndboards - ) - if(prob(20)) - backpack_contents += pickweight(list( - /obj/item/storage/box/stockparts/basic = 4, - /obj/item/storage/box/stockparts/t2 = 3, - /obj/item/storage/box/stockparts/t3 = 2, - /obj/item/storage/box/stockparts/deluxe = 1 - ) - ) - if(prob(30)) - glasses = pickweight(list( - /obj/item/clothing/glasses/meson = 2, - /obj/item/clothing/glasses/hud/health = 2, - /obj/item/clothing/glasses/hud/diagnostic =2, - /obj/item/clothing/glasses/science = 2, - /obj/item/clothing/glasses/welding = 2, - /obj/item/clothing/glasses/night = 1 - ) - ) - if(prob(10)) - belt = pickweight(list( - /obj/item/storage/belt/mining/vendor, - /obj/item/storage/belt/utility/full - ) - ) - if(prob(50)) - neck = /obj/item/bedsheet/rd/royal_cape - if(prob(10)) - l_pocket = pickweight(list( - /obj/item/crowbar/power, - /obj/item/screwdriver/power, - /obj/item/weldingtool/experimental - ) - ) - if(prob(10)) - r_pocket = pickweight(list( - /obj/item/crowbar/power, - /obj/item/screwdriver/power, - /obj/item/weldingtool/experimental - ) - ) - - if("Kobold") - mob_species = /datum/species/lizard/ashwalker/kobold - uniform = /obj/item/clothing/under/costume/gladiator/ash_walker - if(prob(95)) - head = /obj/item/clothing/head/helmet/gladiator - else - head = /obj/item/clothing/head/helmet/skull - suit = /obj/item/clothing/suit/armor/bone - gloves = /obj/item/clothing/gloves/bracer - if(prob(5)) - back = pickweight(list( - /obj/item/spear/bonespear = 3, - /obj/item/fireaxe/boneaxe = 2 - ) - ) - if(prob(10)) - belt = /obj/item/storage/belt/mining/primitive - if(prob(30)) - r_pocket = /obj/item/kitchen/knife/combat/bone - if(prob(30)) - l_pocket = /obj/item/kitchen/knife/combat/bone - if("Soldier") mob_species = /datum/species/human if(prob(90)) @@ -869,19 +715,6 @@ /obj/item/dnainjector/chameleonmut = 1, ) ) - - if("YeOlde") - mob_gender = FEMALE - uniform = /obj/item/clothing/under/costume/maid - gloves = /obj/item/clothing/gloves/color/white - shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/helmet/knight - suit = /obj/item/clothing/suit/armor/riot/knight - back = /obj/item/shield/riot/buckler - belt = /obj/item/nullrod/claymore - r_pocket = /obj/item/tank/internals/emergency_oxygen - mask = /obj/item/clothing/mask/breath - if("Operative") id_job = "Operative" uniform = /obj/item/clothing/under/syndicate @@ -903,30 +736,29 @@ mask = /obj/item/clothing/mask/gas head = /obj/item/clothing/head/helmet/swat back = /obj/item/storage/backpack - - if("Shadow") - mob_species = /datum/species/shadow - r_pocket = /obj/item/reagent_containers/pill/shadowtoxin - neck = /obj/item/clothing/accessory/medal/plasma/nobel_science - uniform = /obj/item/clothing/under/color/black - shoes = /obj/item/clothing/shoes/sneakers/black - suit = /obj/item/clothing/suit/toggle/labcoat - glasses = /obj/item/clothing/glasses/blindfold - back = /obj/item/tank/internals/oxygen - mask = /obj/item/clothing/mask/breath - - if("Cultist") - uniform = /obj/item/clothing/under/costume/roman - suit = /obj/item/clothing/suit/hooded/cultrobes - suit_store = /obj/item/tome - r_pocket = /obj/item/restraints/legcuffs/bola/cult - l_pocket = /obj/item/melee/cultblade/dagger - glasses = /obj/item/clothing/glasses/hud/health/night/cultblind + if("SRM") + uniform = /obj/item/clothing/under/suit/roumain + shoes = /obj/item/clothing/shoes/workboots/mining + if(prob(50)) + suit = /obj/item/clothing/suit/armor/roumain/shadow + head = /obj/item/clothing/head/cowboy/sec/roumain/shadow + else + suit = /obj/item/clothing/suit/armor/roumain + head = /obj/item/clothing/head/cowboy/sec/roumain + if(prob(25)) + suit_store = /obj/item/gun/ballistic/shotgun/winchester + r_pocket = /obj/item/book/manual/trickwines_4_brewers + belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) back = /obj/item/storage/backpack/cultpack - backpack_contents = list( - /obj/item/reagent_containers/glass/beaker/unholywater = 1, - /obj/item/cult_shift = 1, - /obj/item/flashlight/flare/culttorch = 1, - /obj/item/stack/sheet/runed_metal = 15 - ) + backpack_contents = list() + if(prob(75)) + backpack_contents += list(/obj/item/ammo_box/c38_box = 1) + if(prob(75)) + backpack_contents += list(pick( + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm new file mode 100644 index 000000000000..12fedb3e76ee --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -0,0 +1,51 @@ +/datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + uniform = pickweight(list( + /obj/item/clothing/under/utility = 1, + /obj/item/clothing/under/utility/skirt = 1, + /obj/item/clothing/under/color/black = 1, + /obj/item/clothing/under/color/white = 1, + /obj/item/clothing/under/color/random = 1, + /obj/item/clothing/under/shorts/black = 1, + /obj/item/clothing/under/shorts/grey = 1, + /obj/item/clothing/under/shorts/blue = 1, + /obj/item/clothing/under/shorts/green = 1, + /obj/item/clothing/under/pants/jeans = 1, + /obj/item/clothing/under/pants/khaki = 1, + /obj/item/clothing/under/pants/tan = 1, + /obj/item/clothing/under/pants/white = 1, + /obj/item/clothing/under/pants/red = 1, + /obj/item/clothing/under/pants/track = 1, + /obj/item/clothing/under/pants/blackjeans = 1, + /obj/item/clothing/under/pants/black = 1, + /obj/item/clothing/under/pants/camo = 1, + /obj/item/clothing/under/suit/sl = 1, + /obj/item/clothing/under/suit/white = 1, + /obj/item/clothing/under/suit/tan = 1, + /obj/item/clothing/under/suit/black_really = 1, + /obj/item/clothing/under/suit/black_really/skirt = 1, + /obj/item/clothing/under/suit/navy = 1, + /obj/item/clothing/under/suit/burgundy = 1, + /obj/item/clothing/under/suit/charcoal = 1, + /obj/item/clothing/under/rank/civilian/lawyer/galaxy = 1, + /obj/item/clothing/under/suit/black/skirt = 1, + /obj/item/clothing/under/rank/command/captain/suit/skirt = 1, + /obj/item/clothing/under/rank/command/head_of_personnel/suit/skirt = 1, + /obj/item/clothing/under/suit/black = 1, + /obj/item/clothing/under/suit/checkered = 1, + /obj/item/clothing/under/dress/sailor = 1, + /obj/item/clothing/under/dress/striped = 1, + /obj/item/clothing/under/dress/skirt/purple = 1, + /obj/item/clothing/under/dress/skirt/blue = 1, + /obj/item/clothing/under/dress/skirt/red = 1, + /obj/item/clothing/under/dress/skirt = 1, + /obj/item/clothing/under/dress/sundress = 1, + /obj/item/clothing/under/suit/dresssuit = 1, + /obj/item/clothing/under/suit/dresssuit/skirt = 1, + /obj/item/clothing/under/syndicate/tacticool = 1, + /obj/item/clothing/under/costume/maid = 1 + ) + ) + +/datum/outfit/generic + name "Generic" From f811f5b69f57dc457b8fd4ff3273f8e47de50a6b Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:03:12 -0600 Subject: [PATCH 18/99] shrug --- .../hostile/mining_mobs/hivelord_outfits.dm | 43 ++++++++++++++----- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 12fedb3e76ee..5291ecd3aac6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -19,33 +19,54 @@ /obj/item/clothing/under/pants/blackjeans = 1, /obj/item/clothing/under/pants/black = 1, /obj/item/clothing/under/pants/camo = 1, - /obj/item/clothing/under/suit/sl = 1, /obj/item/clothing/under/suit/white = 1, /obj/item/clothing/under/suit/tan = 1, /obj/item/clothing/under/suit/black_really = 1, - /obj/item/clothing/under/suit/black_really/skirt = 1, /obj/item/clothing/under/suit/navy = 1, /obj/item/clothing/under/suit/burgundy = 1, /obj/item/clothing/under/suit/charcoal = 1, /obj/item/clothing/under/rank/civilian/lawyer/galaxy = 1, /obj/item/clothing/under/suit/black/skirt = 1, - /obj/item/clothing/under/rank/command/captain/suit/skirt = 1, - /obj/item/clothing/under/rank/command/head_of_personnel/suit/skirt = 1, /obj/item/clothing/under/suit/black = 1, - /obj/item/clothing/under/suit/checkered = 1, /obj/item/clothing/under/dress/sailor = 1, /obj/item/clothing/under/dress/striped = 1, - /obj/item/clothing/under/dress/skirt/purple = 1, /obj/item/clothing/under/dress/skirt/blue = 1, - /obj/item/clothing/under/dress/skirt/red = 1, - /obj/item/clothing/under/dress/skirt = 1, - /obj/item/clothing/under/dress/sundress = 1, - /obj/item/clothing/under/suit/dresssuit = 1, - /obj/item/clothing/under/suit/dresssuit/skirt = 1, /obj/item/clothing/under/syndicate/tacticool = 1, /obj/item/clothing/under/costume/maid = 1 ) ) + suit = pickweight(list( + /obj/item/clothing/suit/hooded/wintercoat = 1, + /obj/item/clothing/suit/jacket = 1, + /obj/item/clothing/suit/jacket/leather = 1, + /obj/item/clothing/suit/jacket/leather/overcoat = 1, + /obj/item/clothing/suit/jacket/leather/duster = 1, + /obj/item/clothing/suit/jacket/miljacket = 1, + /obj/item/clothing/suit/jacket/puffer = 1, + /obj/item/clothing/suit/gothcoat = 1, + /obj/item/clothing/suit/jacket/hoodie/black = 1, + /obj/item/clothing/suit/jacket/hoodie/red = 1, + /obj/item/clothing/suit/jacket/hoodie/blue = 1, + /obj/item/clothing/suit/jacket/hoodie/gray = 1, + /obj/item/clothing/suit/toggle/industrial = 1, + /obj/item/clothing/suit/toggle/hazard = 1, + /obj/item/clothing/suit/poncho/green = 1, + /obj/item/clothing/suit/apron/overalls = 1, + /obj/item/clothing/suit/ianshirt = 1 + ) + ) + shoes = pickweight(list( + /obj/item/clothing/shoes/laceup = 1, + /obj/item/clothing/shoes/sandal = 1, + /obj/item/clothing/shoes/winterboots = 1, + /obj/item/clothing/shoes/jackboots = 1, + /obj/item/clothing/shoes/workboots/mining = 1, + /obj/item/clothing/shoes/workboots = 1, + /obj/item/clothing/shoes/sneakers/black = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + /obj/item/clothing/shoes/sneakers/white = 1 + ) + ) /datum/outfit/generic name "Generic" From a3e9294e6ba9dc68980c920ba6bf631e4169b574 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:15:03 -0600 Subject: [PATCH 19/99] forgot the include --- .../hostile/mining_mobs/hivelord_outfits.dm | 32 ++++++++++++++++++- shiptest.dme | 1 + 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 5291ecd3aac6..25fb67bc8679 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -32,7 +32,6 @@ /obj/item/clothing/under/dress/striped = 1, /obj/item/clothing/under/dress/skirt/blue = 1, /obj/item/clothing/under/syndicate/tacticool = 1, - /obj/item/clothing/under/costume/maid = 1 ) ) suit = pickweight(list( @@ -67,6 +66,37 @@ /obj/item/clothing/shoes/sneakers/white = 1 ) ) + glasses = pickweight(list( + /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/regular/jamjar = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/cheapsuns = 1, + /obj/item/clothing/glasses/regular/hipster = 1, + /obj/item/clothing/glasses/cold = 1, + /obj/item/clothing/glasses/heat = 1, + /obj/item/clothing/glasses/orange = 1, + /obj/item/clothing/glasses/red = 1 + ) + ) + if(prob(50)) + gloves = pickweight(list( + /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/color/white = 1, + /obj/item/clothing/gloves/color/evening = 1, + ) + ) + if(prob(50)) + neck = pickweight(list( + /obj/item/clothing/neck/scarf/red = 1, + /obj/item/clothing/neck/scarf/green = 1, + /obj/item/clothing/neck/scarf/darkblue = 1, + /obj/item/clothing/neck/shemagh = 1, + /obj/item/clothing/neck/stripedredscarf = 1, + /obj/item/clothing/neck/stripedgreenscarf = 1, + /obj/item/clothing/neck/stripedbluescarf = 1 + ) + ) /datum/outfit/generic name "Generic" diff --git a/shiptest.dme b/shiptest.dme index ea4b5af13172..5d6b0c415129 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2717,6 +2717,7 @@ #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goldgrub.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm" From 94665b1c5923e75b5fc422919abe58385a1b20d0 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:24:19 -0600 Subject: [PATCH 20/99] dunno --- .../hostile/mining_mobs/hivelord_outfits.dm | 53 +++++++++++++------ 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 25fb67bc8679..90a6b94e17b2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -43,10 +43,6 @@ /obj/item/clothing/suit/jacket/miljacket = 1, /obj/item/clothing/suit/jacket/puffer = 1, /obj/item/clothing/suit/gothcoat = 1, - /obj/item/clothing/suit/jacket/hoodie/black = 1, - /obj/item/clothing/suit/jacket/hoodie/red = 1, - /obj/item/clothing/suit/jacket/hoodie/blue = 1, - /obj/item/clothing/suit/jacket/hoodie/gray = 1, /obj/item/clothing/suit/toggle/industrial = 1, /obj/item/clothing/suit/toggle/hazard = 1, /obj/item/clothing/suit/poncho/green = 1, @@ -66,19 +62,36 @@ /obj/item/clothing/shoes/sneakers/white = 1 ) ) - glasses = pickweight(list( - /obj/item/clothing/glasses/regular = 1, - /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/regular/jamjar = 1, - /obj/item/clothing/glasses/eyepatch = 1, - /obj/item/clothing/glasses/cheapsuns = 1, - /obj/item/clothing/glasses/regular/hipster = 1, - /obj/item/clothing/glasses/cold = 1, - /obj/item/clothing/glasses/heat = 1, - /obj/item/clothing/glasses/orange = 1, - /obj/item/clothing/glasses/red = 1 + if(prob(50)) + hat = pickweight(list( + /obj/item/clothing/head/hardhat = 1, + /obj/item/clothing/head/hardhat/orange = 1, + /obj/item/clothing/head/hardhat/dblue = 1, + /obj/item/clothing/head/beret = 1, + /obj/item/clothing/head/beret/grey = 1, + /obj/item/clothing/head/beret/ce = 1, + /obj/item/clothing/head/flatcap = 1, + /obj/item/clothing/head/beanie = 1, + /obj/item/clothing/head/foilhat = 1, + /obj/item/clothing/head/cowboy = 1, + /obj/item/clothing/head/pirate = 1, + /obj/item/clothing/head/trapper = 1 + ) + ) + if(prob(50)) + glasses = pickweight(list( + /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/regular/jamjar = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/cheapsuns = 1, + /obj/item/clothing/glasses/regular/hipster = 1, + /obj/item/clothing/glasses/cold = 1, + /obj/item/clothing/glasses/heat = 1, + /obj/item/clothing/glasses/orange = 1, + /obj/item/clothing/glasses/red = 1 + ) ) - ) if(prob(50)) gloves = pickweight(list( /obj/item/clothing/gloves/color/black = 1, @@ -97,6 +110,14 @@ /obj/item/clothing/neck/stripedbluescarf = 1 ) ) + back = pickweight(list( + /obj/item/storage/backpack = 1, + /obj/item/storage/backpack/satchel = 1, + /obj/item/storage/backpack/duffelbag = 1, + /obj/item/storage/backpack/messenger = 1, + /obj/item/storage/backpack/satchel/leather = 1 + ) + ) /datum/outfit/generic name "Generic" From 74ea55a0b95a88a068aa1d495484aee163124a48 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:29:06 -0600 Subject: [PATCH 21/99] fix --- .../hostile/mining_mobs/hivelord_outfits.dm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 90a6b94e17b2..05b59e0c6998 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -63,7 +63,7 @@ ) ) if(prob(50)) - hat = pickweight(list( + head = pickweight(list( /obj/item/clothing/head/hardhat = 1, /obj/item/clothing/head/hardhat/orange = 1, /obj/item/clothing/head/hardhat/dblue = 1, @@ -96,7 +96,6 @@ gloves = pickweight(list( /obj/item/clothing/gloves/color/black = 1, /obj/item/clothing/gloves/color/white = 1, - /obj/item/clothing/gloves/color/evening = 1, ) ) if(prob(50)) @@ -108,6 +107,13 @@ /obj/item/clothing/neck/stripedredscarf = 1, /obj/item/clothing/neck/stripedgreenscarf = 1, /obj/item/clothing/neck/stripedbluescarf = 1 + ) + ) + if(prob(50)) + mask = pickweight(list( + /obj/item/clothing/mask/balaclava = 1, + /obj/item/clothing/mask/bandana/red = 1, + ) ) back = pickweight(list( @@ -120,4 +126,3 @@ ) /datum/outfit/generic - name "Generic" From 7b67bbb11504211b0f1d8188a24ebd5feb172c85 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:42:38 -0600 Subject: [PATCH 22/99] i cant even build rn cause im laptop gaming --- .../client/loadout/loadout_accessories.dm | 5 + .../hostile/mining_mobs/hivelord.dm | 123 +------------ .../hostile/mining_mobs/hivelord_outfits.dm | 169 +++++++++++++++++- 3 files changed, 174 insertions(+), 123 deletions(-) diff --git a/code/modules/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm index b7f7944787db..1d60657c517d 100644 --- a/code/modules/client/loadout/loadout_accessories.dm +++ b/code/modules/client/loadout/loadout_accessories.dm @@ -81,6 +81,11 @@ description = "Standard hand coverings for everyday use." path = /obj/item/clothing/gloves/color/white +/datum/gear/accessory/gloves/fingerless + display_name = "fingerless gloves" + description = "Radical hand coverings for everyday use." + path = /obj/item/clothing/gloves/fingerless + /datum/gear/accessory/gloves/evening display_name = "evening gloves" description = "Excessively fancy elbow-length gloves." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 0dc589b3acd5..21e369ba0912 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -417,128 +417,7 @@ ) switch(type) if("Miner") - if(prob(2)) - mob_species = /datum/species/plasmaman - uniform = /obj/item/clothing/under/plasmaman - head = /obj/item/clothing/head/helmet/space/plasmaman - belt = /obj/item/tank/internals/plasmaman/belt - else - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland - if (prob(4)) - belt = pickweight(list( - /obj/item/storage/belt/mining = 2, - /obj/item/storage/belt/mining/alt = 2 - ) - ) - else if(prob(10)) - belt = pickweight(list( - /obj/item/pickaxe = 8, - /obj/item/pickaxe/mini = 4, - /obj/item/pickaxe/silver = 2, - /obj/item/pickaxe/diamond = 1, - /obj/item/gun/energy/kinetic_accelerator = 1 - ) - ) - else - belt = /obj/item/tank/internals/emergency_oxygen/engi - if(mob_species != /datum/species/lizard) - shoes = /obj/item/clothing/shoes/workboots/mining - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/explorer - if(prob(45)) - glasses = /obj/item/clothing/glasses/meson - if(prob(20)) - suit = pickweight(list( - /obj/item/clothing/suit/hooded/explorer = 18, - /obj/item/clothing/suit/hooded/cloak/goliath = 2 - ) - ) - if(prob(30)) - r_pocket = pickweight(list( - /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/damage = 1 - ) - ) - if(prob(10)) - l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/cooldown = 1 - ) - ) - if(prob(95)) - back = /obj/item/storage/backpack/explorer - backpack_contents = list(/obj/item/radio) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(30)) - backpack_contents += list( - /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( - 1 = 3, - 2 = 2, - 3 = 1 - ) - ) - ) - else - back = /obj/item/kinetic_crusher + outfit = /datum/outfit/generic/miner if("Plain") outfit = /datum/outfit/generic if("Oldminer") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 05b59e0c6998..95ab6c9e02eb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -95,6 +95,7 @@ if(prob(50)) gloves = pickweight(list( /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/fingerless = 1, /obj/item/clothing/gloves/color/white = 1, ) ) @@ -113,7 +114,8 @@ mask = pickweight(list( /obj/item/clothing/mask/balaclava = 1, /obj/item/clothing/mask/bandana/red = 1, - + /obj/item/clothing/mask/gas = 1, + /obj/item/clothing/mask/breath = 1, ) ) back = pickweight(list( @@ -124,5 +126,170 @@ /obj/item/storage/backpack/satchel/leather = 1 ) ) + backpack_contents += pickweight(list( + /obj/item/dice/d20, + /obj/item/lipstick/black, + /obj/item/lipstick, + /obj/item/clothing/mask/balaclava, + /obj/item/clothing/mask/vape, + /obj/item/clothing/mask/vape/cigar, + /obj/item/clothing/mask/bandana/red, + /obj/item/storage/book/bible, + /obj/item/reagent_containers/food/drinks/flask, + /obj/item/reagent_containers/food/drinks/britcup, + /obj/item/lighter/greyscale, + /obj/item/lighter, + /obj/item/toy/cards/deck, + /obj/item/toy/eightball, + /obj/item/storage/wallet, + /obj/item/paicard, + /obj/item/modular_computer/tablet/preset/cheap, + /obj/item/modular_computer/laptop/preset/civilian, + /obj/item/pen, + /obj/item/pen/fourcolor, + /obj/item/paper_bin, + /obj/item/cane, + /obj/item/radio, + /obj/item/toy/plush/lizardplushie, + /obj/item/toy/plush/snakeplushie, + /obj/item/toy/plush/moth, + /obj/item/toy/plush/hornet, + /obj/item/toy/plush/hornet/gay, + /obj/item/toy/plush/knight, + /obj/item/toy/plush/among, + /obj/item/dyespray, + /obj/item/table_bell/brass, + /obj/item/flashlight, + /obj/item/crowbar/red, + ) + ) /datum/outfit/generic + +/datum/outfit/generric/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(2)) + mob_species = /datum/species/plasmaman + uniform = /obj/item/clothing/under/plasmaman + head = /obj/item/clothing/head/helmet/space/plasmaman + belt = /obj/item/tank/internals/plasmaman/belt + else + uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland + if (prob(4)) + belt = pickweight(list( + /obj/item/storage/belt/mining = 2, + /obj/item/storage/belt/mining/alt = 2 + ) + ) + else if(prob(10)) + belt = pickweight(list( + /obj/item/pickaxe = 8, + /obj/item/pickaxe/mini = 4, + /obj/item/pickaxe/silver = 2, + /obj/item/pickaxe/diamond = 1, + /obj/item/gun/energy/kinetic_accelerator = 1 + ) + ) + else + belt = /obj/item/tank/internals/emergency_oxygen/engi + if(mob_species != /datum/species/lizard) + shoes = /obj/item/clothing/shoes/workboots/mining + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas/explorer + if(prob(45)) + glasses = /obj/item/clothing/glasses/meson + if(prob(20)) + suit = pickweight(list( + /obj/item/clothing/suit/hooded/explorer = 18, + /obj/item/clothing/suit/hooded/cloak/goliath = 2 + ) + ) + if(prob(30)) + r_pocket = pickweight(list( + /obj/item/stack/marker_beacon = 20, + /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/damage = 1 + ) + ) + if(prob(10)) + l_pocket = pickweight(list( + /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/cooldown = 1 + ) + ) + if(prob(95)) + back = /obj/item/storage/backpack/explorer + backpack_contents = list(/obj/item/radio) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite=3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) + ) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite = 3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) + ) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite = 3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) + ) + if(prob(30)) + backpack_contents += list( + /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( + 1 = 3, + 2 = 2, + 3 = 1 + ) + ) + ) + else + back = /obj/item/kinetic_crusher + backpack_contents = list() + +/datum/outfit/generic/miner From bcd7f00f278f1b1bd11535f750771e24f10371b9 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 08:55:02 -0600 Subject: [PATCH 23/99] good progress --- .../hostile/mining_mobs/hivelord.dm | 224 +---------------- .../hostile/mining_mobs/hivelord_outfits.dm | 236 ++++++++++++++++++ 2 files changed, 244 insertions(+), 216 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 21e369ba0912..5f5a4d837a0b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -410,8 +410,10 @@ ) ) var/type = pickweight(list( - "Miner" = 50, "Plain" = 40, + "Miner" = 40, + "Oldminer" = 10, + //faction stuff pick("Infiltrator", "Operative", "Soldier", "SRM") = 10 ) ) @@ -421,223 +423,13 @@ if("Plain") outfit = /datum/outfit/generic if("Oldminer") - suit = /obj/item/clothing/suit/hooded/explorer/old - mask = /obj/item/clothing/mask/gas/explorer/old - if(prob(95)) - glasses = /obj/item/clothing/glasses/meson - else - glasses = /obj/item/clothing/glasses/meson/night - suit_store = /obj/item/tank/internals/oxygen - gloves = /obj/item/clothing/gloves/explorer/old - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old - if(prob(85)) - back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. - backpack_contents = list() - for(var/count in 1 to 3) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(30)) - backpack_contents += list( - /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( - 1 = 3, - 2 = 2, - 3 = 1 - ) - ) - ) - else - back = /obj/item/kinetic_crusher/old - if(prob(30)) - belt = /obj/item/gun/energy/kinetic_accelerator/old - if(prob(30)) - r_pocket = pickweight(list( - /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/damage = 1 - ) - ) - if(prob(30)) - l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 5, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/cooldown = 1 - ) - ) + outfit = /datum/outfit/generic/oldminer if("Soldier") - mob_species = /datum/species/human - if(prob(90)) - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/sechailer - head = /obj/item/clothing/head/solgov/sonnensoldner - id = /obj/item/card/id/solgov - else - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/space/hardsuit/solgov - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - mask = /obj/item/clothing/mask/gas/sechailer/swat - id = /obj/item/card/id/solgov - if(prob(85)) - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/i = 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/advanced = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - else - back = pickweight(list( - /obj/item/energyhalberd = 5, - /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 - ) - ) - if(prob(25)) - belt = /obj/item/storage/belt/military - if(prob(50)) - r_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio/off = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/sunglasses = 3, - /obj/item/clothing/glasses/hud/health = 3, - /obj/item/clothing/glasses/hud/health/night = 1, - /obj/item/clothing/glasses/night = 2 - ) - ) - + outfit = /datum/outfit/generic/solgov/soldier if("Infiltrator") - uniform = /obj/item/clothing/under/syndicate/bloodred - gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator - suit = /obj/item/clothing/suit/armor/vest/infiltrator - head = /obj/item/clothing/head/helmet/infiltrator - shoes = /obj/item/clothing/shoes/combat/sneakboots - ears = /obj/item/radio/headset/syndicate - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/night = 2, - /obj/item/clothing/glasses/sunglasses = 3 - ) - ) - mask = /obj/item/clothing/mask/infiltrator - id = /obj/item/card/id/syndicate - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/i = 1 to 3) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/pen/sleepy = 3, - /obj/item/pen/edagger = 3, - /obj/item/reagent_containers/syringe/mulligan = 3, - /obj/item/suppressor = 5, - /obj/item/storage/box/syndie_kit/chameleon = 5, - /obj/item/grenade/smokebomb = 5, - /obj/item/grenade/flashbang = 5 - ) - ) - if(prob(70)) - backpack_contents += (list( - /obj/item/gun/ballistic/automatic/pistol/APS, - /obj/item/ammo_box/magazine/pistolm9mm - ) - ) - if(prob(25)) - r_pocket = pickweight(list( - /obj/item/chameleon = 1, - /obj/item/dnainjector/chameleonmut = 1, - ) - ) - if(prob(25)) - l_pocket = pickweight(list( - /obj/item/chameleon = 1, - /obj/item/dnainjector/chameleonmut = 1, - ) - ) + outfit = /datum/outfit/generic/syndicate/infiltrator if("Operative") - id_job = "Operative" - uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/combat - ears = /obj/item/radio/headset/syndicate - id = /obj/item/card/id/syndicate - r_pocket = /obj/item/tank/internals/emergency_oxygen - gloves = /obj/item/clothing/gloves/tackler/combat/insulated - if(prob(25)) - suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/tank/jetpack/oxygen - else if(prob(25)) - suit = /obj/item/clothing/suit/space/hardsuit/syndi - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/tank/jetpack/oxygen - else - suit = /obj/item/clothing/suit/armor/vest - mask = /obj/item/clothing/mask/gas - head = /obj/item/clothing/head/helmet/swat - back = /obj/item/storage/backpack + outfit = /datum/outfit/generic/syndicate/operative if("SRM") - uniform = /obj/item/clothing/under/suit/roumain - shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(50)) - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - else - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/winchester - r_pocket = /obj/item/book/manual/trickwines_4_brewers - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - back = /obj/item/storage/backpack/cultpack - backpack_contents = list() - if(prob(75)) - backpack_contents += list(/obj/item/ammo_box/c38_box = 1) - if(prob(75)) - backpack_contents += list(pick( - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) + outfit = /datum/outfit/generic/srm/hunter . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 95ab6c9e02eb..aa15072a5130 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -293,3 +293,239 @@ backpack_contents = list() /datum/outfit/generic/miner + +/datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + suit = /obj/item/clothing/suit/hooded/explorer/old + mask = /obj/item/clothing/mask/gas/explorer/old + if(prob(95)) + glasses = /obj/item/clothing/glasses/meson + else + glasses = /obj/item/clothing/glasses/meson/night + suit_store = /obj/item/tank/internals/oxygen + gloves = /obj/item/clothing/gloves/explorer/old + uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old + if(prob(85)) + back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. + backpack_contents = list() + for(var/count in 1 to 3) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite=3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) + ) + if(prob(30)) + backpack_contents += list( + /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( + 1 = 3, + 2 = 2, + 3 = 1 + ) + ) + ) + else + back = /obj/item/kinetic_crusher/old + if(prob(30)) + belt = /obj/item/gun/energy/kinetic_accelerator/old + if(prob(30)) + r_pocket = pickweight(list( + /obj/item/stack/marker_beacon = 20, + /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/damage = 1 + ) + ) + if(prob(30)) + l_pocket = pickweight(list( + /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/reagent_containers/hypospray/medipen/survival = 2, + /obj/item/borg/upgrade/modkit/cooldown = 1 + ) + ) +/datum/outfit/generic/oldminer + +/datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(90)) + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov + shoes = /obj/item/clothing/shoes/jackboots + gloves = /obj/item/clothing/gloves/color/black + mask = /obj/item/clothing/mask/gas/sechailer + head = /obj/item/clothing/head/solgov/sonnensoldner + id = /obj/item/card/id/solgov + else + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/space/hardsuit/solgov + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer/swat + id = /obj/item/card/id/solgov + if(prob(85)) + back = /obj/item/storage/backpack + backpack_contents = list() + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, + /obj/item/storage/firstaid/advanced = 1, + /obj/item/gun/ballistic/automatic/pistol/solgov = 1, + /obj/item/gps = 1, + /obj/item/stock_parts/cell/gun/upgraded = 2, + /obj/item/ammo_box/magazine/pistol556mm = 3, + /obj/item/desk_flag/solgov = 3, + /obj/item/stack/marker_beacon/ten = 3, + /obj/item/extinguisher/mini = 3, + /obj/item/kitchen/knife/combat = 3, + /obj/item/flashlight/seclite=3, + /obj/item/ammo_casing/shotgun = 3, + /obj/item/binoculars = 3, + /obj/item/clipboard = 3 + ) + ) + else + back = pickweight(list( + /obj/item/energyhalberd = 5, + /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 + ) + ) + if(prob(25)) + belt = /obj/item/storage/belt/military + if(prob(50)) + r_pocket = pickweight(list( + /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, + /obj/item/kitchen/knife/letter_opener = 3, + /obj/item/radio/off = 3, + /obj/item/grenade/syndieminibomb/concussion = 1, + /obj/item/melee/transforming/energy/ctf/solgov = 1 + ) + ) + if(prob(70)) + glasses = pickweight(list( + /obj/item/clothing/glasses/sunglasses = 3, + /obj/item/clothing/glasses/hud/health = 3, + /obj/item/clothing/glasses/hud/health/night = 1, + /obj/item/clothing/glasses/night = 2 + ) + ) + +/datum/outfit/generic/solgov/soldier + +/datum/outfit/generic/syndicate/infiltrator/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + uniform = /obj/item/clothing/under/syndicate/bloodred + gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator + suit = /obj/item/clothing/suit/armor/vest/infiltrator + head = /obj/item/clothing/head/helmet/infiltrator + shoes = /obj/item/clothing/shoes/combat/sneakboots + ears = /obj/item/radio/headset/syndicate + if(prob(70)) + glasses = pickweight(list( + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/night = 2, + /obj/item/clothing/glasses/sunglasses = 3 + ) + ) + mask = /obj/item/clothing/mask/infiltrator + id = /obj/item/card/id/syndicate + back = /obj/item/storage/backpack + backpack_contents = list() + for(var/i = 1 to 3) + if(prob(50)) + backpack_contents += pickweight(list( + /obj/item/pen/sleepy = 3, + /obj/item/pen/edagger = 3, + /obj/item/reagent_containers/syringe/mulligan = 3, + /obj/item/suppressor = 5, + /obj/item/storage/box/syndie_kit/chameleon = 5, + /obj/item/grenade/smokebomb = 5, + /obj/item/grenade/flashbang = 5 + ) + ) + if(prob(70)) + backpack_contents += (list( + /obj/item/gun/ballistic/automatic/pistol/APS, + /obj/item/ammo_box/magazine/pistolm9mm + ) + ) + if(prob(25)) + r_pocket = pickweight(list( + /obj/item/chameleon = 1, + /obj/item/dnainjector/chameleonmut = 1, + ) + ) + if(prob(25)) + l_pocket = pickweight(list( + /obj/item/chameleon = 1, + /obj/item/dnainjector/chameleonmut = 1, + ) + ) + +/datum/outfit/generic/syndicate/infiltrator + +/datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) + id_job = "Operative" + uniform = /obj/item/clothing/under/syndicate + shoes = /obj/item/clothing/shoes/combat + ears = /obj/item/radio/headset/syndicate + id = /obj/item/card/id/syndicate + r_pocket = /obj/item/tank/internals/emergency_oxygen + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + if(prob(25)) + suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/tank/jetpack/oxygen + else if(prob(25)) + suit = /obj/item/clothing/suit/space/hardsuit/syndi + mask = /obj/item/clothing/mask/gas/syndicate + back = /obj/item/tank/jetpack/oxygen + else + suit = /obj/item/clothing/suit/armor/vest + mask = /obj/item/clothing/mask/gas + head = /obj/item/clothing/head/helmet/swat + back = /obj/item/storage/backpack + +/datum/outfit/generic/syndicate/operative + +/datum/outfit/generic/srm/hunter/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + uniform = /obj/item/clothing/under/suit/roumain + shoes = /obj/item/clothing/shoes/workboots/mining + if(prob(50)) + suit = /obj/item/clothing/suit/armor/roumain/shadow + head = /obj/item/clothing/head/cowboy/sec/roumain/shadow + else + suit = /obj/item/clothing/suit/armor/roumain + head = /obj/item/clothing/head/cowboy/sec/roumain + if(prob(25)) + suit_store = /obj/item/gun/ballistic/shotgun/winchester + r_pocket = /obj/item/book/manual/trickwines_4_brewers + belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) + back = /obj/item/storage/backpack/cultpack + backpack_contents = list() + if(prob(75)) + backpack_contents += list(/obj/item/ammo_box/c38_box = 1) + if(prob(75)) + backpack_contents += list(pick( + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) + +/datum/outfit/generic/srm/hunter From cd937a1d3708f92acccc9b2dacb0ed0d4956d986 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:00:05 -0600 Subject: [PATCH 24/99] better pick --- .../simple_animal/hostile/mining_mobs/hivelord.dm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 5f5a4d837a0b..f81957f02315 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -410,11 +410,21 @@ ) ) var/type = pickweight(list( + //independent "Plain" = 40, "Miner" = 40, "Oldminer" = 10, - //faction stuff - pick("Infiltrator", "Operative", "Soldier", "SRM") = 10 + pick( + //solgov + "Solgov", + //cmm + //syndi + pick("Infiltrator", "Operative"), + //nanotrasen + //inteq + //srm + "SRM", + ) = 10 ) ) switch(type) From b790db6d071e76bc2a272195d345193b9b0224a9 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:00:30 -0600 Subject: [PATCH 25/99] oop --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index f81957f02315..6d20b955ecb1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -416,7 +416,7 @@ "Oldminer" = 10, pick( //solgov - "Solgov", + "Soldier", //cmm //syndi pick("Infiltrator", "Operative"), From 22c8ec887af7beda28e136e95b88afabc79f62cd Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:03:03 -0600 Subject: [PATCH 26/99] shrug --- .../hostile/mining_mobs/hivelord_outfits.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index aa15072a5130..27cec2b51821 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -168,11 +168,6 @@ /datum/outfit/generric/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(prob(2)) - mob_species = /datum/species/plasmaman - uniform = /obj/item/clothing/under/plasmaman - head = /obj/item/clothing/head/helmet/space/plasmaman - belt = /obj/item/tank/internals/plasmaman/belt else uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland if (prob(4)) @@ -192,8 +187,6 @@ ) else belt = /obj/item/tank/internals/emergency_oxygen/engi - if(mob_species != /datum/species/lizard) - shoes = /obj/item/clothing/shoes/workboots/mining gloves = /obj/item/clothing/gloves/color/black mask = /obj/item/clothing/mask/gas/explorer if(prob(45)) @@ -306,7 +299,7 @@ gloves = /obj/item/clothing/gloves/explorer/old uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old if(prob(85)) - back = /obj/item/storage/backpack/explorer //someone could totally make these backpacks a subtype and just have them be there. It'd cut down this file size a bit. + back = /obj/item/storage/backpack/explorer backpack_contents = list() for(var/count in 1 to 3) if(prob(70)) @@ -478,7 +471,6 @@ /datum/outfit/generic/syndicate/infiltrator /datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) - id_job = "Operative" uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat ears = /obj/item/radio/headset/syndicate From 9a4dddc0c182f93b1a46cf80e7a5257a2b6ca67a Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:09:49 -0600 Subject: [PATCH 27/99] fix --- .../hostile/mining_mobs/hivelord_outfits.dm | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 27cec2b51821..fca5a269b50f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -166,27 +166,26 @@ /datum/outfit/generic -/datum/outfit/generric/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) +/datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - else - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland - if (prob(4)) - belt = pickweight(list( - /obj/item/storage/belt/mining = 2, - /obj/item/storage/belt/mining/alt = 2 - ) + uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland + if (prob(4)) + belt = pickweight(list( + /obj/item/storage/belt/mining = 2, + /obj/item/storage/belt/mining/alt = 2 ) - else if(prob(10)) - belt = pickweight(list( - /obj/item/pickaxe = 8, - /obj/item/pickaxe/mini = 4, - /obj/item/pickaxe/silver = 2, - /obj/item/pickaxe/diamond = 1, - /obj/item/gun/energy/kinetic_accelerator = 1 - ) + ) + else if(prob(10)) + belt = pickweight(list( + /obj/item/pickaxe = 8, + /obj/item/pickaxe/mini = 4, + /obj/item/pickaxe/silver = 2, + /obj/item/pickaxe/diamond = 1, + /obj/item/gun/energy/kinetic_accelerator = 1 ) - else - belt = /obj/item/tank/internals/emergency_oxygen/engi + ) + else + belt = /obj/item/tank/internals/emergency_oxygen/engi gloves = /obj/item/clothing/gloves/color/black mask = /obj/item/clothing/mask/gas/explorer if(prob(45)) From 7762e54e99f40df97ead2a45a9ffd7923520cc71 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:21:35 -0600 Subject: [PATCH 28/99] guns --- .../hostile/mining_mobs/hivelord_outfits.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index fca5a269b50f..97dc0be75b8b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -118,6 +118,15 @@ /obj/item/clothing/mask/breath = 1, ) ) + if (prob(5)) + belt = pickweight(list( + /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, + /obj/item/gun/ballistic/automatic/pistol/commander = 1, + /obj/item/gun/ballistic/automatic/pistol = 1, + /obj/item/gun/ballistic/revolver = 1, + /obj/item/gun/ballistic/revolver/pepperbox = 1, + ) + ) back = pickweight(list( /obj/item/storage/backpack = 1, /obj/item/storage/backpack/satchel = 1, From 161c968d3808eb4c8db8ae2490af4393c392432b Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 09:40:12 -0600 Subject: [PATCH 29/99] engineer --- .../hostile/mining_mobs/hivelord_outfits.dm | 101 ++++++++---------- 1 file changed, 45 insertions(+), 56 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 97dc0be75b8b..79395f5e431b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -175,6 +175,32 @@ /datum/outfit/generic +/datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/engineering/engineer, /obj/item/clothing/under/rank/engineering/engineer/hazard, /obj/item/clothing/under/rank/security/officer/military/eng) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/hazard, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/engineering) + if(prob(75)) + gloves = pick(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow/old) + if(prob(75)) + belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) + if(prob(50)) + glasses = /obj/item/clothing/glasses/welding + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/engine + if(prob(25)) + mask = /obj/item/clothing/mask/breath + suit = /obj/item/clothing/suit/space/engineer + head = /obj/item/clothing/head/helmet/space/light/engineer + suit_store = /obj/item/tank/internals/oxygen + head = null + internals_slot = ITEM_SLOT_SUITSTORE + if(prob(10)) + back = /obj/item/fireaxe + +/datum/outfit/generic/engineer + /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland @@ -223,63 +249,26 @@ if(prob(95)) back = /obj/item/storage/backpack/explorer backpack_contents = list(/obj/item/radio) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite = 3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 + for(var/count in 1 to 3) + if(prob(70)) + backpack_contents += pickweight(list( + /obj/item/borg/upgrade/modkit/damage = 1, + /obj/item/borg/upgrade/modkit/trigger_guard = 1, + /obj/item/soap/nanotrasen = 1, + /obj/item/wormhole_jaunter = 1, + /obj/item/fulton_core = 1, + /obj/item/extraction_pack = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 3, + /obj/item/hivelordstabilizer = 2, + /obj/item/stack/marker_beacon/ten = 2, + /obj/item/mining_scanner = 2, + /obj/item/extinguisher/mini = 2, + /obj/item/kitchen/knife/combat/survival = 3, + /obj/item/flashlight/seclite = 3, + /obj/item/stack/sheet/sinew = 3, + /obj/item/stack/sheet/bone = 3 + ) ) - ) if(prob(30)) backpack_contents += list( /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( From 9d809d5a097d54b34941bb269de89dde9001e7bd Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 10:01:20 -0600 Subject: [PATCH 30/99] starting to think i can shrink the hivelord code --- .../hostile/mining_mobs/hivelord.dm | 10 ++++++-- .../hostile/mining_mobs/hivelord_outfits.dm | 24 ++++++++++++------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 6d20b955ecb1..c5fa03a9dca6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -411,8 +411,9 @@ ) var/type = pickweight(list( //independent - "Plain" = 40, "Miner" = 40, + "Engi" = 20 + "Generic" = 20, "Oldminer" = 10, pick( //solgov @@ -422,6 +423,7 @@ pick("Infiltrator", "Operative"), //nanotrasen //inteq + "Inteq Engi", //srm "SRM", ) = 10 @@ -430,7 +432,9 @@ switch(type) if("Miner") outfit = /datum/outfit/generic/miner - if("Plain") + if("Engi") + outfit = /datum/outfit/generic/engineer/ + if("Generic") outfit = /datum/outfit/generic if("Oldminer") outfit = /datum/outfit/generic/oldminer @@ -440,6 +444,8 @@ outfit = /datum/outfit/generic/syndicate/infiltrator if("Operative") outfit = /datum/outfit/generic/syndicate/operative + if("Inteq Engi") + outfit = /datum/outfit/generic/engineer/inteq if("SRM") outfit = /datum/outfit/generic/srm/hunter . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 79395f5e431b..fd513d40e813 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -1,8 +1,8 @@ /datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() uniform = pickweight(list( - /obj/item/clothing/under/utility = 1, - /obj/item/clothing/under/utility/skirt = 1, + /obj/item/clothing/under/utility = 5, + /obj/item/clothing/under/utility/skirt = 5, /obj/item/clothing/under/color/black = 1, /obj/item/clothing/under/color/white = 1, /obj/item/clothing/under/color/random = 1, @@ -189,18 +189,24 @@ glasses = /obj/item/clothing/glasses/welding if(prob(75)) accessory = /obj/item/clothing/accessory/armband/engine - if(prob(25)) - mask = /obj/item/clothing/mask/breath - suit = /obj/item/clothing/suit/space/engineer - head = /obj/item/clothing/head/helmet/space/light/engineer - suit_store = /obj/item/tank/internals/oxygen - head = null - internals_slot = ITEM_SLOT_SUITSTORE if(prob(10)) back = /obj/item/fireaxe /datum/outfit/generic/engineer +/datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/syndicate/inteq/artificer, /obj/item/clothing/under/syndicate/inteq) + if(prob(75)) + head = pick(/obj/item/clothing/head/hardhat/white, /obj/item/clothing/head/soft/inteq) + if(prob(75)) + shoes = /obj/item/clothing/shoes/combat + if(prob(75)) + back = /obj/item/storage/backpack/messenger/inteq + +/datum/outfit/generic/engineer/inteq + /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland From f5db127b3842da15625462c26e007c5417c5d351 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 10:06:41 -0600 Subject: [PATCH 31/99] need to trim the size of this pick --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index fd513d40e813..bd9e2044c3a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -135,7 +135,7 @@ /obj/item/storage/backpack/satchel/leather = 1 ) ) - backpack_contents += pickweight(list( + backpack_contents += pick( /obj/item/dice/d20, /obj/item/lipstick/black, /obj/item/lipstick, @@ -171,7 +171,6 @@ /obj/item/flashlight, /obj/item/crowbar/red, ) - ) /datum/outfit/generic From b040867f5a76afa05d9edf99064d587804429f72 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 10:21:11 -0600 Subject: [PATCH 32/99] blind --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index c5fa03a9dca6..4526b41f06ee 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -412,7 +412,7 @@ var/type = pickweight(list( //independent "Miner" = 40, - "Engi" = 20 + "Engi" = 20, "Generic" = 20, "Oldminer" = 10, pick( From 9c6aa8bdc7e8000328fc69ee4a84c61d2b167e0b Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 10:21:54 -0600 Subject: [PATCH 33/99] there name is so cool..... --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 4526b41f06ee..6dfc1563d1fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -423,7 +423,7 @@ pick("Infiltrator", "Operative"), //nanotrasen //inteq - "Inteq Engi", + "Artificer", //srm "SRM", ) = 10 @@ -444,7 +444,7 @@ outfit = /datum/outfit/generic/syndicate/infiltrator if("Operative") outfit = /datum/outfit/generic/syndicate/operative - if("Inteq Engi") + if("Artificer") outfit = /datum/outfit/generic/engineer/inteq if("SRM") outfit = /datum/outfit/generic/srm/hunter From bed830bb1397f505710e65e52bc0d8b5cd31334f Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 10:31:14 -0600 Subject: [PATCH 34/99] minor tweaks --- .../hostile/mining_mobs/hivelord_outfits.dm | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index bd9e2044c3a4..a8b4412d144b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -137,16 +137,10 @@ ) backpack_contents += pick( /obj/item/dice/d20, - /obj/item/lipstick/black, /obj/item/lipstick, - /obj/item/clothing/mask/balaclava, /obj/item/clothing/mask/vape, /obj/item/clothing/mask/vape/cigar, - /obj/item/clothing/mask/bandana/red, - /obj/item/storage/book/bible, /obj/item/reagent_containers/food/drinks/flask, - /obj/item/reagent_containers/food/drinks/britcup, - /obj/item/lighter/greyscale, /obj/item/lighter, /obj/item/toy/cards/deck, /obj/item/toy/eightball, @@ -154,18 +148,19 @@ /obj/item/paicard, /obj/item/modular_computer/tablet/preset/cheap, /obj/item/modular_computer/laptop/preset/civilian, - /obj/item/pen, /obj/item/pen/fourcolor, /obj/item/paper_bin, /obj/item/cane, /obj/item/radio, - /obj/item/toy/plush/lizardplushie, - /obj/item/toy/plush/snakeplushie, - /obj/item/toy/plush/moth, - /obj/item/toy/plush/hornet, - /obj/item/toy/plush/hornet/gay, - /obj/item/toy/plush/knight, - /obj/item/toy/plush/among, + pick( + /obj/item/toy/plush/lizardplushie, + /obj/item/toy/plush/snakeplushie, + /obj/item/toy/plush/moth, + /obj/item/toy/plush/hornet, + /obj/item/toy/plush/hornet/gay, + /obj/item/toy/plush/knight, + /obj/item/toy/plush/among, + ), /obj/item/dyespray, /obj/item/table_bell/brass, /obj/item/flashlight, @@ -185,6 +180,8 @@ if(prob(75)) belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) if(prob(50)) + head = /obj/item/clothimg/head/welding + else if(prob(50)) glasses = /obj/item/clothing/glasses/welding if(prob(75)) accessory = /obj/item/clothing/accessory/armband/engine From 9503b9861b13de2f832c7532187b6c7b29c64e58 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 11:00:01 -0600 Subject: [PATCH 35/99] names and stuf --- .../hostile/mining_mobs/hivelord_outfits.dm | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index a8b4412d144b..6257168f7f05 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -168,6 +168,7 @@ ) /datum/outfit/generic + name = "Generic" /datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -202,6 +203,7 @@ back = /obj/item/storage/backpack/messenger/inteq /datum/outfit/generic/engineer/inteq + name = "Artificer" /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -285,6 +287,7 @@ backpack_contents = list() /datum/outfit/generic/miner + name = "Miner" /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -349,6 +352,7 @@ ) ) /datum/outfit/generic/oldminer + name = "Old Miner" /datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -416,6 +420,7 @@ ) /datum/outfit/generic/solgov/soldier + name = "Soldier" /datum/outfit/generic/syndicate/infiltrator/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -468,6 +473,7 @@ ) /datum/outfit/generic/syndicate/infiltrator + name = "Infiltrator" /datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) uniform = /obj/item/clothing/under/syndicate @@ -491,22 +497,34 @@ back = /obj/item/storage/backpack /datum/outfit/generic/syndicate/operative + name = "Operative" -/datum/outfit/generic/srm/hunter/pre_equip(mob/living/carbon/human/H, visualsOnly) +/datum/outfit/generic/srm/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() uniform = /obj/item/clothing/under/suit/roumain shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(50)) - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - else - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(25)) - suit_store = /obj/item/gun/ballistic/shotgun/winchester + if(prob(75)) + back = /obj/item/storage/backpack/cultpack + if(prob(75)) + belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) + +/datum/outfit/generic/srm + +/datum/outfit/generic/srm/shadow/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + suit = /obj/item/clothing/suit/armor/roumain/shadow + head = /obj/item/clothing/head/cowboy/sec/roumain/shadow + +/datum/outfit/generic/srm/shadow + name = "Shadow" + +/datum/outfit/generic/srm/hunter/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + suit = /obj/item/clothing/suit/armor/roumain + head = /obj/item/clothing/head/cowboy/sec/roumain + if(prob(75)) + suit_store = pickweight(list(/obj/item/gun/ballistic/shotgun/winchester = 9, /obj/item/gun/ballistic/shotgun/winchester = 1)) r_pocket = /obj/item/book/manual/trickwines_4_brewers - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - back = /obj/item/storage/backpack/cultpack backpack_contents = list() if(prob(75)) backpack_contents += list(/obj/item/ammo_box/c38_box = 1) From 52ceb1ae5c1e1f1479055f0ea71cbd670e3b199f Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 29 Nov 2023 12:02:26 -0600 Subject: [PATCH 36/99] hm plans in the works --- .../hostile/mining_mobs/hivelord.dm | 33 ++++++++++++------- .../hostile/mining_mobs/hivelord_outfits.dm | 30 +++++++++++++---- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 6dfc1563d1fe..6246fb0205d4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -410,21 +410,30 @@ ) ) var/type = pickweight(list( - //independent + //independent// "Miner" = 40, - "Engi" = 20, - "Generic" = 20, - "Oldminer" = 10, + //"Security" = 10 + "Assistant" = 10, + "Engineer" = 5, + //"Doctor" = 5, + //"Scientist" = 5, + //"Cargo" = 5, + //I dont like this guy, + "Oldminer" = 10 + pick( - //solgov + /*I think imma each faction have a minor and major outfit + 10% chance for the major + Both should reflect the factions strengths if convinent*/ + //solgov// "Soldier", - //cmm - //syndi + //cmm// + //syndi// pick("Infiltrator", "Operative"), - //nanotrasen - //inteq + //nanotrasen// + //inteq// "Artificer", - //srm + //srm// "SRM", ) = 10 ) @@ -432,9 +441,9 @@ switch(type) if("Miner") outfit = /datum/outfit/generic/miner - if("Engi") + if("Engineer") outfit = /datum/outfit/generic/engineer/ - if("Generic") + if("Assistant") outfit = /datum/outfit/generic if("Oldminer") outfit = /datum/outfit/generic/oldminer diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 6257168f7f05..e118fe1d9bb1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -168,7 +168,7 @@ ) /datum/outfit/generic - name = "Generic" + name = "Generic (Legion)" /datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -181,15 +181,23 @@ if(prob(75)) belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) if(prob(50)) - head = /obj/item/clothimg/head/welding + head = /obj/item/clothing/head/welding else if(prob(50)) glasses = /obj/item/clothing/glasses/welding if(prob(75)) accessory = /obj/item/clothing/accessory/armband/engine + if(prob(75)) + back = pick( + /obj/item/storage/backpack/industrial, + /obj/item/storage/backpack/satchel/eng, + /obj/item/storage/backpack/duffelbag/engineering, + /obj/item/storage/backpack/messenger/engi + ) if(prob(10)) back = /obj/item/fireaxe /datum/outfit/generic/engineer + name = "Mechanic (Legion)" /datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -203,7 +211,17 @@ back = /obj/item/storage/backpack/messenger/inteq /datum/outfit/generic/engineer/inteq - name = "Artificer" + name = "Artificer (Legion)" + + +/datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/medblue +/datum/outfit/generic/doctor + name = "Medical Doctor (Legion)" /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -252,7 +270,6 @@ ) if(prob(95)) back = /obj/item/storage/backpack/explorer - backpack_contents = list(/obj/item/radio) for(var/count in 1 to 3) if(prob(70)) backpack_contents += pickweight(list( @@ -287,7 +304,7 @@ backpack_contents = list() /datum/outfit/generic/miner - name = "Miner" + name = "Miner (Legion)" /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -302,7 +319,6 @@ uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old if(prob(85)) back = /obj/item/storage/backpack/explorer - backpack_contents = list() for(var/count in 1 to 3) if(prob(70)) backpack_contents += pickweight(list( @@ -352,7 +368,7 @@ ) ) /datum/outfit/generic/oldminer - name = "Old Miner" + name = "Old Miner (Legion)" /datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() From 0908bf927feda3ad506b5e011a840296bc202766 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 29 Nov 2023 17:26:31 -0600 Subject: [PATCH 37/99] testing it and it all seems to be functinal --- .../simple_animal/hostile/mining_mobs/hivelord.dm | 8 +++----- .../hostile/mining_mobs/hivelord_outfits.dm | 10 +--------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 6246fb0205d4..2a55cffb8ae6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -410,17 +410,14 @@ ) ) var/type = pickweight(list( - //independent// "Miner" = 40, - //"Security" = 10 "Assistant" = 10, "Engineer" = 5, //"Doctor" = 5, //"Scientist" = 5, //"Cargo" = 5, //I dont like this guy, - "Oldminer" = 10 - + "Oldminer" = 10, pick( /*I think imma each faction have a minor and major outfit 10% chance for the major @@ -438,11 +435,12 @@ ) = 10 ) ) + switch(type) if("Miner") outfit = /datum/outfit/generic/miner if("Engineer") - outfit = /datum/outfit/generic/engineer/ + outfit = /datum/outfit/generic/engineer if("Assistant") outfit = /datum/outfit/generic if("Oldminer") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index e118fe1d9bb1..037eadf5d588 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -146,8 +146,6 @@ /obj/item/toy/eightball, /obj/item/storage/wallet, /obj/item/paicard, - /obj/item/modular_computer/tablet/preset/cheap, - /obj/item/modular_computer/laptop/preset/civilian, /obj/item/pen/fourcolor, /obj/item/paper_bin, /obj/item/cane, @@ -187,12 +185,7 @@ if(prob(75)) accessory = /obj/item/clothing/accessory/armband/engine if(prob(75)) - back = pick( - /obj/item/storage/backpack/industrial, - /obj/item/storage/backpack/satchel/eng, - /obj/item/storage/backpack/duffelbag/engineering, - /obj/item/storage/backpack/messenger/engi - ) + back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) if(prob(10)) back = /obj/item/fireaxe @@ -213,7 +206,6 @@ /datum/outfit/generic/engineer/inteq name = "Artificer (Legion)" - /datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(prob(75)) From 9a269f522bdd58a2452bab590dbbeedc8079ce42 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 29 Nov 2023 17:47:17 -0600 Subject: [PATCH 38/99] agh --- .../hostile/mining_mobs/hivelord_outfits.dm | 132 +++++++++--------- 1 file changed, 65 insertions(+), 67 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 037eadf5d588..5dfdfcd6fbac 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -50,6 +50,30 @@ /obj/item/clothing/suit/ianshirt = 1 ) ) + back = pickweight(list( + /obj/item/storage/backpack = 1, + /obj/item/storage/backpack/satchel = 1, + /obj/item/storage/backpack/duffelbag = 1, + /obj/item/storage/backpack/messenger = 1, + /obj/item/storage/backpack/satchel/leather = 1 + ) + ) + if (prob(25)) + belt = pickweight(list( + /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, + /obj/item/gun/ballistic/automatic/pistol/commander = 1, + /obj/item/gun/ballistic/automatic/pistol = 1, + /obj/item/gun/ballistic/revolver = 1, + /obj/item/gun/ballistic/revolver/pepperbox = 1, + ) + ) + if(prob(50)) + gloves = pickweight(list( + /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/fingerless = 1, + /obj/item/clothing/gloves/color/white = 1, + ) + ) shoes = pickweight(list( /obj/item/clothing/shoes/laceup = 1, /obj/item/clothing/shoes/sandal = 1, @@ -79,24 +103,11 @@ ) ) if(prob(50)) - glasses = pickweight(list( - /obj/item/clothing/glasses/regular = 1, - /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/regular/jamjar = 1, - /obj/item/clothing/glasses/eyepatch = 1, - /obj/item/clothing/glasses/cheapsuns = 1, - /obj/item/clothing/glasses/regular/hipster = 1, - /obj/item/clothing/glasses/cold = 1, - /obj/item/clothing/glasses/heat = 1, - /obj/item/clothing/glasses/orange = 1, - /obj/item/clothing/glasses/red = 1 - ) - ) - if(prob(50)) - gloves = pickweight(list( - /obj/item/clothing/gloves/color/black = 1, - /obj/item/clothing/gloves/fingerless = 1, - /obj/item/clothing/gloves/color/white = 1, + mask = pickweight(list( + /obj/item/clothing/mask/balaclava = 1, + /obj/item/clothing/mask/bandana/red = 1, + /obj/item/clothing/mask/gas = 1, + /obj/item/clothing/mask/breath = 1, ) ) if(prob(50)) @@ -111,59 +122,45 @@ ) ) if(prob(50)) - mask = pickweight(list( - /obj/item/clothing/mask/balaclava = 1, - /obj/item/clothing/mask/bandana/red = 1, - /obj/item/clothing/mask/gas = 1, - /obj/item/clothing/mask/breath = 1, + glasses = pickweight(list( + /obj/item/clothing/glasses/regular = 1, + /obj/item/clothing/glasses/regular/circle = 1, + /obj/item/clothing/glasses/regular/jamjar = 1, + /obj/item/clothing/glasses/eyepatch = 1, + /obj/item/clothing/glasses/cheapsuns = 1, + /obj/item/clothing/glasses/regular/hipster = 1, + /obj/item/clothing/glasses/cold = 1, + /obj/item/clothing/glasses/heat = 1, + /obj/item/clothing/glasses/orange = 1, + /obj/item/clothing/glasses/red = 1 ) ) - if (prob(5)) - belt = pickweight(list( - /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, - /obj/item/gun/ballistic/automatic/pistol/commander = 1, - /obj/item/gun/ballistic/automatic/pistol = 1, - /obj/item/gun/ballistic/revolver = 1, - /obj/item/gun/ballistic/revolver/pepperbox = 1, + r_pocket = /obj/item/tank/internals/emergency_oxygen + l_pocket = /obj/item/radio + id = /obj/item/card/id + for(var/count in 1 to 3) + backpack_contents += pickweight(list( + /obj/item/dice/d20 = 1, + /obj/item/lipstick = 1, + /obj/item/clothing/mask/vape = 1, + /obj/item/clothing/mask/vape/cigar = 1, + /obj/item/reagent_containers/food/drinks/flask = 1, + /obj/item/lighter = 1, + /obj/item/toy/cards/deck = 1, + /obj/item/toy/eightball = 1, + /obj/item/storage/wallet = 1, + /obj/item/paicard = 1, + /obj/item/pen/fourcolor = 1, + /obj/item/paper_bin = 1, + /obj/item/cane = 1, + /obj/item/radio = 1, + /obj/item/dyespray = 1, + /obj/item/table_bell/brass = 1, + /obj/item/flashlight = 1, + /obj/item/crowbar/red = 1 ) ) - back = pickweight(list( - /obj/item/storage/backpack = 1, - /obj/item/storage/backpack/satchel = 1, - /obj/item/storage/backpack/duffelbag = 1, - /obj/item/storage/backpack/messenger = 1, - /obj/item/storage/backpack/satchel/leather = 1 - ) - ) - backpack_contents += pick( - /obj/item/dice/d20, - /obj/item/lipstick, - /obj/item/clothing/mask/vape, - /obj/item/clothing/mask/vape/cigar, - /obj/item/reagent_containers/food/drinks/flask, - /obj/item/lighter, - /obj/item/toy/cards/deck, - /obj/item/toy/eightball, - /obj/item/storage/wallet, - /obj/item/paicard, - /obj/item/pen/fourcolor, - /obj/item/paper_bin, - /obj/item/cane, - /obj/item/radio, - pick( - /obj/item/toy/plush/lizardplushie, - /obj/item/toy/plush/snakeplushie, - /obj/item/toy/plush/moth, - /obj/item/toy/plush/hornet, - /obj/item/toy/plush/hornet/gay, - /obj/item/toy/plush/knight, - /obj/item/toy/plush/among, - ), - /obj/item/dyespray, - /obj/item/table_bell/brass, - /obj/item/flashlight, - /obj/item/crowbar/red, - ) + box = /obj/item/storage/box/survival /datum/outfit/generic name = "Generic (Legion)" @@ -484,6 +481,7 @@ name = "Infiltrator" /datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat ears = /obj/item/radio/headset/syndicate From 945e93f7410fdc349aaede9ae26be3553db8512d Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 29 Nov 2023 18:42:25 -0600 Subject: [PATCH 39/99] some more stufg --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 5dfdfcd6fbac..879c4c8a7200 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -121,6 +121,7 @@ /obj/item/clothing/neck/stripedbluescarf = 1 ) ) + ears = pick(/obj/item/radio/headset, /obj/item/radio/headset/alt) if(prob(50)) glasses = pickweight(list( /obj/item/clothing/glasses/regular = 1, @@ -138,6 +139,7 @@ r_pocket = /obj/item/tank/internals/emergency_oxygen l_pocket = /obj/item/radio id = /obj/item/card/id + backpack_contents = list() for(var/count in 1 to 3) backpack_contents += pickweight(list( /obj/item/dice/d20 = 1, From 2d9b84c739a7cc7087a124a36e2ba6c8094b43e9 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 29 Nov 2023 22:22:50 -0600 Subject: [PATCH 40/99] put yo shirt on... --- .../hostile/mining_mobs/hivelord_outfits.dm | 60 +++++++------------ 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 879c4c8a7200..40e21cf2ed7c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -6,19 +6,6 @@ /obj/item/clothing/under/color/black = 1, /obj/item/clothing/under/color/white = 1, /obj/item/clothing/under/color/random = 1, - /obj/item/clothing/under/shorts/black = 1, - /obj/item/clothing/under/shorts/grey = 1, - /obj/item/clothing/under/shorts/blue = 1, - /obj/item/clothing/under/shorts/green = 1, - /obj/item/clothing/under/pants/jeans = 1, - /obj/item/clothing/under/pants/khaki = 1, - /obj/item/clothing/under/pants/tan = 1, - /obj/item/clothing/under/pants/white = 1, - /obj/item/clothing/under/pants/red = 1, - /obj/item/clothing/under/pants/track = 1, - /obj/item/clothing/under/pants/blackjeans = 1, - /obj/item/clothing/under/pants/black = 1, - /obj/item/clothing/under/pants/camo = 1, /obj/item/clothing/under/suit/white = 1, /obj/item/clothing/under/suit/tan = 1, /obj/item/clothing/under/suit/black_really = 1, @@ -46,8 +33,6 @@ /obj/item/clothing/suit/toggle/industrial = 1, /obj/item/clothing/suit/toggle/hazard = 1, /obj/item/clothing/suit/poncho/green = 1, - /obj/item/clothing/suit/apron/overalls = 1, - /obj/item/clothing/suit/ianshirt = 1 ) ) back = pickweight(list( @@ -140,32 +125,31 @@ l_pocket = /obj/item/radio id = /obj/item/card/id backpack_contents = list() - for(var/count in 1 to 3) - backpack_contents += pickweight(list( - /obj/item/dice/d20 = 1, - /obj/item/lipstick = 1, - /obj/item/clothing/mask/vape = 1, - /obj/item/clothing/mask/vape/cigar = 1, - /obj/item/reagent_containers/food/drinks/flask = 1, - /obj/item/lighter = 1, - /obj/item/toy/cards/deck = 1, - /obj/item/toy/eightball = 1, - /obj/item/storage/wallet = 1, - /obj/item/paicard = 1, - /obj/item/pen/fourcolor = 1, - /obj/item/paper_bin = 1, - /obj/item/cane = 1, - /obj/item/radio = 1, - /obj/item/dyespray = 1, - /obj/item/table_bell/brass = 1, - /obj/item/flashlight = 1, - /obj/item/crowbar/red = 1 - ) + backpack_contents += pickweight(list( + /obj/item/dice/d20 = 1, + /obj/item/lipstick = 1, + /obj/item/clothing/mask/vape = 1, + /obj/item/clothing/mask/vape/cigar = 1, + /obj/item/reagent_containers/food/drinks/flask = 1, + /obj/item/lighter = 1, + /obj/item/toy/cards/deck = 1, + /obj/item/toy/eightball = 1, + /obj/item/storage/wallet = 1, + /obj/item/paicard = 1, + /obj/item/pen/fourcolor = 1, + /obj/item/paper_bin = 1, + /obj/item/cane = 1, + /obj/item/radio = 1, + /obj/item/dyespray = 1, + /obj/item/table_bell/brass = 1, + /obj/item/flashlight = 1, + /obj/item/crowbar/red = 1 ) - box = /obj/item/storage/box/survival + ) /datum/outfit/generic name = "Generic (Legion)" + box = /obj/item/storage/box/survival /datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -190,6 +174,7 @@ /datum/outfit/generic/engineer name = "Mechanic (Legion)" + box = /obj/item/storage/box/survival/engineer /datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -532,7 +517,6 @@ head = /obj/item/clothing/head/cowboy/sec/roumain if(prob(75)) suit_store = pickweight(list(/obj/item/gun/ballistic/shotgun/winchester = 9, /obj/item/gun/ballistic/shotgun/winchester = 1)) - r_pocket = /obj/item/book/manual/trickwines_4_brewers backpack_contents = list() if(prob(75)) backpack_contents += list(/obj/item/ammo_box/c38_box = 1) From 81ce16b4aaea839ab5520e217538d549e6e0dbc6 Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 6 Dec 2023 09:30:22 -0600 Subject: [PATCH 41/99] doctor!! --- .../closets/secure/engineering.dm | 4 -- .../hostile/mining_mobs/hivelord_outfits.dm | 48 ++++++++++++++++++- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index ddde4a25af5d..c7f5bcfeec28 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -5,12 +5,10 @@ /obj/structure/closet/secure_closet/engineering_chief/PopulateContents() ..() - //WS Begin new /obj/item/clothing/head/beret/ce(src) //Berets new /obj/item/clothing/under/rank/command(src) //Better command uniforms new /obj/item/card/id/departmental_budget/eng(src) //Budger Cards new /obj/item/stack/tape/industrial/pro(src) //Better tape - //WS End new /obj/item/clothing/neck/cloak/ce(src) new /obj/item/clothing/under/rank/engineering/chief_engineer(src) new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src) @@ -41,9 +39,7 @@ /obj/structure/closet/secure_closet/engineering_electrical/PopulateContents() ..() var/static/items_inside = list( - //WS Begin /obj/item/stack/tape/industrial/electrical = 1, // Better tape - //WS End /obj/item/clothing/gloves/color/yellow = 2, /obj/item/storage/toolbox/electrical = 3, /obj/item/electronics/apc = 3, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 40e21cf2ed7c..7ea3ff454a3e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -163,14 +163,28 @@ belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) if(prob(50)) head = /obj/item/clothing/head/welding + if(prob(75)) + ears = /obj/item/radio/headset/headset_eng else if(prob(50)) glasses = /obj/item/clothing/glasses/welding - if(prob(75)) - accessory = /obj/item/clothing/accessory/armband/engine if(prob(75)) back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) if(prob(10)) back = /obj/item/fireaxe + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/stack/tape/industrial/electrical = 1, + /obj/item/electronics/apc = 1, + /obj/item/multitool = 1, + /obj/item/pipe_dispenser = 1, + /obj/item/tank/internals/emergency_oxygen/engi = 1, + /obj/item/holosign_creator/engineering = 1, + /obj/item/extinguisher/advanced = 1, + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/engine /datum/outfit/generic/engineer name = "Mechanic (Legion)" @@ -194,10 +208,40 @@ . = ..() if(prob(75)) uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) + if(prob(75)) + back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med) + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/white + if(prob(75)) + mask = /obj/item/clothing/mask/surgical + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/white + if(prob(75)) + ears = /obj/item/radio/headset/headset_med + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/storage/firstaid/medical = 1, + /obj/item/flashlight/pen = 1, + /obj/item/reagent_containers/glass/beaker = 2, + /obj/item/reagent_containers/dropper = 2, + /obj/item/storage/belt/medical = 1, + /obj/item/storage/box/syringes = 1, + /obj/item/reagent_containers/glass/bottle/toxin = 1, + /obj/item/reagent_containers/glass/bottle/morphine = 2, + /obj/item/reagent_containers/glass/bottle/epinephrine= 3, + /obj/item/reagent_containers/glass/bottle/charcoal = 3, + /obj/item/storage/box/rxglasses = 1 + ) + ) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/medblue + /datum/outfit/generic/doctor name = "Medical Doctor (Legion)" + box = /obj/item/storage/box/survival/medical /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() From fdd0c772629652723d009467d9a36cf8a8f4b3ac Mon Sep 17 00:00:00 2001 From: fallcon Date: Wed, 6 Dec 2023 09:46:10 -0600 Subject: [PATCH 42/99] this pr is really starting to smell tbh --- .../crates_lockers/closets/secure/medical.dm | 2 - .../hostile/mining_mobs/hivelord_outfits.dm | 43 ++++++++++--------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index cfdcca348b14..6c01be326e7a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -79,13 +79,11 @@ /obj/structure/closet/secure_closet/CMO/PopulateContents() ..() - //WS Begin new /obj/item/storage/belt/medical(src) //Gives the CMO a belt new /obj/item/storage/bag/medical(src) //Medibags new /obj/item/clothing/head/beret/cmo(src) //Berets new /obj/item/clothing/under/rank/command(src) //Better command uniforms new /obj/item/storage/box/hypospray/CMO(src) //Hypo mk. 2s - //WS End new /obj/item/clothing/neck/cloak/cmo(src) new /obj/item/clothing/suit/bio_suit/cmo(src) new /obj/item/clothing/head/bio_hood/cmo(src) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 7ea3ff454a3e..ed1c490a55ad 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -211,15 +211,21 @@ if(prob(75)) suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) if(prob(75)) - back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med) + back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med, /obj/item/defibrillator/loaded) + if(prob(75)) + belt = pick(/obj/item/storage/belt/medical, /obj/item/defibrillator/compact/loaded) if(prob(75)) gloves = /obj/item/clothing/gloves/color/white if(prob(75)) mask = /obj/item/clothing/mask/surgical if(prob(75)) - shoes = /obj/item/clothing/shoes/sneakers/white + shoes = pick(/obj/item/clothing/shoes/sneakers/white, /obj/item/clothing/gloves/color/latex/nitrile) + if(prob(75)) + head = /obj/item/clothing/head/beret/med if(prob(75)) ears = /obj/item/radio/headset/headset_med + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription) for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( @@ -227,15 +233,11 @@ /obj/item/flashlight/pen = 1, /obj/item/reagent_containers/glass/beaker = 2, /obj/item/reagent_containers/dropper = 2, - /obj/item/storage/belt/medical = 1, - /obj/item/storage/box/syringes = 1, - /obj/item/reagent_containers/glass/bottle/toxin = 1, - /obj/item/reagent_containers/glass/bottle/morphine = 2, - /obj/item/reagent_containers/glass/bottle/epinephrine= 3, - /obj/item/reagent_containers/glass/bottle/charcoal = 3, - /obj/item/storage/box/rxglasses = 1 - ) + /obj/item/storage/box/hypospray = 1, + /obj/item/storage/bag/medical = 1, + /obj/item/healthanalyzer/advanced = 1, ) + ) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/medblue @@ -245,14 +247,15 @@ /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland - if (prob(4)) + if(prob(75)) + uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland + if(prob(50)) belt = pickweight(list( /obj/item/storage/belt/mining = 2, /obj/item/storage/belt/mining/alt = 2 ) ) - else if(prob(10)) + else if(prob(50)) belt = pickweight(list( /obj/item/pickaxe = 8, /obj/item/pickaxe/mini = 4, @@ -261,10 +264,10 @@ /obj/item/gun/energy/kinetic_accelerator = 1 ) ) - else - belt = /obj/item/tank/internals/emergency_oxygen/engi - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/explorer + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/black + if(prob(75)) + mask = /obj/item/clothing/mask/gas/explorer if(prob(45)) glasses = /obj/item/clothing/glasses/meson if(prob(20)) @@ -392,21 +395,19 @@ /datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() + uniform = /obj/item/clothing/under/solgov if(prob(90)) - uniform = /obj/item/clothing/under/solgov suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov shoes = /obj/item/clothing/shoes/jackboots gloves = /obj/item/clothing/gloves/color/black mask = /obj/item/clothing/mask/gas/sechailer head = /obj/item/clothing/head/solgov/sonnensoldner - id = /obj/item/card/id/solgov else - uniform = /obj/item/clothing/under/solgov suit = /obj/item/clothing/suit/space/hardsuit/solgov shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat mask = /obj/item/clothing/mask/gas/sechailer/swat - id = /obj/item/card/id/solgov + id = /obj/item/card/id/solgov if(prob(85)) back = /obj/item/storage/backpack backpack_contents = list() From d30f63ba66a9b1115a4eb39ad445ab41361161e7 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 17 Dec 2023 22:43:13 -0600 Subject: [PATCH 43/99] yea --- .../hostile/mining_mobs/hivelord.dm | 14 +- .../hostile/mining_mobs/hivelord_outfits.dm | 202 +++++++++--------- 2 files changed, 113 insertions(+), 103 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 2a55cffb8ae6..737b1b22228a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -413,10 +413,12 @@ "Miner" = 40, "Assistant" = 10, "Engineer" = 5, - //"Doctor" = 5, + "Doctor" = 5, //"Scientist" = 5, //"Cargo" = 5, + //"Security" = 5, //I dont like this guy, + /* "Oldminer" = 10, pick( /*I think imma each faction have a minor and major outfit @@ -433,16 +435,21 @@ //srm// "SRM", ) = 10 + */\ ) ) switch(type) if("Miner") outfit = /datum/outfit/generic/miner - if("Engineer") - outfit = /datum/outfit/generic/engineer if("Assistant") outfit = /datum/outfit/generic + if("Engineer") + outfit = /datum/outfit/generic/engineer + if("Doctor") + outfit = /datum/outfit/generic/doctor + + /* if("Oldminer") outfit = /datum/outfit/generic/oldminer if("Soldier") @@ -455,4 +462,5 @@ outfit = /datum/outfit/generic/engineer/inteq if("SRM") outfit = /datum/outfit/generic/srm/hunter + */ . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index ed1c490a55ad..e402b0e2c396 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -151,111 +151,17 @@ name = "Generic (Legion)" box = /obj/item/storage/box/survival -/datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - if(prob(75)) - uniform = pick(/obj/item/clothing/under/rank/engineering/engineer, /obj/item/clothing/under/rank/engineering/engineer/hazard, /obj/item/clothing/under/rank/security/officer/military/eng) - if(prob(75)) - suit = pick(/obj/item/clothing/suit/toggle/hazard, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/engineering) - if(prob(75)) - gloves = pick(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow/old) - if(prob(75)) - belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) - if(prob(50)) - head = /obj/item/clothing/head/welding - if(prob(75)) - ears = /obj/item/radio/headset/headset_eng - else if(prob(50)) - glasses = /obj/item/clothing/glasses/welding - if(prob(75)) - back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) - if(prob(10)) - back = /obj/item/fireaxe - for(var/i = 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/stack/tape/industrial/electrical = 1, - /obj/item/electronics/apc = 1, - /obj/item/multitool = 1, - /obj/item/pipe_dispenser = 1, - /obj/item/tank/internals/emergency_oxygen/engi = 1, - /obj/item/holosign_creator/engineering = 1, - /obj/item/extinguisher/advanced = 1, - ) - ) - if(prob(75)) - accessory = /obj/item/clothing/accessory/armband/engine - -/datum/outfit/generic/engineer - name = "Mechanic (Legion)" - box = /obj/item/storage/box/survival/engineer - -/datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - if(prob(75)) - uniform = pick(/obj/item/clothing/under/syndicate/inteq/artificer, /obj/item/clothing/under/syndicate/inteq) - if(prob(75)) - head = pick(/obj/item/clothing/head/hardhat/white, /obj/item/clothing/head/soft/inteq) - if(prob(75)) - shoes = /obj/item/clothing/shoes/combat - if(prob(75)) - back = /obj/item/storage/backpack/messenger/inteq - -/datum/outfit/generic/engineer/inteq - name = "Artificer (Legion)" - -/datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - if(prob(75)) - uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue) - if(prob(75)) - suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) - if(prob(75)) - back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med, /obj/item/defibrillator/loaded) - if(prob(75)) - belt = pick(/obj/item/storage/belt/medical, /obj/item/defibrillator/compact/loaded) - if(prob(75)) - gloves = /obj/item/clothing/gloves/color/white - if(prob(75)) - mask = /obj/item/clothing/mask/surgical - if(prob(75)) - shoes = pick(/obj/item/clothing/shoes/sneakers/white, /obj/item/clothing/gloves/color/latex/nitrile) - if(prob(75)) - head = /obj/item/clothing/head/beret/med - if(prob(75)) - ears = /obj/item/radio/headset/headset_med - if(prob(75)) - glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription) - for(var/i = 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/storage/firstaid/medical = 1, - /obj/item/flashlight/pen = 1, - /obj/item/reagent_containers/glass/beaker = 2, - /obj/item/reagent_containers/dropper = 2, - /obj/item/storage/box/hypospray = 1, - /obj/item/storage/bag/medical = 1, - /obj/item/healthanalyzer/advanced = 1, - ) - ) - if(prob(75)) - accessory = /obj/item/clothing/accessory/armband/medblue - -/datum/outfit/generic/doctor - name = "Medical Doctor (Legion)" - box = /obj/item/storage/box/survival/medical - /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(prob(75)) - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland + uniform = pick(/obj/item/clothing/under/rank/cargo/miner/lavaland, /obj/item/clothing/under/rank/cargo/miner, /obj/item/clothing/under/rank/cargo/miner/lavaland/old) if(prob(50)) belt = pickweight(list( /obj/item/storage/belt/mining = 2, /obj/item/storage/belt/mining/alt = 2 ) ) - else if(prob(50)) + else if(prob(75)) belt = pickweight(list( /obj/item/pickaxe = 8, /obj/item/pickaxe/mini = 4, @@ -329,6 +235,86 @@ /datum/outfit/generic/miner name = "Miner (Legion)" +/datum/outfit/generic/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/engineering/engineer, /obj/item/clothing/under/rank/engineering/engineer/hazard, /obj/item/clothing/under/rank/security/officer/military/eng) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/hazard, /obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/engineering) + if(prob(75)) + gloves = pick(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow/old) + if(prob(75)) + belt = pick(/obj/item/storage/belt/utility/full, /obj/item/storage/belt/utility) + if(prob(50)) + head = /obj/item/clothing/head/welding + if(prob(75)) + ears = /obj/item/radio/headset/headset_eng + else if(prob(50)) + glasses = /obj/item/clothing/glasses/welding + if(prob(75)) + back = pick(/obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/messenger/engi) + if(prob(10)) + back = /obj/item/fireaxe + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/stack/tape/industrial/electrical = 1, + /obj/item/electronics/apc = 1, + /obj/item/multitool = 1, + /obj/item/pipe_dispenser = 1, + /obj/item/tank/internals/emergency_oxygen/engi = 1, + /obj/item/holosign_creator/engineering = 1, + /obj/item/extinguisher/advanced = 1, + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/engine + +/datum/outfit/generic/engineer + name = "Mechanic (Legion)" + box = /obj/item/storage/box/survival/engineer + +/datum/outfit/generic/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/doctor/blue) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) + if(prob(75)) + back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med, /obj/item/defibrillator/loaded) + if(prob(75)) + belt = pick(/obj/item/storage/belt/medical, /obj/item/defibrillator/compact/loaded) + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/white + if(prob(75)) + mask = /obj/item/clothing/mask/surgical + if(prob(75)) + shoes = pick(/obj/item/clothing/shoes/sneakers/white, /obj/item/clothing/gloves/color/latex/nitrile) + if(prob(75)) + head = /obj/item/clothing/head/beret/med + if(prob(75)) + ears = /obj/item/radio/headset/headset_med + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription) + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/storage/firstaid/medical = 1, + /obj/item/flashlight/pen = 1, + /obj/item/reagent_containers/glass/beaker = 2, + /obj/item/reagent_containers/dropper = 2, + /obj/item/storage/box/hypospray = 1, + /obj/item/storage/bag/medical = 1, + /obj/item/healthanalyzer/advanced = 1, + ) + ) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/medblue + +/datum/outfit/generic/doctor + name = "Medical Doctor (Legion)" + box = /obj/item/storage/box/survival/medical + /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() suit = /obj/item/clothing/suit/hooded/explorer/old @@ -393,6 +379,20 @@ /datum/outfit/generic/oldminer name = "Old Miner (Legion)" +/datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/syndicate/inteq/artificer, /obj/item/clothing/under/syndicate/inteq) + if(prob(75)) + head = pick(/obj/item/clothing/head/hardhat/white, /obj/item/clothing/head/soft/inteq) + if(prob(75)) + shoes = /obj/item/clothing/shoes/combat + if(prob(75)) + back = /obj/item/storage/backpack/messenger/inteq + +/datum/outfit/generic/engineer/inteq + name = "Artificer (Legion)" + /datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() uniform = /obj/item/clothing/under/solgov @@ -457,7 +457,7 @@ ) /datum/outfit/generic/solgov/soldier - name = "Soldier" + name = "Soldier (Legion)" /datum/outfit/generic/syndicate/infiltrator/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -510,7 +510,7 @@ ) /datum/outfit/generic/syndicate/infiltrator - name = "Infiltrator" + name = "Infiltrator (Legion)" /datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -535,7 +535,7 @@ back = /obj/item/storage/backpack /datum/outfit/generic/syndicate/operative - name = "Operative" + name = "Operative (Legion)" /datum/outfit/generic/srm/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -547,6 +547,7 @@ belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) /datum/outfit/generic/srm + name = "SRM (Legion)" /datum/outfit/generic/srm/shadow/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -554,7 +555,7 @@ head = /obj/item/clothing/head/cowboy/sec/roumain/shadow /datum/outfit/generic/srm/shadow - name = "Shadow" + name = "Shadow (Legion)" /datum/outfit/generic/srm/hunter/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -575,3 +576,4 @@ /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) /datum/outfit/generic/srm/hunter + name = "Hunter (Legion)" From 0898a3cf35c3128d5c038b9850283cb06d5c9b04 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Dec 2023 09:59:54 -0600 Subject: [PATCH 44/99] faction stuff is eh --- .../hostile/mining_mobs/hivelord_outfits.dm | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index e402b0e2c396..4c1c09412896 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -315,6 +315,35 @@ name = "Medical Doctor (Legion)" box = /obj/item/storage/box/survival/medical +/datum/outfit/generic/science/pre_equip(mob/living/carbon/human/H) + ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/rnd/scientist, /obj/item/clothing/under/rank/rnd/roboticist) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/toggle/labcoat/science, /obj/item/clothing/suit/toggle/suspenders/blue, /obj/item/clothing/suit/hooded/wintercoat/science) + if(prob(75)) + back = pick(/obj/item/storage/backpack/science, /obj/item/storage/backpack/satchel/tox, /obj/item/storage/backpack/messenger/tox) + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/white + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/white + if(prob(75)) + head = /obj/item/clothing/head/beret/sci + if(prob(75)) + ear = /obj/item/radio/headset/headset_sci + if(prob(1)) + neck = /obj/item/clothing/neck/tie/horrible + + +/datum/outfit/generic/science + name = "Scientist (Legion)" + +/datum/outfit/generic/cargo + name = "Cargo Technician (Legion)" + +/datum/outfit/generic/security + name = "Security Officer (Legion)" +/* /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() suit = /obj/item/clothing/suit/hooded/explorer/old @@ -376,6 +405,7 @@ /obj/item/borg/upgrade/modkit/cooldown = 1 ) ) + /datum/outfit/generic/oldminer name = "Old Miner (Legion)" @@ -577,3 +607,5 @@ /datum/outfit/generic/srm/hunter name = "Hunter (Legion)" + +*/ From f027a0c6d8870addece7256302c31c0f048863f1 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Dec 2023 10:23:41 -0600 Subject: [PATCH 45/99] shrug --- .../hostile/mining_mobs/hivelord_outfits.dm | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 4c1c09412896..6f14975ef848 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -320,7 +320,7 @@ if(prob(75)) uniform = pick(/obj/item/clothing/under/rank/rnd/scientist, /obj/item/clothing/under/rank/rnd/roboticist) if(prob(75)) - suit = pick(/obj/item/clothing/suit/toggle/labcoat/science, /obj/item/clothing/suit/toggle/suspenders/blue, /obj/item/clothing/suit/hooded/wintercoat/science) + suit = pick(/obj/item/clothing/suit/toggle/labcoat/science, /obj/item/clothing/suit/hooded/wintercoat/science) if(prob(75)) back = pick(/obj/item/storage/backpack/science, /obj/item/storage/backpack/satchel/tox, /obj/item/storage/backpack/messenger/tox) if(prob(75)) @@ -333,16 +333,67 @@ ear = /obj/item/radio/headset/headset_sci if(prob(1)) neck = /obj/item/clothing/neck/tie/horrible + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/science /datum/outfit/generic/science name = "Scientist (Legion)" +/datum/outfit/generic/cargo/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = pick(/obj/item/clothing/under/rank/cargo/tech, /obj/item/clothing/under/shorts/grey) + if(prob(75)) + suit = pick(/obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/cargo) + if(prob(75)) + gloves = /obj/item/clothing/gloves/fingerless + if(prob(75)) + shoes = /obj/item/clothing/shoes/sneakers/black + if(prob(75)) + head = /obj/item/clothing/head/soft + if(prob(75)) + ears = /obj/item/radio/headset/headset_cargo + if(prob(75)) + backpack_contents += pick(list(/obj/item/export_scanner, /obj/item/modular_computer/tablet/preset/cargo)) + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/cargo + /datum/outfit/generic/cargo name = "Cargo Technician (Legion)" +/datum/outfit/generic/security/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(prob(75)) + uniform = /obj/item/clothing/under/rank/security/officer + if(prob(75)) + suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer) + if(prob(75)) + back = pick(/obj/item/storage/backpack/security, /obj/item/storage/backpack/satchel/sec, /obj/item/storage/backpack/duffelbag/sec, /obj/item/storage/backpack/messenger/sec) + if(prob(75)) + belt = pick(/obj/item/storage/belt/security, /obj/item/storage/belt/security/webbing) + if(prob(75)) + gloves = /obj/item/clothing/gloves/color/black + if(prob(75)) + shoes = /obj/item/clothing/shoes/jackboots + if(prob(75)) + head = /obj/item/clothing/head/helmet/sec + if(prob(75)) + mask = /obj/item/clothing/mask/gas/sechailer + if(prob(75)) + ears = /obj/item/radio/headset/headset_sec + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/security) + if(prob(75)) + l_pocket = /obj/item/restraints/handcuffs + if(prob(75)) + r_pocket = /obj/item/assembly/flash/handheld + if(prob(75)) + accessory = /obj/item/clothing/accessory/armband/deputy + /datum/outfit/generic/security name = "Security Officer (Legion)" + box = /obj/item/storage/box/survival/security /* /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() From 50cf704306d87bfeef42df0e8e2f21114e6a4419 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Dec 2023 10:29:24 -0600 Subject: [PATCH 46/99] miner loot rate tweak --- .../hostile/mining_mobs/hivelord_outfits.dm | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 6f14975ef848..6683b0451d38 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -154,8 +154,16 @@ /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(prob(75)) - uniform = pick(/obj/item/clothing/under/rank/cargo/miner/lavaland, /obj/item/clothing/under/rank/cargo/miner, /obj/item/clothing/under/rank/cargo/miner/lavaland/old) - if(prob(50)) + uniform = pick(/obj/item/clothing/under/rank/cargo/miner/lavaland, /obj/item/clothing/under/rank/cargo/miner) + if(prob(25)) + suit = pickweight(list( + /obj/item/clothing/suit/hooded/explorer = 18, + /obj/item/clothing/suit/hooded/cloak/goliath = 2 + ) + ) + if(prob(75)) + back = /obj/item/storage/backpack/explorer + if(prob(75)) belt = pickweight(list( /obj/item/storage/belt/mining = 2, /obj/item/storage/belt/mining/alt = 2 @@ -172,17 +180,13 @@ ) if(prob(75)) gloves = /obj/item/clothing/gloves/color/black + if(prob(75)) + shoes = /obj/item/clothing/shoes/workboots/mining if(prob(75)) mask = /obj/item/clothing/mask/gas/explorer - if(prob(45)) + if(prob(50)) glasses = /obj/item/clothing/glasses/meson - if(prob(20)) - suit = pickweight(list( - /obj/item/clothing/suit/hooded/explorer = 18, - /obj/item/clothing/suit/hooded/cloak/goliath = 2 - ) - ) - if(prob(30)) + if(prob(50)) r_pocket = pickweight(list( /obj/item/stack/marker_beacon = 20, /obj/item/spacecash/bundle/mediumrand = 7, @@ -190,15 +194,14 @@ /obj/item/borg/upgrade/modkit/damage = 1 ) ) - if(prob(10)) + if(prob(25)) l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 7, + /obj/item/spacecash/bundle/mediumrand = 5, /obj/item/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/cooldown = 1 ) ) - if(prob(95)) - back = /obj/item/storage/backpack/explorer + if(prob(75)) for(var/count in 1 to 3) if(prob(70)) backpack_contents += pickweight(list( @@ -228,7 +231,7 @@ ) ) ) - else + else if (prob(75)) back = /obj/item/kinetic_crusher backpack_contents = list() From 35f8e35449a1bffdc922bfccbdad1bc63383ec92 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Dec 2023 10:34:35 -0600 Subject: [PATCH 47/99] all look like jobs now, need to add real loot --- .../simple_animal/hostile/mining_mobs/hivelord.dm | 13 +++++++++---- .../mob/living/simple_animal/hostile/survivors.dm | 13 +++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 737b1b22228a..213e686957bd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -414,9 +414,9 @@ "Assistant" = 10, "Engineer" = 5, "Doctor" = 5, - //"Scientist" = 5, - //"Cargo" = 5, - //"Security" = 5, + "Scientist" = 5, + "Cargo" = 5, + "Security" = 5, //I dont like this guy, /* "Oldminer" = 10, @@ -448,7 +448,12 @@ outfit = /datum/outfit/generic/engineer if("Doctor") outfit = /datum/outfit/generic/doctor - + if("Scientist") + outfit = /datum/outfit/generic/science + if("Cargo") + outfit = /datum/outfit/generic/cargo + if("Security") + outfit = /datum/outfit/generic/security /* if("Oldminer") outfit = /datum/outfit/generic/oldminer diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/survivors.dm index c0601050c54c..009d627b4ab7 100644 --- a/code/modules/mob/living/simple_animal/hostile/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/survivors.dm @@ -93,12 +93,13 @@ /obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity. mob_species = pickweight(list( - /datum/species/human = 50, - /datum/species/lizard = 25, - /datum/species/ethereal = 10, - /datum/species/moth = 10, - /datum/species/spider = 3, - /datum/species/fly = 2 + /datum/species/human = 31, + /datum/species/lizard = 26, + /datum/species/ethereal = 24, + /datum/species/spider = 7, + /datum/species/ipc = 7, + /datum/species/jelly = 4, + /datum/species/fly = 1 ) ) //to-do: learn how to make mobsprites for other survivors From 42743b3ea24e7f2a4fba4cec146af5ee1f2fe252 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Dec 2023 13:11:08 -0600 Subject: [PATCH 48/99] yea --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 6683b0451d38..7ba974144fe3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -358,9 +358,11 @@ if(prob(75)) ears = /obj/item/radio/headset/headset_cargo if(prob(75)) - backpack_contents += pick(list(/obj/item/export_scanner, /obj/item/modular_computer/tablet/preset/cargo)) + backpack_contents += pick(list(/obj/item/export_scanner, /obj/item/modular_computer/tablet/preset/cargo, /obj/item/spacecash/bundle/mediumrand )) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/cargo + if(prob(25)) + back = /obj/item/gun/ballistic/rifle/boltaction //An attempt to refrence gun cargo /datum/outfit/generic/cargo name = "Cargo Technician (Legion)" @@ -370,7 +372,7 @@ if(prob(75)) uniform = /obj/item/clothing/under/rank/security/officer if(prob(75)) - suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer) + suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/suit/armor/vest/bulletproof) if(prob(75)) back = pick(/obj/item/storage/backpack/security, /obj/item/storage/backpack/satchel/sec, /obj/item/storage/backpack/duffelbag/sec, /obj/item/storage/backpack/messenger/sec) if(prob(75)) From 6e42b041cc5b789f0ffc6d8ad5590f73c1bea352 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 14:25:41 -0600 Subject: [PATCH 49/99] agh --- .../hostile/mining_mobs/hivelord_outfits.dm | 93 ++++++++++++------- 1 file changed, 58 insertions(+), 35 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 7ba974144fe3..d3c6ed83286a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -32,7 +32,6 @@ /obj/item/clothing/suit/gothcoat = 1, /obj/item/clothing/suit/toggle/industrial = 1, /obj/item/clothing/suit/toggle/hazard = 1, - /obj/item/clothing/suit/poncho/green = 1, ) ) back = pickweight(list( @@ -63,7 +62,6 @@ /obj/item/clothing/shoes/laceup = 1, /obj/item/clothing/shoes/sandal = 1, /obj/item/clothing/shoes/winterboots = 1, - /obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/shoes/workboots/mining = 1, /obj/item/clothing/shoes/workboots = 1, /obj/item/clothing/shoes/sneakers/black = 1, @@ -73,29 +71,28 @@ ) if(prob(50)) head = pickweight(list( - /obj/item/clothing/head/hardhat = 1, - /obj/item/clothing/head/hardhat/orange = 1, - /obj/item/clothing/head/hardhat/dblue = 1, - /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/beret/grey = 1, - /obj/item/clothing/head/beret/ce = 1, - /obj/item/clothing/head/flatcap = 1, - /obj/item/clothing/head/beanie = 1, - /obj/item/clothing/head/foilhat = 1, - /obj/item/clothing/head/cowboy = 1, + /obj/item/clothing/head/beret = 3, + /obj/item/clothing/head/beret/grey = 3, + /obj/item/clothing/head/flatcap = 3, + /obj/item/clothing/head/beanie = 3, + /obj/item/clothing/head/cowboy = 3, + /obj/item/clothing/head/trapper = 2, + /obj/item/clothing/head/hardhat = 2, + /obj/item/clothing/head/hardhat/orange = 2, + /obj/item/clothing/head/hardhat/dblue = 2, /obj/item/clothing/head/pirate = 1, - /obj/item/clothing/head/trapper = 1 + /obj/item/clothing/head/foilhat = 1 ) ) if(prob(50)) mask = pickweight(list( /obj/item/clothing/mask/balaclava = 1, /obj/item/clothing/mask/bandana/red = 1, - /obj/item/clothing/mask/gas = 1, - /obj/item/clothing/mask/breath = 1, + /obj/item/clothing/mask/gas = 3, + /obj/item/clothing/mask/breath = 3, ) ) - if(prob(50)) + if(prob(25)) neck = pickweight(list( /obj/item/clothing/neck/scarf/red = 1, /obj/item/clothing/neck/scarf/green = 1, @@ -118,11 +115,12 @@ /obj/item/clothing/glasses/cold = 1, /obj/item/clothing/glasses/heat = 1, /obj/item/clothing/glasses/orange = 1, - /obj/item/clothing/glasses/red = 1 ) ) - r_pocket = /obj/item/tank/internals/emergency_oxygen - l_pocket = /obj/item/radio + if(prob(75)) + r_pocket = /obj/item/tank/internals/emergency_oxygen + if(prob(75)) + l_pocket = pick(/obj/item/radio, /obj/item/flashlight) id = /obj/item/card/id backpack_contents = list() backpack_contents += pickweight(list( @@ -286,7 +284,7 @@ if(prob(75)) back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med, /obj/item/defibrillator/loaded) if(prob(75)) - belt = pick(/obj/item/storage/belt/medical, /obj/item/defibrillator/compact/loaded) + belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1)) if(prob(75)) gloves = /obj/item/clothing/gloves/color/white if(prob(75)) @@ -302,13 +300,13 @@ for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( - /obj/item/storage/firstaid/medical = 1, - /obj/item/flashlight/pen = 1, + /obj/item/storage/firstaid/medical = 3, /obj/item/reagent_containers/glass/beaker = 2, /obj/item/reagent_containers/dropper = 2, - /obj/item/storage/box/hypospray = 1, + /obj/item/flashlight/pen = 1, + /obj/item/hypospray/mkii = 1, /obj/item/storage/bag/medical = 1, - /obj/item/healthanalyzer/advanced = 1, + /obj/item/healthanalyzer = 1, ) ) if(prob(75)) @@ -333,7 +331,9 @@ if(prob(75)) head = /obj/item/clothing/head/beret/sci if(prob(75)) - ear = /obj/item/radio/headset/headset_sci + ears = /obj/item/radio/headset/headset_sci + if(prob(75)) + glasses = pick(/obj/item/clothing/glasses/hud/diagnostic, /obj/item/clothing/glasses/science) if(prob(1)) neck = /obj/item/clothing/neck/tie/horrible if(prob(75)) @@ -357,12 +357,21 @@ head = /obj/item/clothing/head/soft if(prob(75)) ears = /obj/item/radio/headset/headset_cargo - if(prob(75)) - backpack_contents += pick(list(/obj/item/export_scanner, /obj/item/modular_computer/tablet/preset/cargo, /obj/item/spacecash/bundle/mediumrand )) + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/export_scanner = 1, + /obj/item/modular_computer/tablet/preset/cargo = 1, + /obj/item/spacecash/bundle/mediumrand = 2, + /obj/item/ammo_box/a762 = 2, + /obj/item/grenade/frag = 1 + ) + ) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/cargo if(prob(25)) - back = /obj/item/gun/ballistic/rifle/boltaction //An attempt to refrence gun cargo + suit = /obj/item/clothing/suit/armor/vest/scrap_armor + suit_store = /obj/item/gun/ballistic/rifle/boltaction //An attempt to refrence gun cargo /datum/outfit/generic/cargo name = "Cargo Technician (Legion)" @@ -372,27 +381,41 @@ if(prob(75)) uniform = /obj/item/clothing/under/rank/security/officer if(prob(75)) - suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/suit/armor/vest/bulletproof) + suit = pick(/obj/item/clothing/suit/armor/vest, /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/suit/armor/vest/bulletproof, /obj/item/clothing/suit/armor/vest/blueshirt) if(prob(75)) back = pick(/obj/item/storage/backpack/security, /obj/item/storage/backpack/satchel/sec, /obj/item/storage/backpack/duffelbag/sec, /obj/item/storage/backpack/messenger/sec) if(prob(75)) belt = pick(/obj/item/storage/belt/security, /obj/item/storage/belt/security/webbing) if(prob(75)) - gloves = /obj/item/clothing/gloves/color/black + gloves = pick(/obj/item/clothing/gloves/color/black, /obj/item/clothing/gloves/tackler) if(prob(75)) shoes = /obj/item/clothing/shoes/jackboots if(prob(75)) - head = /obj/item/clothing/head/helmet/sec + head = pick(/obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/blueshirt, /obj/item/clothing/head/helmet/bulletproof) if(prob(75)) mask = /obj/item/clothing/mask/gas/sechailer if(prob(75)) ears = /obj/item/radio/headset/headset_sec if(prob(75)) - glasses = pick(/obj/item/clothing/glasses/hud/security) - if(prob(75)) - l_pocket = /obj/item/restraints/handcuffs + glasses = pick(/obj/item/clothing/glasses/hud/security, /obj/item/clothing/glasses/sunglasses) if(prob(75)) - r_pocket = /obj/item/assembly/flash/handheld + r_pocket = pick(/obj/item/flashlight/seclite, /obj/item/assembly/flash/handheld, /obj/item/restraints/handcuffs) + if(prob(50)) + suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot) + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/restraints/handcuffs = 8, + /obj/item/assembly/flash/handheld = 5, + /obj/item/storage/box/evidence = 6, + /obj/item/flashlight/seclite = 4, + /obj/item/ammo_box/c9mm/rubbershot = 3, + /obj/item/ammo_box/c9mm = 1, + /obj/item/stock_parts/cell/gun = 3, + /obj/item/coin/antagtoken = 1, + /obj/item/grenade/stingbang = 1 + ) + ) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/deputy From 8f65870dcabc474f528418105009eb27040fc6a1 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 14:41:45 -0600 Subject: [PATCH 50/99] no more faction gear --- .../hostile/mining_mobs/hivelord.dm | 29 --- .../hostile/mining_mobs/hivelord_outfits.dm | 213 +----------------- 2 files changed, 8 insertions(+), 234 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 213e686957bd..32e861b7b3da 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -417,25 +417,6 @@ "Scientist" = 5, "Cargo" = 5, "Security" = 5, - //I dont like this guy, - /* - "Oldminer" = 10, - pick( - /*I think imma each faction have a minor and major outfit - 10% chance for the major - Both should reflect the factions strengths if convinent*/ - //solgov// - "Soldier", - //cmm// - //syndi// - pick("Infiltrator", "Operative"), - //nanotrasen// - //inteq// - "Artificer", - //srm// - "SRM", - ) = 10 - */\ ) ) @@ -457,15 +438,5 @@ /* if("Oldminer") outfit = /datum/outfit/generic/oldminer - if("Soldier") - outfit = /datum/outfit/generic/solgov/soldier - if("Infiltrator") - outfit = /datum/outfit/generic/syndicate/infiltrator - if("Operative") - outfit = /datum/outfit/generic/syndicate/operative - if("Artificer") - outfit = /datum/outfit/generic/engineer/inteq - if("SRM") - outfit = /datum/outfit/generic/srm/hunter */ . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index d3c6ed83286a..f037b48a1ebd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -42,7 +42,7 @@ /obj/item/storage/backpack/satchel/leather = 1 ) ) - if (prob(25)) + if (prob(10)) belt = pickweight(list( /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, /obj/item/gun/ballistic/automatic/pistol/commander = 1, @@ -360,10 +360,12 @@ for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( - /obj/item/export_scanner = 1, - /obj/item/modular_computer/tablet/preset/cargo = 1, - /obj/item/spacecash/bundle/mediumrand = 2, - /obj/item/ammo_box/a762 = 2, + /obj/item/spacecash/bundle/mediumrand = 5, + /obj/item/ammo_box/a762 = 5, + /obj/item/modular_computer/tablet/preset/cargo = 3, + /obj/item/stack/tape = 3, + /obj/item/stack/tape/industrial = 3, + /obj/item/stack/sheet/plastic/five = 3, /obj/item/grenade/frag = 1 ) ) @@ -422,6 +424,7 @@ /datum/outfit/generic/security name = "Security Officer (Legion)" box = /obj/item/storage/box/survival/security + /* /datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() @@ -487,204 +490,4 @@ /datum/outfit/generic/oldminer name = "Old Miner (Legion)" - -/datum/outfit/generic/engineer/inteq/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - if(prob(75)) - uniform = pick(/obj/item/clothing/under/syndicate/inteq/artificer, /obj/item/clothing/under/syndicate/inteq) - if(prob(75)) - head = pick(/obj/item/clothing/head/hardhat/white, /obj/item/clothing/head/soft/inteq) - if(prob(75)) - shoes = /obj/item/clothing/shoes/combat - if(prob(75)) - back = /obj/item/storage/backpack/messenger/inteq - -/datum/outfit/generic/engineer/inteq - name = "Artificer (Legion)" - -/datum/outfit/generic/solgov/soldier/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - uniform = /obj/item/clothing/under/solgov - if(prob(90)) - suit = /obj/item/clothing/suit/armor/vest/bulletproof/solgov - shoes = /obj/item/clothing/shoes/jackboots - gloves = /obj/item/clothing/gloves/color/black - mask = /obj/item/clothing/mask/gas/sechailer - head = /obj/item/clothing/head/solgov/sonnensoldner - else - suit = /obj/item/clothing/suit/space/hardsuit/solgov - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - mask = /obj/item/clothing/mask/gas/sechailer/swat - id = /obj/item/card/id/solgov - if(prob(85)) - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/i = 1 to 3) - if(prob(75)) - backpack_contents += pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 1, - /obj/item/storage/firstaid/advanced = 1, - /obj/item/gun/ballistic/automatic/pistol/solgov = 1, - /obj/item/gps = 1, - /obj/item/stock_parts/cell/gun/upgraded = 2, - /obj/item/ammo_box/magazine/pistol556mm = 3, - /obj/item/desk_flag/solgov = 3, - /obj/item/stack/marker_beacon/ten = 3, - /obj/item/extinguisher/mini = 3, - /obj/item/kitchen/knife/combat = 3, - /obj/item/flashlight/seclite=3, - /obj/item/ammo_casing/shotgun = 3, - /obj/item/binoculars = 3, - /obj/item/clipboard = 3 - ) - ) - else - back = pickweight(list( - /obj/item/energyhalberd = 5, - /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 - ) - ) - if(prob(25)) - belt = /obj/item/storage/belt/military - if(prob(50)) - r_pocket = pickweight(list( - /obj/item/reagent_containers/hypospray/medipen/stimpack = 1, - /obj/item/kitchen/knife/letter_opener = 3, - /obj/item/radio/off = 3, - /obj/item/grenade/syndieminibomb/concussion = 1, - /obj/item/melee/transforming/energy/ctf/solgov = 1 - ) - ) - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/sunglasses = 3, - /obj/item/clothing/glasses/hud/health = 3, - /obj/item/clothing/glasses/hud/health/night = 1, - /obj/item/clothing/glasses/night = 2 - ) - ) - -/datum/outfit/generic/solgov/soldier - name = "Soldier (Legion)" - -/datum/outfit/generic/syndicate/infiltrator/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - uniform = /obj/item/clothing/under/syndicate/bloodred - gloves = /obj/item/clothing/gloves/color/latex/nitrile/infiltrator - suit = /obj/item/clothing/suit/armor/vest/infiltrator - head = /obj/item/clothing/head/helmet/infiltrator - shoes = /obj/item/clothing/shoes/combat/sneakboots - ears = /obj/item/radio/headset/syndicate - if(prob(70)) - glasses = pickweight(list( - /obj/item/clothing/glasses/regular/circle = 1, - /obj/item/clothing/glasses/night = 2, - /obj/item/clothing/glasses/sunglasses = 3 - ) - ) - mask = /obj/item/clothing/mask/infiltrator - id = /obj/item/card/id/syndicate - back = /obj/item/storage/backpack - backpack_contents = list() - for(var/i = 1 to 3) - if(prob(50)) - backpack_contents += pickweight(list( - /obj/item/pen/sleepy = 3, - /obj/item/pen/edagger = 3, - /obj/item/reagent_containers/syringe/mulligan = 3, - /obj/item/suppressor = 5, - /obj/item/storage/box/syndie_kit/chameleon = 5, - /obj/item/grenade/smokebomb = 5, - /obj/item/grenade/flashbang = 5 - ) - ) - if(prob(70)) - backpack_contents += (list( - /obj/item/gun/ballistic/automatic/pistol/APS, - /obj/item/ammo_box/magazine/pistolm9mm - ) - ) - if(prob(25)) - r_pocket = pickweight(list( - /obj/item/chameleon = 1, - /obj/item/dnainjector/chameleonmut = 1, - ) - ) - if(prob(25)) - l_pocket = pickweight(list( - /obj/item/chameleon = 1, - /obj/item/dnainjector/chameleonmut = 1, - ) - ) - -/datum/outfit/generic/syndicate/infiltrator - name = "Infiltrator (Legion)" - -/datum/outfit/generic/syndicate/operative/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/combat - ears = /obj/item/radio/headset/syndicate - id = /obj/item/card/id/syndicate - r_pocket = /obj/item/tank/internals/emergency_oxygen - gloves = /obj/item/clothing/gloves/tackler/combat/insulated - if(prob(25)) - suit = /obj/item/clothing/suit/space/hardsuit/syndi/scarlet - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/tank/jetpack/oxygen - else if(prob(25)) - suit = /obj/item/clothing/suit/space/hardsuit/syndi - mask = /obj/item/clothing/mask/gas/syndicate - back = /obj/item/tank/jetpack/oxygen - else - suit = /obj/item/clothing/suit/armor/vest - mask = /obj/item/clothing/mask/gas - head = /obj/item/clothing/head/helmet/swat - back = /obj/item/storage/backpack - -/datum/outfit/generic/syndicate/operative - name = "Operative (Legion)" - -/datum/outfit/generic/srm/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - uniform = /obj/item/clothing/under/suit/roumain - shoes = /obj/item/clothing/shoes/workboots/mining - if(prob(75)) - back = /obj/item/storage/backpack/cultpack - if(prob(75)) - belt = pick(list(/obj/item/kitchen/knife/hunting = 1, /obj/item/gun/ballistic/derringer = 1)) - -/datum/outfit/generic/srm - name = "SRM (Legion)" - -/datum/outfit/generic/srm/shadow/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - suit = /obj/item/clothing/suit/armor/roumain/shadow - head = /obj/item/clothing/head/cowboy/sec/roumain/shadow - -/datum/outfit/generic/srm/shadow - name = "Shadow (Legion)" - -/datum/outfit/generic/srm/hunter/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - suit = /obj/item/clothing/suit/armor/roumain - head = /obj/item/clothing/head/cowboy/sec/roumain - if(prob(75)) - suit_store = pickweight(list(/obj/item/gun/ballistic/shotgun/winchester = 9, /obj/item/gun/ballistic/shotgun/winchester = 1)) - backpack_contents = list() - if(prob(75)) - backpack_contents += list(/obj/item/ammo_box/c38_box = 1) - if(prob(75)) - backpack_contents += list(pick( - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine,) = 2) - -/datum/outfit/generic/srm/hunter - name = "Hunter (Legion)" - */ From 3b0e3f4b3796205c58e923fde9fe1477f2a655bc Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 14:58:26 -0600 Subject: [PATCH 51/99] Kills him --- .../hostile/mining_mobs/hivelord.dm | 4 - .../hostile/mining_mobs/hivelord_outfits.dm | 103 +++++------------- 2 files changed, 27 insertions(+), 80 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 32e861b7b3da..66879b95c451 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -435,8 +435,4 @@ outfit = /datum/outfit/generic/cargo if("Security") outfit = /datum/outfit/generic/security - /* - if("Oldminer") - outfit = /datum/outfit/generic/oldminer - */ . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index f037b48a1ebd..04ccfd06b466 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -152,11 +152,17 @@ /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() if(prob(75)) - uniform = pick(/obj/item/clothing/under/rank/cargo/miner/lavaland, /obj/item/clothing/under/rank/cargo/miner) + uniform = pickweight(list( + /obj/item/clothing/under/rank/cargo/miner/lavaland = 5, + /obj/item/clothing/under/rank/cargo/miner = 4, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 1, + ) + ) if(prob(25)) suit = pickweight(list( /obj/item/clothing/suit/hooded/explorer = 18, - /obj/item/clothing/suit/hooded/cloak/goliath = 2 + /obj/item/clothing/suit/hooded/explorer/old = 1, + /obj/item/clothing/suit/hooded/cloak/goliath = 1 ) ) if(prob(75)) @@ -169,19 +175,26 @@ ) else if(prob(75)) belt = pickweight(list( - /obj/item/pickaxe = 8, - /obj/item/pickaxe/mini = 4, - /obj/item/pickaxe/silver = 2, - /obj/item/pickaxe/diamond = 1, - /obj/item/gun/energy/kinetic_accelerator = 1 + /obj/item/pickaxe = 16, + /obj/item/pickaxe/mini = 8, + /obj/item/pickaxe/silver = 4, + /obj/item/pickaxe/diamond = 2, + /obj/item/gun/energy/kinetic_accelerator = 2, + /obj/item/kinetic_crusher/old = 1 ) ) if(prob(75)) - gloves = /obj/item/clothing/gloves/color/black + gloves = pickweight(list( + /obj/item/clothing/gloves/color/black = 9, + /obj/item/clothing/gloves/explorer/old = 1 if(prob(75)) shoes = /obj/item/clothing/shoes/workboots/mining if(prob(75)) - mask = /obj/item/clothing/mask/gas/explorer + mask = pickweight(list( + /obj/item/clothing/mask/gas/explorer = 9, + /obj/item/clothing/mask/gas/explorer/old = 1 + ) + ) if(prob(50)) glasses = /obj/item/clothing/glasses/meson if(prob(50)) @@ -230,8 +243,12 @@ ) ) else if (prob(75)) - back = /obj/item/kinetic_crusher backpack_contents = list() + back = pickweight(list( + /obj/item/kinetic_crusher = 9, + /obj/item/kinetic_crusher/old = 1 + ) + ) /datum/outfit/generic/miner name = "Miner (Legion)" @@ -425,69 +442,3 @@ name = "Security Officer (Legion)" box = /obj/item/storage/box/survival/security -/* -/datum/outfit/generic/oldminer/pre_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - suit = /obj/item/clothing/suit/hooded/explorer/old - mask = /obj/item/clothing/mask/gas/explorer/old - if(prob(95)) - glasses = /obj/item/clothing/glasses/meson - else - glasses = /obj/item/clothing/glasses/meson/night - suit_store = /obj/item/tank/internals/oxygen - gloves = /obj/item/clothing/gloves/explorer/old - uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland/old - if(prob(85)) - back = /obj/item/storage/backpack/explorer - for(var/count in 1 to 3) - if(prob(70)) - backpack_contents += pickweight(list( - /obj/item/borg/upgrade/modkit/damage = 1, - /obj/item/borg/upgrade/modkit/trigger_guard = 1, - /obj/item/soap/nanotrasen = 1, - /obj/item/wormhole_jaunter = 1, - /obj/item/fulton_core = 1, - /obj/item/extraction_pack = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 3, - /obj/item/hivelordstabilizer = 2, - /obj/item/stack/marker_beacon/ten = 2, - /obj/item/mining_scanner = 2, - /obj/item/extinguisher/mini = 2, - /obj/item/kitchen/knife/combat/survival = 3, - /obj/item/flashlight/seclite=3, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 - ) - ) - if(prob(30)) - backpack_contents += list( - /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list( - 1 = 3, - 2 = 2, - 3 = 1 - ) - ) - ) - else - back = /obj/item/kinetic_crusher/old - if(prob(30)) - belt = /obj/item/gun/energy/kinetic_accelerator/old - if(prob(30)) - r_pocket = pickweight(list( - /obj/item/stack/marker_beacon = 20, - /obj/item/spacecash/bundle/mediumrand = 7, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/damage = 1 - ) - ) - if(prob(30)) - l_pocket = pickweight(list( - /obj/item/spacecash/bundle/mediumrand = 5, - /obj/item/reagent_containers/hypospray/medipen/survival = 2, - /obj/item/borg/upgrade/modkit/cooldown = 1 - ) - ) - -/datum/outfit/generic/oldminer - name = "Old Miner (Legion)" -*/ From 467e1c3c8cdffc90446e5005d9a9ded5b9a20750 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:05:50 -0600 Subject: [PATCH 52/99] first try? --- code/modules/unit_tests/outfit_sanity.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index fee653cd626f..f0258bed54dd 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -20,6 +20,7 @@ /datum/unit_test/outfit_sanity/Run() var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human) + var/list created_items = list() for (var/outfit_type in subtypesof(/datum/outfit)) // Only make one human and keep undressing it because it's much faster @@ -58,5 +59,12 @@ for (var/_ in 1 to number) if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE)) TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + // Check if the created outfit is of subtype /datum/outfit/generic + if (isoutfit(outfit, /datum/outfit/generic)) + for (var/obj/item/I in H.get_equipped_items(include_pockets = TRUE)) + list/append(created_items, I.path) + for (var/item in created_items) + world.log << "Created Item: [item.name] ([item.path])" + #undef CHECK_OUTFIT_SLOT From 7a043df5417ebc853bfb697758a78e1e60762eff Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:08:34 -0600 Subject: [PATCH 53/99] minor mistake (dead) --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 66879b95c451..c44b1f53bb95 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -416,7 +416,7 @@ "Doctor" = 5, "Scientist" = 5, "Cargo" = 5, - "Security" = 5, + "Security" = 5 ) ) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 04ccfd06b466..b243c2a181c7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -187,6 +187,8 @@ gloves = pickweight(list( /obj/item/clothing/gloves/color/black = 9, /obj/item/clothing/gloves/explorer/old = 1 + ) + ) if(prob(75)) shoes = /obj/item/clothing/shoes/workboots/mining if(prob(75)) From 8bf1fbb41f69930f2067659e1256ecf7d00ff2f5 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:12:48 -0600 Subject: [PATCH 54/99] revert --- code/modules/unit_tests/outfit_sanity.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index f0258bed54dd..fee653cd626f 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -20,7 +20,6 @@ /datum/unit_test/outfit_sanity/Run() var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human) - var/list created_items = list() for (var/outfit_type in subtypesof(/datum/outfit)) // Only make one human and keep undressing it because it's much faster @@ -59,12 +58,5 @@ for (var/_ in 1 to number) if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE)) TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") - // Check if the created outfit is of subtype /datum/outfit/generic - if (isoutfit(outfit, /datum/outfit/generic)) - for (var/obj/item/I in H.get_equipped_items(include_pockets = TRUE)) - list/append(created_items, I.path) - for (var/item in created_items) - world.log << "Created Item: [item.name] ([item.path])" - #undef CHECK_OUTFIT_SLOT From 60ddaaf961613f35051c0c58501cbeaff840941c Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:15:13 -0600 Subject: [PATCH 55/99] basic enough? --- code/modules/unit_tests/hivelord_count.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 code/modules/unit_tests/hivelord_count.dm diff --git a/code/modules/unit_tests/hivelord_count.dm b/code/modules/unit_tests/hivelord_count.dm new file mode 100644 index 000000000000..02a869f5b9bc --- /dev/null +++ b/code/modules/unit_tests/hivelord_count.dm @@ -0,0 +1,11 @@ +/datum/unit_test/count_mob_spawn_items/Run() + var/int total_items_created = 0 + + for (var/i in 1 to 100) + var/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/SpawnEffect = new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested + SpawnEffect.Initialize() + + for (var/obj/item/I in SpawnEffect.loc.get_contents()) + total_items_created += 1 + + world.log << "Total items created from mob_spawn: [total_items_created]" From 772c47daa8a55fccf3edcc9d41ade04f7498abba Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:16:38 -0600 Subject: [PATCH 56/99] agh --- code/modules/unit_tests/hivelord_count.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/unit_tests/hivelord_count.dm b/code/modules/unit_tests/hivelord_count.dm index 02a869f5b9bc..2d7ef551063e 100644 --- a/code/modules/unit_tests/hivelord_count.dm +++ b/code/modules/unit_tests/hivelord_count.dm @@ -1,5 +1,5 @@ /datum/unit_test/count_mob_spawn_items/Run() - var/int total_items_created = 0 + var/total_items_created = 0 for (var/i in 1 to 100) var/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/SpawnEffect = new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested @@ -8,4 +8,4 @@ for (var/obj/item/I in SpawnEffect.loc.get_contents()) total_items_created += 1 - world.log << "Total items created from mob_spawn: [total_items_created]" + world.log << "Total items created from mob_spawn: [total_items_created]" From 5590e569434bc83df53a3724cdabee5ffe778384 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:17:45 -0600 Subject: [PATCH 57/99] include --- code/modules/unit_tests/_unit_tests.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index d4bfa21201be..9e1d93b8f577 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -73,6 +73,7 @@ #include "connect_loc.dm" #include "biome_lists.dm" #include "emoting.dm" +#include "hivelord_count.dm" #include "keybinding_init.dm" #include "machine_disassembly.dm" #include "open_air.dm" From abb7e168c29a545406925521ee61209dc5a768a8 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:24:51 -0600 Subject: [PATCH 58/99] test? --- code/modules/unit_tests/hivelord_count.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/unit_tests/hivelord_count.dm b/code/modules/unit_tests/hivelord_count.dm index 2d7ef551063e..5d3fc9c1b23c 100644 --- a/code/modules/unit_tests/hivelord_count.dm +++ b/code/modules/unit_tests/hivelord_count.dm @@ -8,4 +8,4 @@ for (var/obj/item/I in SpawnEffect.loc.get_contents()) total_items_created += 1 - world.log << "Total items created from mob_spawn: [total_items_created]" + TEST_FAIL("Total items created from mob_spawn: [total_items_created]") From 83f70dc91e8c86671b5c10389325f3252af794c4 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 15:45:09 -0600 Subject: [PATCH 59/99] dunno --- code/modules/unit_tests/hivelord_count.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/unit_tests/hivelord_count.dm b/code/modules/unit_tests/hivelord_count.dm index 5d3fc9c1b23c..78896262bdfa 100644 --- a/code/modules/unit_tests/hivelord_count.dm +++ b/code/modules/unit_tests/hivelord_count.dm @@ -4,8 +4,9 @@ for (var/i in 1 to 100) var/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/SpawnEffect = new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested SpawnEffect.Initialize() + var/mob/M = - for (var/obj/item/I in SpawnEffect.loc.get_contents()) + for (var/obj/item/I in M.get_contents()) total_items_created += 1 TEST_FAIL("Total items created from mob_spawn: [total_items_created]") From c84b0c0c3f4eb4d20164b78240af63da03615362 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 18:19:44 -0600 Subject: [PATCH 60/99] yea --- .../hostile/mining_mobs/hivelord_outfits.dm | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index b243c2a181c7..0f0f89d3769a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -355,6 +355,27 @@ glasses = pick(/obj/item/clothing/glasses/hud/diagnostic, /obj/item/clothing/glasses/science) if(prob(1)) neck = /obj/item/clothing/neck/tie/horrible + for(var/i = 1 to 3) + if(prob(75)) + backpack_contents += pickweight(list( + /obj/item/research_notes/loot/tiny = 3, + /obj/item/research_notes/loot/small = 3, + /obj/item/reagent_scanner = 3, + /obj/item/assembly/flash/handheld = 3, + /obj/item/stock_parts/capacitor/adv = 2, + /obj/item/stock_parts/scanning_module/adv = 2, + /obj/item/stock_parts/manipulator/nano = 2, + /obj/item/stock_parts/micro_laser/high = 2, + /obj/item/stock_parts/matter_bin/adv = 2, + /obj/item/survey_handheld = 1, + /obj/item/weldingtool/experimental = 1, + /obj/item/fishing_rod/tech = 1, + /obj/item/mmi/posibrain = 1, + /obj/item/reagent_containers/glass/beaker/plastic = 1, + /obj/item/organ/eyes/robotic/shield = 1, + /obj/item/organ/eyes/robotic/glow = 1, + ) + ) if(prob(75)) accessory = /obj/item/clothing/accessory/armband/science @@ -368,6 +389,8 @@ uniform = pick(/obj/item/clothing/under/rank/cargo/tech, /obj/item/clothing/under/shorts/grey) if(prob(75)) suit = pick(/obj/item/clothing/suit/hazardvest, /obj/item/clothing/suit/hooded/wintercoat/cargo) + if(prob(25)) + belt = /obj/item/gun/ballistic/automatic/zip_pistol if(prob(75)) gloves = /obj/item/clothing/gloves/fingerless if(prob(75)) @@ -381,6 +404,7 @@ backpack_contents += pickweight(list( /obj/item/spacecash/bundle/mediumrand = 5, /obj/item/ammo_box/a762 = 5, + /obj/item/ammo_box/magazine/zip_ammo_9mm = 5, /obj/item/modular_computer/tablet/preset/cargo = 3, /obj/item/stack/tape = 3, /obj/item/stack/tape/industrial = 3, From 970e101d9d6a3009c0a2a2beb1456279fc59c439 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 18 Dec 2023 18:24:09 -0600 Subject: [PATCH 61/99] doctor tweak --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 0f0f89d3769a..460af0d98ad8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -319,12 +319,18 @@ for(var/i = 1 to 3) if(prob(75)) backpack_contents += pickweight(list( + /obj/item/reagent_containers/pill/patch/styptic = 5, + /obj/item/reagent_containers/pill/patch/silver_sulf = 5, /obj/item/storage/firstaid/medical = 3, + /obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/glass/beaker = 2, /obj/item/reagent_containers/dropper = 2, + /obj/item/reagent_containers/pill/charcoal = 2, + /obj/item/reagent_containers/medigel/styptic = 2, + /obj/item/reagent_containers/medigel/silver_sulf = 2, + /obj/item/reagent_containers/medigel/sterilizine = 1, /obj/item/flashlight/pen = 1, /obj/item/hypospray/mkii = 1, - /obj/item/storage/bag/medical = 1, /obj/item/healthanalyzer = 1, ) ) From c0ec5c06570ae2ac9c80ccd9f6f1043cd11ad63d Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 27 Dec 2023 19:33:28 -0600 Subject: [PATCH 62/99] shrug --- code/modules/unit_tests/_unit_tests.dm | 1 - code/modules/unit_tests/hivelord_count.dm | 12 ------------ 2 files changed, 13 deletions(-) delete mode 100644 code/modules/unit_tests/hivelord_count.dm diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 9e1d93b8f577..d4bfa21201be 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -73,7 +73,6 @@ #include "connect_loc.dm" #include "biome_lists.dm" #include "emoting.dm" -#include "hivelord_count.dm" #include "keybinding_init.dm" #include "machine_disassembly.dm" #include "open_air.dm" diff --git a/code/modules/unit_tests/hivelord_count.dm b/code/modules/unit_tests/hivelord_count.dm deleted file mode 100644 index 78896262bdfa..000000000000 --- a/code/modules/unit_tests/hivelord_count.dm +++ /dev/null @@ -1,12 +0,0 @@ -/datum/unit_test/count_mob_spawn_items/Run() - var/total_items_created = 0 - - for (var/i in 1 to 100) - var/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/SpawnEffect = new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested - SpawnEffect.Initialize() - var/mob/M = - - for (var/obj/item/I in M.get_contents()) - total_items_created += 1 - - TEST_FAIL("Total items created from mob_spawn: [total_items_created]") From 0b9eacbfbea3960b80c9ec76250cc04c55aec8f9 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 4 Jan 2024 13:56:18 -0600 Subject: [PATCH 63/99] yuh --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 460af0d98ad8..fc17d193bdf3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -285,6 +285,7 @@ /obj/item/tank/internals/emergency_oxygen/engi = 1, /obj/item/holosign_creator/engineering = 1, /obj/item/extinguisher/advanced = 1, + /obj/item/stack/sheet/metal/twenty = 1 ) ) if(prob(75)) @@ -305,11 +306,11 @@ if(prob(75)) belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1)) if(prob(75)) - gloves = /obj/item/clothing/gloves/color/white + gloves = pick(/obj/item/clothing/gloves/color/white, /obj/item/clothing/gloves/color/latex/nitrile) if(prob(75)) mask = /obj/item/clothing/mask/surgical if(prob(75)) - shoes = pick(/obj/item/clothing/shoes/sneakers/white, /obj/item/clothing/gloves/color/latex/nitrile) + shoes = /obj/item/clothing/shoes/sneakers/white if(prob(75)) head = /obj/item/clothing/head/beret/med if(prob(75)) From cdb77cde9606f1c2ed22e74c2c8fb0b866ce18f7 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 11 Jan 2024 07:53:08 -0600 Subject: [PATCH 64/99] i dunno what to do about the fails --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index fc17d193bdf3..d961c04cbaac 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -302,7 +302,9 @@ if(prob(75)) suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) if(prob(75)) - back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med, /obj/item/defibrillator/loaded) + back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med) + else(prob(75)) + back = /obj/item/defibrillator/loaded if(prob(75)) belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1)) if(prob(75)) @@ -376,7 +378,6 @@ /obj/item/stock_parts/matter_bin/adv = 2, /obj/item/survey_handheld = 1, /obj/item/weldingtool/experimental = 1, - /obj/item/fishing_rod/tech = 1, /obj/item/mmi/posibrain = 1, /obj/item/reagent_containers/glass/beaker/plastic = 1, /obj/item/organ/eyes/robotic/shield = 1, From 98090ac199ca985f8819a4c7641d26b46b0bfec4 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 11 Jan 2024 08:07:44 -0600 Subject: [PATCH 65/99] if --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index d961c04cbaac..e276773bfeb6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -303,7 +303,7 @@ suit = pick(/obj/item/clothing/suit/toggle/labcoat, /obj/item/clothing/suit/apron/surgical ,/obj/item/clothing/suit/hooded/wintercoat/medical) if(prob(75)) back = pick(/obj/item/storage/backpack/medic, /obj/item/storage/backpack/satchel/med, /obj/item/storage/backpack/duffelbag/med, /obj/item/storage/backpack/messenger/med) - else(prob(75)) + else if (prob(75)) back = /obj/item/defibrillator/loaded if(prob(75)) belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1)) From 3fa71828d1b3d6314a96bdc04fb8888c3f0da13f Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 11 Jan 2024 08:15:44 -0600 Subject: [PATCH 66/99] evil tbh --- code/datums/outfit.dm | 3 +++ .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 1 + code/modules/unit_tests/outfit_sanity.dm | 6 +++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 964c269b5f43..34771af91ed2 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -104,6 +104,9 @@ /// Set to FALSE if your outfit requires runtime parameters var/can_be_admin_equipped = TRUE + // Used to determine if it should be ignored in unit tests due to being to dynamic to always spawn backpack contents right + var/random = FALSE + /** * extra types for chameleon outfit changes, mostly guns * diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index e276773bfeb6..4ec84f115bd2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -148,6 +148,7 @@ /datum/outfit/generic name = "Generic (Legion)" box = /obj/item/storage/box/survival + random = TRUE /datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index fee653cd626f..dfb877dcd663 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -57,6 +57,10 @@ var/number = backpack_contents[path] || 1 for (var/_ in 1 to number) if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE)) - TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + if (outfit.random != TRUE) + TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + else + log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + #undef CHECK_OUTFIT_SLOT From 10e1c4183ce6aef08390fd330aae8c36b0292122 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 11 Jan 2024 08:29:50 -0600 Subject: [PATCH 67/99] random sprite fixes --- code/game/objects/effects/decals/crayon.dm | 1 + .../temporary_visuals/projectiles/muzzle.dm | 2 +- code/modules/cargo/supplypod.dm | 2 +- code/modules/clothing/suits/jobs.dm | 18 ------------------ code/modules/station_goals/bsa.dm | 2 +- 5 files changed, 4 insertions(+), 21 deletions(-) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 173764fdf198..c14086ff0f3b 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -37,6 +37,7 @@ GLOBAL_LIST(gang_tags) name = "Leet Like Jeff K gang tag" desc = "Looks like someone's claimed this area for Leet Like Jeff K." icon = 'icons/obj/gang/tags.dmi' + icon_state = "B_tag" layer = BELOW_MOB_LAYER var/datum/team/gang/my_gang diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index e684c2826bca..d4b0df5ab5ef 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -6,7 +6,7 @@ icon_state = "muzzle_laser" /obj/effect/projectile/muzzle/laser/blue - icon_state = "muzzle_laser_blue" + icon_state = "muzzle_blue" /obj/effect/projectile/muzzle/laser/emitter name = "emitter flash" diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 16b43704df58..aa40a22cd096 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -471,7 +471,7 @@ /obj/effect/engineglow //Falling pod smoke name = "" icon = 'icons/obj/supplypods.dmi' - icon_state = "pod_engineglow" + icon_state = "pod_glow_yellow" desc = "" layer = GASFIRE_LAYER mouse_opacity = MOUSE_OPACITY_TRANSPARENT diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index c9c0edd2def8..0fb415c57655 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -216,24 +216,6 @@ icon_state = "surgical" allowed = list(/obj/item/scalpel, /obj/item/cautery, /obj/item/hemostat, /obj/item/retractor) -//Robotocist - -/obj/item/clothing/suit/hooded/techpriest - name = "techpriest robes" - desc = "For those who REALLY love their toasters." - icon_state = "techpriest" - item_state = "techpriest" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - hoodtype = /obj/item/clothing/head/hooded/techpriest - -/obj/item/clothing/head/hooded/techpriest - name = "techpriest's hood" - desc = "A hood for those who REALLY love their toasters." - icon_state = "techpriesthood" - item_state = "techpriesthood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS - //Lieutenant /obj/item/clothing/suit/armor/lieutenant_trenchcoat name = "lieutenant's trenchcoat" diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 7de9e83581fe..b030899d04c2 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -120,7 +120,7 @@ name = "Bluespace Artillery" desc = "Long range bluespace artillery." icon = 'icons/obj/lavaland/cannon.dmi' - icon_state = "orbital_cannon1" + icon_state = "cannon_west" var/static/mutable_appearance/top_layer var/ex_power = 3 var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it From 139821160716cc8ef73a049975854f473aa0e463 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 4 Mar 2024 19:15:38 -0600 Subject: [PATCH 68/99] path fixes --- .../simple_animal/hostile/mining_mobs/hivelord_outfits.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 4ec84f115bd2..0dca4c21dade 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -44,11 +44,11 @@ ) if (prob(10)) belt = pickweight(list( - /obj/item/gun/ballistic/automatic/pistol/m1911 = 2, + /obj/item/gun/ballistic/automatic/pistol/candor = 2, /obj/item/gun/ballistic/automatic/pistol/commander = 1, /obj/item/gun/ballistic/automatic/pistol = 1, /obj/item/gun/ballistic/revolver = 1, - /obj/item/gun/ballistic/revolver/pepperbox = 1, + /obj/item/gun/ballistic/revolver/firebrand = 1, ) ) if(prob(50)) @@ -412,7 +412,7 @@ if(prob(75)) backpack_contents += pickweight(list( /obj/item/spacecash/bundle/mediumrand = 5, - /obj/item/ammo_box/a762 = 5, + /obj/item/ammo_box/magazine/illestren_a850r = 5, /obj/item/ammo_box/magazine/zip_ammo_9mm = 5, /obj/item/modular_computer/tablet/preset/cargo = 3, /obj/item/stack/tape = 3, @@ -425,7 +425,7 @@ accessory = /obj/item/clothing/accessory/armband/cargo if(prob(25)) suit = /obj/item/clothing/suit/armor/vest/scrap_armor - suit_store = /obj/item/gun/ballistic/rifle/boltaction //An attempt to refrence gun cargo + suit_store = /obj/item/gun/ballistic/rifle/illestren /datum/outfit/generic/cargo name = "Cargo Technician (Legion)" From 32243bcf219aca0d0de1c0e241b08a4dc9d6311b Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 08:25:40 -0500 Subject: [PATCH 69/99] cleans up outfit spawning a little. would like to move it to a proper define --- .../hostile/mining_mobs/hivelord.dm | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 94871786b6a6..70d03890d917 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -423,19 +423,16 @@ ) ) - switch(type) - if("Miner") - outfit = /datum/outfit/generic/miner - if("Assistant") - outfit = /datum/outfit/generic - if("Engineer") - outfit = /datum/outfit/generic/engineer - if("Doctor") - outfit = /datum/outfit/generic/doctor - if("Scientist") - outfit = /datum/outfit/generic/science - if("Cargo") - outfit = /datum/outfit/generic/cargo - if("Security") - outfit = /datum/outfit/generic/security + var/outfit_map = list( + "Miner" = /datum/outfit/generic/miner, + "Assistant" = /datum/outfit/generic, + "Engineer" = /datum/outfit/generic/engineer, + "Doctor" = /datum/outfit/generic/doctor, + "Scientist" = /datum/outfit/generic/science, + "Cargo" = /datum/outfit/generic/cargo, + "Security" = /datum/outfit/generic/security + ) + + outfit = outfit_map[type] // Access outfit directly + . = ..() From 571e6d9845c1da0b0f19d30ab67ac64b94163233 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 08:28:56 -0500 Subject: [PATCH 70/99] Kills legion disease cause its bad and weird --- code/datums/diseases/advance/presets.dm | 8 -- .../diseases/advance/symptoms/necropolis.dm | 113 ------------------ .../hostile/mining_mobs/hivelord.dm | 5 - .../reagents/reagent_containers/bottle.dm | 6 - shiptest.dme | 1 - 5 files changed, 133 deletions(-) delete mode 100644 code/datums/diseases/advance/symptoms/necropolis.dm diff --git a/code/datums/diseases/advance/presets.dm b/code/datums/diseases/advance/presets.dm index da8ad0d69a59..1924d92428e4 100644 --- a/code/datums/diseases/advance/presets.dm +++ b/code/datums/diseases/advance/presets.dm @@ -16,14 +16,6 @@ symptoms = list(new/datum/symptom/cough) ..() -/datum/disease/advance/necropolis - copy_type = /datum/disease/advance - -/datum/disease/advance/necropolis/New() - name = "Necropolis Seed" - symptoms = list(new/datum/symptom/necroseed) - ..() - //Randomly generated Disease, for virus crates and events /datum/disease/advance/random name = "Experimental Disease" diff --git a/code/datums/diseases/advance/symptoms/necropolis.dm b/code/datums/diseases/advance/symptoms/necropolis.dm deleted file mode 100644 index 9626b944124d..000000000000 --- a/code/datums/diseases/advance/symptoms/necropolis.dm +++ /dev/null @@ -1,113 +0,0 @@ -/datum/symptom/necroseed - name = "Necropolis Seed" - desc = "An infantile form of the root of Lavaland's tendrils. Forms a symbiotic bond with the host, making them stronger and hardier, at the cost of speed. Should the disease be cured, the host will be severely weakened." - stealth = 0 - resistance = 3 - stage_speed = -10 - transmittable = -3 - level = 9 - base_message_chance = 3 - severity = 0 - symptom_delay_min = 1 - symptom_delay_max = 1 - var/color = "#302f20" - var/tendrils = FALSE - var/chest = FALSE - var/fireproof = FALSE - threshold_descs = list( - "Resistance 15" = "The area near the host roils with paralyzing tendrils.", - "Resistance 20" = "Host becomes immune to heat, ash, and lava. Removes movespeed debuff. Hail to the necropolis!", - ) - var/list/cached_tentacle_turfs - var/turf/last_location - var/tentacle_recheck_cooldown = 100 - -/datum/symptom/necroseed/Start(datum/disease/advance/A) - . = ..() - if(!.) - return - if(A.totalResistance() >= 15) - tendrils = TRUE - if(A.totalResistance() >= 20) - fireproof = TRUE - -/datum/symptom/necroseed/Activate(datum/disease/advance/A) - . = ..() - if(!.) - return - var/mob/living/carbon/M = A.affected_mob - switch(A.stage) - if(1, 2) - if(tendrils) - tendril(A) - if(prob(base_message_chance)) - to_chat(M, "Your skin feels scaly.") - if(3, 4) - if(tendrils) - tendril(A) - if(prob(base_message_chance)) - to_chat(M, "[pick("Your skin is hard.", "You feel stronger.", "You feel powerful.", "You feel your muscles growing stiff.", "You feel warm.")]") - if(5) - if(tendrils) - tendril(A) - M.dna.species.punchdamagelow = 15 - M.dna.species.punchdamagehigh = 20 - M.dna.species.punchstunthreshold = 18 - M.dna.species.brutemod = 0.6 - M.dna.species.burnmod = 0.6 - M.dna.species.heatmod = 0.6 - M.add_atom_colour(color, FIXED_COLOUR_PRIORITY) - M.add_movespeed_modifier(/datum/movespeed_modifier/necropolis, update=TRUE) - ADD_TRAIT(M, TRAIT_PIERCEIMMUNE, DISEASE_TRAIT) - if(fireproof) - to_chat(M, "[pick("You taste primordial ash.", "The necropolis whispers sweet nothings to you.", "You feel like a god.")]") - ADD_TRAIT(M, TRAIT_RESISTHEAT, DISEASE_TRAIT) - ADD_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, DISEASE_TRAIT) - M.weather_immunities |= "ash" - M.weather_immunities |= "lava" - M.remove_movespeed_modifier(/datum/movespeed_modifier/necropolis) - else - if(prob(base_message_chance)) - to_chat(M, "[pick("Your skin has become a hardened carapace.", "Your strength is superhuman.", "You feel invincible.")]") - if(tendrils) - tendril(A) - return - -/datum/symptom/necroseed/proc/tendril(datum/disease/advance/A) - . = A.affected_mob - var/mob/living/loc = A.affected_mob.loc - if(isturf(loc)) - if(!LAZYLEN(cached_tentacle_turfs) || loc != last_location || tentacle_recheck_cooldown <= world.time) - LAZYCLEARLIST(cached_tentacle_turfs) - last_location = loc - tentacle_recheck_cooldown = world.time + initial(tentacle_recheck_cooldown) - for(var/turf/open/T in orange(4, loc)) - LAZYADD(cached_tentacle_turfs, T) - for(var/t in cached_tentacle_turfs) - if(isopenturf(t)) - if(prob(10)) - new /obj/effect/temp_visual/goliath_tentacle(t, .) - else - cached_tentacle_turfs -= t - -/datum/symptom/necroseed/End(datum/disease/advance/A) - . = ..() - if(!.) - return - var/mob/living/carbon/M = A.affected_mob - to_chat(M, "You feel weakened as the necropolis' blessing leaves your body.") - M.remove_movespeed_modifier(/datum/movespeed_modifier/necropolis) - M.dna.species.punchdamagelow = initial(M.dna.species.punchdamagelow) - M.dna.species.punchdamagehigh = initial(M.dna.species.punchdamagehigh) - M.dna.species.punchstunthreshold = initial(M.dna.species.punchstunthreshold) - M.remove_atom_colour(color, FIXED_COLOUR_PRIORITY) - M.dna.species.brutemod /= 0.6 - M.dna.species.burnmod /= 0.6 - M.dna.species.heatmod /= 0.6 - REMOVE_TRAIT(M, TRAIT_PIERCEIMMUNE, DISEASE_TRAIT) - if(fireproof) - REMOVE_TRAIT(M, TRAIT_RESISTHIGHPRESSURE, DISEASE_TRAIT) - REMOVE_TRAIT(M, TRAIT_RESISTHEAT, DISEASE_TRAIT) - M.weather_immunities -= "ash" - M.weather_immunities -= "lava" - diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 70d03890d917..855fecc6cc02 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -316,14 +316,9 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT visible_message("[src] falls over with a mighty crash, the remaining legions within it falling apart!") - new /obj/item/crusher_trophy/legion_skull(loc) - new /obj/item/crusher_trophy/legion_skull(loc) - new /obj/item/crusher_trophy/legion_skull(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) new /mob/living/simple_animal/hostile/asteroid/hivelord/legion(loc) - if(prob(45)) - new /obj/item/reagent_containers/glass/bottle/necropolis_seed(loc) ..(gibbed) /mob/living/simple_animal/hostile/big_legion/Initialize() diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 3710a25f3aab..a58b0d451def 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -275,12 +275,6 @@ desc = "A small bottle containing Bio Virus Antidote Kit." list_reagents = list(/datum/reagent/vaccine/fungal_tb = 30) -/obj/item/reagent_containers/glass/bottle/necropolis_seed - name = "bowl of blood" - desc = "A clay bowl containing a fledgling spire, preserved in blood. When consumed, allows the user to transform into an avatar of the Necropolis. A robust virologist may be able to unlock its full potential..." - icon_state = "mortar_bone" - spawned_disease = /datum/disease/advance/necropolis - //Oldstation.dmm chemical storage bottles /obj/item/reagent_containers/glass/bottle/hydrogen diff --git a/shiptest.dme b/shiptest.dme index 64740a107520..0dac130e5220 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -601,7 +601,6 @@ #include "code\datums\diseases\advance\symptoms\itching.dm" #include "code\datums\diseases\advance\symptoms\nanites.dm" #include "code\datums\diseases\advance\symptoms\narcolepsy.dm" -#include "code\datums\diseases\advance\symptoms\necropolis.dm" #include "code\datums\diseases\advance\symptoms\oxygen.dm" #include "code\datums\diseases\advance\symptoms\sensory.dm" #include "code\datums\diseases\advance\symptoms\shedding.dm" From 36f5b04e5072e1574bb0aa5a09a26554dd8fb8b9 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:02:37 -0500 Subject: [PATCH 71/99] cleaning up some spawner stuff --- .../mapgen/planetary/AsteroidGenerator.dm | 1 - code/game/objects/structures/spawner.dm | 41 ++----------------- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/code/datums/mapgen/planetary/AsteroidGenerator.dm b/code/datums/mapgen/planetary/AsteroidGenerator.dm index c2f7a5340097..e39a0cc41bfa 100644 --- a/code/datums/mapgen/planetary/AsteroidGenerator.dm +++ b/code/datums/mapgen/planetary/AsteroidGenerator.dm @@ -113,7 +113,6 @@ feature_spawn_list = list( /obj/structure/geyser/random = 1, /obj/structure/spawner/mining/goliath = 1, - /obj/structure/spawner/mining = 1, /obj/structure/spawner/mining/hivelord = 1 ) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 6929bb46cf19..8c55783aa692 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(astroloot, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, @@ -53,39 +52,6 @@ GLOBAL_LIST_INIT(astroloot, list( return ..() - -/obj/structure/spawner/syndicate - name = "warp beacon" - icon = 'icons/obj/device.dmi' - icon_state = "syndbeacon" - spawn_text = "warps in from" - mob_types = list(/mob/living/simple_animal/hostile/syndicate/ranged) - faction = list(ROLE_SYNDICATE) - -/obj/structure/spawner/skeleton - name = "bone pit" - desc = "A pit full of bones, and some still seem to be moving..." - icon_state = "hole" - icon = 'icons/mob/nest.dmi' - max_integrity = 150 - max_mobs = 15 - spawn_time = 150 - mob_types = list(/mob/living/simple_animal/hostile/skeleton) - spawn_text = "climbs out of" - faction = list("skeleton") - -/obj/structure/spawner/clown - name = "Laughing Larry" - desc = "A laughing, jovial figure. Something seems stuck in his throat." - icon_state = "clownbeacon" - icon = 'icons/obj/device.dmi' - max_integrity = 200 - max_mobs = 15 - spawn_time = 150 - mob_types = list(/mob/living/simple_animal/hostile/retaliate/clown, /mob/living/simple_animal/hostile/retaliate/clown/fleshclown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk, /mob/living/simple_animal/hostile/retaliate/clown/longface, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus, /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob, /mob/living/simple_animal/hostile/retaliate/clown/banana, /mob/living/simple_animal/hostile/retaliate/clown/honkling, /mob/living/simple_animal/hostile/retaliate/clown/lube) - spawn_text = "climbs out of" - faction = list("clown") - /obj/structure/spawner/carp name = "carp spawn" //the non game spawn meaning desc = "A puddle, which appears to be full of carp" @@ -98,9 +64,6 @@ GLOBAL_LIST_INIT(astroloot, list( spawn_text = "climbs out of" faction = list("carp") -/obj/structure/spawner/mining/proc/adestroy_effect() - playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) - visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") /obj/structure/spawner/mining name = "monster den" @@ -118,6 +81,10 @@ GLOBAL_LIST_INIT(astroloot, list( drop_astroloot() return ..() +/obj/structure/spawner/mining/proc/adestroy_effect() + playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) + visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") + /obj/structure/spawner/mining/proc/drop_astroloot() for(var/type in GLOB.astroloot) var/chance = GLOB.astroloot[type] From 58caef110a5423d22e088601fa297bcbb949af89 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:17:26 -0500 Subject: [PATCH 72/99] more spawner stuff. module folder for spawner stuff? --- .../mob_spawner}/hivebot.dm | 40 ------------------- .../mob_spawner}/spawner.dm | 0 shiptest.dme | 4 +- 3 files changed, 2 insertions(+), 42 deletions(-) rename code/{game/objects/structures => modules/mob_spawner}/hivebot.dm (63%) rename code/{game/objects/structures => modules/mob_spawner}/spawner.dm (100%) diff --git a/code/game/objects/structures/hivebot.dm b/code/modules/mob_spawner/hivebot.dm similarity index 63% rename from code/game/objects/structures/hivebot.dm rename to code/modules/mob_spawner/hivebot.dm index 00124d781d80..7adc08ac769c 100644 --- a/code/game/objects/structures/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -1,43 +1,3 @@ -/obj/structure/hivebot_beacon - name = "beacon" - desc = "Some odd beacon thing." - icon = 'icons/mob/hivebot.dmi' - icon_state = "def_radar-off" - anchored = TRUE - density = TRUE - var/bot_type = "norm" - var/bot_amt = 10 - var/spawn_time_min - var/spawn_time_max - -/obj/structure/hivebot_beacon/Initialize() - . = ..() - var/datum/effect_system/smoke_spread/smoke = new - smoke.set_up(2, loc) - smoke.start() - visible_message("[src] warps in!") - playsound(src.loc, 'sound/effects/empulse.ogg', 25, TRUE) - addtimer(CALLBACK(src, PROC_REF(warpbots)), rand(spawn_time_min, spawn_time_max)) - -/obj/structure/hivebot_beacon/proc/warpbots() - icon_state = "def_radar" - visible_message("[src] turns on!") - while(bot_amt > 0) - bot_amt-- - switch(bot_type) - if("norm") - new /mob/living/simple_animal/hostile/hivebot(get_turf(src)) - if("range") - new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src)) - if("rapid") - new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src)) - - sleep(100) - visible_message("[src] warps out!") - playsound(src.loc, 'sound/effects/empulse.ogg', 25, TRUE) - qdel(src) - return - /obj/structure/spawner/wasteplanet/hivebot name = "hivebot fabricator" desc = "An active fabricator, creating hivebots out of resources from below the surface." diff --git a/code/game/objects/structures/spawner.dm b/code/modules/mob_spawner/spawner.dm similarity index 100% rename from code/game/objects/structures/spawner.dm rename to code/modules/mob_spawner/spawner.dm diff --git a/shiptest.dme b/shiptest.dme index 0dac130e5220..b2bbc84d6c2d 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1337,7 +1337,6 @@ #include "code\game\objects\structures\guillotine.dm" #include "code\game\objects\structures\guncase.dm" #include "code\game\objects\structures\headpike.dm" -#include "code\game\objects\structures\hivebot.dm" #include "code\game\objects\structures\holosign.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_spike.dm" @@ -1365,7 +1364,6 @@ #include "code\game\objects\structures\showcase.dm" #include "code\game\objects\structures\shower.dm" #include "code\game\objects\structures\signs.dm" -#include "code\game\objects\structures\spawner.dm" #include "code\game\objects\structures\spirit_board.dm" #include "code\game\objects\structures\stairs.dm" #include "code\game\objects\structures\statues.dm" @@ -2765,6 +2763,8 @@ #include "code\modules\mob\living\simple_animal\slime\slime.dm" #include "code\modules\mob\living\simple_animal\slime\slime_say.dm" #include "code\modules\mob\living\simple_animal\slime\subtypes.dm" +#include "code\modules\mob_spawner\hivebot.dm" +#include "code\modules\mob_spawner\spawner.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\_modular_computer_shared.dm" #include "code\modules\modular_computers\computers\item\computer.dm" From bb961c395ce322c73a96de438a9d61eddac1aba6 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:29:17 -0500 Subject: [PATCH 73/99] file orginization for spawners --- code/game/objects/structures/{lavaland => }/geyser.dm | 0 .../structures/icemoon => modules/mob_spawner}/cave_entrance.dm | 0 .../lavaland => modules/mob_spawner}/necropolis_tendril.dm | 0 shiptest.dme | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) rename code/game/objects/structures/{lavaland => }/geyser.dm (100%) rename code/{game/objects/structures/icemoon => modules/mob_spawner}/cave_entrance.dm (100%) rename code/{game/objects/structures/lavaland => modules/mob_spawner}/necropolis_tendril.dm (100%) diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/geyser.dm similarity index 100% rename from code/game/objects/structures/lavaland/geyser.dm rename to code/game/objects/structures/geyser.dm diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/modules/mob_spawner/cave_entrance.dm similarity index 100% rename from code/game/objects/structures/icemoon/cave_entrance.dm rename to code/modules/mob_spawner/cave_entrance.dm diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/modules/mob_spawner/necropolis_tendril.dm similarity index 100% rename from code/game/objects/structures/lavaland/necropolis_tendril.dm rename to code/modules/mob_spawner/necropolis_tendril.dm diff --git a/shiptest.dme b/shiptest.dme index b2bbc84d6c2d..0a6f8bcf640d 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1412,7 +1412,6 @@ #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" -#include "code\game\objects\structures\icemoon\cave_entrance.dm" #include "code\game\objects\structures\lavaland\geyser.dm" #include "code\game\objects\structures\lavaland\necropolis_tendril.dm" #include "code\game\objects\structures\plaques\_plaques.dm" @@ -2763,6 +2762,7 @@ #include "code\modules\mob\living\simple_animal\slime\slime.dm" #include "code\modules\mob\living\simple_animal\slime\slime_say.dm" #include "code\modules\mob\living\simple_animal\slime\subtypes.dm" +#include "code\modules\mob_spawner\cave_entrance.dm" #include "code\modules\mob_spawner\hivebot.dm" #include "code\modules\mob_spawner\spawner.dm" #include "code\modules\modular_computers\laptop_vendor.dm" From b81f42f3b8bcadd84ad2f0dc085c1735414552f7 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:34:01 -0500 Subject: [PATCH 74/99] more orginzation for spawner stuff --- .../simple_animal/hostile/netherworld.dm | 46 ---------- code/modules/mob_spawner/hivebot.dm | 2 - code/modules/mob_spawner/mining.dm | 82 ++++++++++++++++++ code/modules/mob_spawner/nether.dm | 45 ++++++++++ code/modules/mob_spawner/spawner.dm | 84 ------------------- shiptest.dme | 2 + 6 files changed, 129 insertions(+), 132 deletions(-) create mode 100644 code/modules/mob_spawner/mining.dm create mode 100644 code/modules/mob_spawner/nether.dm diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index f6d5aa779ad4..25827781b4b8 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -167,49 +167,3 @@ attack_verb_simple = "punch" deathmessage = "falls apart into a fine dust." phaser = FALSE - -/obj/structure/spawner/nether - name = "netherworld link" - desc = null //see examine() - icon_state = "nether" - max_integrity = 50 - spawn_time = 600 //1 minute - max_mobs = 15 - icon = 'icons/mob/nest.dmi' - spawn_text = "crawls through" - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody) - faction = list("nether") - -/obj/structure/spawner/nether/Initialize() - .=..() - START_PROCESSING(SSprocessing, src) - -/obj/structure/spawner/nether/examine(mob/user) - . = ..() - if(isskeleton(user) || iszombie(user)) - . += "A direct link to another dimension full of creatures very happy to see you. You can see your house from here!" - else - . += "A direct link to another dimension full of creatures not very happy to see you. Entering the link would be a very bad idea." - -/obj/structure/spawner/nether/attack_hand(mob/user) - . = ..() - if(isskeleton(user) || iszombie(user)) - to_chat(user, "You don't feel like going home yet...") - else - user.visible_message("[user] is violently pulled into the link!", \ - "Touching the portal, you are quickly pulled through into a world of unimaginable horror!") - contents.Add(user) - -/obj/structure/spawner/nether/process() - for(var/mob/living/M in contents) - if(M) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) - M.adjustBruteLoss(60) - new /obj/effect/gibspawner/generic(get_turf(M), M) - if(M.stat == DEAD) - var/mob/living/simple_animal/hostile/netherworld/blankbody/blank - blank = new(loc) - blank.name = "[M]" - blank.desc = "It's [M], but [M.p_their()] flesh has an ashy texture, and [M.p_their()] face is featureless save an eerie smile." - src.visible_message("[M] reemerges from the link!") - qdel(M) diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm index 7adc08ac769c..82fe1726fc56 100644 --- a/code/modules/mob_spawner/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -68,5 +68,3 @@ /obj/structure/spawner/wasteplanet/hivebot/extreme_threat max_mobs = 10 spawn_time = 150 - - diff --git a/code/modules/mob_spawner/mining.dm b/code/modules/mob_spawner/mining.dm new file mode 100644 index 000000000000..94fefe9aaacf --- /dev/null +++ b/code/modules/mob_spawner/mining.dm @@ -0,0 +1,82 @@ +GLOBAL_LIST_INIT(astroloot, list( + /obj/item/stack/ore/uranium = 50, + /obj/item/stack/ore/iron = 50, + /obj/item/stack/ore/plasma = 75, + /obj/item/stack/ore/silver = 50, + /obj/item/stack/ore/gold = 50, + /obj/item/stack/ore/diamond = 25, + /obj/item/stack/ore/titanium = 75, + /obj/item/pickaxe/diamond = 15, + /obj/item/borg/upgrade/modkit/cooldown = 5, + /obj/item/borg/upgrade/modkit/damage = 5, + /obj/item/borg/upgrade/modkit/range = 5, + /obj/item/t_scanner/adv_mining_scanner/lesser = 15, + /obj/item/kinetic_crusher = 15, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, + /obj/item/tank/jetpack/suit = 10, + /obj/item/survivalcapsule = 15, + /obj/item/reagent_containers/hypospray/medipen/survival = 15, + /obj/item/gps/mining = 10, + /obj/item/extraction_pack = 10, + /obj/item/reagent_containers/food/drinks/beer = 15, + )) + +/obj/structure/spawner/mining + name = "monster den" + desc = "A hole dug into the ground, harboring all kinds of monsters found within most caves or mining asteroids." + icon_state = "hole" + max_mobs = 3 + icon = 'icons/mob/nest.dmi' + spawn_text = "crawls out of" + mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/hivelord, /mob/living/simple_animal/hostile/asteroid/basilisk, /mob/living/simple_animal/hostile/asteroid/fugu) + faction = list("mining") + density = 0 + +/obj/structure/spawner/mining/deconstruct(disassembled) + adestroy_effect() + drop_astroloot() + return ..() + +/obj/structure/spawner/mining/proc/adestroy_effect() + playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) + visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") + +/obj/structure/spawner/mining/proc/drop_astroloot() + for(var/type in GLOB.astroloot) + var/chance = GLOB.astroloot[type] + if(!prob(chance)) + continue + new type(loc, rand(5, 17)) + +/obj/structure/spawner/mining/goldgrub + name = "goldgrub den" + desc = "A den housing a nest of goldgrubs, annoying but arguably much better than anything else you'll find in a nest." + mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub) + +/obj/structure/spawner/mining/goliath + name = "goliath den" + desc = "A den housing a nest of goliaths, oh god why?" + mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath) + +/obj/structure/spawner/mining/hivelord + name = "hivelord den" + desc = "A den housing a nest of hivelords." + mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord) + +/obj/structure/spawner/mining/basilisk + name = "basilisk den" + desc = "A den housing a nest of basilisks, bring a coat." + mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) + +/obj/structure/spawner/mining/wumborian + name = "wumborian fugu den" + desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?" + mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu) + +/obj/structure/spawner/mining/carp + name = "carp den" + desc = "A den housing a nest of space carp, seems fishy!" + mob_types = list(/mob/living/simple_animal/hostile/carp) + spawn_text = "emerges from" diff --git a/code/modules/mob_spawner/nether.dm b/code/modules/mob_spawner/nether.dm new file mode 100644 index 000000000000..ecdc1fc13f27 --- /dev/null +++ b/code/modules/mob_spawner/nether.dm @@ -0,0 +1,45 @@ +/obj/structure/spawner/nether + name = "netherworld link" + desc = null //see examine() + icon_state = "nether" + max_integrity = 50 + spawn_time = 600 //1 minute + max_mobs = 15 + icon = 'icons/mob/nest.dmi' + spawn_text = "crawls through" + mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody) + faction = list("nether") + +/obj/structure/spawner/nether/Initialize() + .=..() + START_PROCESSING(SSprocessing, src) + +/obj/structure/spawner/nether/examine(mob/user) + . = ..() + if(isskeleton(user) || iszombie(user)) + . += "A direct link to another dimension full of creatures very happy to see you. You can see your house from here!" + else + . += "A direct link to another dimension full of creatures not very happy to see you. Entering the link would be a very bad idea." + +/obj/structure/spawner/nether/attack_hand(mob/user) + . = ..() + if(isskeleton(user) || iszombie(user)) + to_chat(user, "You don't feel like going home yet...") + else + user.visible_message("[user] is violently pulled into the link!", \ + "Touching the portal, you are quickly pulled through into a world of unimaginable horror!") + contents.Add(user) + +/obj/structure/spawner/nether/process() + for(var/mob/living/M in contents) + if(M) + playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + M.adjustBruteLoss(60) + new /obj/effect/gibspawner/generic(get_turf(M), M) + if(M.stat == DEAD) + var/mob/living/simple_animal/hostile/netherworld/blankbody/blank + blank = new(loc) + blank.name = "[M]" + blank.desc = "It's [M], but [M.p_their()] flesh has an ashy texture, and [M.p_their()] face is featureless save an eerie smile." + src.visible_message("[M] reemerges from the link!") + qdel(M) diff --git a/code/modules/mob_spawner/spawner.dm b/code/modules/mob_spawner/spawner.dm index 8c55783aa692..1405b79e88d5 100644 --- a/code/modules/mob_spawner/spawner.dm +++ b/code/modules/mob_spawner/spawner.dm @@ -1,28 +1,3 @@ -GLOBAL_LIST_INIT(astroloot, list( - /obj/item/stack/ore/uranium = 50, - /obj/item/stack/ore/iron = 50, - /obj/item/stack/ore/plasma = 75, - /obj/item/stack/ore/silver = 50, - /obj/item/stack/ore/gold = 50, - /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/titanium = 75, - /obj/item/pickaxe/diamond = 15, - /obj/item/borg/upgrade/modkit/cooldown = 5, - /obj/item/borg/upgrade/modkit/damage = 5, - /obj/item/borg/upgrade/modkit/range = 5, - /obj/item/t_scanner/adv_mining_scanner/lesser = 15, - /obj/item/kinetic_crusher = 15, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/item/tank/jetpack/suit = 10, - /obj/item/survivalcapsule = 15, - /obj/item/reagent_containers/hypospray/medipen/survival = 15, - /obj/item/gps/mining = 10, - /obj/item/extraction_pack = 10, - /obj/item/reagent_containers/food/drinks/beer = 15, - )) - /obj/structure/spawner name = "monster nest" icon = 'icons/mob/animal.dmi' @@ -63,62 +38,3 @@ GLOBAL_LIST_INIT(astroloot, list( mob_types = list(/mob/living/simple_animal/hostile/carp) spawn_text = "climbs out of" faction = list("carp") - - -/obj/structure/spawner/mining - name = "monster den" - desc = "A hole dug into the ground, harboring all kinds of monsters found within most caves or mining asteroids." - icon_state = "hole" - max_mobs = 3 - icon = 'icons/mob/nest.dmi' - spawn_text = "crawls out of" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/hivelord, /mob/living/simple_animal/hostile/asteroid/basilisk, /mob/living/simple_animal/hostile/asteroid/fugu) - faction = list("mining") - density = 0 - -/obj/structure/spawner/mining/deconstruct(disassembled) - adestroy_effect() - drop_astroloot() - return ..() - -/obj/structure/spawner/mining/proc/adestroy_effect() - playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) - visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") - -/obj/structure/spawner/mining/proc/drop_astroloot() - for(var/type in GLOB.astroloot) - var/chance = GLOB.astroloot[type] - if(!prob(chance)) - continue - new type(loc, rand(5, 17)) - -/obj/structure/spawner/mining/goldgrub - name = "goldgrub den" - desc = "A den housing a nest of goldgrubs, annoying but arguably much better than anything else you'll find in a nest." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub) - -/obj/structure/spawner/mining/goliath - name = "goliath den" - desc = "A den housing a nest of goliaths, oh god why?" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath) - -/obj/structure/spawner/mining/hivelord - name = "hivelord den" - desc = "A den housing a nest of hivelords." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord) - -/obj/structure/spawner/mining/basilisk - name = "basilisk den" - desc = "A den housing a nest of basilisks, bring a coat." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) - -/obj/structure/spawner/mining/wumborian - name = "wumborian fugu den" - desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu) - -/obj/structure/spawner/mining/carp - name = "carp den" - desc = "A den housing a nest of space carp, seems fishy!" - mob_types = list(/mob/living/simple_animal/hostile/carp) - spawn_text = "emerges from" diff --git a/shiptest.dme b/shiptest.dme index 0a6f8bcf640d..96146af68713 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2764,6 +2764,8 @@ #include "code\modules\mob\living\simple_animal\slime\subtypes.dm" #include "code\modules\mob_spawner\cave_entrance.dm" #include "code\modules\mob_spawner\hivebot.dm" +#include "code\modules\mob_spawner\mining.dm" +#include "code\modules\mob_spawner\nether.dm" #include "code\modules\mob_spawner\spawner.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\_modular_computer_shared.dm" From 8f66b6e4ec90bd323e9db2ded75a257912bb70cb Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:43:40 -0500 Subject: [PATCH 75/99] moves spawner comp. changed achivment name to more generic. --- code/__DEFINES/achievements.dm | 4 ++-- code/datums/achievements/boss_achievements.dm | 6 +++--- code/datums/achievements/boss_scores.dm | 6 +++--- code/modules/mob_spawner/cave_entrance.dm | 1 - code/modules/mob_spawner/necropolis_tendril.dm | 2 +- .../spawner.dm => modules/mob_spawner/spawner_componet.dm} | 1 - shiptest.dme | 2 +- 7 files changed, 10 insertions(+), 12 deletions(-) rename code/{datums/components/spawner.dm => modules/mob_spawner/spawner_componet.dm} (99%) diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 31dd5523fef9..9134c21c1812 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -40,7 +40,7 @@ #define BOSS_MEDAL_DRAKE "Drake Killer" #define BOSS_MEDAL_HIEROPHANT "Hierophant Killer" #define BOSS_MEDAL_LEGION "Legion Killer" -#define BOSS_MEDAL_TENDRIL "Tendril Exterminator" +#define BOSS_MEDAL_NEST "Nest Exterminator" #define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer" #define BOSS_MEDAL_WENDIGO "Wendigo Killer" #define BOSS_MEDAL_KINGGOAT "King Goat Killer" @@ -67,4 +67,4 @@ #define LEGION_SCORE "Legion Killed" #define SWARMER_BEACON_SCORE "Swarmer Beacs Killed" #define WENDIGO_SCORE "Wendigos Killed" -#define TENDRIL_CLEAR_SCORE "Tendrils Killed" +#define NEST_CLEAR_SCORE "Nests Destroyed" diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index ca45d5939eec..a1aa72959ed5 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -2,10 +2,10 @@ category = "Bosses" icon = "baseboss" -/datum/award/achievement/boss/tendril_exterminator - name = "Tendril Exterminator" +/datum/award/achievement/boss/nest_exterminator + name = "Nest Exterminator" desc = "Watch your step" - database_id = BOSS_MEDAL_TENDRIL + database_id = BOSS_MEDAL_NEST icon = "tendril" /datum/award/achievement/boss/boss_killer diff --git a/code/datums/achievements/boss_scores.dm b/code/datums/achievements/boss_scores.dm index 7cf2fa886183..456773fd22ac 100644 --- a/code/datums/achievements/boss_scores.dm +++ b/code/datums/achievements/boss_scores.dm @@ -1,7 +1,7 @@ -/datum/award/score/tendril_score - name = "Tendril Score" +/datum/award/score/nest_score + name = "Nest Score" desc = "Watch your step" - database_id = TENDRIL_CLEAR_SCORE + database_id = NEST_CLEAR_SCORE /datum/award/score/boss_score name = "Bosses Killed" diff --git a/code/modules/mob_spawner/cave_entrance.dm b/code/modules/mob_spawner/cave_entrance.dm index 9fc83f9ddc88..b2af8237b5e6 100644 --- a/code/modules/mob_spawner/cave_entrance.dm +++ b/code/modules/mob_spawner/cave_entrance.dm @@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, diff --git a/code/modules/mob_spawner/necropolis_tendril.dm b/code/modules/mob_spawner/necropolis_tendril.dm index 7a57d1d5ac3a..c19cd8ed0d1f 100644 --- a/code/modules/mob_spawner/necropolis_tendril.dm +++ b/code/modules/mob_spawner/necropolis_tendril.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_INIT(tendrils, list()) if(L.stat || !L.client) continue L.client.give_award(/datum/award/achievement/boss/tendril_exterminator, L) - L.client.give_award(/datum/award/score/tendril_score, L) //Progresses score by one + L.client.give_award(/datum/award/score/nest_score, L) //Progresses score by one GLOB.tendrils -= src QDEL_NULL(emitted_light) return ..() diff --git a/code/datums/components/spawner.dm b/code/modules/mob_spawner/spawner_componet.dm similarity index 99% rename from code/datums/components/spawner.dm rename to code/modules/mob_spawner/spawner_componet.dm index aab5bb6ea08a..8a904a5504c4 100644 --- a/code/datums/components/spawner.dm +++ b/code/modules/mob_spawner/spawner_componet.dm @@ -14,7 +14,6 @@ var/wave_timer var/current_timerid - /datum/component/spawner/Initialize(_mob_types, _spawn_time, _faction, _spawn_text, _max_mobs, _spawn_sound, _spawn_distance_min, _spawn_distance_max, _wave_length, _wave_downtime) if(_spawn_time) spawn_time=_spawn_time diff --git a/shiptest.dme b/shiptest.dme index 96146af68713..170f1cf16fd6 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -515,7 +515,6 @@ #include "code\datums\components\sizzle.dm" #include "code\datums\components\slippery.dm" #include "code\datums\components\soulstoned.dm" -#include "code\datums\components\spawner.dm" #include "code\datums\components\spill.dm" #include "code\datums\components\spooky.dm" #include "code\datums\components\squeak.dm" @@ -2767,6 +2766,7 @@ #include "code\modules\mob_spawner\mining.dm" #include "code\modules\mob_spawner\nether.dm" #include "code\modules\mob_spawner\spawner.dm" +#include "code\modules\mob_spawner\spawner_componet.dm" #include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\_modular_computer_shared.dm" #include "code\modules\modular_computers\computers\item\computer.dm" From 05a36fd3487defe981254a1d9e0ef73620e36842 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 09:52:51 -0500 Subject: [PATCH 76/99] removes swarmer and king goat achivment plus throphy. --- code/__DEFINES/achievements.dm | 6 ---- code/datums/achievements/boss_achievements.dm | 23 --------------- code/modules/cargo/exports/lavaland.dm | 1 - .../mining/equipment/kinetic_crusher.dm | 29 ------------------- .../hostile/megafauna/swarmer.dm | 3 -- 5 files changed, 62 deletions(-) diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 9134c21c1812..c55604dcebdd 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -28,7 +28,6 @@ //Skill medal hub IDs #define MEDAL_LEGENDARY_MINER "Legendary Miner" - //Boss medals // Medal hub IDs for boss medals (Pre-fixes) @@ -41,9 +40,7 @@ #define BOSS_MEDAL_HIEROPHANT "Hierophant Killer" #define BOSS_MEDAL_LEGION "Legion Killer" #define BOSS_MEDAL_NEST "Nest Exterminator" -#define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer" #define BOSS_MEDAL_WENDIGO "Wendigo Killer" -#define BOSS_MEDAL_KINGGOAT "King Goat Killer" #define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher" #define BOSS_MEDAL_FROSTMINER_CRUSHER "Demonic-frost Miner Crusher" @@ -52,9 +49,7 @@ #define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher" #define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher" #define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher" -#define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher" #define BOSS_MEDAL_WENDIGO_CRUSHER "Wendigo Crusher" -#define BOSS_MEDAL_KINGGOAT_CRUSHER "King Goat Crusher" // Medal hub IDs for boss-kill scores #define BOSS_SCORE "Bosses Killed" @@ -65,6 +60,5 @@ #define DRAKE_SCORE "Drakes Killed" #define HIEROPHANT_SCORE "Hierophants Killed" #define LEGION_SCORE "Legion Killed" -#define SWARMER_BEACON_SCORE "Swarmer Beacs Killed" #define WENDIGO_SCORE "Wendigos Killed" #define NEST_CLEAR_SCORE "Nests Destroyed" diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index a1aa72959ed5..39b355318f0c 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -55,23 +55,11 @@ database_id = BOSS_MEDAL_LEGION icon = "legion" -/datum/award/achievement/boss/swarmer_beacon_kill - name = "Swarm Beacon Killer" - desc = "GET THEM OFF OF ME!" - database_id = BOSS_MEDAL_SWARMERS - icon = "swarmer" - /datum/award/achievement/boss/wendigo_kill name = "Wendigo Killer" desc = "You've now ruined years of mythical storytelling." database_id = BOSS_MEDAL_WENDIGO -/datum/award/achievement/boss/king_goat_kill - name = "King Goat Killer" - desc = "The king is dead, long live the king!" - database_id = BOSS_MEDAL_KINGGOAT - icon = "goatboss" - /datum/award/achievement/boss/blood_miner_crusher name = "Blood-drunk Miner Crusher" desc = "I guess he couldn't handle his drink that well." @@ -112,18 +100,7 @@ desc = "We were many... now we are none." database_id = BOSS_MEDAL_LEGION_CRUSHER -/datum/award/achievement/boss/swarmer_beacon_crusher - name = "Swarm Beacon Crusher" - desc = "GET THEM OFF OF ME!" - database_id = BOSS_MEDAL_SWARMERS_CRUSHER - /datum/award/achievement/boss/wendigo_crusher name = "Wendigo Crusher" desc = "You've now ruined years of mythical storytelling." database_id = BOSS_MEDAL_WENDIGO_CRUSHER - -/datum/award/achievement/boss/king_goat_crusher - name = "King Goat Crusher" - desc = "The king is dead, long live the king!" - database_id = BOSS_MEDAL_KINGGOAT_CRUSHER - icon = "goatboss" diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index b6920bb419bf..a4315fe4d4ff 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -88,7 +88,6 @@ /obj/item/crusher_trophy/demon_claws, /obj/item/crusher_trophy/broodmother_tongue, /obj/item/crusher_trophy/ice_block_talisman, - /obj/item/crusher_trophy/king_goat, /obj/item/crusher_trophy/miner_eye, /obj/item/crusher_trophy/vortex_talisman, /obj/item/crusher_trophy/blaster_tubes) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index debdb2e2ea02..25c1847d69bc 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -678,35 +678,6 @@ /obj/effect/temp_visual/hierophant/wall/crusher duration = 75 -//I am afraid of this code. It also does not function(in terms of doing damage to enemies) as of my last test. -/obj/item/crusher_trophy/king_goat - name = "king goat hoof" - desc = "A hoof from the king of all goats, it still glows with a fraction of its original power..." - icon_state = "goat_hoof" //needs a better sprite but I cant sprite . - denied_type = /obj/item/crusher_trophy/king_goat - -/obj/item/crusher_trophy/king_goat/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/king_goat/effect_desc() - return "you also passively recharge pulses 5x as fast while this is equipped and do a decent amount of damage at the cost of dulling the blade" - -/obj/item/crusher_trophy/king_goat/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - marker.damage = 10 //in my testing only does damage to simple mobs so should be fine to have it high //it does damage to nobody. Please fix -M - -/obj/item/crusher_trophy/king_goat/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time = 3 - H.AddComponent(/datum/component/two_handed, force_wielded=5) - -/obj/item/crusher_trophy/king_goat/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time = 15 - H.AddComponent(/datum/component/two_handed, force_wielded=20) - /obj/item/crusher_trophy/shiny name = "shiny nugget" icon = 'icons/obj/lavaland/elite_trophies.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index a2cceb5a3aaa..5e791b665b6f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -49,9 +49,6 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe mob_biotypes = MOB_ROBOTIC gps_name = "Hungry Signal" - achievement_type = /datum/award/achievement/boss/swarmer_beacon_kill - crusher_achievement_type = /datum/award/achievement/boss/swarmer_beacon_crusher - score_achievement_type = /datum/award/score/swarmer_beacon_score faction = list("mining", "boss", "swarmer") weather_immunities = list("lava","ash") stop_automated_movement = TRUE From b79f67e9214f1c2485f743716d7ea54d8cee0353 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 10:06:46 -0500 Subject: [PATCH 77/99] throphy loot doesnt need to be a list tbh --- .../icemoon_underground_drakelair.dmm | 1 - .../lavaland_surface_lava_canyon.dmm | 1 - .../mining/lavaland/necropolis_chests.dm | 21 ------------------- .../hostile/megafauna/blood_drunk_miner.dm | 2 +- .../hostile/megafauna/bubblegum.dm | 4 ++-- .../hostile/megafauna/codename_claw.dm | 8 ++----- .../hostile/megafauna/colossus.dm | 2 +- .../hostile/megafauna/cult_templar.dm | 2 +- .../hostile/megafauna/demonic_frost_miner.dm | 2 +- .../simple_animal/hostile/megafauna/drake.dm | 4 ++-- .../hostile/megafauna/hierophant.dm | 2 +- .../hostile/megafauna/megafauna.dm | 10 ++++----- .../hostile/megafauna/swarmer.dm | 2 +- .../hostile/megafauna/wendigo.dm | 2 +- .../hostile/mining_mobs/basilisk.dm | 6 +++--- .../hostile/mining_mobs/brimdemon.dm | 2 +- .../hostile/mining_mobs/goliath.dm | 4 ++-- .../hostile/mining_mobs/hivelord.dm | 10 ++++----- .../hostile/mining_mobs/ice whelp.dm | 2 +- .../hostile/mining_mobs/lobstrosity.dm | 2 +- .../hostile/mining_mobs/mining_mobs.dm | 10 ++++----- .../hostile/mining_mobs/polarbear.dm | 4 ++-- .../simple_animal/hostile/mining_mobs/wolf.dm | 4 ++-- 23 files changed, 40 insertions(+), 67 deletions(-) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm index 113fde2af9c7..d000b8fd17a7 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm @@ -128,7 +128,6 @@ /obj/structure/stone_tile/slab, /mob/living/simple_animal/hostile/megafauna/dragon/icemoon{ loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair); - crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair) }, /turf/open/indestructible/boss, /area/ruin) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index ea2d614717da..943b1dccf126 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm @@ -891,7 +891,6 @@ "zb" = ( /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{ loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon); - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/crusher_trophy/miner_eye,/obj/item/keycard/gatedrop/lavacanyon) }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/overmap_encounter/planetoid/cave/explored) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 96954cd59b4d..75c5b80b5e9f 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -1276,13 +1276,6 @@ if(4) new /obj/item/dragons_blood(src) -/obj/structure/closet/crate/necropolis/dragon/crusher - name = "firey dragon chest" - -/obj/structure/closet/crate/necropolis/dragon/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/ash_spike(src) - /obj/item/melee/ghost_sword name = "\improper spectral blade" desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly." @@ -1504,13 +1497,6 @@ if(3) new /obj/item/gun/magic/staff/spellblade(src) -/obj/structure/closet/crate/necropolis/bubblegum/crusher - name = "bloody bubblegum chest" - -/obj/structure/closet/crate/necropolis/bubblegum/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/demon_claws(src) - /obj/item/mayhem name = "mayhem in a bottle" desc = "A magically infused bottle of blood, the scent of which will drive anyone nearby into a murderous frenzy." @@ -1586,13 +1572,6 @@ new random_crystal(src) new /obj/item/organ/vocal_cords/colossus(src) -/obj/structure/closet/crate/necropolis/colossus/crusher - name = "angelic colossus chest" - -/obj/structure/closet/crate/necropolis/colossus/crusher/PopulateContents() - ..() - new /obj/item/crusher_trophy/blaster_tubes(src) - //Hierophant /obj/item/hierophant_club name = "hierophant club" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 5bdc5c882214..9404d6447e3a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -41,7 +41,7 @@ Difficulty: Medium ranged_cooldown_time = 16 pixel_x = -16 base_pixel_x = -16 - crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye) + mob_trophy = /obj/item/crusher_trophy/miner_eye loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator) wander = FALSE del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index d62d695e1be7..ae3b6e959ee7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -56,7 +56,7 @@ Difficulty: Hard pixel_x = -32 base_pixel_x = -32 del_on_death = TRUE - crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher) + mob_trophy = /obj/item/crusher_trophy/demon_claws loot = list(/obj/structure/closet/crate/necropolis/bubblegum) blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME var/charging = FALSE @@ -504,7 +504,7 @@ Difficulty: Hard health = 1 maxHealth = 1 alpha = 127.5 - crusher_loot = null + mob_trophy = null loot = null achievement_type = null crusher_achievement_type = null diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm index cca8a649353f..77b4544a6dbb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm @@ -21,7 +21,6 @@ ranged = TRUE speed = 4 move_to_delay = 4 - crusher_loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen) loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen) wander = FALSE blood_volume = BLOOD_VOLUME_NORMAL @@ -59,8 +58,8 @@ speed = 5 move_to_delay = 5 speak_emote = list("verbalizes") - crusher_loot = list(/obj/effect/spawner/clawloot) - loot = list(/obj/effect/spawner/clawloot/crusher) + mob_trophy = /obj/item/nullrod/armblade/tentacle + loot = list(/obj/effect/spawner/clawloot) health = 2250 maxHealth = 2250 shouldnt_move = TRUE //we want to show the transforming animation @@ -76,9 +75,6 @@ new /obj/item/gun/energy/pulse/pistol(get_turf(src)) qdel(src) -/obj/effect/spawner/clawloot/crusher/spawn_loot() - new /obj/item/nullrod/armblade/tentacle(get_turf(src)) //idk what to put here, memed is the loot person - return ..() ///LOOT END //PHASE ONE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index bd09f06f3521..88143d10ff2d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -50,7 +50,7 @@ Difficulty: Very Hard achievement_type = /datum/award/achievement/boss/colossus_kill crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher score_achievement_type = /datum/award/score/colussus_score - crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) + mob_trophy = /obj/item/crusher_trophy/blaster_tubes loot = list(/obj/structure/closet/crate/necropolis/colossus) deathmessage = "disintegrates, leaving a glowing core in its wake." deathsound = 'sound/magic/demon_dies.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm index 96fbc8b5c4ec..08ef1a7b21cb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm @@ -24,7 +24,7 @@ vision_range = 10 damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted) - crusher_loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) + mob_trophy = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll) wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 14849bb58014..043d727125f4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -28,7 +28,7 @@ Difficulty: Extremely Hard speed = 20 move_to_delay = 20 ranged = TRUE - crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman) + mob_trophy = /obj/item/crusher_trophy/ice_block_talisman loot = list(/obj/effect/decal/remains/plasma) wander = FALSE del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6fcf5ada7f4a..d6d0cedaa112 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -54,7 +54,7 @@ Difficulty: Medium ranged = TRUE pixel_x = -32 base_pixel_x = -32 - crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) + mob_trophy = /obj/item/crusher_trophy/ash_spike loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/gem/amber = 1, /obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/crusher_trophy/ash_spike = 1) @@ -583,7 +583,7 @@ Difficulty: Medium mouse_opacity = MOUSE_OPACITY_ICON damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) loot = list() - crusher_loot = list() + mob_trophy = list() butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) attack_action_types = list() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 4df97bac4a6f..7aa73f05daeb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -59,7 +59,7 @@ Difficulty: Hard ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other loot = list(/obj/item/hierophant_club) - crusher_loot = list(/obj/item/hierophant_club, /obj/item/crusher_trophy/vortex_talisman) + mob_trophy = obj/item/crusher_trophy/vortex_talisman wander = FALSE gps_name = "Zealous Signal" achievement_type = /datum/award/achievement/boss/hierophant_kill diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 120b850cf428..a623272116b0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -28,7 +28,7 @@ layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway flags_1 = PREVENT_CONTENTS_EXPLOSION_1 - var/list/crusher_loot + var/mob_trophy var/achievement_type var/crusher_achievement_type var/score_achievement_type @@ -73,8 +73,8 @@ else var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/crusher_kill = FALSE - if(C && crusher_loot && C.total_damage >= maxHealth * 0.6) - spawn_crusher_loot() + if(C && mob_trophy && C.total_damage >= maxHealth * 0.6) + spawn_mob_trophy() crusher_kill = TRUE if(true_spawn && !(flags_1 & ADMIN_SPAWNED_1)) var/tab = "megafauna_kills" @@ -85,8 +85,8 @@ SSblackbox.record_feedback("tally", tab, 1, "[initial(name)]") ..() -/mob/living/simple_animal/hostile/megafauna/proc/spawn_crusher_loot() - loot = crusher_loot +/mob/living/simple_animal/hostile/megafauna/proc/spawn_mob_trophy() + loot += mob_trophy /mob/living/simple_animal/hostile/megafauna/gib() if(health > 0) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index 5e791b665b6f..04723d80ba5a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa for(var/t in swarmerTypes) . += GLOB.AISwarmerCapsByType[t] - +//this should. not be a simple mob i think /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon name = "swarmer beacon" desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 59a58bd48d16..bdfb10bcba68 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -32,7 +32,7 @@ Difficulty: Hard loot = list() butcher_results = list() guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1) - crusher_loot = list(/obj/item/crusher_trophy/demon_claws) + mob_trophy = /obj/item/crusher_trophy/demon_claws wander = FALSE del_on_death = FALSE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index eb8302536e50..f1b3f004f366 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -230,7 +230,7 @@ movement_type = FLYING robust_searching = 1 attack_same = TRUE // So we'll fight basilisks - crusher_loot = /obj/item/crusher_trophy/watcher_wing + mob_trophy = /obj/item/crusher_trophy/watcher_wing gold_core_spawnable = NO_SPAWN loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) @@ -294,7 +294,7 @@ light_power = 2.5 light_color = LIGHT_COLOR_LAVA projectiletype = /obj/projectile/temp/basilisk/magmawing - crusher_loot = /obj/item/crusher_trophy/magma_wing + mob_trophy = /obj/item/crusher_trophy/magma_wing crusher_drop_mod = 75 /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing @@ -309,7 +309,7 @@ ranged_cooldown_time = 20 projectiletype = /obj/projectile/temp/basilisk/icewing butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable - crusher_loot = /obj/item/crusher_trophy/ice_wing + mob_trophy = /obj/item/crusher_trophy/ice_wing crusher_drop_mod = 75 /obj/projectile/temp/basilisk/magmawing diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm index 1d9f6e174660..871cea5cab1a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm @@ -37,7 +37,7 @@ light_color = LIGHT_COLOR_BLOOD_MAGIC light_power = 5 light_range = 1.4 - crusher_loot = /obj/item/crusher_trophy/brimdemon_fang + mob_trophy = /obj/item/crusher_trophy/brimdemon_fang /// Are we charging/firing? If yes stops our movement. var/firing = FALSE /// A list of all the beam parts. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index ce3850d22f01..5551b3a2d0e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -147,7 +147,7 @@ icon_dead = "goliath_dead" throw_message = "does nothing to the tough hide of the" pre_attack_icon = "goliath_preattack" - crusher_loot = /obj/item/crusher_trophy/goliath_tentacle + mob_trophy = /obj/item/crusher_trophy/goliath_tentacle butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/ore/silver = 10) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2) loot = list() @@ -249,7 +249,7 @@ maxHealth = 180 health = 180 speed = 4 - crusher_loot = /obj/item/crusher_trophy/elder_tentacle + mob_trophy = /obj/item/crusher_trophy/elder_tentacle pre_attack_icon = "ancient_goliath_preattack" throw_message = "does nothing to the rocky hide of the" guaranteed_butcher_results = list() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 855fecc6cc02..7c22340882fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -50,8 +50,8 @@ OpenFire() return TRUE -/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_crusher_loot() - loot += crusher_loot //we don't butcher +/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_mob_trophy() + loot += mob_trophy //we don't butcher /mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed) mouse_opacity = MOUSE_OPACITY_ICON @@ -119,7 +119,7 @@ throw_message = "bounces harmlessly off of" loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - crusher_loot = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/crusher_trophy/legion_skull del_on_death = 1 stat_attack = HARD_CRIT robust_searching = 1 @@ -150,7 +150,7 @@ icon_living = "dwarf_legion" icon_aggro = "dwarf_legion" icon_dead = "dwarf_legion" - crusher_loot = /obj/item/crusher_trophy/dwarf_skull + mob_trophy = /obj/item/crusher_trophy/dwarf_skull maxHealth = 150 health = 150 move_to_delay = 2 @@ -334,7 +334,7 @@ icon_living = "snowlegion" icon_aggro = "snowlegion_alive" icon_dead = "snowlegion" - crusher_loot = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/crusher_trophy/legion_skull loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm index ceef301b2349..0d201980f1fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm @@ -28,7 +28,7 @@ move_resist = MOVE_FORCE_VERY_STRONG butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1) loot = list() - crusher_loot = /obj/item/crusher_trophy/tail_spike + mob_trophy = /obj/item/crusher_trophy/tail_spike deathmessage = "collapses on its side." deathsound = 'sound/magic/demon_dies.ogg' stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm index d95c21ec9bbb..0372657eb514 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm @@ -33,7 +33,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 2, /obj/item/stack/sheet/bone = 2) robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW - crusher_loot = /obj/item/crusher_trophy/lobster_claw + mob_trophy = /obj/item/crusher_trophy/lobster_claw /mob/living/simple_animal/hostile/asteroid/lobstrosity/beach name = "tropical lobstrosity" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index b66c71fd58b2..635f5fd41299 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -12,7 +12,7 @@ response_harm_simple = "strike" status_flags = 0 a_intent = INTENT_HARM - var/crusher_loot + var/mob_trophy var/throw_message = "bounces off of" var/throw_deflection = 20 //WS edit - Whitesands var/fromtendril = FALSE @@ -71,12 +71,12 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) - if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item - spawn_crusher_loot() + if(C && mob_trophy && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item + spawn_mob_trophy() ..(gibbed) -/mob/living/simple_animal/hostile/asteroid/proc/spawn_crusher_loot() - butcher_results[crusher_loot] = 1 +/mob/living/simple_animal/hostile/asteroid/proc/spawn_mob_trophy() + butcher_results[mob_trophy] = 1 /mob/living/simple_animal/hostile/asteroid/handle_temperature_damage() if(bodytemperature < minbodytemp) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index f9d15892f75d..ae30c19b577b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -27,7 +27,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1) loot = list() - crusher_loot = /obj/item/crusher_trophy/bear_paw + mob_trophy = /obj/item/crusher_trophy/bear_paw stat_attack = HARD_CRIT robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW @@ -91,7 +91,7 @@ icon_state = "warbear" icon_living = "warbear" icon_dead = "warbear_dead" - crusher_loot = /obj/item/crusher_trophy/war_paw + mob_trophy = /obj/item/crusher_trophy/war_paw crusher_drop_mod = 75 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 7df8c04f0cf4..a248177d56e2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -32,7 +32,7 @@ pull_force = MOVE_FORCE_WEAK butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/crusher_trophy/wolf_ear = 0.5) loot = list() - crusher_loot = /obj/item/crusher_trophy/wolf_ear + mob_trophy = /obj/item/crusher_trophy/wolf_ear stat_attack = HARD_CRIT knockdown_time = 1 SECONDS robust_searching = TRUE @@ -149,7 +149,7 @@ charge_frequency = 20 SECONDS butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/bone = 5) loot = list() - crusher_loot = /obj/item/crusher_trophy/fang + mob_trophy = /obj/item/crusher_trophy/fang /mob/living/simple_animal/hostile/asteroid/wolf/alpha/gib() move_force = MOVE_FORCE_DEFAULT From 7004bb4d05645a9a93a20c7c40940336d86c246a Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 10:14:58 -0500 Subject: [PATCH 78/99] trophys always drop. plan on making them less crusher focused --- .../mob/living/simple_animal/hostile/megafauna/megafauna.dm | 6 +++--- .../living/simple_animal/hostile/mining_mobs/mining_mobs.dm | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index a623272116b0..37934c0367e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -71,10 +71,10 @@ if(health > 0) return else - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) + spawn_mob_trophy() + var/datum/status_effect/crusher_damage/crusher = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/crusher_kill = FALSE - if(C && mob_trophy && C.total_damage >= maxHealth * 0.6) - spawn_mob_trophy() + if(crusher && mob_trophy && crusher.total_damage >= maxHealth * 0.6) crusher_kill = TRUE if(true_spawn && !(flags_1 & ADMIN_SPAWNED_1)) var/tab = "megafauna_kills" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 635f5fd41299..eaf546b3f627 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -20,7 +20,7 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE mob_size = MOB_SIZE_LARGE var/icon_aggro = null - var/crusher_drop_mod = 25 + var/trophy_drop_mod = 25 var/datum/armor/armor //WS edit - Whitesands /mob/living/simple_animal/hostile/asteroid/Initialize(mapload) @@ -70,8 +70,7 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) - var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) - if(C && mob_trophy && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item + if(prob(trophy_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item spawn_mob_trophy() ..(gibbed) From 6691ddc01f68d282495d02071187b71a1914dc45 Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 10:34:15 -0500 Subject: [PATCH 79/99] var name --- .../living/simple_animal/hostile/mining_mobs/mining_mobs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index eaf546b3f627..b8f3cadc8dfb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -20,7 +20,7 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE mob_size = MOB_SIZE_LARGE var/icon_aggro = null - var/trophy_drop_mod = 25 + var/trophy_drop_mod = 20 var/datum/armor/armor //WS edit - Whitesands /mob/living/simple_animal/hostile/asteroid/Initialize(mapload) @@ -70,7 +70,7 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) - if(prob(trophy_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item + if(prob(trophy_drop_mod)) //on average, you'll need to kill 5 creatures before getting the item spawn_mob_trophy() ..(gibbed) From 72b93326e58ad4a03c9ad254ae2223acdf157a9a Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 18 Mar 2024 10:35:07 -0500 Subject: [PATCH 80/99] VAR name! --- .../mob/living/simple_animal/hostile/mining_mobs/basilisk.dm | 4 ++-- .../mob/living/simple_animal/hostile/mining_mobs/goliath.dm | 2 +- .../mob/living/simple_animal/hostile/mining_mobs/ice demon.dm | 2 +- .../mob/living/simple_animal/hostile/mining_mobs/polarbear.dm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index f1b3f004f366..cacf642448f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -295,7 +295,7 @@ light_color = LIGHT_COLOR_LAVA projectiletype = /obj/projectile/temp/basilisk/magmawing mob_trophy = /obj/item/crusher_trophy/magma_wing - crusher_drop_mod = 75 + trophy_drop_mod = 75 /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing name = "icewing watcher" @@ -310,7 +310,7 @@ projectiletype = /obj/projectile/temp/basilisk/icewing butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable mob_trophy = /obj/item/crusher_trophy/ice_wing - crusher_drop_mod = 75 + trophy_drop_mod = 75 /obj/projectile/temp/basilisk/magmawing name = "scorching blast" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 5551b3a2d0e7..d7073072944f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -253,7 +253,7 @@ pre_attack_icon = "ancient_goliath_preattack" throw_message = "does nothing to the rocky hide of the" guaranteed_butcher_results = list() - crusher_drop_mod = 75 + trophy_drop_mod = 75 wander = FALSE bonus_tame_chance = 10 var/list/cached_tentacle_turfs diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm index 2315f6e61a4f..f83bdc6c86c6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm @@ -122,7 +122,7 @@ footstep_type = FOOTSTEP_MOB_CLAW /// Distance the demon will teleport from the target var/teleport_distance = 3 - crusher_drop_mod = 75 + trophy_drop_mod = 75 /obj/projectile/temp/basilisk/ice name = "ice blast" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index ae30c19b577b..6f3bcf3f326f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -92,7 +92,7 @@ icon_living = "warbear" icon_dead = "warbear_dead" mob_trophy = /obj/item/crusher_trophy/war_paw - crusher_drop_mod = 75 + trophy_drop_mod = 75 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1) From f92179ad44c80b6c58eaa78c536d5d64cb49f6bb Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 00:34:37 -0500 Subject: [PATCH 81/99] missing stuff --- code/datums/achievements/boss_scores.dm | 5 ----- .../hostile/megafauna/hierophant.dm | 2 +- code/modules/mob_spawner/necropolis_tendril.dm | 2 +- shiptest.dme | 4 ++-- tools/HubMigrator/HubMigrator.dm | 16 +++++----------- 5 files changed, 9 insertions(+), 20 deletions(-) diff --git a/code/datums/achievements/boss_scores.dm b/code/datums/achievements/boss_scores.dm index 456773fd22ac..c0135e6c68a1 100644 --- a/code/datums/achievements/boss_scores.dm +++ b/code/datums/achievements/boss_scores.dm @@ -43,11 +43,6 @@ desc = "You've killed HOW many?" database_id = LEGION_SCORE -/datum/award/score/swarmer_beacon_score - name = "Swarmer Beacons Killed" - desc = "You've killed HOW many?" - database_id = SWARMER_BEACON_SCORE - /datum/award/score/wendigo_score name = "Wendigos Killed" desc = "You've killed HOW many?" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 7aa73f05daeb..aba18e259ac2 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -58,8 +58,8 @@ Difficulty: Hard ranged = TRUE ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other + mob_trophy = /obj/item/crusher_trophy/vortex_talisman loot = list(/obj/item/hierophant_club) - mob_trophy = obj/item/crusher_trophy/vortex_talisman wander = FALSE gps_name = "Zealous Signal" achievement_type = /datum/award/achievement/boss/hierophant_kill diff --git a/code/modules/mob_spawner/necropolis_tendril.dm b/code/modules/mob_spawner/necropolis_tendril.dm index c19cd8ed0d1f..c85462d9033d 100644 --- a/code/modules/mob_spawner/necropolis_tendril.dm +++ b/code/modules/mob_spawner/necropolis_tendril.dm @@ -46,7 +46,7 @@ GLOBAL_LIST_INIT(tendrils, list()) for(var/mob/living/L in view(7,src)) if(L.stat || !L.client) continue - L.client.give_award(/datum/award/achievement/boss/tendril_exterminator, L) + L.client.give_award(/datum/award/achievement/boss/nest_exterminator, L) L.client.give_award(/datum/award/score/nest_score, L) //Progresses score by one GLOB.tendrils -= src QDEL_NULL(emitted_light) diff --git a/shiptest.dme b/shiptest.dme index 170f1cf16fd6..2c9fb6e1d025 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1330,6 +1330,7 @@ #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" #include "code\game\objects\structures\fugitive_role_spawners.dm" +#include "code\game\objects\structures\geyser.dm" #include "code\game\objects\structures\ghost_role_spawners.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" @@ -1411,8 +1412,6 @@ #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" -#include "code\game\objects\structures\lavaland\geyser.dm" -#include "code\game\objects\structures\lavaland\necropolis_tendril.dm" #include "code\game\objects\structures\plaques\_plaques.dm" #include "code\game\objects\structures\plaques\static_plaques.dm" #include "code\game\objects\structures\signs\_signs.dm" @@ -2764,6 +2763,7 @@ #include "code\modules\mob_spawner\cave_entrance.dm" #include "code\modules\mob_spawner\hivebot.dm" #include "code\modules\mob_spawner\mining.dm" +#include "code\modules\mob_spawner\necropolis_tendril.dm" #include "code\modules\mob_spawner\nether.dm" #include "code\modules\mob_spawner\spawner.dm" #include "code\modules\mob_spawner\spawner_componet.dm" diff --git a/tools/HubMigrator/HubMigrator.dm b/tools/HubMigrator/HubMigrator.dm index cd7f7e6020eb..feb38b9301be 100644 --- a/tools/HubMigrator/HubMigrator.dm +++ b/tools/HubMigrator/HubMigrator.dm @@ -19,8 +19,7 @@ #define BOSS_MEDAL_DRAKE "Drake Killer" #define BOSS_MEDAL_HIEROPHANT "Hierophant Killer" #define BOSS_MEDAL_LEGION "Legion Killer" -#define BOSS_MEDAL_TENDRIL "Tendril Exterminator" -#define BOSS_MEDAL_SWARMERS "Swarmer Beacon Killer" +#define BOSS_MEDAL_NEST "Nest Exterminator" #define BOSS_MEDAL_MINER_CRUSHER "Blood-drunk Miner Crusher" #define BOSS_MEDAL_BUBBLEGUM_CRUSHER "Bubblegum Crusher" @@ -28,7 +27,6 @@ #define BOSS_MEDAL_DRAKE_CRUSHER "Drake Crusher" #define BOSS_MEDAL_HIEROPHANT_CRUSHER "Hierophant Crusher" #define BOSS_MEDAL_LEGION_CRUSHER "Legion Crusher" -#define BOSS_MEDAL_SWARMERS_CRUSHER "Swarmer Beacon Crusher" // Medal hub IDs for boss-kill scores #define BOSS_SCORE "Bosses Killed" @@ -38,8 +36,7 @@ #define DRAKE_SCORE "Drakes Killed" #define HIEROPHANT_SCORE "Hierophants Killed" #define LEGION_SCORE "Legion Killed" -#define SWARMER_BEACON_SCORE "Swarmer Beacs Killed" -#define TENDRIL_CLEAR_SCORE "Tendrils Killed" +#define NEST_CLEAR_SCORE "Nests Killed" @@ -67,15 +64,13 @@ BOSS_MEDAL_DRAKE, BOSS_MEDAL_HIEROPHANT, BOSS_MEDAL_LEGION, - BOSS_MEDAL_TENDRIL, - BOSS_MEDAL_SWARMERS, + BOSS_MEDAL_NEST, BOSS_MEDAL_MINER_CRUSHER, BOSS_MEDAL_BUBBLEGUM_CRUSHER, BOSS_MEDAL_COLOSSUS_CRUSHER, BOSS_MEDAL_DRAKE_CRUSHER, BOSS_MEDAL_HIEROPHANT_CRUSHER, - BOSS_MEDAL_LEGION_CRUSHER, - BOSS_MEDAL_SWARMERS_CRUSHER) + BOSS_MEDAL_LEGION_CRUSHER) var/list/valid_scores = list( BOSS_SCORE, @@ -85,8 +80,7 @@ DRAKE_SCORE, HIEROPHANT_SCORE, LEGION_SCORE, - SWARMER_BEACON_SCORE, - TENDRIL_CLEAR_SCORE) + NEST_CLEAR_SCORE) var/ach = "achievements" //IMPORTANT : ADD PREFIX HERE IF YOU'RE USING PREFIXED SCHEMA From 24dd73952bc89aa907cf74723254cd3bd9adff87 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 01:22:01 -0500 Subject: [PATCH 82/99] massive cull of spawner complexity --- code/datums/components/chasm.dm | 2 - .../mapgen/planetary/AsteroidGenerator.dm | 6 +- .../mapgen/planetary/JungleGenerator.dm | 2 +- code/datums/mapgen/planetary/LavaGenerator.dm | 9 +- code/datums/mapgen/planetary/RockGenerator.dm | 2 +- code/datums/mapgen/planetary/SandGenerator.dm | 4 +- code/datums/mapgen/planetary/SnowGenerator.dm | 29 +- code/modules/mob_spawner/burrow.dm | 106 ++ code/modules/mob_spawner/cave_entrance.dm | 1061 ----------------- code/modules/mob_spawner/hivebot.dm | 2 - code/modules/mob_spawner/mining.dm | 82 -- .../modules/mob_spawner/necropolis_tendril.dm | 188 --- code/modules/mob_spawner/nether.dm | 45 - code/modules/mob_spawner/spawner.dm | 6 +- .../ruins/objects_and_mobs/ash_walker_den.dm | 1 - code/modules/spells/spell_types/conjure.dm | 12 - shiptest.dme | 5 +- 17 files changed, 125 insertions(+), 1437 deletions(-) create mode 100644 code/modules/mob_spawner/burrow.dm delete mode 100644 code/modules/mob_spawner/cave_entrance.dm delete mode 100644 code/modules/mob_spawner/mining.dm delete mode 100644 code/modules/mob_spawner/necropolis_tendril.dm delete mode 100644 code/modules/mob_spawner/nether.dm diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index f18002a05bd3..728a3bd44b86 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -18,8 +18,6 @@ /obj/effect/hotspot, /obj/effect/landmark, /obj/effect/temp_visual, - /obj/effect/light_emitter/tendril, - /obj/effect/collapse, /obj/effect/particle_effect/ion_trails, /obj/effect/dummy/phased_mob, /obj/effect/mapping_helpers, diff --git a/code/datums/mapgen/planetary/AsteroidGenerator.dm b/code/datums/mapgen/planetary/AsteroidGenerator.dm index e39a0cc41bfa..0042a550d6c3 100644 --- a/code/datums/mapgen/planetary/AsteroidGenerator.dm +++ b/code/datums/mapgen/planetary/AsteroidGenerator.dm @@ -111,9 +111,7 @@ ) feature_spawn_list = list( - /obj/structure/geyser/random = 1, - /obj/structure/spawner/mining/goliath = 1, - /obj/structure/spawner/mining/hivelord = 1 + /obj/structure/spawner/burrow/asteroid = 1 ) mob_spawn_list = list( @@ -157,7 +155,7 @@ feature_spawn_list = list( /obj/structure/geyser/random = 1, - /obj/structure/spawner/mining/carp = 1 + /obj/structure/spawner/carp = 1 ) mob_spawn_list = list( diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm index 45ae4a7120cc..077065c8e44e 100644 --- a/code/datums/mapgen/planetary/JungleGenerator.dm +++ b/code/datums/mapgen/planetary/JungleGenerator.dm @@ -180,7 +180,7 @@ feature_spawn_chance = 0.5 feature_spawn_list = list( /obj/item/pickaxe/rusted = 1, - /obj/structure/spawner/ice_moon = 1, + /obj/structure/spawner/burrow/jungle_planet = 1, /obj/effect/spawner/lootdrop/anomaly/jungle = 1 ) diff --git a/code/datums/mapgen/planetary/LavaGenerator.dm b/code/datums/mapgen/planetary/LavaGenerator.dm index c244f3ef2560..28fd1b6dd3ee 100644 --- a/code/datums/mapgen/planetary/LavaGenerator.dm +++ b/code/datums/mapgen/planetary/LavaGenerator.dm @@ -115,9 +115,7 @@ /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal = 1, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten = 1, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal = 1, - /obj/structure/spawner/lavaland/low_threat = 8, - /obj/structure/spawner/lavaland/medium_threat = 3, - /obj/structure/spawner/lavaland/high_threat = 1, + /obj/structure/spawner/burrow/lava_planet = 10 ) /datum/biome/lavaland/forest @@ -237,10 +235,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10, - /obj/structure/spawner/lavaland/low_threat = 8, - /obj/structure/spawner/lavaland/medium_threat = 3, - /obj/structure/spawner/lavaland/high_threat = 2, - /obj/structure/spawner/lavaland/extreme_threat = 1 + /obj/structure/spawner/burrow/lava_planet = 10 ) flora_spawn_chance = 1 flora_spawn_list = list( diff --git a/code/datums/mapgen/planetary/RockGenerator.dm b/code/datums/mapgen/planetary/RockGenerator.dm index 95e1273bb9d7..16a2fd895b85 100644 --- a/code/datums/mapgen/planetary/RockGenerator.dm +++ b/code/datums/mapgen/planetary/RockGenerator.dm @@ -155,7 +155,7 @@ /obj/structure/vein/classtwo = 2, /obj/structure/elite_tumor = 1, /obj/structure/vein/classthree = 1, - /obj/structure/spawner/ice_moon/rockplanet = 4, + /obj/structure/spawner/burrow/rock_plant = 4, /obj/effect/spawner/lootdrop/anomaly/rock/cave = 1, ) mob_spawn_chance = 6 diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm index 442daa0c7705..cc55927117ba 100644 --- a/code/datums/mapgen/planetary/SandGenerator.dm +++ b/code/datums/mapgen/planetary/SandGenerator.dm @@ -217,9 +217,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, /mob/living/simple_animal/hostile/asteroid/goldgrub = 20, - /obj/structure/spawner/lavaland/sand_world/low_threat = 14, - /obj/structure/spawner/lavaland/sand_world/medium_threat = 8, - /obj/structure/spawner/lavaland/sand_world/high_threat = 2, + /obj/structure/spawner/burrow/sand_planet = 25 ) /datum/biome/cave/sand/volcanic diff --git a/code/datums/mapgen/planetary/SnowGenerator.dm b/code/datums/mapgen/planetary/SnowGenerator.dm index a066647a0e4d..0fbfc7655f67 100644 --- a/code/datums/mapgen/planetary/SnowGenerator.dm +++ b/code/datums/mapgen/planetary/SnowGenerator.dm @@ -101,8 +101,7 @@ mob_spawn_chance = 1 mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/wolf/random = 30, - /obj/structure/spawner/ice_moon = 2, - /obj/structure/spawner/ice_moon/polarbear = 2, + /obj/structure/spawner/burrow/ice_planet = 4, /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10, @@ -114,9 +113,7 @@ feature_spawn_list = list( /obj/effect/spawner/lootdrop/anomaly/ice = 12, /obj/effect/spawner/lootdrop/anomaly/big = 1, - /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 25, - /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 50, - /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 13, + /obj/structure/spawner/burrow/ice_planet = 80, /obj/structure/vein/ice = 25, /obj/structure/vein/ice/classtwo = 50, /obj/structure/vein/ice/classthree = 10, @@ -167,8 +164,7 @@ ) feature_spawn_chance = 0.1 feature_spawn_list = list( - /obj/structure/spawner/ice_moon = 2, - /obj/structure/spawner/ice_moon/polarbear = 2, + /obj/structure/spawner/burrow/ice_planet = 4, /obj/structure/statue/snow/snowman = 3, /obj/structure/statue/snow/snowlegion = 1, /obj/structure/vein/ice = 3, @@ -177,8 +173,7 @@ ) mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/wolf/random = 30, - /obj/structure/spawner/ice_moon = 2, - /obj/structure/spawner/ice_moon/polarbear = 2, + /obj/structure/spawner/burrow/ice_planet = 2, /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10, @@ -215,10 +210,7 @@ feature_spawn_list = list( /obj/effect/spawner/lootdrop/anomaly/ice = 100, /obj/effect/spawner/lootdrop/anomaly/big = 1, - /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 200, - /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 400, - /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 40, - /obj/structure/spawner/ice_moon/demonic_portal/extreme_threat = 1, + /obj/structure/spawner/burrow/ice_planet/hard = 600, /obj/structure/vein/ice = 300, /obj/structure/vein/ice/classtwo = 500, /obj/structure/vein/ice/classthree = 50, @@ -258,8 +250,7 @@ mob_spawn_chance = 2 mob_spawn_list = list( /mob/living/simple_animal/hostile/asteroid/wolf/random = 30, - /obj/structure/spawner/ice_moon = 2, - /obj/structure/spawner/ice_moon/polarbear = 2, + /obj/structure/spawner/burrow/ice_planet = 4, /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30, /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10, @@ -269,12 +260,8 @@ ) feature_spawn_chance = 0.2 feature_spawn_list = list( - /obj/structure/spawner/ice_moon/demonic_portal/low_threat = 20, - /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 40, - /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 5, - /obj/structure/spawner/ice_moon/demonic_portal/extreme_threat = 1, - /obj/structure/spawner/ice_moon = 20, - /obj/structure/spawner/ice_moon/polarbear = 20, + /obj/structure/spawner/burrow/ice_planet = 60, + /obj/structure/spawner/burrow/ice_planet = 40, /obj/effect/spawner/lootdrop/anomaly/ice/cave = 10, /obj/structure/vein/ice = 30, /obj/structure/vein/ice/classtwo = 50, diff --git a/code/modules/mob_spawner/burrow.dm b/code/modules/mob_spawner/burrow.dm new file mode 100644 index 000000000000..f8c7bd134528 --- /dev/null +++ b/code/modules/mob_spawner/burrow.dm @@ -0,0 +1,106 @@ +GLOBAL_LIST_INIT(ore_probability, list( + /obj/item/stack/ore/plasma = 75, + /obj/item/stack/ore/iron = 75, + /obj/item/stack/ore/titanium = 50, + /obj/item/stack/ore/silver = 50, + /obj/item/stack/ore/gold = 50, + /obj/item/stack/ore/uranium = 50, + /obj/item/stack/ore/diamond = 25 + )) + +/obj/structure/spawner/burrow + name = "burrow entrance" + desc = "A hole in the ground, filled with fauna ready to defend it." + max_integrity = 250 + faction = list("mining") + max_mobs = 3 + +/obj/structure/spawner/burrow/Initialize() + . = ..() + clear_rock() + +/** + * Clears rocks around the spawner when it is created + * + */ +/obj/structure/spawner/burrow/proc/clear_rock() + for(var/turf/F in RANGE_TURFS(2, src)) + if(abs(src.x - F.x) + abs(src.y - F.y) > 3) + continue + if(ismineralturf(F)) + var/turf/closed/mineral/M = F + M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) + +/obj/structure/spawner/burrow/deconstruct(disassembled) + destroy_effect() + drop_loot() + return ..() + +/** + * Effects and messages created when the spawner is destroyed + * + */ +/obj/structure/spawner/burrow/proc/destroy_effect() + playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) + visible_message("[src] collapses, sealing everything inside!\nOres fall out of the burrow as it is destroyed!") + +/** + * Drops items after the spawner is destroyed + * + */ +/obj/structure/spawner/burrow/proc/drop_loot() + for(var/type in GLOB.ore_probability) + var/chance = GLOB.ore_probability[type] + if(!prob(chance)) + continue + new type(loc, rand(5, 10)) + +/obj/structure/spawner/burrow/lava_planet + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, + /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, + /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, + /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1 + ) + +/obj/structure/spawner/burrow/sand_planet + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, + /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20 + ) + +/obj/structure/spawner/burrow/ice_planet + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/wolf, + /mob/living/simple_animal/hostile/asteroid/polarbear + ) + +/obj/structure/spawner/burrow/ice_planet/hard + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/brimdemon = 35, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 35, + /mob/living/simple_animal/hostile/asteroid/ice_whelp = 15, + /mob/living/simple_animal/hostile/asteroid/ice_demon = 15 + ) + +/obj/structure/spawner/burrow/jungle_planet + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/wolf/random, + /mob/living/simple_animal/hostile/retaliate/bat, + /mob/living/simple_animal/hostile/retaliate/poison/snake + ) + +/obj/structure/spawner/burrow/rock_plant + mob_types = list( + /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet, + /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet + ) + +/obj/structure/spawner/burrow/asteroid + mob_types = list ( + /mob/living/simple_animal/hostile/asteroid/goliath, + /mob/living/simple_animal/hostile/asteroid/hivelord, + /mob/living/simple_animal/hostile/carp + ) diff --git a/code/modules/mob_spawner/cave_entrance.dm b/code/modules/mob_spawner/cave_entrance.dm deleted file mode 100644 index b2af8237b5e6..000000000000 --- a/code/modules/mob_spawner/cave_entrance.dm +++ /dev/null @@ -1,1061 +0,0 @@ -GLOBAL_LIST_INIT(ore_probability, list( - /obj/item/stack/ore/uranium = 50, - /obj/item/stack/ore/iron = 50, - /obj/item/stack/ore/plasma = 75, - /obj/item/stack/ore/silver = 50, - /obj/item/stack/ore/gold = 50, - /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/titanium = 75, - /obj/item/pickaxe/diamond = 15, - /obj/item/borg/upgrade/modkit/cooldown = 5, - /obj/item/borg/upgrade/modkit/damage = 5, - /obj/item/borg/upgrade/modkit/range = 5, - /obj/item/t_scanner/adv_mining_scanner/lesser = 15, - /obj/item/kinetic_crusher = 15, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/item/tank/jetpack/suit = 10, - /obj/item/survivalcapsule = 15, - /obj/item/reagent_containers/hypospray/medipen/survival = 15, - /obj/item/gps/mining = 10, - /obj/item/extraction_pack = 10, - /obj/item/reagent_containers/food/drinks/beer = 15, - )) - -/obj/structure/spawner/ice_moon - name = "cave entrance" - desc = "A hole in the ground, filled with monsters ready to defend it." - icon = 'icons/mob/nest.dmi' - icon_state = "hole" - faction = list("mining") - max_mobs = 3 - max_integrity = 250 - mob_types = list(/mob/living/simple_animal/hostile/asteroid/wolf) - move_resist = INFINITY - anchored = TRUE - -/obj/structure/spawner/ice_moon/Initialize() - . = ..() - clear_rock() - -/** - * Clears rocks around the spawner when it is created - * - */ -/obj/structure/spawner/ice_moon/proc/clear_rock() - for(var/turf/F in RANGE_TURFS(2, src)) - if(abs(src.x - F.x) + abs(src.y - F.y) > 3) - continue - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) - -/obj/structure/spawner/ice_moon/deconstruct(disassembled) - destroy_effect() - drop_loot() - return ..() - -/** - * Effects and messages created when the spawner is destroyed - * - */ -/obj/structure/spawner/ice_moon/proc/destroy_effect() - playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) - visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") - -/** - * Drops items after the spawner is destroyed - * - */ -/obj/structure/spawner/ice_moon/proc/drop_loot() - for(var/type in GLOB.ore_probability) - var/chance = GLOB.ore_probability[type] - if(!prob(chance)) - continue - new type(loc, rand(5, 10)) - -/obj/structure/spawner/ice_moon/polarbear - max_mobs = 1 - spawn_time = 60 SECONDS - mob_types = list(/mob/living/simple_animal/hostile/asteroid/polarbear) - -/obj/structure/spawner/ice_moon/polarbear/clear_rock() - for(var/turf/F in RANGE_TURFS(1, src)) - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) - -/obj/structure/spawner/ice_moon/demonic_portal - name = "demonic portal" - desc = "A portal that goes to another world, normal creatures couldn't survive there. When it collapses, who knows where it will go?" - icon_state = "nether" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_demon) - light_range = 1 - light_color = COLOR_SOFT_RED - spawn_time = 300 - -/obj/structure/spawner/ice_moon/demonic_portal/clear_rock() - for(var/turf/F in RANGE_TURFS(3, src)) - if(abs(src.x - F.x) + abs(src.y - F.y) > 5) - continue - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) - -/obj/structure/spawner/ice_moon/demonic_portal/Initialize() - . = ..() - -/obj/structure/spawner/ice_moon/demonic_portal/destroy_effect() - new /obj/effect/collapsing_demonic_portal(loc) - -/obj/structure/spawner/ice_moon/demonic_portal/drop_loot() - return - -/obj/structure/spawner/ice_moon/rockplanet - name = "gruboid den" - desc = "Though gruboid are typically nomadic creatures, they gather in small surface caves to reproduce. They're unlikely to be happy about being disturbed." - max_mobs = 3 - spawn_time = 60 SECONDS - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet, /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet) - -/obj/structure/spawner/ice_moon/rockplanet/clear_rock() - for(var/turf/F in RANGE_TURFS(1, src)) - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) - -/obj/effect/collapsing_demonic_portal - name = "collapsing demonic portal" - desc = "It's slowly fading! Get ready to fight whatever comes through!" - layer = TABLE_LAYER - icon = 'icons/mob/nest.dmi' - icon_state = "nether" - anchored = TRUE - density = TRUE - -/obj/effect/collapsing_demonic_portal/Initialize() - . = ..() - playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE) - visible_message("[src] begins to collapse! As it fails, it connects to a random dimensional point and pulls through what it finds!") - animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS) - addtimer(CALLBACK(src, PROC_REF(collapse)), 5 SECONDS) - -/** - * Handles portal deletion - * - */ -/obj/effect/collapsing_demonic_portal/proc/collapse() - drop_loot() - qdel(src) - -//portal types go here - -/obj/structure/spawner/ice_moon/demonic_portal/brimdemon - mob_types = list(/mob/living/simple_animal/hostile/asteroid/brimdemon) - -/obj/structure/spawner/ice_moon/demonic_portal/ice_whelp - mob_types = list(/mob/living/simple_animal/hostile/asteroid/ice_whelp) - -/obj/structure/spawner/ice_moon/demonic_portal/snowlegion - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril) - -/obj/structure/spawner/ice_moon/demonic_portal/low_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/brimdemon = 35, - /mob/living/simple_animal/hostile/asteroid/ice_whelp = 15, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 35, - /mob/living/simple_animal/hostile/asteroid/ice_demon = 15 - ) - max_mobs = 5 - spawn_time = 300 - -/obj/structure/spawner/ice_moon/demonic_portal/medium_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/brimdemon = 25, - /mob/living/simple_animal/hostile/asteroid/ice_whelp = 25, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 25, - /mob/living/simple_animal/hostile/asteroid/ice_demon = 25 - ) - max_mobs = 7 - spawn_time = 300 -/obj/structure/spawner/ice_moon/demonic_portal/high_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/brimdemon = 15, - /mob/living/simple_animal/hostile/asteroid/ice_whelp = 35, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 15, - /mob/living/simple_animal/hostile/asteroid/ice_demon = 35 - ) - max_mobs = 7 - spawn_time = 200 - -/obj/structure/spawner/ice_moon/demonic_portal/extreme_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/brimdemon = 10, - /mob/living/simple_animal/hostile/asteroid/ice_whelp = 25, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 15, - /mob/living/simple_animal/hostile/asteroid/ice_demon = 50 - ) - max_mobs = 10 - spawn_time = 200 - -//I think there's room to make portal types drop loot/spawn monsters based on the loot list but that's out of scope for what I'm doing - -/** - * Drops loot from the portal. Uses variable difficulty based on drops- more valulable rewards will also add additional enemies to the attack wave. - * If you manage to win big and get a bunch of major rich loot, you will also be faced with a big mob of angries. - * Absolutely deranged use of probability code below, trigger warning - */ -/obj/effect/collapsing_demonic_portal/proc/drop_loot() - visible_message("Something slips out of [src]!") - var/loot = rand(1, 23) - switch(loot) - if(1)//Clown hell. God help you if you roll this. - visible_message("You can hear screaming and joyful honking.")//now THIS is what we call a critical failure - playsound(loc,'sound/spookoween/ghosty_wind.ogg', 100, FALSE, 50, TRUE, TRUE) - playsound(loc,'sound/spookoween/scary_horn3.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(15)) - new /mob/living/simple_animal/hostile/clown/clownhulk(loc) - new /mob/living/simple_animal/hostile/clown/longface(loc) - new /mob/living/simple_animal/hostile/clown/clownhulk/chlown(loc) - new /obj/item/shield/energy/bananium(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/clown/banana(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - new /mob/living/simple_animal/hostile/clown/clownhulk/chlown - new /mob/living/simple_animal/hostile/clown/honkling(loc) - if(prob(25)) - new /obj/item/grenade/spawnergrenade/clown(loc) - new /obj/item/grenade/spawnergrenade/clown(loc) - new /mob/living/simple_animal/hostile/clown/clownhulk(loc) - if(prob(10)) - new /mob/living/simple_animal/hostile/clown/mutant/blob(loc)//oh god oh fuck - new /obj/machinery/syndicatebomb/badmin/clown(loc) - if(prob(35)) - new /obj/item/storage/backpack/duffelbag/clown/syndie(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - new /mob/living/simple_animal/hostile/clown/honkling(loc) - else - new /obj/item/storage/backpack/duffelbag/clown/cream_pie(loc) - new /mob/living/simple_animal/hostile/clown/honkling(loc) - if(prob(25)) - new /obj/item/borg/upgrade/transform/clown(loc) - new /mob/living/simple_animal/hostile/clown/stacked(loc) - if(prob(35)) - new /obj/item/megaphone/clown(loc) - new /mob/living/simple_animal/hostile/clown/stacked(loc) - if(prob(25)) - new /obj/item/reagent_containers/spray/waterflower/lube(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(35)) - new /obj/item/clothing/suit/space/hardsuit/clown(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(25)) - new /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat(loc) - new /mob/living/simple_animal/hostile/clown/fleshclown(loc) - if(prob(25))//you lost - new /obj/item/circlegame(loc) - new /obj/item/stack/sheet/mineral/bananium(loc) - new /turf/open/floor/mineral/bananium(loc) - if(2)//basic demonic incursion - visible_message("You glimpse an indescribable abyss in the portal. Horrifying monsters appear in a gout of flame.") - playsound(loc,'sound/hallucinations/wail.ogg', 200, FALSE, 50, TRUE, TRUE) - if(prob(35)) - new /obj/item/clothing/glasses/godeye(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(45)) - new /obj/item/pickaxe/drill/jackhammer/demonic(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(45)) - new /obj/item/wisp_lantern(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - new /mob/living/simple_animal/hostile/netherworld(loc) - if(prob(25)) - new /mob/living/simple_animal/hostile/netherworld(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(5)) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - if(prob(45)) - new /obj/item/nullrod/staff(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - if(prob(30)) - new /obj/item/clothing/suit/space/hardsuit/quixote/dimensional(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - else - new /obj/item/immortality_talisman(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - if(prob(30)) - new /obj/item/shared_storage/red(loc) - new /mob/living/simple_animal/hostile/netherworld(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(30)) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - if(prob(30)) - new /obj/item/book/granter/spell/traps(loc) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - if(prob(30)) - new /mob/living/simple_animal/hostile/netherworld/blankbody(loc) - new /mob/living/simple_animal/hostile/netherworld(loc) - new /mob/living/simple_animal/hostile/netherworld/migo(loc) - new /mob/living/simple_animal/hostile/netherworld(loc) - new /turf/open/indestructible/necropolis(loc) - if(3)//skeleton/religion association, now accepting YOUR BONES - visible_message("Bones rattle and strained voices chant a forgotten god's name.") - playsound(loc,'sound/ambience/ambiholy.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(30)) - new /obj/item/reagent_containers/glass/bottle/potion/flight(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - else - new /obj/item/clothing/neck/necklace/memento_mori(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - if(prob(35)) - new /obj/item/storage/box/holy_grenades(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - if(prob(40)) - new /obj/item/claymore(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - if(prob(45)) - new /obj/item/gun/ballistic/bow(loc) - new /obj/item/storage/bag/quiver(loc) - new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /obj/item/ammo_casing/caseless/arrow/bronze(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(30)) - new /obj/item/stack/sheet/mineral/wood/fifty(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(35)) - new /obj/item/staff/bostaff(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(45)) - new /obj/item/disk/design_disk/adv/cleric_mace(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(25)) - new /obj/item/shield/riot/roman(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(55)) - new /obj/item/clothing/suit/armor/riot/knight/blue(loc) - new /obj/item/clothing/head/helmet/knight/blue(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - if(prob(35)) - new /obj/item/disk/design_disk/adv/knight_gear(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /mob/living/simple_animal/hostile/skeleton(loc) - new /obj/item/instrument/trombone(loc) - new /obj/item/stack/sheet/bone(loc) - new /obj/item/stack/sheet/bone(loc) - new /obj/item/stack/sheet/bone(loc) - new /obj/item/stack/sheet/bone(loc) - new /mob/living/simple_animal/hostile/skeleton/templar(loc) - new /turf/open/floor/mineral/silver(loc) - if(4)//syndicate incursion. Again, high-quality loot at low chances, this time with excessive levels of danger - visible_message("Radio chatter echoes out from the portal. Red-garbed figures step through, weapons raised.") - playsound(loc,'sound/effects/radiohiss.ogg', 200, FALSE, 50, TRUE, TRUE) - playsound(loc,'sound/ambience/antag/tatoralert.ogg', 75, FALSE, 50, TRUE, TRUE) - if(prob(35)) - if(prob(15)) - new /obj/item/clothing/suit/space/hardsuit/syndi/elite(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - else - if(prob(50)) - new /obj/item/clothing/suit/space/hardsuit/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - else - new /obj/item/clothing/suit/space/hardsuit/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(25))//the real prize - new /obj/effect/spawner/lootdrop/donkpockets(loc) - new /obj/effect/spawner/lootdrop/donkpockets(loc) - new /obj/effect/spawner/lootdrop/donkpockets(loc) - if(prob(35)) - new /obj/item/clothing/shoes/magboots/syndie(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(25)) - new /obj/item/gun/ballistic/automatic/pistol/suppressed(loc) - new /obj/item/ammo_box/magazine/ - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - if(prob(25)) - new /obj/item/gun/ballistic/automatic/pistol/tec9(loc) - new /obj/item/ammo_box/magazine/tec9(loc) - new /obj/item/ammo_box/magazine/tec9(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - if(prob(35)) - new /obj/item/clothing/gloves/rapid(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(35)) - new /obj/item/wrench/combat(loc) - new /obj/item/storage/toolbox/syndicate(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - if(prob(35)) - new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(loc) - if(prob(35)) - new /obj/item/borg/upgrade/transform/assault(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(25)) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - new /obj/item/storage/backpack/duffelbag/syndie/c4(loc) - if(prob(35)) - new /obj/item/storage/belt/military(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - if(prob(35)) - new /obj/item/kinetic_crusher/syndie_crusher(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - if(prob(25)) - new /obj/item/card/id/syndicate/anyone(loc) - if(prob(35)) - new /obj/item/clothing/glasses/thermal/syndi(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - if(prob(35)) - new /obj/item/reagent_containers/hypospray(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/shotgun(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - if(prob(25)) - new /obj/item/card/emag(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword(loc) - new /mob/living/simple_animal/hostile/syndicate/ranged/smg/space(loc) - new /mob/living/simple_animal/hostile/syndicate/melee/sword/space(loc) - new /turf/open/floor/mineral/plastitanium/red(loc) - if(5)//;HELP BLOB IN MEDICAL - visible_message("You hear a robotic voice saying something about a \"Delta-level biohazard\".") - playsound(loc,'sound/ai/outbreak5.ogg', 100, FALSE, 50, TRUE, TRUE) - playsound(loc,'sound/misc/bloblarm.ogg', 50, FALSE, 50, TRUE, TRUE) - if(prob(35)) - new /obj/item/circuitboard/machine/chem_dispenser(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(35)) - new /obj/item/storage/box/hypospray/CMO(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(15)) - new /mob/living/simple_animal/hostile/blob/blobbernaut/independent(loc) - if(prob(45)) - new /obj/item/defibrillator(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(45)) - new /obj/item/circuitboard/machine/stasis(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(45)) - new /obj/item/stack/medical/suture/medicated(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(45)) - new /obj/item/stack/medical/mesh/advanced(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(35)) - new /obj/item/gun/syringe/syndicate(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(25)) - new /obj/item/healthanalyzer/advanced(loc) - if(prob(35)) - new /obj/item/storage/firstaid/advanced(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(35)) - new /obj/item/storage/firstaid/tactical(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - new /mob/living/simple_animal/hostile/blob/blobbernaut/independent(loc) - else - new /obj/item/storage/firstaid/regular(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(prob(35)) - new /obj/effect/mob_spawn/human/corpse/solgov/sonnensoldner(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - else - new /obj/effect/mob_spawn/human/doctor(loc) - if(prob(35)) - new /obj/effect/mob_spawn/human/corpse/solgov/sonnensoldner(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - else - new /obj/effect/mob_spawn/human/doctor(loc) - if(prob(35)) - new /obj/effect/mob_spawn/human/corpse/solgov/sonnensoldner(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - else - new /obj/effect/mob_spawn/human/doctor(loc) - new /obj/item/healthanalyzer(loc) - new /turf/open/floor/carpet/nanoweave/beige(loc) - new /mob/living/simple_animal/hostile/blob/blobbernaut/independent(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - new /mob/living/simple_animal/hostile/blob/blobspore/weak(loc) - if(6)//teleporty ice world. Incomplete. - visible_message("You glimpse a frozen, empty plane. Something stirs in the fractal abyss.") - playsound(loc,'sound/ambience/ambisin3.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(45)) - new /obj/item/warp_cube/red(loc) - new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(45)) - new /obj/item/clothing/suit/drfreeze_coat(loc) - new /obj/item/clothing/under/costume/drfreeze(loc) - new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - new /mob/living/simple_animal/hostile/bear/snow(loc) - if(prob(45)) - new /obj/item/freeze_cube(loc) - new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - if(prob(55)) - new /obj/item/clothing/shoes/winterboots/ice_boots(loc) - new /mob/living/simple_animal/hostile/bear/snow(loc) - new /obj/effect/decal/remains/human(loc) - new /mob/living/simple_animal/hostile/asteroid/ice_demon(loc) - new /turf/open/floor/plating/ice/smooth(loc) - if(7)//FUCK FUCK HELP SWARMERS IN VAULT - visible_message("Something beeps. Small, glowing forms spill out of the portal en masse!") - playsound(loc,'sound/ambience/ambitech.ogg', 150, FALSE, 50, TRUE, TRUE) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(45)) - new /obj/item/construction/rcd/loaded(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(35)) - new /obj/item/holosign_creator/atmos(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/vendor(loc) - new /obj/item/vending_refill/engivend(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(45)) - new /obj/item/tank/jetpack/oxygen(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) - new /obj/item/stack/sheet/metal/fifty(loc) - new /obj/item/grenade/chem_grenade/smart_metal_foam(loc) - new /obj/item/grenade/chem_grenade/smart_metal_foam(loc) - new /obj/item/grenade/chem_grenade/smart_metal_foam(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(35)) - new /obj/item/stack/sheet/metal/fifty(loc) - new /obj/item/clothing/glasses/meson/engine(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) - new /obj/item/stack/sheet/metal/twenty(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) - new /obj/item/storage/toolbox/infiltrator(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(25)) - new /obj/machinery/portable_atmospherics/canister/oxygen(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /obj/item/clothing/gloves/color/latex/engineering(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/swarmer/ai(loc) - new /obj/item/clothing/gloves/color/latex/engineering(loc) - new /obj/effect/mob_spawn/human/engineer(loc) - new /turf/open/floor/circuit/telecomms(loc) - if(8)//Literally blood-drunk. - visible_message("Blood sprays from the portal. An ichor-drenched figure steps through!") - playsound(loc,'sound/magic/enter_blood.ogg', 150, FALSE, 50, TRUE, TRUE) - new /obj/effect/gibspawner/human(loc) - new /obj/effect/gibspawner/human(loc) - new /obj/effect/gibspawner/human(loc) - new /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom(loc) - if(prob(50)) - new /obj/item/gem/bloodstone(loc) - if(prob(25)) - new /obj/item/seeds/tomato/blood(loc) - new /turf/open/floor/plating/asteroid/basalt(loc) - if(9)//Now's your chance to be a [[BIG SHOT]] - visible_message("You hear the sound of big money and bigger avarice.") - playsound(loc,'sound/lavaland/cursed_slot_machine_jackpot.ogg', 150, FALSE, 50, TRUE, TRUE) - new /obj/structure/cursed_slot_machine(loc) - if(prob(35)) - new /obj/item/spacecash/bundle/mediumrand(loc) - new /obj/item/spacecash/bundle/mediumrand(loc) - new /obj/item/coin/gold(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(35)) - new /obj/item/clothing/mask/spamton(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(35)) - new /obj/item/gem/fdiamond(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - else - new /obj/item/gem/rupee(loc) - if(prob(35)) - new /obj/item/coin/gold(loc) - new /obj/item/coin/gold(loc) - new /obj/item/stack/sheet/mineral/gold/twenty(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(35)) - new /obj/item/storage/fancy/cigarettes/cigpack_robustgold(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - if(prob(35)) - new /obj/item/clothing/head/collectable/petehat(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - new /mob/living/simple_animal/hostile/faithless(loc) - new /turf/open/floor/mineral/gold(loc) - if(10)//hivebot factory - visible_message("You catch a brief glimpse of a vast production complex. One of the assembly lines outputs through the portal!") - playsound(loc,'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(45)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(25)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) - new /mob/living/simple_animal/hostile/hivebot/strong(loc) - if(prob(35)) - new /obj/item/stack/sheet/mineral/silver/twenty(loc) - new /obj/item/stack/sheet/mineral/titanium/twenty(loc) - new /obj/item/stack/sheet/mineral/gold/twenty(loc) - new /mob/living/simple_animal/hostile/hivebot/strong(loc) - if(prob(35)) - new /obj/item/circuitboard/computer/solar_control(loc) - new /obj/item/electronics/tracker(loc) - new /obj/item/solar_assembly(loc) - new /obj/item/solar_assembly(loc) - new /obj/item/solar_assembly(loc) - new /obj/item/solar_assembly(loc) - if(prob(45)) - new /obj/item/stack/circuit_stack(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/hivebot/range(loc) - if(prob(45)) - new /obj/item/circuitboard/machine/dna_vault(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/recycler(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/recharger(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/smoke_machine(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/ore_silo(loc) - new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) - if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) - new /mob/living/simple_animal/hostile/hivebot/strong(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/medipen_refiller(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/stasis(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - if(prob(50)) - new /obj/item/stack/sheet/metal/fifty(loc) - new /obj/item/stack/sheet/glass/fifty(loc) - new /obj/item/stack/cable_coil/yellow(loc) - new /obj/item/storage/box/lights/bulbs(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - new /mob/living/simple_animal/hostile/hivebot(loc) - new /mob/living/simple_animal/hostile/hivebot/strong(loc) - new /obj/machinery/conveyor(loc) - new /turf/open/floor/circuit/red(loc) - if(11)//miner's last moments - visible_message("The familiar sound of an ash storm greets you. A miner steps through the portal, stumbles, and collapses.") - playsound(loc,'sound/weather/ashstorm/outside/weak_end.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(35)) - new /obj/item/disk/design_disk/modkit_disc/resonator_blast(loc) - if(prob(25)) - new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(loc) - if(prob(25)) - new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(loc) - if(prob(25)) - new /obj/item/disk/design_disk/modkit_disc/bounty(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/vending/mining_equipment(loc) - if(prob(45)) - new /obj/item/vending_refill/mining_equipment(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(35)) - new /obj/item/reagent_containers/hypospray/medipen/survival(loc) - if(prob(35)) - new /obj/item/fulton_core(loc) - new /obj/item/extraction_pack(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(45)) - new /obj/item/t_scanner/adv_mining_scanner/lesser(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(45)) - new /obj/item/gibtonite(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(45)) - new /obj/item/clothing/glasses/meson/night(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - if(prob(50)) - new /obj/item/kinetic_crusher(loc) - else - new /obj/item/gun/energy/kinetic_accelerator(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast(loc) - new /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient(loc) - new /obj/effect/mob_spawn/human/miner(loc) - new /turf/open/floor/plating/asteroid/basalt(loc) - if(12)//sailing the ocean blue - visible_message("Water pours out of the portal, followed by a strange vessel. It's occupied.") - playsound(loc,'sound/ambience/shore.ogg', 150, FALSE, 50, TRUE, TRUE) - new /obj/vehicle/ridden/lavaboat/dragon(loc) - new /obj/item/oar(loc) - if(prob(50)) - new /obj/item/clothing/under/costume/sailor(loc) - if(prob(50)) - new /obj/item/pneumatic_cannon/speargun(loc) - new /obj/item/storage/backpack/magspear_quiver(loc) - new /obj/item/throwing_star/magspear(loc) - new /obj/item/throwing_star/magspear(loc) - new /obj/item/throwing_star/magspear(loc) - new /obj/item/throwing_star/magspear(loc) - new /obj/item/throwing_star/magspear(loc) - new /mob/living/simple_animal/hostile/carp(loc) - if(prob(45)) - new /obj/item/clothing/suit/space/hardsuit/carp(loc) - new /mob/living/simple_animal/hostile/carp(loc) - if(prob(45)) - new /obj/item/gun/magic/hook(loc) - new /mob/living/simple_animal/hostile/carp(loc) - if(prob(45)) - new /obj/item/reagent_containers/food/snacks/fishmeat/carp(loc) - new /obj/item/reagent_containers/food/snacks/fishmeat/carp(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/carp/megacarp(loc) - if(prob(25)) - new /obj/item/book/granter/martial/carp(loc) - new /mob/living/simple_animal/hostile/carp/megacarp(loc) - if(prob(35)) - new /obj/item/grenade/spawnergrenade/spesscarp(loc) - new /mob/living/simple_animal/hostile/carp/megacarp(loc) - new /mob/living/simple_animal/hostile/carp/megacarp(loc) - new /mob/living/simple_animal/hostile/carp(loc) - new /turf/open/water(loc) - if(13)//hydroponics forest - visible_message("You catch a glimpse of a strange forest. Smells like weed and bad choices.") - playsound(loc,'sound/ambience/shore.ogg', 150, FALSE, 50, TRUE, TRUE) - if(prob(45)) - new /obj/item/circuitboard/machine/biogenerator(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(35)) - new /obj/item/gun/energy/floragun(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/seed_extractor(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(45)) - new /obj/item/circuitboard/machine/plantgenes(loc) - else - new /obj/item/circuitboard/machine/hydroponics(loc) - if(prob(15)) - new /obj/item/circuitboard/machine/hydroponics(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(15)) - new /obj/item/circuitboard/machine/hydroponics(loc) - if(prob(5)) - new /obj/item/seeds/gatfruit(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(45)) - new /obj/item/seeds/random(loc) - if(prob(45)) - new /obj/item/seeds/random(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(45)) - new /obj/item/seeds/random(loc) - if(prob(45)) - new /obj/item/seeds/random(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - if(prob(50)) - new /obj/item/seeds/random(loc) - if(prob(45)) - new /obj/item/seeds/cannabis(loc) - new /obj/item/clothing/gloves/botanic_leather(loc) - new /obj/item/cultivator/rake(loc) - new /obj/structure/spacevine(loc) - new /mob/living/simple_animal/hostile/venus_human_trap(loc) - new /turf/open/floor/plating/grass(loc) - if(14)//fallout ss13 - visible_message("You hear a geiger counter click and smell ash.") - playsound(loc,'sound/items/radiostatic.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(50)) - new /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola(loc) - new /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola(loc) - new /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola(loc) - new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) - if(prob(50)) - new /obj/structure/radioactive/stack(loc) - new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) - if(prob(45)) - new /obj/item/stack/sheet/mineral/uranium/twenty(loc) - new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) - if(prob(35)) - new /obj/item/clothing/head/radiation(loc) - new /obj/item/clothing/suit/radiation(loc) - if(prob(45)) - new /obj/item/gun/energy/decloner(loc) - new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) - new /obj/item/geiger_counter(loc) - new /mob/living/simple_animal/hostile/cockroach/glockroach(loc) - new /turf/open/floor/plating/dirt(loc) - - if(15)//the cultists amoung us - visible_message("Chanting and a hateful red glow spill through the portal.") - playsound(loc,'sound/spookoween/ghost_whisper.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(50)) - new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) - if(prob(45)) - new /obj/item/borg/upgrade/modkit/lifesteal(loc) - new /obj/item/bedsheet/cult(loc) - new /mob/living/simple_animal/hostile/construct/wraith/hostile(loc) - if(prob(50)) - new /obj/item/stack/sheet/runed_metal/ten(loc) - if(prob(35)) - new /obj/item/sharpener/cult(loc) - new /mob/living/simple_animal/hostile/construct/artificer/hostile(loc) - if(prob(15)) - new /obj/item/cult_bastard(loc) - new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(loc) - if(prob(35)) - new /obj/item/cult_shift(loc) - new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) - if(prob(45)) - new /obj/item/gem/bloodstone(loc) - new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) - if(prob(35)) - new /obj/item/nullrod/scythe/talking/necro(loc) - new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) - if(prob(35)) - new /obj/item/clothing/suit/space/hardsuit/cult/(loc) - new /mob/living/simple_animal/hostile/construct/artificer/hostile(loc) - new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(loc) - new /mob/living/simple_animal/hostile/construct/wraith/hostile(loc) - new /obj/structure/destructible/cult/pylon(loc) - new /turf/open/floor/plasteel/cult(loc) - if(16)//the backroom freezer - visible_message("The faint hallogen glow of a faraway kitchen greets you.") - if(prob(45)) - new /obj/item/kitchen/knife/bloodletter(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(55)) - new /obj/item/clothing/gloves/butchering(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(45)) - new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) - new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) - new /obj/item/reagent_containers/food/snacks/store/bread/meat(loc) - if(prob(55)) - new /obj/item/reagent_containers/food/snacks/store/cake/trumpet(loc) - if(prob(35)) - new /obj/item/reagent_containers/food/snacks/pizza/dank(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(25)) - new /obj/item/reagent_containers/food/snacks/meat/steak/gondola(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(35)) - new /obj/item/reagent_containers/food/snacks/burger/roburgerbig(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(35)) - new /obj/item/kitchen/knife/butcher(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(35)) - new /obj/item/flamethrower/full(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(45)) - new /obj/item/sharpener(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(25)) - new /obj/item/sharpener/super(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/gibber(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/chem_master/condi(loc) - new /mob/living/simple_animal/hostile/killertomato(loc) - new /mob/living/simple_animal/hostile/alien/maid(loc) - new /turf/open/floor/plasteel/kitchen_coldroom/freezerfloor(loc) - if(17)//legion miniboss - visible_message("The ground quakes. An immense figure reaches through the portal, crouching to squeeze through.") - playsound(loc,'sound/magic/knock.ogg', 100, FALSE, 50, TRUE, TRUE) - new /mob/living/simple_animal/hostile/big_legion(loc) - if(prob(75)) - new /obj/structure/closet/crate/necropolis/tendril/greater(loc) - new /turf/open/indestructible/necropolis(loc) - if(18)//xenobiologist's hubris - visible_message("You catch a glimpse of a wobbling sea of slimy friends. An abused-looking keeper slips through the portal.") - playsound(loc,'sound/effects/footstep/slime1.ogg', 100, FALSE, 50, TRUE, TRUE) - if(prob(25)) - new /obj/item/slime_extract/adamantine(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) - new /obj/item/slime_extract/gold(loc) - if(prob(25)) - new /mob/living/simple_animal/slime/random(loc) - if(prob(45)) - new /obj/item/extinguisher/advanced(loc) - if(prob(25)) - new /obj/item/slimepotion/slime/renaming(loc) - new /mob/living/simple_animal/slime/random(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(25)) - new /obj/item/slimepotion/slime/sentience(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(25)) - new /mob/living/simple_animal/slime/random(loc) - if(prob(45)) - new /obj/item/circuitboard/computer/xenobiology(loc) - new /obj/item/slime_extract/grey(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(45)) - new /obj/item/circuitboard/machine/processor/slime(loc) - new /mob/living/simple_animal/slime/random(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(25)) - new /obj/item/shield/adamantineshield(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(45)) - new /obj/item/slime_cookie/purple(loc) - new /obj/item/slime_cookie/purple(loc) - new /obj/item/slime_cookie/purple(loc) - if(prob(45)) - new /obj/item/storage/box/monkeycubes(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) - new /obj/item/slimepotion/speed(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(45)) - new /obj/item/slimepotion/slime/slimeradio(loc) - new /mob/living/simple_animal/slime/random(loc) - if(prob(35)) - new /mob/living/simple_animal/pet/dog/corgi/puppy/slime(loc) - new /obj/effect/mob_spawn/human/scientist(loc) - new /turf/open/floor/mineral/titanium/purple(loc) - new /mob/living/simple_animal/slime/random(loc) - if(19)//hey, free elite tumor! - visible_message("A large, pulsating structure falls through the portal and crashes to the floor.") - playsound(loc,'sound/effects/break_stone.ogg', 100, FALSE, 50, TRUE, TRUE) - new /obj/structure/elite_tumor(loc) - new /turf/open/floor/plating/asteroid/basalt(loc) - if(20)//*you flush the toilet.* - visible_message("You hear the faint noise of a long flush.") - new /obj/structure/toilet(loc) - new /obj/effect/decal/remains(loc) - new /obj/item/newspaper(loc) - new /turf/open/floor/plastic(loc) - new /obj/item/clothing/head/papersack/smiley(loc) //welcome to the bathroom - if(21)//Research & Zombies - visible_message("Flashing lights and quarantine alarms echo through the portal. You smell rotting flesh and plasma.") - playsound(loc,'sound/misc/bloblarm.ogg', 120, FALSE, 50, TRUE, TRUE) - if(prob(35)) - new /obj/item/storage/box/rndboards(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(35)) - new /obj/item/storage/box/stockparts/deluxe(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(15)) - new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(15)) - new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(15)) - new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(15)) - new /obj/effect/spawner/lootdrop/stockparts(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(30)) - new /obj/item/circuitboard/machine/rdserver(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(35)) - new /obj/item/research_notes/loot/big(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - else - new /obj/item/research_notes/loot/medium(loc) - if(prob(35)) - new /obj/item/research_notes/loot/medium(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - else - new /obj/item/research_notes/loot/small(loc) - if(prob(35)) - new /obj/item/pneumatic_cannon(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(prob(45)) - new /obj/item/research_notes/loot/medium(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - else - new /obj/item/research_notes/loot/small(loc) - new/turf/open/floor/mineral/titanium/purple(loc) - new /mob/living/simple_animal/hostile/zombie(loc) - if(22)//Silverback's locker room - visible_message("You catch a glimpse of verdant green. Smells like a locker room.") - playsound(loc,'sound/creatures/gorilla.ogg', 75, FALSE, 50, TRUE, TRUE) - new /mob/living/simple_animal/hostile/gorilla(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /obj/item/circuitboard/machine/dnascanner(loc) - if(prob(35)) - new /obj/item/circuitboard/computer/scan_consolenew(loc) - if(prob(25)) - new /obj/item/reagent_containers/hypospray/medipen/magillitis(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /obj/item/dnainjector/thermal(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /obj/item/storage/box/gorillacubes(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /obj/item/dnainjector/hulkmut(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /obj/item/dnainjector/gigantism(loc) - if(prob(45)) - new /obj/item/dnainjector/dwarf(loc) - if(prob(35)) - new /obj/item/dnainjector/firebreath(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - if(prob(35)) - new /mob/living/simple_animal/hostile/gorilla(loc) - new /obj/item/dnainjector/telemut/darkbundle(loc) - if(prob(35)) - new /obj/item/dnainjector/insulated(loc) - new /mob/living/simple_animal/hostile/gorilla(loc) - new /obj/item/sequence_scanner(loc) - new /obj/structure/flora/grass/jungle(loc) - new /turf/open/floor/plating/grass/jungle(loc) diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm index 82fe1726fc56..d3555e5d4beb 100644 --- a/code/modules/mob_spawner/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -17,8 +17,6 @@ ) spawn_text = "crawls out of" spawn_sound = list('sound/effects/suitstep2.ogg') - move_resist = INFINITY - anchored = TRUE resistance_flags = FIRE_PROOF | LAVA_PROOF var/obj/effect/light_emitter/hivespawner/emitted_light diff --git a/code/modules/mob_spawner/mining.dm b/code/modules/mob_spawner/mining.dm deleted file mode 100644 index 94fefe9aaacf..000000000000 --- a/code/modules/mob_spawner/mining.dm +++ /dev/null @@ -1,82 +0,0 @@ -GLOBAL_LIST_INIT(astroloot, list( - /obj/item/stack/ore/uranium = 50, - /obj/item/stack/ore/iron = 50, - /obj/item/stack/ore/plasma = 75, - /obj/item/stack/ore/silver = 50, - /obj/item/stack/ore/gold = 50, - /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/titanium = 75, - /obj/item/pickaxe/diamond = 15, - /obj/item/borg/upgrade/modkit/cooldown = 5, - /obj/item/borg/upgrade/modkit/damage = 5, - /obj/item/borg/upgrade/modkit/range = 5, - /obj/item/t_scanner/adv_mining_scanner/lesser = 15, - /obj/item/kinetic_crusher = 15, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, - /obj/item/tank/jetpack/suit = 10, - /obj/item/survivalcapsule = 15, - /obj/item/reagent_containers/hypospray/medipen/survival = 15, - /obj/item/gps/mining = 10, - /obj/item/extraction_pack = 10, - /obj/item/reagent_containers/food/drinks/beer = 15, - )) - -/obj/structure/spawner/mining - name = "monster den" - desc = "A hole dug into the ground, harboring all kinds of monsters found within most caves or mining asteroids." - icon_state = "hole" - max_mobs = 3 - icon = 'icons/mob/nest.dmi' - spawn_text = "crawls out of" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/hivelord, /mob/living/simple_animal/hostile/asteroid/basilisk, /mob/living/simple_animal/hostile/asteroid/fugu) - faction = list("mining") - density = 0 - -/obj/structure/spawner/mining/deconstruct(disassembled) - adestroy_effect() - drop_astroloot() - return ..() - -/obj/structure/spawner/mining/proc/adestroy_effect() - playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) - visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") - -/obj/structure/spawner/mining/proc/drop_astroloot() - for(var/type in GLOB.astroloot) - var/chance = GLOB.astroloot[type] - if(!prob(chance)) - continue - new type(loc, rand(5, 17)) - -/obj/structure/spawner/mining/goldgrub - name = "goldgrub den" - desc = "A den housing a nest of goldgrubs, annoying but arguably much better than anything else you'll find in a nest." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub) - -/obj/structure/spawner/mining/goliath - name = "goliath den" - desc = "A den housing a nest of goliaths, oh god why?" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath) - -/obj/structure/spawner/mining/hivelord - name = "hivelord den" - desc = "A den housing a nest of hivelords." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord) - -/obj/structure/spawner/mining/basilisk - name = "basilisk den" - desc = "A den housing a nest of basilisks, bring a coat." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) - -/obj/structure/spawner/mining/wumborian - name = "wumborian fugu den" - desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?" - mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu) - -/obj/structure/spawner/mining/carp - name = "carp den" - desc = "A den housing a nest of space carp, seems fishy!" - mob_types = list(/mob/living/simple_animal/hostile/carp) - spawn_text = "emerges from" diff --git a/code/modules/mob_spawner/necropolis_tendril.dm b/code/modules/mob_spawner/necropolis_tendril.dm deleted file mode 100644 index c85462d9033d..000000000000 --- a/code/modules/mob_spawner/necropolis_tendril.dm +++ /dev/null @@ -1,188 +0,0 @@ -//Necropolis Tendrils, which spawn lavaland monsters and break into a chasm when killed -/obj/structure/spawner/lavaland - name = "necropolis tendril" - desc = "A vile tendril of corruption, originating deep underground. Terrible monsters are pouring out of it." - - icon = 'icons/mob/nest.dmi' - icon_state = "tendril" - - faction = list("mining") - max_mobs = 5 - max_integrity = 450 - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril) - - move_resist = INFINITY // just killing it tears a massive hole in the ground, let's not move it - anchored = TRUE - resistance_flags = FIRE_PROOF | LAVA_PROOF - - hitsound_type = PROJECTILE_HITSOUND_FLESH - - var/gps = null - var/obj/effect/light_emitter/tendril/emitted_light - -GLOBAL_LIST_INIT(tendrils, list()) -/obj/structure/spawner/lavaland/Initialize() - . = ..() - emitted_light = new(loc) - for(var/F in RANGE_TURFS(1, src)) - if(ismineralturf(F)) - var/turf/closed/mineral/M = F - M.ScrapeAway(null, CHANGETURF_IGNORE_AIR) - GLOB.tendrils += src - -/obj/structure/spawner/lavaland/deconstruct(disassembled) - new /obj/effect/collapse(loc) - new /obj/structure/closet/crate/necropolis/tendril(loc) - return ..() - - -/obj/structure/spawner/lavaland/Destroy() - var/last_tendril = TRUE - if(GLOB.tendrils.len>1) - last_tendril = FALSE - - if(last_tendril && !(flags_1 & ADMIN_SPAWNED_1)) - if(SSachievements.achievements_enabled) - for(var/mob/living/L in view(7,src)) - if(L.stat || !L.client) - continue - L.client.give_award(/datum/award/achievement/boss/nest_exterminator, L) - L.client.give_award(/datum/award/score/nest_score, L) //Progresses score by one - GLOB.tendrils -= src - QDEL_NULL(emitted_light) - return ..() - -/obj/effect/light_emitter/tendril - set_luminosity = 4 - set_cap = 2.5 - light_color = LIGHT_COLOR_LAVA - -/obj/effect/collapse - name = "collapsing necropolis tendril" - desc = "Get clear!" - layer = TABLE_LAYER - icon = 'icons/mob/nest.dmi' - icon_state = "tendril" - anchored = TRUE - density = TRUE - var/obj/effect/light_emitter/tendril/emitted_light - -/obj/effect/collapse/Initialize() - . = ..() - emitted_light = new(loc) - visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!") - visible_message("Something falls free of the tendril!") - playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE) - addtimer(CALLBACK(src, PROC_REF(collapse)), 50) - -/obj/effect/collapse/Destroy() - QDEL_NULL(emitted_light) - return ..() - -/obj/effect/collapse/proc/collapse() - for(var/mob/M in range(7,src)) - shake_camera(M, 15, 1) - playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE) - visible_message("The tendril falls inward, the ground around it erupting into bubbling lava!") //WS edit. - for(var/turf/T in range(2,src)) - if(!T.density) - T.TerraformTurf(/turf/open/lava/smooth/lava_land_surface, /turf/open/lava/smooth/lava_land_surface, flags = CHANGETURF_INHERIT_AIR) //WS edit, instead of chasms this produces lava instead. - qdel(src) - - //these are good for mappers and already see use in some maps. - -/obj/structure/spawner/lavaland/goliath - mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril) - -/obj/structure/spawner/lavaland/legion - mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril) - -/obj/structure/spawner/lavaland/icewatcher - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing) - -/obj/structure/spawner/lavaland/whitesandsbasilisk - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands) - - //these are ones that we want to see spawning on worlds. - -/obj/structure/spawner/lavaland/low_threat //this is the most common one, it shouldn't be a huge issue for most players. - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1, - /mob/living/simple_animal/hostile/asteroid/brimdemon = 20 - ) - max_mobs = 4 - spawn_time = 300 - -/obj/structure/spawner/lavaland/medium_threat //this is less common. It starts getting dangerous here. - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1, - /mob/living/simple_animal/hostile/asteroid/brimdemon = 20 - ) - max_mobs = 6 - spawn_time = 200 //they spawn a little faster - -/obj/structure/spawner/lavaland/high_threat //this should be rare. People will have trouble with this. - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1, - /mob/living/simple_animal/hostile/asteroid/brimdemon = 20 - ) - max_mobs = 9 - spawn_time = 200 - -/obj/structure/spawner/lavaland/extreme_threat //extremely rare - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1, - /mob/living/simple_animal/hostile/asteroid/brimdemon = 20 - ) - max_mobs = 12 - spawn_time = 150 //bring a friend and some automatic weapons - -//and sand world ones. More legions, no brimdemons, no icewings. - -/obj/structure/spawner/lavaland/sand_world/low_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, - /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40 - ) - max_mobs = 5 - spawn_time = 300 - -/obj/structure/spawner/lavaland/sand_world/medium_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, - /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40 - ) - max_mobs = 7 - spawn_time = 200 - -/obj/structure/spawner/lavaland/sand_world/high_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, - /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40 - ) - max_mobs = 10 - spawn_time = 200 - -/obj/structure/spawner/lavaland/sand_world/extreme_threat - mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, - /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40 - ) - max_mobs = 12 - spawn_time = 150 diff --git a/code/modules/mob_spawner/nether.dm b/code/modules/mob_spawner/nether.dm deleted file mode 100644 index ecdc1fc13f27..000000000000 --- a/code/modules/mob_spawner/nether.dm +++ /dev/null @@ -1,45 +0,0 @@ -/obj/structure/spawner/nether - name = "netherworld link" - desc = null //see examine() - icon_state = "nether" - max_integrity = 50 - spawn_time = 600 //1 minute - max_mobs = 15 - icon = 'icons/mob/nest.dmi' - spawn_text = "crawls through" - mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody) - faction = list("nether") - -/obj/structure/spawner/nether/Initialize() - .=..() - START_PROCESSING(SSprocessing, src) - -/obj/structure/spawner/nether/examine(mob/user) - . = ..() - if(isskeleton(user) || iszombie(user)) - . += "A direct link to another dimension full of creatures very happy to see you. You can see your house from here!" - else - . += "A direct link to another dimension full of creatures not very happy to see you. Entering the link would be a very bad idea." - -/obj/structure/spawner/nether/attack_hand(mob/user) - . = ..() - if(isskeleton(user) || iszombie(user)) - to_chat(user, "You don't feel like going home yet...") - else - user.visible_message("[user] is violently pulled into the link!", \ - "Touching the portal, you are quickly pulled through into a world of unimaginable horror!") - contents.Add(user) - -/obj/structure/spawner/nether/process() - for(var/mob/living/M in contents) - if(M) - playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) - M.adjustBruteLoss(60) - new /obj/effect/gibspawner/generic(get_turf(M), M) - if(M.stat == DEAD) - var/mob/living/simple_animal/hostile/netherworld/blankbody/blank - blank = new(loc) - blank.name = "[M]" - blank.desc = "It's [M], but [M.p_their()] flesh has an ashy texture, and [M.p_their()] face is featureless save an eerie smile." - src.visible_message("[M] reemerges from the link!") - qdel(M) diff --git a/code/modules/mob_spawner/spawner.dm b/code/modules/mob_spawner/spawner.dm index 1405b79e88d5..f5cfdadd0e96 100644 --- a/code/modules/mob_spawner/spawner.dm +++ b/code/modules/mob_spawner/spawner.dm @@ -1,10 +1,10 @@ /obj/structure/spawner name = "monster nest" - icon = 'icons/mob/animal.dmi' + icon = 'icons/mob/nest.dmi' icon_state = "hole" max_integrity = 100 - move_resist = MOVE_FORCE_EXTREMELY_STRONG + move_resist = INFINITY anchored = TRUE density = TRUE @@ -36,5 +36,5 @@ max_mobs = 5 spawn_time = 1200 mob_types = list(/mob/living/simple_animal/hostile/carp) - spawn_text = "climbs out of" + spawn_text = "swims out of" faction = list("carp") diff --git a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm index b231ea902371..8c2496ce05ab 100644 --- a/code/modules/ruins/objects_and_mobs/ash_walker_den.dm +++ b/code/modules/ruins/objects_and_mobs/ash_walker_den.dm @@ -40,7 +40,6 @@ /obj/structure/lavaland/ash_walker/deconstruct(disassembled) new /obj/item/assembly/signaler/anomaly (get_step(loc, pick(GLOB.alldirs))) - new /obj/effect/collapse(loc) return ..() /obj/structure/lavaland/ash_walker/process() diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index c47205a27323..c34d5cf7c985 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -55,18 +55,6 @@ range = 3 newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") -/obj/effect/proc_holder/spell/aoe_turf/conjure/linkWorlds - name = "Link Worlds" - desc = "A whole new dimension for you to play with! They won't be happy about it, though." - invocation = "WTF" - clothes_req = FALSE - charge_max = 600 - cooldown_min = 200 - summon_type = list(/obj/structure/spawner/nether) - summon_amt = 1 - range = 1 - cast_sound = 'sound/weapons/marauder.ogg' - /obj/effect/proc_holder/spell/targeted/conjure_item name = "Summon weapon" desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible." diff --git a/shiptest.dme b/shiptest.dme index 2c9fb6e1d025..3c7087c91ef0 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2760,11 +2760,8 @@ #include "code\modules\mob\living\simple_animal\slime\slime.dm" #include "code\modules\mob\living\simple_animal\slime\slime_say.dm" #include "code\modules\mob\living\simple_animal\slime\subtypes.dm" -#include "code\modules\mob_spawner\cave_entrance.dm" +#include "code\modules\mob_spawner\burrow.dm" #include "code\modules\mob_spawner\hivebot.dm" -#include "code\modules\mob_spawner\mining.dm" -#include "code\modules\mob_spawner\necropolis_tendril.dm" -#include "code\modules\mob_spawner\nether.dm" #include "code\modules\mob_spawner\spawner.dm" #include "code\modules\mob_spawner\spawner_componet.dm" #include "code\modules\modular_computers\laptop_vendor.dm" From d2697751687f230f5dcf82a4f52da11a43141086 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 01:35:06 -0500 Subject: [PATCH 83/99] fromtendril renamed to from_nest --- code/modules/mining/ore_veins.dm | 18 +++++++++--------- .../hostile/mining_mobs/basilisk.dm | 4 ++-- .../hostile/mining_mobs/goliath.dm | 4 ++-- .../hostile/mining_mobs/hivelord.dm | 18 +++++++++--------- .../hostile/mining_mobs/mining_mobs.dm | 2 +- code/modules/mob_spawner/burrow.dm | 12 ++++++------ 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm index 3e5e20053a77..94a46de66d27 100644 --- a/code/modules/mining/ore_veins.dm +++ b/code/modules/mining/ore_veins.dm @@ -40,8 +40,8 @@ GLOBAL_LIST_EMPTY(ore_veins) var/max_mobs = 6 var/spawn_time = 150 //15 seconds var/mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 60, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 20, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/nest = 60, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest = 20, /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, ) var/spawn_text = "emerges from" @@ -126,11 +126,11 @@ GLOBAL_LIST_EMPTY(ore_veins) max_mobs = 6 spawn_time = 100 mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 60, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 30, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/nest = 60, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest = 30, /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 5, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/tendril = 5, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/nest = 5, ) /obj/structure/vein/classthree @@ -149,18 +149,18 @@ GLOBAL_LIST_EMPTY(ore_veins) max_mobs = 6 //Best not to go past 6 due to balance and lag reasons spawn_time = 80 mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 60, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 30, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/nest = 60, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest = 30, /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient = 10, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/tendril = 10, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/nest = 10, ) /obj/structure/vein/ice mob_types = list( /mob/living/simple_animal/hostile/asteroid/wolf = 30, /mob/living/simple_animal/hostile/asteroid/polarbear = 30, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 20, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/nest = 20, /mob/living/simple_animal/hostile/asteroid/ice_demon = 10, /mob/living/simple_animal/hostile/asteroid/ice_whelp = 5, /mob/living/simple_animal/hostile/asteroid/lobstrosity = 20, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index cacf642448f3..c422b14b33d1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -340,8 +340,8 @@ if(istype(L)) L.apply_status_effect(/datum/status_effect/freon/watcher) -/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril - fromtendril = TRUE +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/nest + from_nest = TRUE /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten name = "forgotten watcher" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index d7073072944f..5419f71e12bd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -280,9 +280,9 @@ else cached_tentacle_turfs -= t -/mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril +/mob/living/simple_animal/hostile/asteroid/goliath/beast/nest butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 2) - fromtendril = TRUE + from_nest = TRUE //tentacles /obj/effect/temp_visual/goliath_tentacle diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 7c22340882fa..7515011847ea 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -164,7 +164,7 @@ if(stored_mob) stored_mob.forceMove(get_turf(src)) stored_mob = null - else if(fromtendril) + else if(from_nest) new /obj/effect/mob_spawn/human/corpse/charredskeleton(T) else if(dwarf_mob) new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested/dwarf(T) @@ -172,11 +172,11 @@ new /obj/effect/mob_spawn/human/corpse/damaged/legioninfested(T) ..(gibbed) -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril - fromtendril = TRUE +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest + from_nest = TRUE -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/tendril - fromtendril = TRUE +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/nest + from_nest = TRUE /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf/death(gibbed) move_force = MOVE_FORCE_DEFAULT @@ -323,7 +323,7 @@ /mob/living/simple_animal/hostile/big_legion/Initialize() .=..() - AddComponent(/datum/component/spawner, list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril), 200, faction, "peels itself off from", 3) + AddComponent(/datum/component/spawner, list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest), 200, faction, "peels itself off from", 3) // Snow Legion /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow @@ -348,8 +348,8 @@ icon_aggro = "snowlegion_head" icon_dead = "snowlegion_head" -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril - fromtendril = TRUE +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/nest + from_nest = TRUE /mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal name = "disfigured legion" @@ -380,7 +380,7 @@ P.fire(i*(360/5)) return ..() -//Tendril-spawned Legion remains, the charred skeletons of those whose bodies sank into lava or fell into chasms. +//nest-spawned Legion remains, the charred skeletons of those whose bodies sank into lava or fell into chasms. /obj/effect/mob_spawn/human/corpse/charredskeleton name = "charred skeletal remains" burn_damage = 1000 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index b8f3cadc8dfb..388c49cbbc8e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -15,7 +15,7 @@ var/mob_trophy var/throw_message = "bounces off of" var/throw_deflection = 20 //WS edit - Whitesands - var/fromtendril = FALSE + var/from_nest = FALSE see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE mob_size = MOB_SIZE_LARGE diff --git a/code/modules/mob_spawner/burrow.dm b/code/modules/mob_spawner/burrow.dm index f8c7bd134528..bbe2ae07fa5f 100644 --- a/code/modules/mob_spawner/burrow.dm +++ b/code/modules/mob_spawner/burrow.dm @@ -57,18 +57,18 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/structure/spawner/burrow/lava_planet mob_types = list( - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 27, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 26, - /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril = 26, + /mob/living/simple_animal/hostile/asteroid/goliath/beast/nest = 27, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest = 26, + /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/nest = 26, /mob/living/simple_animal/hostile/asteroid/brimdemon = 20, /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing = 1 ) /obj/structure/spawner/burrow/sand_planet mob_types = list( - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril = 40, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/nest = 40, /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40, - /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril = 20 + /mob/living/simple_animal/hostile/asteroid/goliath/beast/nest = 20 ) /obj/structure/spawner/burrow/ice_planet @@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/structure/spawner/burrow/ice_planet/hard mob_types = list( /mob/living/simple_animal/hostile/asteroid/brimdemon = 35, - /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/tendril = 35, + /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow/nest = 35, /mob/living/simple_animal/hostile/asteroid/ice_whelp = 15, /mob/living/simple_animal/hostile/asteroid/ice_demon = 15 ) From fcdabf59140b6ef083fca6b8468df109361fba39 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 01:36:30 -0500 Subject: [PATCH 84/99] repathed some spawners --- .../RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm | 2 +- _maps/RandomRuins/SpaceRuins/corporate_mining.dmm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm index 52a302920d24..c9b60ead1976 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_dwarffortress.dmm @@ -78,7 +78,7 @@ /turf/open/floor/plating/asteroid/basalt, /area/overmap_encounter/planetoid/cave/explored) "sz" = ( -/obj/structure/spawner/lavaland/legion, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt, /area/overmap_encounter/planetoid/cave/explored) "sR" = ( diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm index 3585b4dcc1e3..e41328a12a4b 100644 --- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm +++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm @@ -1577,7 +1577,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/space) "Iv" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/burrow/asteroid, /turf/open/floor/plating/asteroid/airless, /area/ruin/space) "IE" = ( @@ -2036,7 +2036,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/space) "TO" = ( -/obj/structure/spawner/mining/goliath, +/obj/structure/spawner/burrow/asteroid, /turf/open/floor/plating/asteroid/airless, /area/ruin/space) "TR" = ( From a4e192bd2579d32e1c395fa62d941432d612e6be Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 02:04:07 -0500 Subject: [PATCH 85/99] orginizes primal and clothing cat --- code/datums/components/crafting/recipes.dm | 363 ------------------ .../{tailoring.dm => recipes/clothing.dm} | 39 ++ .../components/crafting/recipes/tribal.dm | 316 +++++++++++++++ shiptest.dme | 3 +- 4 files changed, 357 insertions(+), 364 deletions(-) rename code/datums/components/crafting/{tailoring.dm => recipes/clothing.dm} (85%) create mode 100644 code/datums/components/crafting/recipes/tribal.dm diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 9ec90bf09eac..4125e8bb9006 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -477,98 +477,6 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/bonearmor - name = "Bone Armor" - result = /obj/item/clothing/suit/armor/bone - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 6) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonetalisman - name = "Bone Talisman" - result = /obj/item/clothing/accessory/talisman - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonenecklace - name = "Hunter's Necklace" - result = /obj/item/clothing/accessory/wolftalisman - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 3, - /obj/item/crusher_trophy/wolf_ear = 2, - /obj/item/crusher_trophy/fang = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonecodpiece - name = "Skull Codpiece" - result = /obj/item/clothing/accessory/skullcodpiece - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 1, - /obj/item/stack/sheet/animalhide/goliath_hide = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonestaff - name = "Legion Staff" - result = /obj/item/legion_staff - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 2,\ - /obj/item/crusher_trophy/dwarf_skull = 1, - /obj/item/organ/regenerative_core/legion = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/skilt - name = "Sinew Kilt" - result = /obj/item/clothing/accessory/skilt - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/bracers - name = "Bone Bracers" - result = /obj/item/clothing/gloves/bracer - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/skullhelm - name = "Skull Helmet" - result = /obj/item/clothing/head/helmet/skull - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/goliathcloak - name = "Goliath Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned - category = CAT_PRIMAL - -/datum/crafting_recipe/drakecloak - name = "Ash Drake Armour" - result = /obj/item/clothing/suit/hooded/cloak/drake - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 10, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/ashdrake = 5) - category = CAT_PRIMAL - -/datum/crafting_recipe/firebrand - name = "Firebrand" - result = /obj/item/match/firebrand - time = 100 //Long construction time. Making fire is hard work. - reqs = list(/obj/item/stack/sheet/mineral/wood = 2) - category = CAT_PRIMAL - /datum/crafting_recipe/gold_horn name = "Golden Bike Horn" result = /obj/item/bikehorn/golden @@ -577,89 +485,6 @@ /obj/item/bikehorn = 1) category = CAT_MISC -/datum/crafting_recipe/bonedagger - name = "Bone Dagger" - result = /obj/item/kitchen/knife/combat/bone - time = 20 - reqs = list(/obj/item/stack/sheet/bone = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonespear - name = "Bone Spear" - result = /obj/item/spear/bonespear - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/boneaxe - name = "Bone Axe" - result = /obj/item/fireaxe/boneaxe - time = 50 - reqs = list(/obj/item/stack/sheet/bone = 6, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonfire - name = "Bonfire" - time = 60 - reqs = list(/obj/item/grown/log = 5) - parts = list(/obj/item/grown/log = 5) - blacklist = list(/obj/item/grown/log/steel) - result = /obj/structure/bonfire - category = CAT_PRIMAL - -/datum/crafting_recipe/rake //Category resorting incoming - name = "Rake" - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 5) - result = /obj/item/cultivator/rake - category = CAT_PRIMAL - -/datum/crafting_recipe/woodbucket - name = "Wooden Bucket" - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 3) - result = /obj/item/reagent_containers/glass/bucket/wooden - category = CAT_PRIMAL - -/datum/crafting_recipe/headpike - name = "Spike Head (Glass Spear)" - time = 65 - reqs = list(/obj/item/spear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/spear = 1) - blacklist = list(/obj/item/spear/explosive, /obj/item/spear/bonespear) - result = /obj/structure/headpike - category = CAT_PRIMAL - -/datum/crafting_recipe/legionpike - name = "Legion on a Spear" - time = 55 - reqs = list(/obj/item/spear = 1, - /obj/item/organ/regenerative_core = 1, - /obj/item/crusher_trophy/legion_skull = 2) - result = /obj/structure/legionpike - category = CAT_PRIMAL - -/datum/crafting_recipe/tribal_torch - name = "Tribal Torch" - result = /obj/item/candle/tribal_torch - time = 30 - reqs = list(/obj/item/stack/sheet/mineral/wood = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/headpikebone - name = "Spike Head (Bone Spear)" - time = 65 - reqs = list(/obj/item/spear/bonespear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/spear/bonespear = 1) - result = /obj/structure/headpike/bone - category = CAT_PRIMAL - /datum/crafting_recipe/pressureplate name = "Pressure Plate" result = /obj/item/pressure_plate @@ -679,27 +504,6 @@ reqs = list(/obj/item/stack/sheet/metal = 15) category = CAT_MISC -/datum/crafting_recipe/mummy - name = "Mummification Bandages (Mask)" - result = /obj/item/clothing/mask/mummy - time = 10 - tools = list(/obj/item/nullrod/egyptian) - reqs = list(/obj/item/stack/sheet/cotton/cloth = 2) - category = CAT_CLOTHING - -/datum/crafting_recipe/mummy/body - name = "Mummification Bandages (Body)" - result = /obj/item/clothing/under/costume/mummy - reqs = list(/obj/item/stack/sheet/cotton/cloth = 5) - -/datum/crafting_recipe/chaplain_hood - name = "Follower Hoodie" - result = /obj/item/clothing/suit/hooded/chaplain_hoodie - time = 10 - tools = list(/obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/storage/book/bible) - reqs = list(/obj/item/stack/sheet/cotton/cloth = 4) - category = CAT_CLOTHING - /datum/crafting_recipe/guillotine name = "Guillotine" result = /obj/structure/guillotine @@ -754,69 +558,6 @@ category = CAT_MISC tools = list(TOOL_WELDER) -/datum/crafting_recipe/rib - name = "Collosal Rib" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 10, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/rib - subcategory = CAT_PRIMAL - -/datum/crafting_recipe/skull - name = "Skull Carving" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 6, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/skull - category = CAT_PRIMAL - -/datum/crafting_recipe/halfskull - name = "Cracked Skull Carving" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 3, - /datum/reagent/fuel/oil = 5) - result = /obj/structure/statue/bone/skull/half - category = CAT_PRIMAL - -/datum/crafting_recipe/boneshovel - name = "Serrated Bone Shovel" - always_availible = FALSE - reqs = list( - /obj/item/stack/sheet/bone = 4, - /datum/reagent/fuel/oil = 5, - /obj/item/shovel/spade = 1) - result = /obj/item/shovel/serrated - category = CAT_PRIMAL - -/datum/crafting_recipe/lasso - name = "Bone Lasso" - reqs = list( - /obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 5) - result = /obj/item/key/lasso - category = CAT_PRIMAL - -/datum/crafting_recipe/gripperoffbrand - name = "Improvised Gripper Gloves" - reqs = list( - /obj/item/clothing/gloves/fingerless = 1, - /obj/item/stack/tape = 1) - result = /obj/item/clothing/gloves/tackler/offbrand - category = CAT_CLOTHING - -/*WS edit - Normal BoH -/datum/crafting_recipe/boh - name = "Bag of Holding" - reqs = list( - /obj/item/bag_of_holding_inert = 1, - /obj/item/assembly/signaler/anomaly/bluespace = 1) - result = /obj/item/storage/backpack/holding - category = CAT_CLOTHING -*/ - /datum/crafting_recipe/ipickaxe name = "Improvised Pickaxe" reqs = list( @@ -847,16 +588,6 @@ result = /obj/item/reagent_containers/glass/filter category = CAT_MISC -/datum/crafting_recipe/dragonspear - name = "Dragonslayer's Spear" - result = /obj/item/spear/dragonspear - time = 45 - reqs = list(/obj/item/crusher_trophy/ash_spike = 1, - /obj/item/crusher_trophy/tail_spike = 2, - /obj/item/stack/sheet/bone = 5, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - /datum/crafting_recipe/splint name = "Makeshift Splint" reqs = list( @@ -922,76 +653,6 @@ category = CAT_WEAPONRY subcategory = CAT_AMMO -/datum/crafting_recipe/heavybonearmor - name = "Heavy Bone Armor" - result = /obj/item/clothing/suit/hooded/cloak/bone - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 8, - /obj/item/stack/sheet/sinew = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/watcherbola - name = "Watcher Bola" - result = /obj/item/restraints/legcuffs/bola/watcher - time = 30 - reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2, - /obj/item/restraints/handcuffs/cable/sinew = 1) - category = CAT_PRIMAL - -/datum/crafting_recipe/goliathshield - name = "Goliath shield" - result = /obj/item/shield/riot/goliath - time = 60 - reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/animalhide/goliath_hide = 3) - category = CAT_PRIMAL - -/datum/crafting_recipe/bonesword - name = "Bone Sword" - result = /obj/item/claymore/bone - time = 40 - reqs = list(/obj/item/stack/sheet/bone = 3, - /obj/item/stack/sheet/sinew = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/hunterbelt - name = "Hunters Belt" - result = /obj/item/storage/belt/mining/primitive - time = 20 - reqs = list(/obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide = 2) - category = CAT_PRIMAL - -/datum/crafting_recipe/quiver - name = "Quiver" - result = /obj/item/storage/bag/quiver/empty - time = 80 - reqs = list(/obj/item/stack/sheet/leather = 3, - /obj/item/stack/sheet/sinew = 4) - category = CAT_PRIMAL - -/datum/crafting_recipe/bone_bow - name = "Bone Bow" - result = /obj/item/gun/ballistic/bow/ashen - time = 200 - reqs = list(/obj/item/stack/sheet/bone = 8, - /obj/item/stack/sheet/sinew = 4) - category = CAT_PRIMAL -/datum/crafting_recipe/boneclub - name = "Bone Club" - result = /obj/item/melee/baseball_bat/bone - time = 40 - reqs = list(/obj/item/stack/sheet/bone = 6) - category = CAT_PRIMAL -/datum/crafting_recipe/polarbearcloak - name = "Polar Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath/polar - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) - blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) - category = CAT_PRIMAL /datum/crafting_recipe/portableseedextractor name = "Portable seed extractor" reqs = list( @@ -1018,16 +679,6 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/scrap_armor - name = "Scrap Armor" - result = /obj/item/clothing/suit/armor/vest/scrap_armor - time = 60 - reqs = list( - /obj/item/stack/sheet/metal = 10, - /obj/item/stack/cable_coil = 20, - ) - category = CAT_CLOTHING - /datum/crafting_recipe/umbrellared name = "Red Drink Umbrella" result = /obj/item/garnish/umbrellared @@ -1119,17 +770,3 @@ /obj/item/stack/sheet/mineral/plasma = 1) tools = list(TOOL_WELDER) category = CAT_DRINK - -/datum/crafting_recipe/fermenting_barrel - name = "Wooden Barrel" - result = /obj/structure/fermenting_barrel - reqs = list(/obj/item/stack/sheet/mineral/wood = 8) - time = 50 - category = CAT_PRIMAL - -/datum/crafting_recipe/distiller - name = "Distiller" - result = /obj/structure/fermenting_barrel/distiller - reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) - time = 50 - category = CAT_PRIMAL diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/recipes/clothing.dm similarity index 85% rename from code/datums/components/crafting/tailoring.dm rename to code/datums/components/crafting/recipes/clothing.dm index 4caaa55ded29..897dcdb8ff6c 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/recipes/clothing.dm @@ -236,3 +236,42 @@ reqs = list(/obj/item/stack/sheet/leather = 2) time = 45 category = CAT_CLOTHING + +/datum/crafting_recipe/mummy + name = "Mummification Bandages (Mask)" + result = /obj/item/clothing/mask/mummy + time = 10 + tools = list(/obj/item/nullrod/egyptian) + reqs = list(/obj/item/stack/sheet/cotton/cloth = 2) + category = CAT_CLOTHING + +/datum/crafting_recipe/mummy/body + name = "Mummification Bandages (Body)" + result = /obj/item/clothing/under/costume/mummy + reqs = list(/obj/item/stack/sheet/cotton/cloth = 5) + +/datum/crafting_recipe/chaplain_hood + name = "Follower Hoodie" + result = /obj/item/clothing/suit/hooded/chaplain_hoodie + time = 10 + tools = list(/obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/storage/book/bible) + reqs = list(/obj/item/stack/sheet/cotton/cloth = 4) + category = CAT_CLOTHING + +/datum/crafting_recipe/gripperoffbrand + name = "Improvised Gripper Gloves" + reqs = list( + /obj/item/clothing/gloves/fingerless = 1, + /obj/item/stack/tape = 1) + result = /obj/item/clothing/gloves/tackler/offbrand + category = CAT_CLOTHING + +/datum/crafting_recipe/scrap_armor + name = "Scrap Armor" + result = /obj/item/clothing/suit/armor/vest/scrap_armor + time = 60 + reqs = list( + /obj/item/stack/sheet/metal = 10, + /obj/item/stack/cable_coil = 20, + ) + category = CAT_CLOTHING diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm new file mode 100644 index 000000000000..942a6e6712cc --- /dev/null +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -0,0 +1,316 @@ +/datum/crafting_recipe/bonearmor + name = "Bone Armor" + result = /obj/item/clothing/suit/armor/bone + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 6) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonetalisman + name = "Bone Talisman" + result = /obj/item/clothing/accessory/talisman + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonenecklace + name = "Hunter's Necklace" + result = /obj/item/clothing/accessory/wolftalisman + time = 35 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 3, + /obj/item/crusher_trophy/wolf_ear = 2, + /obj/item/crusher_trophy/fang = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonecodpiece + name = "Skull Codpiece" + result = /obj/item/clothing/accessory/skullcodpiece + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/crusher_trophy/legion_skull = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonestaff + name = "Legion Staff" + result = /obj/item/legion_staff + time = 35 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/crusher_trophy/legion_skull = 2,\ + /obj/item/crusher_trophy/dwarf_skull = 1, + /obj/item/organ/regenerative_core/legion = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/skilt + name = "Sinew Kilt" + result = /obj/item/clothing/accessory/skilt + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bracers + name = "Bone Bracers" + result = /obj/item/clothing/gloves/bracer + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/skullhelm + name = "Skull Helmet" + result = /obj/item/clothing/head/helmet/skull + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliathcloak + name = "Goliath Cloak" + result = /obj/item/clothing/suit/hooded/cloak/goliath + time = 50 + reqs = list(/obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned + category = CAT_PRIMAL + +/datum/crafting_recipe/drakecloak + name = "Ash Drake Armour" + result = /obj/item/clothing/suit/hooded/cloak/drake + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 10, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/ashdrake = 5) + category = CAT_PRIMAL + +/datum/crafting_recipe/firebrand + name = "Firebrand" + result = /obj/item/match/firebrand + time = 100 //Long construction time. Making fire is hard work. + reqs = list(/obj/item/stack/sheet/mineral/wood = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonedagger + name = "Bone Dagger" + result = /obj/item/kitchen/knife/combat/bone + time = 20 + reqs = list(/obj/item/stack/sheet/bone = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonespear + name = "Bone Spear" + result = /obj/item/spear/bonespear + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 4, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/boneaxe + name = "Bone Axe" + result = /obj/item/fireaxe/boneaxe + time = 50 + reqs = list(/obj/item/stack/sheet/bone = 6, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonfire + name = "Bonfire" + time = 60 + reqs = list(/obj/item/grown/log = 5) + parts = list(/obj/item/grown/log = 5) + blacklist = list(/obj/item/grown/log/steel) + result = /obj/structure/bonfire + category = CAT_PRIMAL + +/datum/crafting_recipe/rake //Category resorting incoming + name = "Rake" + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 5) + result = /obj/item/cultivator/rake + category = CAT_PRIMAL + +/datum/crafting_recipe/woodbucket + name = "Wooden Bucket" + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 3) + result = /obj/item/reagent_containers/glass/bucket/wooden + category = CAT_PRIMAL + +/datum/crafting_recipe/headpike + name = "Spike Head (Glass Spear)" + time = 65 + reqs = list(/obj/item/spear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/spear = 1) + blacklist = list(/obj/item/spear/explosive, /obj/item/spear/bonespear) + result = /obj/structure/headpike + category = CAT_PRIMAL + +/datum/crafting_recipe/legionpike + name = "Legion on a Spear" + time = 55 + reqs = list(/obj/item/spear = 1, + /obj/item/organ/regenerative_core = 1, + /obj/item/crusher_trophy/legion_skull = 2) + result = /obj/structure/legionpike + category = CAT_PRIMAL + +/datum/crafting_recipe/tribal_torch + name = "Tribal Torch" + result = /obj/item/candle/tribal_torch + time = 30 + reqs = list(/obj/item/stack/sheet/mineral/wood = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/headpikebone + name = "Spike Head (Bone Spear)" + time = 65 + reqs = list(/obj/item/spear/bonespear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/spear/bonespear = 1) + result = /obj/structure/headpike/bone + category = CAT_PRIMAL + +/datum/crafting_recipe/rib + name = "Collosal Rib" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 10, + /datum/reagent/fuel/oil = 5) + result = /obj/structure/statue/bone/rib + subcategory = CAT_PRIMAL + +/datum/crafting_recipe/skull + name = "Skull Carving" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 6, + /datum/reagent/fuel/oil = 5) + result = /obj/structure/statue/bone/skull + category = CAT_PRIMAL + +/datum/crafting_recipe/halfskull + name = "Cracked Skull Carving" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 3, + /datum/reagent/fuel/oil = 5) + result = /obj/structure/statue/bone/skull/half + category = CAT_PRIMAL + +/datum/crafting_recipe/boneshovel + name = "Serrated Bone Shovel" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 4, + /datum/reagent/fuel/oil = 5, + /obj/item/shovel/spade = 1) + result = /obj/item/shovel/serrated + category = CAT_PRIMAL + +/datum/crafting_recipe/lasso + name = "Bone Lasso" + reqs = list( + /obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 5) + result = /obj/item/key/lasso + category = CAT_PRIMAL + +/datum/crafting_recipe/dragonspear + name = "Dragonslayer's Spear" + result = /obj/item/spear/dragonspear + time = 45 + reqs = list(/obj/item/crusher_trophy/ash_spike = 1, + /obj/item/crusher_trophy/tail_spike = 2, + /obj/item/stack/sheet/bone = 5, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/heavybonearmor + name = "Heavy Bone Armor" + result = /obj/item/clothing/suit/hooded/cloak/bone + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 8, + /obj/item/stack/sheet/sinew = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/watcherbola + name = "Watcher Bola" + result = /obj/item/restraints/legcuffs/bola/watcher + time = 30 + reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/restraints/handcuffs/cable/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliathshield + name = "Goliath shield" + result = /obj/item/shield/riot/goliath + time = 60 + reqs = list(/obj/item/stack/sheet/bone = 4, + /obj/item/stack/sheet/animalhide/goliath_hide = 3) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonesword + name = "Bone Sword" + result = /obj/item/claymore/bone + time = 40 + reqs = list(/obj/item/stack/sheet/bone = 3, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/hunterbelt + name = "Hunters Belt" + result = /obj/item/storage/belt/mining/primitive + time = 20 + reqs = list(/obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/quiver + name = "Quiver" + result = /obj/item/storage/bag/quiver/empty + time = 80 + reqs = list(/obj/item/stack/sheet/leather = 3, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_bow + name = "Bone Bow" + result = /obj/item/gun/ballistic/bow/ashen + time = 200 + reqs = list(/obj/item/stack/sheet/bone = 8, + /obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/boneclub + name = "Bone Club" + result = /obj/item/melee/baseball_bat/bone + time = 40 + reqs = list(/obj/item/stack/sheet/bone = 6) + category = CAT_PRIMAL + +/datum/crafting_recipe/polarbearcloak + name = "Polar Cloak" + result = /obj/item/clothing/suit/hooded/cloak/goliath/polar + time = 50 + reqs = list(/obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) + blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) + category = CAT_PRIMAL + +/datum/crafting_recipe/fermenting_barrel + name = "Wooden Barrel" + result = /obj/structure/fermenting_barrel + reqs = list(/obj/item/stack/sheet/mineral/wood = 8) + time = 50 + category = CAT_PRIMAL + +/datum/crafting_recipe/distiller + name = "Distiller" + result = /obj/structure/fermenting_barrel/distiller + reqs = list(/obj/item/stack/sheet/mineral/wood = 8, /obj/item/stack/sheet/metal = 5, /datum/reagent/srm_bacteria = 30) + time = 50 + category = CAT_PRIMAL diff --git a/shiptest.dme b/shiptest.dme index a9ccebc03911..8e0d2ce5b646 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -535,7 +535,8 @@ #include "code\datums\components\crafting\crafting.dm" #include "code\datums\components\crafting\guncrafting.dm" #include "code\datums\components\crafting\recipes.dm" -#include "code\datums\components\crafting\tailoring.dm" +#include "code\datums\components\crafting\recipes\clothing.dm" +#include "code\datums\components\crafting\recipes\tribal.dm" #include "code\datums\components\fantasy\_fantasy.dm" #include "code\datums\components\fantasy\affix.dm" #include "code\datums\components\fantasy\prefixes.dm" From 01c5ebe88127d3168ed7d784f08a917d44025806 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 07:49:38 -0500 Subject: [PATCH 86/99] removes legion bone staff. --- .../components/crafting/recipes/tribal.dm | 10 ------- code/game/objects/items/weaponry.dm | 29 ------------------- code/modules/clothing/under/accessories.dm | 2 +- .../hostile/mining_mobs/basilisk.dm | 2 -- 4 files changed, 1 insertion(+), 42 deletions(-) diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm index 942a6e6712cc..e2ca4d371ce5 100644 --- a/code/datums/components/crafting/recipes/tribal.dm +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -32,16 +32,6 @@ /obj/item/stack/sheet/animalhide/goliath_hide = 1) category = CAT_PRIMAL -/datum/crafting_recipe/bonestaff - name = "Legion Staff" - result = /obj/item/legion_staff - time = 35 - reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 2,\ - /obj/item/crusher_trophy/dwarf_skull = 1, - /obj/item/organ/regenerative_core/legion = 1) - category = CAT_PRIMAL - /datum/crafting_recipe/skilt name = "Sinew Kilt" result = /obj/item/clothing/accessory/skilt diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 9e8d1e3c17b9..f0868c029d28 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -775,35 +775,6 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return 1 return 0 -/obj/item/legion_staff - icon_state = "legion_staff" - lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - name = "legionnaire staff" - desc = "The remnants of a legionnaire, reconstructed around a pole of bone. The skulls it produces are loyal to the wielder, seeming to recognize them as their host body." - icon = 'icons/obj/guns/magic.dmi' - block_chance = 20 - force = 20 - throwforce = 10 - throw_speed = 4 - attack_verb = list("bit", "gnawed", "chomped") - w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_BELT - hitsound = 'sound/weapons/bite.ogg' - var/next_use_time - -/obj/item/legion_staff/attack_self(mob/user) - if(next_use_time > world.time) - user.visible_message("[src] rattles in [user]'s hands, but nothing happens...") - to_chat(user, "You need to wait longer to use this again.") - return - user.visible_message("[user] raises the [src] and summons a legion skull!") - for(var/i in 1 to 3) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/staff/LegionSkull = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/staff(user.loc) - LegionSkull.faction = user.faction.Copy() - LegionSkull.friends += user - next_use_time = world.time + 6 SECONDS - /obj/item/claymore/bone name = "Bone Sword" desc = "Jagged pieces of bone are tied to what looks like a goliaths femur." diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 2f0660bffebf..1906fa085c59 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -432,7 +432,7 @@ name = "hunter's necklace" desc = "A thick necklace woven from sinew and bits of wolfhide, adorned with a carved fang. Slaying such beasts is rumoured to elate the gods of old, and such an item proves your worth." icon_state = "wolf_talisman" - armor = list("melee" = 15 , "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 25, "acid" = 25) + armor = list("melee" = 15 , "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 25, "acid" = 25) attachment_slot = CHEST above_suit = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index c422b14b33d1..ddbb13a91ae4 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -1,4 +1,3 @@ -#define LEGIONVIRUS_TYPE /datum/disease/transformation/legionvirus #define BULLET_SHELL_DAMAGE 1 //A beast that fire freezing blasts. @@ -204,7 +203,6 @@ projectiletype = /obj/projectile/temp/basilisk/heated #undef BULLET_SHELL_DAMAGE -#undef LEGIONVIRUS_TYPE //Watcher /mob/living/simple_animal/hostile/asteroid/basilisk/watcher From fb4d828818dfe05f12bdd0652a1651571b44676c Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 08:16:04 -0500 Subject: [PATCH 87/99] simplifys hivebot spawners --- code/datums/mapgen/planetary/WasteGenerator.dm | 15 +++------------ code/modules/mob_spawner/hivebot.dm | 18 ------------------ 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index d0243740bc3b..cf9ef43e50c3 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -256,10 +256,7 @@ /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3, /mob/living/simple_animal/hostile/abandoned_minebot = 15, /mob/living/simple_animal/bot/floorbot/rockplanet = 15, - /obj/structure/spawner/wasteplanet/hivebot/low_threat = 20, - /obj/structure/spawner/wasteplanet/hivebot/medium_threat = 10, - /obj/structure/spawner/wasteplanet/hivebot/high_threat = 5, - /obj/structure/spawner/wasteplanet/hivebot/extreme_threat = 2 + /obj/structure/spawner/wasteplanet/hivebot = 35 ) /datum/biome/waste/metal/rust @@ -406,10 +403,7 @@ /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3, /mob/living/simple_animal/hostile/abandoned_minebot = 15, /mob/living/simple_animal/bot/floorbot/rockplanet = 15, - /obj/structure/spawner/wasteplanet/hivebot/low_threat = 20, - /obj/structure/spawner/wasteplanet/hivebot/medium_threat = 10, - /obj/structure/spawner/wasteplanet/hivebot/high_threat = 5, - /obj/structure/spawner/wasteplanet/hivebot/extreme_threat = 2 + /obj/structure/spawner/wasteplanet/hivebot = 20 ) /datum/biome/cave/waste/metal/hivebot @@ -437,9 +431,6 @@ ) mob_spawn_chance = 30 feature_spawn_list = list( - /obj/structure/spawner/wasteplanet/hivebot/low_threat = 20, - /obj/structure/spawner/wasteplanet/hivebot/medium_threat = 10, - /obj/structure/spawner/wasteplanet/hivebot/high_threat = 5, - /obj/structure/spawner/wasteplanet/hivebot/extreme_threat = 2 + /obj/structure/spawner/wasteplanet/hivebot ) feature_spawn_chance = 2 //hivebot biomes should have their dongles diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm index d3555e5d4beb..d89d4f2cb0c3 100644 --- a/code/modules/mob_spawner/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -6,7 +6,6 @@ icon_state = "bsm_on" faction = list("mining") - max_mobs = 5 max_integrity = 250 mob_types = list( /mob/living/simple_animal/hostile/hivebot/wasteplanet = 40, @@ -49,20 +48,3 @@ set_luminosity = 4 set_cap = 2.5 light_color = COLOR_RED_LIGHT - - -/obj/structure/spawner/wasteplanet/hivebot/low_threat - max_mobs = 4 - spawn_time = 300 - -/obj/structure/spawner/wasteplanet/hivebot/medium_threat - max_mobs = 5 - spawn_time = 250 - -/obj/structure/spawner/wasteplanet/hivebot/high_threat - max_mobs = 7 - spawn_time = 200 - -/obj/structure/spawner/wasteplanet/hivebot/extreme_threat - max_mobs = 10 - spawn_time = 150 From 87e29efcf02c99ea9fa3df4512e9727dfa698dd6 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 08:21:10 -0500 Subject: [PATCH 88/99] legion corspes --- code/modules/mob_spawner/burrow.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/mob_spawner/burrow.dm b/code/modules/mob_spawner/burrow.dm index bbe2ae07fa5f..f8d4c31bc87f 100644 --- a/code/modules/mob_spawner/burrow.dm +++ b/code/modules/mob_spawner/burrow.dm @@ -5,7 +5,10 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/uranium = 50, - /obj/item/stack/ore/diamond = 25 + /obj/item/stack/ore/diamond = 25, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25, + /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 25 )) /obj/structure/spawner/burrow From d65f22a475e56e97d7c4b71dff001cc6d26ab6bb Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 08:24:00 -0500 Subject: [PATCH 89/99] spaces.. awful --- .../hostile/mining_mobs/{ice demon.dm => ice_demon.dm} | 0 .../hostile/mining_mobs/{ice whelp.dm => ice_whelp.dm} | 0 shiptest.dme | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename code/modules/mob/living/simple_animal/hostile/mining_mobs/{ice demon.dm => ice_demon.dm} (100%) rename code/modules/mob/living/simple_animal/hostile/mining_mobs/{ice whelp.dm => ice_whelp.dm} (100%) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm similarity index 100% rename from code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm rename to code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm similarity index 100% rename from code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm rename to code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm diff --git a/shiptest.dme b/shiptest.dme index 8e0d2ce5b646..02ac3975bbfe 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2738,8 +2738,8 @@ #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobstrosity.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" From 9a38f1ef4c66ac31af8a144a7c560a527a4c6c80 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 08:43:05 -0500 Subject: [PATCH 90/99] map fix --- _maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm index 194e34a6a838..8128184be097 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm @@ -137,7 +137,7 @@ /turf/open/floor/plating, /area/ruin/wasteplanet/wasteplanet_radiation/containment) "iT" = ( -/obj/structure/spawner/wasteplanet/hivebot/low_threat, +/obj/structure/spawner/wasteplanet/hivebot, /turf/open/floor/plating/asteroid/wasteplanet, /area/ruin/wasteplanet/wasteplanet_radiation) "jh" = ( From c458e4b9883c759fc742d1a5720b4a7e21452f36 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 09:40:51 -0500 Subject: [PATCH 91/99] this? --- .../WasteRuins/wasteplanet_unhonorable.dmm | 2 +- code/datums/mapgen/planetary/WasteGenerator.dm | 11 +++++------ code/modules/mob_spawner/hivebot.dm | 12 ++++++------ 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm index 8128184be097..16c43330785f 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm @@ -137,7 +137,7 @@ /turf/open/floor/plating, /area/ruin/wasteplanet/wasteplanet_radiation/containment) "iT" = ( -/obj/structure/spawner/wasteplanet/hivebot, +/obj/structure/spawner/hivebot, /turf/open/floor/plating/asteroid/wasteplanet, /area/ruin/wasteplanet/wasteplanet_radiation) "jh" = ( diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index cf9ef43e50c3..6f26c69d6b1b 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -256,7 +256,7 @@ /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3, /mob/living/simple_animal/hostile/abandoned_minebot = 15, /mob/living/simple_animal/bot/floorbot/rockplanet = 15, - /obj/structure/spawner/wasteplanet/hivebot = 35 + /obj/structure/spawner/hivebot = 35 ) /datum/biome/waste/metal/rust @@ -403,7 +403,7 @@ /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3, /mob/living/simple_animal/hostile/abandoned_minebot = 15, /mob/living/simple_animal/bot/floorbot/rockplanet = 15, - /obj/structure/spawner/wasteplanet/hivebot = 20 + /obj/structure/spawner/hivebot = 20 ) /datum/biome/cave/waste/metal/hivebot @@ -426,11 +426,10 @@ mob_spawn_list = list( //Whoops! All hivebots! /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80, /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 50, - /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50, - + /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50 ) mob_spawn_chance = 30 feature_spawn_list = list( - /obj/structure/spawner/wasteplanet/hivebot - ) + /obj/structure/spawner/hivebot + ) feature_spawn_chance = 2 //hivebot biomes should have their dongles diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm index d89d4f2cb0c3..630ed6f6f3c7 100644 --- a/code/modules/mob_spawner/hivebot.dm +++ b/code/modules/mob_spawner/hivebot.dm @@ -1,4 +1,4 @@ -/obj/structure/spawner/wasteplanet/hivebot +/obj/structure/spawner/hivebot name = "hivebot fabricator" desc = "An active fabricator, creating hivebots out of resources from below the surface." @@ -19,25 +19,25 @@ resistance_flags = FIRE_PROOF | LAVA_PROOF var/obj/effect/light_emitter/hivespawner/emitted_light -/obj/structure/spawner/wasteplanet/hivebot/Initialize() +/obj/structure/spawner/hivebot/Initialize() . = ..() emitted_light = new(loc) -/obj/structure/spawner/wasteplanet/hivebot/deconstruct(disassembled) +/obj/structure/spawner/hivebot/deconstruct(disassembled) destroy_effect() drop_loot() return ..() -/obj/structure/spawner/wasteplanet/hivebot/Destroy() +/obj/structure/spawner/hivebot/Destroy() QDEL_NULL(emitted_light) return ..() -/obj/structure/spawner/wasteplanet/hivebot/proc/destroy_effect() +/obj/structure/spawner/hivebot/proc/destroy_effect() playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) visible_message("[src] begins to rattle and shake, sparks flying off of it!") -/obj/structure/spawner/wasteplanet/hivebot/proc/drop_loot() +/obj/structure/spawner/hivebot/proc/drop_loot() var/datum/effect_system/smoke_spread/smoke = new smoke.set_up(2, loc) smoke.start() From 48eb7bb1bef3e7c3af63ba55c1e137ff924b8b1b Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 21 Mar 2024 09:41:39 -0500 Subject: [PATCH 92/99] how about good number? --- code/datums/mapgen/planetary/WasteGenerator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index 6f26c69d6b1b..dcc4c13622d4 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -430,6 +430,6 @@ ) mob_spawn_chance = 30 feature_spawn_list = list( - /obj/structure/spawner/hivebot + /obj/structure/spawner/hivebot = 1 ) feature_spawn_chance = 2 //hivebot biomes should have their dongles From 869dfb2ec17f57e6fffe5a070060a3479612d204 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 16:21:23 -0500 Subject: [PATCH 93/99] =?UTF-8?q?kills=20crusher=20trophy=20effects=20?= =?UTF-8?q?=F0=9F=A5=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/crafting/recipes/tribal.dm | 12 +- code/modules/cargo/exports/lavaland.dm | 42 +- .../mining/equipment/kinetic_crusher.dm | 556 ------------------ code/modules/mining/equipment/trophies.dm | 241 ++++++++ .../hostile/megafauna/blood_drunk_miner.dm | 2 +- .../hostile/megafauna/bubblegum.dm | 2 +- .../hostile/megafauna/colossus.dm | 2 +- .../hostile/megafauna/demonic_frost_miner.dm | 46 +- .../simple_animal/hostile/megafauna/drake.dm | 4 +- .../hostile/megafauna/hierophant.dm | 2 +- .../hostile/megafauna/wendigo.dm | 2 +- .../hostile/mining_mobs/basilisk.dm | 6 +- .../hostile/mining_mobs/brimdemon.dm | 18 +- .../mining_mobs/elites/goliath_broodmother.dm | 13 +- .../hostile/mining_mobs/elites/legionnaire.dm | 19 +- .../hostile/mining_mobs/goliath.dm | 4 +- .../hostile/mining_mobs/hivelord.dm | 10 +- .../hostile/mining_mobs/ice_demon.dm | 50 +- .../hostile/mining_mobs/ice_whelp.dm | 2 +- .../hostile/mining_mobs/lobstrosity.dm | 14 +- .../hostile/mining_mobs/polarbear.dm | 40 +- .../simple_animal/hostile/mining_mobs/wolf.dm | 42 +- .../living/simple_animal/hostile/survivors.dm | 2 +- shiptest.dme | 1 + 24 files changed, 304 insertions(+), 828 deletions(-) create mode 100644 code/modules/mining/equipment/trophies.dm diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm index e2ca4d371ce5..8b20f2aa871a 100644 --- a/code/datums/components/crafting/recipes/tribal.dm +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -19,8 +19,8 @@ time = 35 reqs = list(/obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 3, - /obj/item/crusher_trophy/wolf_ear = 2, - /obj/item/crusher_trophy/fang = 1) + /obj/item/mob_trophy/wolf_ear = 2, + /obj/item/mob_trophy/fang = 1) category = CAT_PRIMAL /datum/crafting_recipe/bonecodpiece @@ -28,7 +28,7 @@ result = /obj/item/clothing/accessory/skullcodpiece time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 1, + /obj/item/mob_trophy/legion_skull = 1, /obj/item/stack/sheet/animalhide/goliath_hide = 1) category = CAT_PRIMAL @@ -142,7 +142,7 @@ time = 55 reqs = list(/obj/item/spear = 1, /obj/item/organ/regenerative_core = 1, - /obj/item/crusher_trophy/legion_skull = 2) + /obj/item/mob_trophy/legion_skull = 2) result = /obj/structure/legionpike category = CAT_PRIMAL @@ -212,8 +212,8 @@ name = "Dragonslayer's Spear" result = /obj/item/spear/dragonspear time = 45 - reqs = list(/obj/item/crusher_trophy/ash_spike = 1, - /obj/item/crusher_trophy/tail_spike = 2, + reqs = list(/obj/item/mob_trophy/ash_spike = 1, + /obj/item/mob_trophy/tail_spike = 2, /obj/item/stack/sheet/bone = 5, /obj/item/stack/sheet/sinew = 3) category = CAT_PRIMAL diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index a4315fe4d4ff..eff6f5d6b34e 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -62,35 +62,35 @@ /datum/export/lavaland/trophycommon cost = 1500 unit_name = "common hunting trophy" - export_types = list(/obj/item/crusher_trophy/legion_skull, - /obj/item/crusher_trophy/wolf_ear, - /obj/item/crusher_trophy/bear_paw, - /obj/item/crusher_trophy/goliath_tentacle, - /obj/item/crusher_trophy/watcher_wing) + export_types = list(/obj/item/mob_trophy/legion_skull, + /obj/item/mob_trophy/wolf_ear, + /obj/item/mob_trophy/bear_paw, + /obj/item/mob_trophy/goliath_tentacle, + /obj/item/mob_trophy/watcher_wing) /datum/export/lavaland/trophyrare cost = 5000 unit_name = "rare hunting trophy" - export_types = list(/obj/item/crusher_trophy/dwarf_skull, - /obj/item/crusher_trophy/fang, - /obj/item/crusher_trophy/war_paw, - /obj/item/crusher_trophy/elder_tentacle, - /obj/item/crusher_trophy/ice_crystal, - /obj/item/crusher_trophy/magma_wing, - /obj/item/crusher_trophy/tail_spike, - /obj/item/crusher_trophy/ice_wing) + export_types = list(/obj/item/mob_trophy/dwarf_skull, + /obj/item/mob_trophy/fang, + /obj/item/mob_trophy/war_paw, + /obj/item/mob_trophy/elder_tentacle, + /obj/item/mob_trophy/ice_crystal, + /obj/item/mob_trophy/magma_wing, + /obj/item/mob_trophy/tail_spike, + /obj/item/mob_trophy/ice_wing) /datum/export/lavaland/trophymega cost = 10000 unit_name = "big game hunting trophy" - export_types = list(/obj/item/crusher_trophy/legionnaire_spine, - /obj/item/crusher_trophy/ash_spike, - /obj/item/crusher_trophy/demon_claws, - /obj/item/crusher_trophy/broodmother_tongue, - /obj/item/crusher_trophy/ice_block_talisman, - /obj/item/crusher_trophy/miner_eye, - /obj/item/crusher_trophy/vortex_talisman, - /obj/item/crusher_trophy/blaster_tubes) + export_types = list(/obj/item/mob_trophy/legionnaire_spine, + /obj/item/mob_trophy/ash_spike, + /obj/item/mob_trophy/demon_claws, + /obj/item/mob_trophy/broodmother_tongue, + /obj/item/mob_trophy/ice_block_talisman, + /obj/item/mob_trophy/miner_eye, + /obj/item/mob_trophy/vortex_talisman, + /obj/item/mob_trophy/blaster_tubes) /datum/export/lavaland/megafauna/total_printout(datum/export_report/ex, notes = TRUE) //in the unlikely case a miner feels like selling megafauna loot . = ..() diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 25c1847d69bc..fa5526a91995 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -24,7 +24,6 @@ light_range = 5 light_on = FALSE custom_price = 800 - var/list/trophies = list() var/charged = TRUE var/charge_time = 15 var/detonation_damage = 20 @@ -41,10 +40,6 @@ AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15) -/obj/item/kinetic_crusher/Destroy() - QDEL_LIST(trophies) - return ..() - /// triggered on wield of two handed item /obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) wielded = TRUE @@ -57,30 +52,6 @@ . = ..() . += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage." . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - . += "It has \a [T] attached, which causes [T.effect_desc()]." - -/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) - if(I.tool_behaviour == TOOL_CROWBAR) - if(LAZYLEN(trophies)) - var/list/choose_options = list() - for(var/obj/item/crusher_trophy/T in trophies) - choose_options += list(T.name = image(icon = T.icon, icon_state = T.icon_state)) - var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) - if(picked_option) - to_chat(user, "You remove [picked_option].") - I.play_tool_sound(src) - for(var/obj/item/crusher_trophy/T in trophies) - if(T.name == picked_option) - T.remove_from(src, user) - else - to_chat(user, "There are no trophies on [src].") - else if(istype(I, /obj/item/crusher_trophy)) - var/obj/item/crusher_trophy/T = I - T.add_to(src, user) - else - return ..() /obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) if(!wielded) @@ -90,10 +61,6 @@ var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = target.health ..() - for(var/t in trophies) - if(!QDELETED(target)) - var/obj/item/crusher_trophy/T = t - T.on_melee_hit(target, user) if(!QDELETED(C) && !QDELETED(target)) C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did @@ -106,9 +73,6 @@ if(!isturf(proj_turf)) return var/obj/projectile/destabilizer/D = new /obj/projectile/destabilizer(proj_turf) - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - T.on_projectile_fire(D, user) D.preparePixelProjectile(target, user, clickparams) D.firer = user D.hammer_synced = src @@ -125,9 +89,6 @@ return var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING) var/target_health = L.health - for(var/t in trophies) - var/obj/item/crusher_trophy/T = t - T.on_mark_detonation(target, user) if(!QDELETED(L)) if(!QDELETED(C)) C.total_damage += target_health - L.health //we did some damage, but let's not assume how much we did @@ -188,10 +149,6 @@ var/mob/living/L = target var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) - if(hammer_synced) - for(var/t in hammer_synced.trophies) - var/obj/item/crusher_trophy/T = t - T.on_mark_application(target, CM, had_effect) var/target_turf = get_turf(target) if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf @@ -199,506 +156,6 @@ M.gets_drilled(firer, TRUE) ..() -//trophies -/obj/item/crusher_trophy - name = "tail spike" - desc = "A strange spike with no usage." - icon = 'icons/obj/lavaland/artefacts.dmi' - icon_state = "tail_spike" - var/bonus_value = 10 //if it has a bonus effect, this is how much that effect is - var/denied_type = /obj/item/crusher_trophy - -/obj/item/crusher_trophy/examine(mob/living/user) - . = ..() - . += "Causes [effect_desc()] when attached to a kinetic crusher." - -/obj/item/crusher_trophy/proc/effect_desc() - return "errors" - -/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user) - if(istype(A, /obj/item/kinetic_crusher)) - add_to(A, user) - else - ..() - -/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user) - for(var/t in H.trophies) - var/obj/item/crusher_trophy/T = t - if(istype(T, denied_type) || istype(src, T.denied_type)) - to_chat(user, "You can't seem to attach [src] to [H]. Maybe remove a few trophies?") - return FALSE - if(!user.transferItemToLoc(src, H)) - return - H.trophies += src - to_chat(user, "You attach [src] to [H].") - return TRUE - -/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - forceMove(get_turf(H)) - H.trophies -= src - return TRUE - -/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user -/obj/item/crusher_trophy/proc/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user -/obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before -/obj/item/crusher_trophy/proc/on_mark_detonation(mob/living/target, mob/living/user) //the target and the user - -//goliath -/obj/item/crusher_trophy/goliath_tentacle - name = "goliath tentacle" - desc = "A sliced-off goliath tentacle." - icon_state = "goliath_tentacle" - denied_type = /obj/item/crusher_trophy/goliath_tentacle - bonus_value = 5 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 10 - -/obj/item/crusher_trophy/goliath_tentacle/effect_desc() - return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing" - -/obj/item/crusher_trophy/goliath_tentacle/on_mark_detonation(mob/living/target, mob/living/user) - var/missing_health = user.maxHealth - user.health - missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health - missing_health *= bonus_value //multiply the remaining amount by bonus_value - if(missing_health > 0) - target.adjustBruteLoss(missing_health) //and do that much damage - -//ancient goliath -/obj/item/crusher_trophy/elder_tentacle - name = "elder tentacle" - desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath." - icon_state = "elder_tentacle" - denied_type = /obj/item/crusher_trophy/elder_tentacle - bonus_value = 3 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 5 - icon = 'icons/obj/lavaland/elite_trophies.dmi' - -/obj/item/crusher_trophy/elder_tentacle/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/elder_tentacle/effect_desc() - return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing" - -/obj/item/crusher_trophy/elder_tentacle/on_mark_detonation(mob/living/target, mob/living/user) - var/missing_health = user.maxHealth - user.health - missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health - missing_health *= bonus_value //multiply the remaining amount by bonus_value - if(missing_health > 0) - target.adjustBruteLoss(missing_health) //and do that much damage - -//crystal goliath -/obj/item/crusher_trophy/goliath_crystal - name = "goliath crystal" - desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it." - icon_state = "goliath_crystal" - denied_type = /obj/item/crusher_trophy/elder_tentacle - bonus_value = 4 - var/missing_health_ratio = 0.1 - var/missing_health_desc = 5 - -/obj/item/crusher_trophy/goliath_crystal/effect_desc() - return "waveform collapse to stun creatures for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/goliath_crystal/on_mark_detonation(mob/living/simple_animal/target, mob/living/user) - if(!ishostile(target)) - return - var/mob/living/simple_animal/hostile/hostile_target = target - var/hostile_ai_status = hostile_target.AIStatus - hostile_target.AIStatus = AI_OFF - addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status), bonus_value*0.1 SECONDS) - -//watcher -/obj/item/crusher_trophy/watcher_wing - name = "watcher wing" - desc = "A wing ripped from a watcher." - icon_state = "watcher_wing" - denied_type = /obj/item/crusher_trophy/watcher_wing - bonus_value = 5 - -/obj/item/crusher_trophy/watcher_wing/effect_desc() - return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/watcher_wing/on_mark_detonation(mob/living/target, mob/living/user) - if(ishostile(target)) - var/mob/living/simple_animal/hostile/H = target - if(H.ranged) //briefly delay ranged attacks - if(H.ranged_cooldown >= world.time) - H.ranged_cooldown += bonus_value - else - H.ranged_cooldown = bonus_value + world.time - -//magmawing watcher -/obj/item/crusher_trophy/magma_wing - name = "magmatic sinew" - desc = "A fuming organ, dropped by beings hotter then lava." - icon_state = "magma_wing" - denied_type = /obj/item/crusher_trophy/magma_wing - gender = NEUTER - bonus_value = 5 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/magma_wing/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage" - -/obj/item/crusher_trophy/magma_wing/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/magma_wing/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "superheated [marker.name]" - marker.icon_state = "lava" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/magma_wing/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/magma_wing/proc/reset_deadly_shot() - deadly_shot = FALSE - -//icewing watcher -/obj/item/crusher_trophy/ice_wing - name = "frigid sinew" - desc = "A carefully-preserved freezing organ, dropped by chilling beings." - icon_state = "ice_wing" - bonus_value = 8 - denied_type = /obj/item/crusher_trophy/ice_wing - -/obj/item/crusher_trophy/ice_wing/effect_desc() - return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s" - -/obj/item/crusher_trophy/ice_wing/on_mark_detonation(mob/living/target, mob/living/user) - if(ishostile(target)) - var/mob/living/simple_animal/hostile/H = target - if(H.ranged) //briefly delay ranged attacks - if(H.ranged_cooldown >= world.time) - H.ranged_cooldown += bonus_value - else - H.ranged_cooldown = bonus_value + world.time - -//forgotten watcher -/obj/item/crusher_trophy/watcher_wing_forgotten - name = "forgotten watcher wing" - desc = "A wing with a terminal infection of the strange crystals." - icon_state = "watcher_wing_crystal" - denied_type = /obj/item/crusher_trophy/watcher_wing_forgotten - gender = NEUTER - bonus_value = 20 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/watcher_wing_forgotten/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage" - -/obj/item/crusher_trophy/watcher_wing_forgotten/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/watcher_wing_forgotten/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "crystal [marker.name]" - marker.icon_state = "crystal_shard" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/watcher_wing_forgotten/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/watcher_wing_forgotten/proc/reset_deadly_shot() - deadly_shot = FALSE - -//legion -/obj/item/crusher_trophy/legion_skull - name = "legion skull" - desc = "A dead and lifeless legion skull. Could be used in crafting." - icon_state = "legion_skull" - denied_type = /obj/item/crusher_trophy/legion_skull - bonus_value = 3 - -/obj/item/crusher_trophy/legion_skull/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/legion_skull/effect_desc() - return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" - -/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time -= bonus_value - -/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time += bonus_value - -//dwarf legion -/obj/item/crusher_trophy/dwarf_skull - name = "shrunken skull" - desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "shrunk_skull" - denied_type = /obj/item/crusher_trophy/dwarf_skull - bonus_value = 6 - -/obj/item/crusher_trophy/dwarf_skull/effect_desc() - return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" - -/obj/item/crusher_trophy/dwarf_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time -= bonus_value - -/obj/item/crusher_trophy/dwarf_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.charge_time += bonus_value - - -//disfigured legion -/obj/item/crusher_trophy/legion_skull_crystal - name = "disfigured legion skull" - desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony." - icon_state = "legion_skull_crystal" - denied_type = /obj/item/crusher_trophy/legion_skull_crystal - bonus_value = 1 - -/obj/item/crusher_trophy/legion_skull_crystal/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/legion_skull_crystal/effect_desc() - return "waveform collapse to shoot 3 projectiles that only hits hostile fauna" - -/obj/item/crusher_trophy/legion_skull_crystal/on_mark_detonation(mob/living/target, mob/living/user) - for(var/i in 0 to 5) - var/obj/projectile/projectile_to_shoot = new /obj/projectile/crystalline_crusher(get_turf(src)) - projectile_to_shoot.preparePixelProjectile(get_step(src, pick(GLOB.alldirs)), get_turf(src)) - projectile_to_shoot.firer = user - projectile_to_shoot.fire(i*(360/5)) - return ..() - -/obj/projectile/crystalline_crusher - name = "Crystalline Shard" - icon_state = "crystal_shard" - damage = 25 - damage_type = BRUTE - speed = 3 - -/obj/projectile/crystalline_crusher/on_hit(atom/target, blocked) - . = ..() - var/turf/turf_hit = get_turf(target) - new /obj/effect/temp_visual/goliath_tentacle/crystal/visual_only(turf_hit,firer) - -/obj/projectile/crystalline_crusher/can_hit_target(atom/target, list/passthrough, direct_target, ignore_loc) - if(!(istype(target,/mob/living/simple_animal/hostile/asteroid))) - if(isturf(target)) - return ..() - return FALSE - return ..() - -//blood-drunk hunter -/obj/item/crusher_trophy/miner_eye - name = "eye of a blood-drunk hunter" - desc = "Its pupil is collapsed and turned to mush." - icon_state = "hunter_eye" - denied_type = /obj/item/crusher_trophy/miner_eye - -/obj/item/crusher_trophy/miner_eye/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/miner_eye/effect_desc() - return "waveform collapse to grant stun immunity and 90% damage reduction for 1 second" - -/obj/item/crusher_trophy/miner_eye/on_mark_detonation(mob/living/target, mob/living/user) - user.apply_status_effect(STATUS_EFFECT_BLOODDRUNK) - -//whelp -/obj/item/crusher_trophy/tail_spike - desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with." - denied_type = /obj/item/crusher_trophy/tail_spike - bonus_value = 5 - force = 10 - throwforce = 15 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "sliced", "diced") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/crusher_trophy/tail_spike/effect_desc() - return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back" - -/obj/item/crusher_trophy/tail_spike/on_mark_detonation(mob/living/target, mob/living/user) - for(var/mob/living/L in oview(2, user)) - if(L.stat == DEAD) - continue - playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) - new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done - L.adjustFireLoss(bonus_value, forced = TRUE) - -/obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user) - if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed - step(target, get_dir(user, target)) - -//ash drake -/obj/item/crusher_trophy/ash_spike - desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "ash_spike" - denied_type = /obj/item/crusher_trophy/ash_spike - bonus_value = 15 - force = 15 - throwforce = 20 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "braised", "singed") - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/crusher_trophy/ash_spike/effect_desc() - return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back" - -/obj/item/crusher_trophy/ash_spike/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/ash_spike/on_mark_detonation(mob/living/target, mob/living/user) - for(var/mob/living/L in oview(2, user)) - if(L.stat == DEAD) - continue - playsound(L, 'sound/magic/fireball.ogg', 20, TRUE) - new /obj/effect/temp_visual/fire(L.loc) - addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done - L.adjustFireLoss(bonus_value, forced = TRUE) - -/obj/item/crusher_trophy/ash_spike/proc/pushback(mob/living/target, mob/living/user) - if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed - step(target, get_dir(user, target)) - -//bubblegum -/obj/item/crusher_trophy/demon_claws - name = "demon claws" - desc = "A set of blood-drenched claws from a massive demon's hand." - icon_state = "demon_claws" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/demon_claws - bonus_value = 10 - var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) - -/obj/item/crusher_trophy/demon_claws/effect_desc() - return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1], with 5X effect on waveform collapse" - -/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.force += bonus_value * 0.2 - H.detonation_damage += bonus_value * 0.8 - AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2)) - -/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.force -= bonus_value * 0.2 - H.detonation_damage -= bonus_value * 0.8 - AddComponent(/datum/component/two_handed, force_wielded=20) - -/obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user) - user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order) - -/obj/item/crusher_trophy/demon_claws/on_mark_detonation(mob/living/target, mob/living/user) - user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order) - -//colossus -/obj/item/crusher_trophy/blaster_tubes - name = "blaster tubes" - desc = "The blaster tubes from a colossus's arm." - icon_state = "blaster_tubes" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/blaster_tubes - bonus_value = 15 - var/deadly_shot = FALSE - -/obj/item/crusher_trophy/blaster_tubes/examine(mob/user) - . = ..() - . += "Suitable as a trophy for a proto-kinetic crusher." - -/obj/item/crusher_trophy/blaster_tubes/effect_desc() - return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage but move slower" - -/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) - if(deadly_shot) - marker.name = "ominous [marker.name]" - marker.icon_state = "chronobolt" - marker.damage = bonus_value - marker.nodamage = FALSE - marker.speed = 2 - deadly_shot = FALSE - -/obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) - deadly_shot = TRUE - addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE) - -/obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot() - deadly_shot = FALSE - -//hierophant -/obj/item/crusher_trophy/vortex_talisman - name = "vortex talisman" - desc = "A glowing trinket that was originally the Hierophant's beacon." - icon_state = "vortex_talisman" - denied_type = /obj/item/crusher_trophy/vortex_talisman - -/obj/item/crusher_trophy/vortex_talisman/effect_desc() - return "waveform collapse to create a barrier you can pass" - -/obj/item/crusher_trophy/vortex_talisman/on_mark_detonation(mob/living/target, mob/living/user) - var/turf/current_location = get_turf(user) - var/area/current_area = current_location.loc - if(current_area.area_flags & NOTELEPORT) - to_chat(user, "[src] fizzles uselessly.") - return - var/turf/T = get_turf(user) - new /obj/effect/temp_visual/hierophant/wall/crusher(T, user) //a wall only you can pass! - var/turf/otherT = get_step(T, turn(user.dir, 90)) - if(otherT) - new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) - otherT = get_step(T, turn(user.dir, -90)) - if(otherT) - new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) - -/obj/effect/temp_visual/hierophant/wall/crusher - duration = 75 - -/obj/item/crusher_trophy/shiny - name = "shiny nugget" - icon = 'icons/obj/lavaland/elite_trophies.dmi' - desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price." - icon_state = "nugget" - gender = PLURAL - denied_type = /obj/item/crusher_trophy/shiny - -/obj/item/crusher_trophy/shiny/effect_desc() - return "empowered butchering chances" - -/obj/item/crusher_trophy/shiny/add_to(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.AddComponent(/datum/component/butchering, 60, 210) - -/obj/item/crusher_trophy/shiny/remove_from(obj/item/kinetic_crusher/H, mob/living/user) - . = ..() - if(.) - H.AddComponent(/datum/component/butchering, 60, 110) - //outdated Nanotrasen prototype of the crusher. Incredibly heavy, but the blade was made at a premium. //to alter this I had to duplicate some code, big moment. /obj/item/kinetic_crusher/old icon_state = "crusherold" @@ -791,16 +248,3 @@ . = ..() if(wielded) . += "[icon_state]_lit" - -/obj/item/crusher_trophy/lobster_claw - name = "lobster claw" - icon_state = "lobster_claw" - desc = "A lobster claw." - denied_type = /obj/item/crusher_trophy/lobster_claw - bonus_value = 1 - -/obj/item/crusher_trophy/lobster_claw/effect_desc() - return "mark detonation to briefly stagger the target for [bonus_value] seconds" - -/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS) diff --git a/code/modules/mining/equipment/trophies.dm b/code/modules/mining/equipment/trophies.dm new file mode 100644 index 000000000000..6d67ba4bc88d --- /dev/null +++ b/code/modules/mining/equipment/trophies.dm @@ -0,0 +1,241 @@ +//trophies +/obj/item/mob_trophy + name = "tail spike" + desc = "A strange spike with no usage." + icon = 'icons/obj/lavaland/artefacts.dmi' + icon_state = "tail_spike" + +//goliath +/obj/item/mob_trophy/goliath_tentacle + name = "goliath tentacle" + desc = "A sliced-off goliath tentacle." + icon_state = "goliath_tentacle" + +//ancient goliath +/obj/item/mob_trophy/elder_tentacle + name = "elder tentacle" + desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath." + icon_state = "elder_tentacle" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + +//crystal goliath +/obj/item/mob_trophy/goliath_crystal + name = "goliath crystal" + desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it." + icon_state = "goliath_crystal" + +//watcher +/obj/item/mob_trophy/watcher_wing + name = "watcher wing" + desc = "A wing ripped from a watcher." + icon_state = "watcher_wing" + +//magmawing watcher +/obj/item/mob_trophy/magma_wing + name = "magmatic sinew" + desc = "A fuming organ, dropped by beings hotter then lava." + icon_state = "magma_wing" + gender = NEUTER + +//icewing watcher +/obj/item/mob_trophy/ice_wing + name = "frigid sinew" + desc = "A carefully-preserved freezing organ, dropped by chilling beings." + icon_state = "ice_wing" + +//forgotten watcher +/obj/item/mob_trophy/watcher_wing_forgotten + name = "forgotten watcher wing" + desc = "A wing with a terminal infection of the strange crystals." + icon_state = "watcher_wing_crystal" + gender = NEUTER + +//legion +/obj/item/mob_trophy/legion_skull + name = "legion skull" + desc = "A dead and lifeless legion skull. Could be used in crafting." + icon_state = "legion_skull" + +//dwarf legion +/obj/item/mob_trophy/dwarf_skull + name = "shrunken skull" + desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "shrunk_skull" + +//disfigured legion +/obj/item/mob_trophy/legion_skull_crystal + name = "disfigured legion skull" + desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony." + icon_state = "legion_skull_crystal" + +//blood-drunk hunter +/obj/item/mob_trophy/miner_eye + name = "eye of a blood-drunk hunter" + desc = "Its pupil is collapsed and turned to mush." + icon_state = "hunter_eye" + +//whelp +/obj/item/mob_trophy/tail_spike + desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with." + force = 10 + throwforce = 15 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "sliced", "diced") + hitsound = 'sound/weapons/bladeslice.ogg' + +//ash drake +/obj/item/mob_trophy/ash_spike + desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "ash_spike" + force = 15 + throwforce = 20 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "braised", "singed") + hitsound = 'sound/weapons/bladeslice.ogg' + +//bubblegum +/obj/item/mob_trophy/demon_claws + name = "demon claws" + desc = "A set of blood-drenched claws from a massive demon's hand." + icon_state = "demon_claws" + gender = PLURAL + +//colossus +/obj/item/mob_trophy/blaster_tubes + name = "blaster tubes" + desc = "The blaster tubes from a colossus's arm." + icon_state = "blaster_tubes" + gender = PLURAL + +//hierophant +/obj/item/mob_trophy/vortex_talisman + name = "vortex talisman" + desc = "A glowing trinket that was originally the Hierophant's beacon." + icon_state = "vortex_talisman" + +/obj/item/mob_trophy/shiny + name = "shiny nugget" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price." + icon_state = "nugget" + gender = PLURAL + +/obj/item/mob_trophy/lobster_claw + name = "lobster claw" + icon_state = "lobster_claw" + desc = "A lobster claw." + +/obj/item/mob_trophy/ice_block_talisman + name = "ice block talisman" + desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason." + icon_state = "ice_trap_talisman" + +/datum/status_effect/ice_block_talisman + id = "ice_block_talisman" + duration = 40 + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman + /// Stored icon overlay for the hit mob, removed when effect is removed + var/icon/cube + +/atom/movable/screen/alert/status_effect/ice_block_talisman + name = "Frozen Solid" + desc = "You're frozen inside an ice cube, and cannot move!" + icon_state = "frozen" + +/datum/status_effect/ice_block_talisman/on_apply() + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) + if(!owner.stat) + to_chat(owner, "You become frozen in a cube!") + cube = icon('icons/effects/freeze.dmi', "ice_cube") + var/icon/size_check = icon(owner.icon, owner.icon_state) + cube.Scale(size_check.Width(), size_check.Height()) + owner.add_overlay(cube) + return ..() + +/// Blocks movement from the status effect owner +/datum/status_effect/ice_block_talisman/proc/owner_moved() + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/datum/status_effect/ice_block_talisman/on_remove() + if(!owner.stat) + to_chat(owner, "The cube melts!") + owner.cut_overlay(cube) + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) + +/obj/item/mob_trophy/brimdemon_fang + name = "brimdemon's fang" + icon_state = "brimdemon_fang" + desc = "A fang from a brimdemon's corpse." + +/obj/item/mob_trophy/ice_crystal + name = "frost gem" + icon = 'icons/obj/lavaland/elite_trophies.dmi' + desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch." + icon_state = "ice_crystal" + +/datum/status_effect/ice_crystal + id = "ice_crystal" + duration = 20 + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/ice_crystal + /// Stored icon overlay for the hit mob, removed when effect is removed + var/icon/cube + +/atom/movable/screen/alert/status_effect/ice_crystal + name = "Frozen Solid" + desc = "You're frozen inside an ice cube, and cannot move!" + icon_state = "frozen" + +/datum/status_effect/ice_crystal/on_apply() + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) + if(!owner.stat) + to_chat(owner, "You become frozen in a cube!") + cube = icon('icons/effects/freeze.dmi', "ice_cube") + var/icon/size_check = icon(owner.icon, owner.icon_state) + cube.Scale(size_check.Width(), size_check.Height()) + owner.add_overlay(cube) + return ..() + +/// Blocks movement from the status effect owner +/datum/status_effect/ice_crystal/proc/owner_moved() + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/datum/status_effect/ice_crystal/on_remove() + if(!owner.stat) + to_chat(owner, "The cube melts!") + owner.cut_overlay(cube) + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) + +/obj/item/mob_trophy/lobster_claw + name = "lobster claw" + icon_state = "lobster_claw" + desc = "A lobster claw." + +/obj/item/mob_trophy/bear_paw + name = "polar bear paw" + desc = "It's a polar bear paw." + icon_state = "bear_paw" + icon ='icons/obj/lavaland/elite_trophies.dmi' + +/obj/item/mob_trophy/war_paw + name = "Armored bear paw" + desc = "It's a paw from a true warrior. Still remembers the basics of CQB." + icon_state = "armor_paw" + icon ='icons/obj/lavaland/elite_trophies.dmi' + +/obj/item/mob_trophy/wolf_ear + name = "wolf ear" + desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "torn_ear" + +/obj/item/mob_trophy/fang + name = "battle-stained fang" + desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "fang" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 9404d6447e3a..44420c8983d1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -41,7 +41,7 @@ Difficulty: Medium ranged_cooldown_time = 16 pixel_x = -16 base_pixel_x = -16 - mob_trophy = /obj/item/crusher_trophy/miner_eye + mob_trophy = /obj/item/mob_trophy/miner_eye loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator) wander = FALSE del_on_death = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index ae3b6e959ee7..aafa994ebac8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -56,7 +56,7 @@ Difficulty: Hard pixel_x = -32 base_pixel_x = -32 del_on_death = TRUE - mob_trophy = /obj/item/crusher_trophy/demon_claws + mob_trophy = /obj/item/mob_trophy/demon_claws loot = list(/obj/structure/closet/crate/necropolis/bubblegum) blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME var/charging = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 88143d10ff2d..e424d056c47b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -50,7 +50,7 @@ Difficulty: Very Hard achievement_type = /datum/award/achievement/boss/colossus_kill crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher score_achievement_type = /datum/award/score/colussus_score - mob_trophy = /obj/item/crusher_trophy/blaster_tubes + mob_trophy = /obj/item/mob_trophy/blaster_tubes loot = list(/obj/structure/closet/crate/necropolis/colossus) deathmessage = "disintegrates, leaving a glowing core in its wake." deathsound = 'sound/magic/demon_dies.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 043d727125f4..f94e8870fb7e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -28,7 +28,7 @@ Difficulty: Extremely Hard speed = 20 move_to_delay = 20 ranged = TRUE - mob_trophy = /obj/item/crusher_trophy/ice_block_talisman + mob_trophy = /obj/item/mob_trophy/ice_block_talisman loot = list(/obj/effect/decal/remains/plasma) wander = FALSE del_on_death = TRUE @@ -323,47 +323,3 @@ Difficulty: Extremely Hard mineral_scan_pulse(T, world.view + 1) . = ..() -/obj/item/crusher_trophy/ice_block_talisman - name = "ice block talisman" - desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason." - icon_state = "ice_trap_talisman" - denied_type = /obj/item/crusher_trophy/ice_block_talisman - -/obj/item/crusher_trophy/ice_block_talisman/effect_desc() - return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving" - -/obj/item/crusher_trophy/ice_block_talisman/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/ice_block_talisman) - -/datum/status_effect/ice_block_talisman - id = "ice_block_talisman" - duration = 40 - status_type = STATUS_EFFECT_REFRESH - alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman - /// Stored icon overlay for the hit mob, removed when effect is removed - var/icon/cube - -/atom/movable/screen/alert/status_effect/ice_block_talisman - name = "Frozen Solid" - desc = "You're frozen inside an ice cube, and cannot move!" - icon_state = "frozen" - -/datum/status_effect/ice_block_talisman/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) - if(!owner.stat) - to_chat(owner, "You become frozen in a cube!") - cube = icon('icons/effects/freeze.dmi', "ice_cube") - var/icon/size_check = icon(owner.icon, owner.icon_state) - cube.Scale(size_check.Width(), size_check.Height()) - owner.add_overlay(cube) - return ..() - -/// Blocks movement from the status effect owner -/datum/status_effect/ice_block_talisman/proc/owner_moved() - return COMPONENT_MOVABLE_BLOCK_PRE_MOVE - -/datum/status_effect/ice_block_talisman/on_remove() - if(!owner.stat) - to_chat(owner, "The cube melts!") - owner.cut_overlay(cube) - UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index d6d0cedaa112..e4c13734ccc7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -54,10 +54,10 @@ Difficulty: Medium ranged = TRUE pixel_x = -32 base_pixel_x = -32 - mob_trophy = /obj/item/crusher_trophy/ash_spike + mob_trophy = /obj/item/mob_trophy/ash_spike loot = list(/obj/structure/closet/crate/necropolis/dragon) butcher_results = list(/obj/item/gem/amber = 1, /obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) - guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/crusher_trophy/ash_spike = 1) + guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/mob_trophy/ash_spike = 1) var/swooping = NONE var/player_cooldown = 0 var/dungeon = FALSE //if true, on death will spawn a ghost role at a lank mark and open blast doors with a certain id diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index aba18e259ac2..8afe2b66302b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -58,7 +58,7 @@ Difficulty: Hard ranged = TRUE ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other - mob_trophy = /obj/item/crusher_trophy/vortex_talisman + mob_trophy = /obj/item/mob_trophy/vortex_talisman loot = list(/obj/item/hierophant_club) wander = FALSE gps_name = "Zealous Signal" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index bdfb10bcba68..70132823fa7e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -32,7 +32,7 @@ Difficulty: Hard loot = list() butcher_results = list() guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1) - mob_trophy = /obj/item/crusher_trophy/demon_claws + mob_trophy = /obj/item/mob_trophy/demon_claws wander = FALSE del_on_death = FALSE blood_volume = BLOOD_VOLUME_NORMAL diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index ddbb13a91ae4..c9b9c628ccab 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -228,7 +228,7 @@ movement_type = FLYING robust_searching = 1 attack_same = TRUE // So we'll fight basilisks - mob_trophy = /obj/item/crusher_trophy/watcher_wing + mob_trophy = /obj/item/mob_trophy/watcher_wing gold_core_spawnable = NO_SPAWN loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) @@ -292,7 +292,7 @@ light_power = 2.5 light_color = LIGHT_COLOR_LAVA projectiletype = /obj/projectile/temp/basilisk/magmawing - mob_trophy = /obj/item/crusher_trophy/magma_wing + mob_trophy = /obj/item/mob_trophy/magma_wing trophy_drop_mod = 75 /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing @@ -307,7 +307,7 @@ ranged_cooldown_time = 20 projectiletype = /obj/projectile/temp/basilisk/icewing butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable - mob_trophy = /obj/item/crusher_trophy/ice_wing + mob_trophy = /obj/item/mob_trophy/ice_wing trophy_drop_mod = 75 /obj/projectile/temp/basilisk/magmawing diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm index 871cea5cab1a..e232a68479f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm @@ -37,7 +37,7 @@ light_color = LIGHT_COLOR_BLOOD_MAGIC light_power = 5 light_range = 1.4 - mob_trophy = /obj/item/crusher_trophy/brimdemon_fang + mob_trophy = /obj/item/mob_trophy/brimdemon_fang /// Are we charging/firing? If yes stops our movement. var/firing = FALSE /// A list of all the beam parts. @@ -184,22 +184,6 @@ hit_mob.adjustFireLoss(5) to_chat(hit_mob, span_danger("You're damaged by [src]!")) -/obj/item/crusher_trophy/brimdemon_fang - name = "brimdemon's fang" - icon_state = "brimdemon_fang" - desc = "A fang from a brimdemon's corpse." - denied_type = /obj/item/crusher_trophy/brimdemon_fang - var/static/list/comic_phrases = list("BOOM", "BANG", "KABLOW", "KAPOW", "OUCH", "BAM", "KAPOW", "WHAM", "POW", "KABOOM") - var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) - -/obj/item/crusher_trophy/brimdemon_fang/effect_desc() - return "mark detonation creates audiosensory effects on the target and slightly heals the wielder" - -/obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user) - target.balloon_alert_to_viewers("[pick(comic_phrases)]!") - playsound(target, 'sound/creatures/brimdemon_crush.ogg', 100) - user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order) - /obj/effect/decal/cleanable/brimdust name = "brimdust" desc = "Dust from a brimdemon. It is considered valuable for botanical and heating purposes." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 7e2b1c3d990c..d3067882a4cb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -43,7 +43,7 @@ mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON deathmessage = "explodes into gore!" - loot_drop = /obj/item/crusher_trophy/broodmother_tongue + loot_drop = /obj/item/mob_trophy/broodmother_tongue attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch, /datum/action/innate/elite_attack/spawn_children, @@ -247,20 +247,11 @@ new /obj/effect/temp_visual/goliath_tentacle/broodmother(T, spawner) // Broodmother's loot: Broodmother Tongue -/obj/item/crusher_trophy/broodmother_tongue +/obj/item/mob_trophy/broodmother_tongue name = "broodmother tongue" desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy." icon = 'icons/obj/lavaland/elite_trophies.dmi' icon_state = "broodmother_tongue" - denied_type = /obj/item/crusher_trophy/broodmother_tongue - bonus_value = 35 - -/obj/item/crusher_trophy/broodmother_tongue/effect_desc() - return "waveform collapse to have a [bonus_value]% chance to summon a patch of goliath tentacles at the target's location" - -/obj/item/crusher_trophy/broodmother_tongue/on_mark_detonation(mob/living/target, mob/living/user) - if(rand(1, 100) <= bonus_value && target.stat != DEAD) - new /obj/effect/temp_visual/goliath_tentacle/broodmother/patch(get_turf(target), user) /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet name = "baby gruboid" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index f0b6dc3e8d54..e6ea404aca09 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -38,7 +38,7 @@ mouse_opacity = MOUSE_OPACITY_ICON deathsound = 'sound/magic/curse.ogg' deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless." - loot_drop = /obj/item/crusher_trophy/legionnaire_spine + loot_drop = /obj/item/mob_trophy/legionnaire_spine attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge, /datum/action/innate/elite_attack/head_detach, @@ -278,23 +278,8 @@ transform *= 0.33 // Legionnaire's loot: Legionnaire Spine - -/obj/item/crusher_trophy/legionnaire_spine +/obj/item/mob_trophy/legionnaire_spine name = "legionnaire spine" desc = "The spine of a legionnaire. It almost feels like it's moving..." icon = 'icons/obj/lavaland/elite_trophies.dmi' icon_state = "legionnaire_spine" - denied_type = /obj/item/crusher_trophy/legionnaire_spine - bonus_value = 50//These skulls are a joke, so this bonus value had to be put on steroidal emergency treatment - -/obj/item/crusher_trophy/legionnaire_spine/effect_desc() - return "waveform collapse to have a [bonus_value]% chance to summon a loyal legion skull" - -/obj/item/crusher_trophy/legionnaire_spine/on_mark_detonation(mob/living/target, mob/living/user) - if(!rand(1, 100) <= bonus_value || target.stat == DEAD) - return - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(user.loc) - A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) - A.GiveTarget(target) - A.friends = user - A.faction = user.faction.Copy() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 5419f71e12bd..9489f97b709c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -147,7 +147,7 @@ icon_dead = "goliath_dead" throw_message = "does nothing to the tough hide of the" pre_attack_icon = "goliath_preattack" - mob_trophy = /obj/item/crusher_trophy/goliath_tentacle + mob_trophy = /obj/item/mob_trophy/goliath_tentacle butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/ore/silver = 10) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2) loot = list() @@ -249,7 +249,7 @@ maxHealth = 180 health = 180 speed = 4 - mob_trophy = /obj/item/crusher_trophy/elder_tentacle + mob_trophy = /obj/item/mob_trophy/elder_tentacle pre_attack_icon = "ancient_goliath_preattack" throw_message = "does nothing to the rocky hide of the" guaranteed_butcher_results = list() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 7515011847ea..5de12383c9a2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -119,7 +119,7 @@ throw_message = "bounces harmlessly off of" loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion - mob_trophy = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/mob_trophy/legion_skull del_on_death = 1 stat_attack = HARD_CRIT robust_searching = 1 @@ -131,7 +131,7 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(15)) - new /obj/item/crusher_trophy/legion_skull(loc) + new /obj/item/mob_trophy/legion_skull(loc) visible_message("One of the [src]'s skulls looks intact.") ..() @@ -150,7 +150,7 @@ icon_living = "dwarf_legion" icon_aggro = "dwarf_legion" icon_dead = "dwarf_legion" - mob_trophy = /obj/item/crusher_trophy/dwarf_skull + mob_trophy = /obj/item/mob_trophy/dwarf_skull maxHealth = 150 health = 150 move_to_delay = 2 @@ -183,7 +183,7 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(75)) - new /obj/item/crusher_trophy/dwarf_skull(loc) + new /obj/item/mob_trophy/dwarf_skull(loc) visible_message("One of the [src]'s skulls looks like it survived.") ..() @@ -334,7 +334,7 @@ icon_living = "snowlegion" icon_aggro = "snowlegion_alive" icon_dead = "snowlegion" - mob_trophy = /obj/item/crusher_trophy/legion_skull + mob_trophy = /obj/item/mob_trophy/legion_skull loot = list(/obj/item/organ/regenerative_core/legion) brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm index f83bdc6c86c6..e53eb70b2b3f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm @@ -75,7 +75,7 @@ if(prob(5)) new /obj/item/gem/fdiamond(loc) if(prob(10)) - new /obj/item/crusher_trophy/ice_wing(loc) + new /obj/item/mob_trophy/ice_wing(loc) return ..() /mob/living/simple_animal/hostile/asteroid/old_demon @@ -158,7 +158,7 @@ if(prob(20)) new /obj/item/gem/fdiamond(loc) if(prob(50)) - new /obj/item/crusher_trophy/ice_crystal(loc) + new /obj/item/mob_trophy/ice_crystal(loc) return ..() /mob/living/simple_animal/hostile/asteroid/ice_demon/random/Initialize() @@ -166,49 +166,3 @@ if(prob(15)) new /mob/living/simple_animal/hostile/asteroid/old_demon(loc) return INITIALIZE_HINT_QDEL - -/obj/item/crusher_trophy/ice_crystal - name = "frost gem" - icon = 'icons/obj/lavaland/elite_trophies.dmi' - desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch." - icon_state = "ice_crystal" - denied_type = /obj/item/crusher_trophy/ice_crystal - -/obj/item/crusher_trophy/ice_crystal/effect_desc() - return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving" - -/obj/item/crusher_trophy/ice_crystal/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/ice_crystal) - -/datum/status_effect/ice_crystal - id = "ice_crystal" - duration = 20 - status_type = STATUS_EFFECT_REFRESH - alert_type = /atom/movable/screen/alert/status_effect/ice_crystal - /// Stored icon overlay for the hit mob, removed when effect is removed - var/icon/cube - -/atom/movable/screen/alert/status_effect/ice_crystal - name = "Frozen Solid" - desc = "You're frozen inside an ice cube, and cannot move!" - icon_state = "frozen" - -/datum/status_effect/ice_crystal/on_apply() - RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) - if(!owner.stat) - to_chat(owner, "You become frozen in a cube!") - cube = icon('icons/effects/freeze.dmi', "ice_cube") - var/icon/size_check = icon(owner.icon, owner.icon_state) - cube.Scale(size_check.Width(), size_check.Height()) - owner.add_overlay(cube) - return ..() - -/// Blocks movement from the status effect owner -/datum/status_effect/ice_crystal/proc/owner_moved() - return COMPONENT_MOVABLE_BLOCK_PRE_MOVE - -/datum/status_effect/ice_crystal/on_remove() - if(!owner.stat) - to_chat(owner, "The cube melts!") - owner.cut_overlay(cube) - UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm index 0d201980f1fe..e75759a2f313 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm @@ -28,7 +28,7 @@ move_resist = MOVE_FORCE_VERY_STRONG butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1) loot = list() - mob_trophy = /obj/item/crusher_trophy/tail_spike + mob_trophy = /obj/item/mob_trophy/tail_spike deathmessage = "collapses on its side." deathsound = 'sound/magic/demon_dies.ogg' stat_attack = HARD_CRIT diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm index 0372657eb514..77f2cc947e94 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm @@ -33,7 +33,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 2, /obj/item/stack/sheet/bone = 2) robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW - mob_trophy = /obj/item/crusher_trophy/lobster_claw + mob_trophy = /obj/item/mob_trophy/lobster_claw /mob/living/simple_animal/hostile/asteroid/lobstrosity/beach name = "tropical lobstrosity" @@ -42,15 +42,3 @@ icon_living = "lobstrosity" icon_dead = "lobstrosity_dead" -/obj/item/crusher_trophy/lobster_claw - name = "lobster claw" - icon_state = "lobster_claw" - desc = "A lobster claw." - denied_type = /obj/item/crusher_trophy/lobster_claw - bonus_value = 1 - -/obj/item/crusher_trophy/lobster_claw/effect_desc() - return "mark detonation to briefly stagger the target for [bonus_value] seconds" - -/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user) - target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index 6f3bcf3f326f..8d0f9bdb3c76 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -27,7 +27,7 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1) loot = list() - mob_trophy = /obj/item/crusher_trophy/bear_paw + mob_trophy = /obj/item/mob_trophy/bear_paw stat_attack = HARD_CRIT robust_searching = TRUE footstep_type = FOOTSTEP_MOB_CLAW @@ -57,24 +57,6 @@ desc = "It seems sentient somehow." faction = list("neutral") -/obj/item/crusher_trophy/bear_paw - name = "polar bear paw" - desc = "It's a polar bear paw." - icon_state = "bear_paw" - icon ='icons/obj/lavaland/elite_trophies.dmi' - denied_type = /obj/item/crusher_trophy/bear_paw - -/obj/item/crusher_trophy/bear_paw/effect_desc() - return "doubled strikes when below 50% health" - -/obj/item/crusher_trophy/bear_paw/on_mark_detonation(mob/living/target, mob/living/user) - if(user.health / user.maxHealth > 0.5) - return - var/obj/item/I = user.get_active_held_item() - if(!I) - return - I.melee_attack_chain(user, target, null) - //elite bear /mob/living/simple_animal/hostile/asteroid/polarbear/warrior name = "polar warbear" @@ -91,29 +73,11 @@ icon_state = "warbear" icon_living = "warbear" icon_dead = "warbear_dead" - mob_trophy = /obj/item/crusher_trophy/war_paw + mob_trophy = /obj/item/mob_trophy/war_paw trophy_drop_mod = 75 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1) -/obj/item/crusher_trophy/war_paw - name = "Armored bear paw" - desc = "It's a paw from a true warrior. Still remembers the basics of CQB." - icon_state = "armor_paw" - icon ='icons/obj/lavaland/elite_trophies.dmi' - denied_type = /obj/item/crusher_trophy/war_paw - -/obj/item/crusher_trophy/war_paw/effect_desc() - return "doubled strikes when below 70% health" - -/obj/item/crusher_trophy/war_paw/on_mark_detonation(mob/living/target, mob/living/user) - if(user.health / user.maxHealth > 0.7) - return - var/obj/item/I = user.get_active_held_item() - if(!I) - return - I.melee_attack_chain(user, target, null) - /mob/living/simple_animal/hostile/asteroid/polarbear/random/Initialize() . = ..() if(prob(15)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index a248177d56e2..0e72f702f03d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -30,9 +30,9 @@ move_force = MOVE_FORCE_WEAK move_resist = MOVE_FORCE_WEAK pull_force = MOVE_FORCE_WEAK - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/crusher_trophy/wolf_ear = 0.5) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/mob_trophy/wolf_ear = 0.5) loot = list() - mob_trophy = /obj/item/crusher_trophy/wolf_ear + mob_trophy = /obj/item/mob_trophy/wolf_ear stat_attack = HARD_CRIT knockdown_time = 1 SECONDS robust_searching = TRUE @@ -108,23 +108,10 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(15)) - new /obj/item/crusher_trophy/wolf_ear(loc) + new /obj/item/mob_trophy/wolf_ear(loc) visible_message("You notice a damaged ear that might be salvagable.") ..() -/obj/item/crusher_trophy/wolf_ear - name = "wolf ear" - desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "torn_ear" - denied_type = /obj/item/crusher_trophy/wolf_ear - -/obj/item/crusher_trophy/wolf_ear/effect_desc() - return "waveform collapse to give the user a slight speed boost" - -/obj/item/crusher_trophy/wolf_ear/on_mark_detonation(mob/living/target, mob/living/user) - user.apply_status_effect(/datum/status_effect/speed_boost, 3 SECONDS) - //alpha wolf- smaller chance to spawn, practically a miniboss. Has the ability to do a short, untelegraphed lunge with a stun. Be careful! /mob/living/simple_animal/hostile/asteroid/wolf/alpha name = "alpha wolf" @@ -149,36 +136,17 @@ charge_frequency = 20 SECONDS butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/bone = 5) loot = list() - mob_trophy = /obj/item/crusher_trophy/fang + mob_trophy = /obj/item/mob_trophy/fang /mob/living/simple_animal/hostile/asteroid/wolf/alpha/gib() move_force = MOVE_FORCE_DEFAULT move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(75)) - new /obj/item/crusher_trophy/fang(loc) + new /obj/item/mob_trophy/fang(loc) visible_message("You find an intact fang that looks salvagable.") ..() -/obj/item/crusher_trophy/fang - name = "battle-stained fang" - desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "fang" - denied_type = /obj/item/crusher_trophy/fang - var/bleed_stacks_per_hit = 5 - -/obj/item/crusher_trophy/fang/effect_desc() - return "waveform collapse to build up a small stack of bleeding, causing a burst of damage if applied repeatedly." - -/obj/item/crusher_trophy/fang/on_mark_detonation(mob/living/M, mob/living/user) - if(istype(M) && (M.mob_biotypes & MOB_ORGANIC)) - var/datum/status_effect/stacking/saw_bleed/bloodletting/B = M.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting) - if(!B) - M.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, bleed_stacks_per_hit) - else - B.add_stacks(bleed_stacks_per_hit) - /mob/living/simple_animal/hostile/asteroid/wolf/random/Initialize() . = ..() if(prob(15)) diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/survivors.dm index 554c13620b57..3b878fd9c550 100644 --- a/code/modules/mob/living/simple_animal/hostile/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/survivors.dm @@ -37,7 +37,7 @@ move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT if(prob(15)) - new /obj/item/crusher_trophy/shiny(loc) + new /obj/item/mob_trophy/shiny(loc) visible_message("You notice a glimmering nugget of shiny metal.") ..() diff --git a/shiptest.dme b/shiptest.dme index 02ac3975bbfe..1140f8acdf0b 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2389,6 +2389,7 @@ #include "code\modules\mining\equipment\regenerative_core.dm" #include "code\modules\mining\equipment\resonator.dm" #include "code\modules\mining\equipment\survival_pod.dm" +#include "code\modules\mining\equipment\trophies.dm" #include "code\modules\mining\equipment\wormhole_jaunter.dm" #include "code\modules\mining\laborcamp\laborstacker.dm" #include "code\modules\mining\lavaland\ash_flora.dm" From 88f19bbae1ab6051236087d1a706f9632f07e5d7 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 21 Mar 2024 17:09:09 -0500 Subject: [PATCH 94/99] small stuf. compile error --- code/modules/mining/equipment/kinetic_crusher.dm | 3 +-- code/modules/mining/equipment/trophies.dm | 7 +++++++ .../hostile/mining_mobs/elites/goliath_broodmother.dm | 7 ------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index fa5526a91995..2783c85cef1f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -147,8 +147,7 @@ /obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/mob/living/L = target - var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean - var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) + L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced) var/target_turf = get_turf(target) if(ismineralturf(target_turf)) var/turf/closed/mineral/M = target_turf diff --git a/code/modules/mining/equipment/trophies.dm b/code/modules/mining/equipment/trophies.dm index 6d67ba4bc88d..dc59aa8ebb72 100644 --- a/code/modules/mining/equipment/trophies.dm +++ b/code/modules/mining/equipment/trophies.dm @@ -239,3 +239,10 @@ desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy." icon = 'icons/obj/lavaland/elite_trophies.dmi' icon_state = "fang" + +// Broodmother's loot: Broodmother Tongue +/obj/item/mob_trophy/broodmother_tongue + name = "broodmother tongue" + desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy." + icon = 'icons/obj/lavaland/elite_trophies.dmi' + icon_state = "broodmother_tongue" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index d3067882a4cb..6f5eb285da93 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -185,7 +185,6 @@ move_to_delay = 5 mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - butcher_results = list() guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 1) deathmessage = "falls to the ground." status_flags = CANPUSH @@ -246,12 +245,6 @@ T = get_step(T, i) new /obj/effect/temp_visual/goliath_tentacle/broodmother(T, spawner) -// Broodmother's loot: Broodmother Tongue -/obj/item/mob_trophy/broodmother_tongue - name = "broodmother tongue" - desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy." - icon = 'icons/obj/lavaland/elite_trophies.dmi' - icon_state = "broodmother_tongue" /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet name = "baby gruboid" From e3e6aa07196c2aaaad1999c60319687d8de63426 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Fri, 31 May 2024 01:47:31 -0500 Subject: [PATCH 95/99] fix merge issue --- code/datums/components/crafting/recipes/tribal.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm index ec974a563fce..83e5c03722bc 100644 --- a/code/datums/components/crafting/recipes/tribal.dm +++ b/code/datums/components/crafting/recipes/tribal.dm @@ -12,8 +12,8 @@ time = 35 reqs = list(/obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 3, - /obj/item/crusher_trophy/wolf_ear = 2, - /obj/item/crusher_trophy/fang = 1) + /obj/item/mob_trophy/wolf_ear = 2, + /obj/item/mob_trophy/fang = 1) category = CAT_PRIMAL /datum/crafting_recipe/bonecodpiece @@ -21,7 +21,7 @@ result = /obj/item/clothing/accessory/skullcodpiece time = 20 reqs = list(/obj/item/stack/sheet/bone = 2, - /obj/item/crusher_trophy/legion_skull = 1, + /obj/item/mob_trophy/legion_skull = 1, /obj/item/stack/sheet/animalhide/goliath_hide = 1) category = CAT_PRIMAL From ffd45b04a427f7524fd4785041b7adf78baab39b Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Fri, 31 May 2024 07:00:27 -0500 Subject: [PATCH 96/99] fixx --- .../LavaRuins/lavaland_surface_biodome_winter.dmm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index 15c3d93cb826..a4b07632face 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -608,7 +608,7 @@ dir = 9 }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plasteel/white, /area/ruin/unpowered/winter_biodome/living_quarters) "fs" = ( @@ -896,7 +896,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plasteel/white, /area/ruin/unpowered/winter_biodome/living_quarters) "lq" = ( @@ -952,7 +952,7 @@ "mD" = ( /obj/effect/turf_decal/solgov/wood/center, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/wood, /area/ruin/unpowered/winter_biodome/living_quarters) "mX" = ( @@ -1081,7 +1081,7 @@ }, /obj/effect/turf_decal/corner/opaque/solgovgold/diagonal, /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plasteel/white, /area/ruin/unpowered/winter_biodome/engineering) "qt" = ( @@ -1467,7 +1467,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/gibs/up, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, @@ -1925,7 +1925,7 @@ /turf/open/floor/wood, /area/ruin/unpowered/winter_biodome/sauna) "Lf" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/grass/snow, /area/ruin/unpowered/winter_biodome) "Lt" = ( From f58616635aa9548ccba80c10e1495e3672d49275 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 5 Jun 2024 10:04:29 -0500 Subject: [PATCH 97/99] merge stiuff --- code/datums/mapgen/planetary/AsteroidGenerator.dm | 4 ++-- .../simple_animal/hostile/megafauna/demonic_frost_miner.dm | 4 ---- .../living/simple_animal/hostile/megafauna/hierophant.dm | 1 - .../hostile/mining_mobs/elites/goliath_broodmother.dm | 4 ---- .../living/simple_animal/hostile/mining_mobs/goliath.dm | 3 --- .../simple_animal/hostile/mining_mobs/mining_mobs.dm | 4 ---- .../living/simple_animal/hostile/mining_mobs/polarbear.dm | 4 ---- .../mob/living/simple_animal/hostile/mining_mobs/wolf.dm | 7 ------- 8 files changed, 2 insertions(+), 29 deletions(-) diff --git a/code/datums/mapgen/planetary/AsteroidGenerator.dm b/code/datums/mapgen/planetary/AsteroidGenerator.dm index 2a4530cf815a..dc5c27ac79e7 100644 --- a/code/datums/mapgen/planetary/AsteroidGenerator.dm +++ b/code/datums/mapgen/planetary/AsteroidGenerator.dm @@ -111,7 +111,7 @@ ) feature_spawn_list = list( - /obj/structure/spawner/burrow/asteroid = 3 + /obj/structure/spawner/burrow/asteroid = 3, /obj/structure/geyser/random = 1, /obj/structure/vein/asteroid = 5, /obj/structure/vein/classtwo/asteroid = 10, @@ -159,7 +159,7 @@ feature_spawn_list = list( /obj/structure/geyser/random = 5, - /obj/structure/spawner/carp = 5 + /obj/structure/spawner/carp = 5, /obj/structure/vein/asteroid = 10, /obj/structure/vein/classtwo/asteroid = 15, /obj/structure/vein/classthree/asteroid = 12 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 199233bd3c01..03faa787d155 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -322,7 +322,3 @@ Difficulty: Extremely Hard var/turf/T = get_turf(target) mineral_scan_pulse(T, world.view + 1) . = ..() -<<<<<<< HEAD -======= - ->>>>>>> 194b597aa438193923e1e2191276f295aa33a19f diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 593480cbbdfe..ba112bbf5e72 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -58,7 +58,6 @@ Difficulty: Hard ranged = TRUE ranged_cooldown_time = 40 aggro_vision_range = 21 //so it can see to one side of the arena to the other - mob_trophy = /obj/item/mob_trophy/vortex_talisman loot = list(/obj/item/hierophant_club) //mob_trophy = /obj/item/mob_trophy/vortex_talisman wander = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index b87fd2bbaabb..94dd221945b9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -245,10 +245,6 @@ T = get_step(T, i) new /obj/effect/temp_visual/goliath_tentacle/broodmother(T, spawner) -<<<<<<< HEAD - -======= ->>>>>>> 194b597aa438193923e1e2191276f295aa33a19f /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet name = "baby gruboid" desc = "A young gruboid recently born. As a defense mechanism, they violently explode if killed." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index f357ae6a2c0e..d7db5351de45 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -249,9 +249,6 @@ maxHealth = 180 health = 180 speed = 4 -<<<<<<< HEAD - mob_trophy = /obj/item/mob_trophy/elder_tentacle -======= //mob_trophy = /obj/item/mob_trophy/elder_tentacle guaranteed_butcher_results = list() wander = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 1c547e21e630..f91a319696ce 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -70,11 +70,7 @@ /mob/living/simple_animal/hostile/asteroid/death(gibbed) SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type) -<<<<<<< HEAD if(prob(trophy_drop_mod)) //on average, you'll need to kill 5 creatures before getting the item -======= - if(prob(trophy_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item ->>>>>>> 194b597aa438193923e1e2191276f295aa33a19f spawn_mob_trophy() ..(gibbed) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index be79aeb688b2..2bcb3fe06f9a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -73,11 +73,7 @@ icon_state = "warbear" icon_living = "warbear" icon_dead = "warbear_dead" -<<<<<<< HEAD - mob_trophy = /obj/item/mob_trophy/war_paw -======= //mob_trophy = /obj/item/mob_trophy/war_paw ->>>>>>> 194b597aa438193923e1e2191276f295aa33a19f trophy_drop_mod = 75 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3) guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 7ee01f8108d3..336616dfe110 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -142,13 +142,6 @@ move_force = MOVE_FORCE_DEFAULT move_resist = MOVE_RESIST_DEFAULT pull_force = PULL_FORCE_DEFAULT -<<<<<<< HEAD - if(prob(75)) - new /obj/item/mob_trophy/fang(loc) - visible_message("You find an intact fang that looks salvagable.") - ..() -======= ->>>>>>> 194b597aa438193923e1e2191276f295aa33a19f /mob/living/simple_animal/hostile/asteroid/wolf/random/Initialize() . = ..() From 126393fe09bb349a933ffc5c06d8e31fed141a18 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 8 Jun 2024 23:43:20 -0500 Subject: [PATCH 98/99] oops confict merge issue fix --- shiptest.dme | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/shiptest.dme b/shiptest.dme index db74090a3198..152ec8bcc4fb 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1352,6 +1352,7 @@ #include "code\game\objects\structures\fireplace.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" +#include "code\game\objects\structures\geyser.dm" #include "code\game\objects\structures\ghost_role_spawners.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" @@ -2760,11 +2761,9 @@ #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\goliath.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\gutlunch.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm" +#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_demon.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice_whelp.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord_outfits.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm" -#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobstrosity.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm" From 3c06913501b7316d403b9b4b57cb5357bf0f6f07 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 9 Jun 2024 02:50:05 -0500 Subject: [PATCH 99/99] replaces tendrails with nests --- .../LavaRuins/lavaland_surface_buried_shrine.dmm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm index e5756e7dbdf5..b71bfb250aee 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm @@ -542,7 +542,7 @@ /area/ruin/unpowered/buried_shrine) "nq" = ( /obj/structure/stone_tile/surrounding, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/buried_shrine) "nz" = ( @@ -664,7 +664,7 @@ dir = 5 }, /obj/structure/chair/wood, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/buried_shrine) "qT" = ( @@ -931,7 +931,7 @@ /area/ruin/unpowered/buried_shrine) "wM" = ( /obj/structure/stone_tile/slab, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/buried_shrine) "wS" = ( @@ -1647,7 +1647,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/buried_shrine) "QR" = ( @@ -1864,7 +1864,7 @@ /obj/structure/stone_tile{ dir = 1 }, -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril, +/obj/structure/spawner/burrow/lava_planet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, /area/ruin/unpowered/buried_shrine) "Xr" = (