From 1f51e73dd622045dea452be1dfc07c55052e4f42 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Tue, 7 Apr 2020 08:43:18 -0400 Subject: [PATCH 1/5] more rng --- code/_globalvars/lists/maintenance_loot.dm | 7 +- .../game/objects/effects/spawners/lootdrop.dm | 89 ++++++++++++++++++- code/game/objects/items/storage/wallets.dm | 6 +- .../crates_lockers/closets/utility_closets.dm | 12 ++- code/modules/mining/abandoned_crates.dm | 3 +- .../xenobiology/crossbreeding/regenerative.dm | 3 +- 6 files changed, 106 insertions(+), 14 deletions(-) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index e825233bca..f85503a678 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/clothing/head/that = 1, /obj/item/clothing/head/ushanka = 1, /obj/item/clothing/head/welding = 1, - /obj/item/clothing/mask/gas = 15, + /obj/effect/spawner/lootdrop/breathing_masks = 15, /obj/item/clothing/suit/hazardvest = 1, /obj/item/clothing/under/misc/vice_officer = 1, /obj/item/clothing/suit/hooded/flashsuit = 2, @@ -86,9 +86,8 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/screwdriver = 3, /obj/item/tank/internals/emergency_oxygen = 2, /obj/item/vending_refill/cola = 1, - /obj/item/weldingtool = 3, - /obj/item/wirecutters = 1, - /obj/item/wrench = 4, + /obj/effect/spawner/lootdrop/welder_tools = 3, + /obj/effect/spawner/lootdrop/low_tools = 5, /obj/item/relic = 3, /obj/item/weaponcrafting/receiver = 2, /obj/item/clothing/head/cone = 2, diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index d79fba7172..bdc02877ac 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -263,7 +263,6 @@ LAZYSET(loot, M, our_chance) return ..() - // Tech storage circuit board spawners // For these, make sure that lootcount equals the number of list items @@ -521,3 +520,91 @@ /obj/item/clothing/gloves/combat = 10, /obj/item/clothing/shoes/sneakers/noslip = 10 ) + +/obj/effect/spawner/lootdrop/low_tools + name = "random basic tool(s) spawner" + lootcount = 1 + loot = list( + /obj/item/screwdriver = 1, + /obj/item/wrench = 1, + /obj/item/weldingtool/mini = 1, + /obj/item/crowbar = 1, + /obj/item/wirecutters = 1, + /obj/item/analyzer = 1, + /obj/item/t_scanner = 1 + ) + +/obj/effect/spawner/lootdrop/high_tools + name = "random adv tool(s) spawner" + lootcount = 1 + loot = list( + /obj/item/screwdriver/power = 1, + /obj/item/weldingtool/experimental = 1, + /obj/item/crowbar/power = 1, + /obj/item/analyzer = 1, + /obj/item/multitool = 1 + ) + +/obj/effect/spawner/lootdrop/welder_tools + name = "random safe welder tool(s) spawner" + lootcount = 1 + loot = list( + /obj/item/weldingtool = 1, + /obj/item/weldingtool/mini = 1, + /obj/item/weldingtool/hugetank = 1, + /obj/item/weldingtool/largetank = 1 + ) + +/obj/effect/spawner/lootdrop/tool_box + name = "random safe tool box(es) spawner" + lootcount = 1 + loot = list( + /obj/item/storage/toolbox/mechanical = 1, + /obj/item/storage/toolbox/mechanical/old = 1, + /obj/item/storage/toolbox/emergency = 1, + /obj/item/storage/toolbox/emergency/old = 1, + /obj/item/storage/toolbox/electrical = 1, + /obj/item/storage/toolbox/syndicate = 1, + /obj/item/storage/toolbox/artistic = 1, + /obj/item/storage/toolbox/gold_fake = 1, + /obj/item/storage/toolbox/rubber = 1 + ) + +/obj/effect/spawner/lootdrop/healing_kits + name = "random medical kit(s) spawner" + lootcount = 1 + loot = list( + /obj/item/storage/firstaid/regular = 1, + /obj/item/storage/firstaid/ancient = 1, + /obj/item/storage/firstaid/fire = 1, + /obj/item/storage/firstaid/toxin = 1, + /obj/item/storage/firstaid/radbgone = 1, + /obj/item/storage/firstaid/o2 = 1, + /obj/item/storage/firstaid/brute = 1, + /obj/item/storage/firstaid/tactical = 1 + ) + +/obj/effect/spawner/lootdrop/breathing_tanks + name = "random internal tank(s) spawner" + lootcount = 1 + loot = list( + /obj/item/tank/internals/oxygen = 1, + /obj/item/tank/internals/oxygen/yellow = 1, + /obj/item/tank/internals/oxygen/red = 1, + /obj/item/tank/internals/air = 1, + /obj/item/tank/internals/plasmaman = 1, + /obj/item/tank/internals/plasmaman/belt = 1, + /obj/item/tank/internals/emergency_oxygen = 1, + /obj/item/tank/internals/emergency_oxygen/engi = 1, + /obj/item/tank/internals/emergency_oxygen/double = 1 + ) + +/obj/effect/spawner/lootdrop/breathing_masks + name = "random internal mask(s) spawner" + lootcount = 1 + loot = list( + /obj/item/clothing/mask/gas = 2, + /obj/item/clothing/mask/gas/glass = 4, + /obj/item/clothing/mask/breath = 5, + /obj/item/clothing/mask/breath/medical = 1 + ) \ No newline at end of file diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 27cd9c8908..1af58011bd 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -101,11 +101,11 @@ icon_state = "random_wallet" /obj/item/storage/wallet/random/PopulateContents() - var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item1_type = /obj/effect/spawner/lootdrop/space_cash var/item2_type if(prob(50)) - item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) - var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron ) + item2_type = /obj/effect/spawner/lootdrop/space_cash + var/item3_type = /obj/effect/spawner/lootdrop/coin spawn(2) if(item1_type) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index a8f3dc0676..9cfd4e62c8 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -26,7 +26,7 @@ if (prob(40)) new /obj/item/storage/toolbox/emergency(src) - switch (pickweight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 5))) + switch (pickweight(list("small" = 35, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 5, "rng" = 5))) if ("small") new /obj/item/tank/internals/emergency_oxygen(src) new /obj/item/tank/internals/emergency_oxygen(src) @@ -49,6 +49,12 @@ if ("nothing") // doot + if ("rng") + new /obj/effect/spawner/lootdrop/breathing_tanks(src) + new /obj/effect/spawner/lootdrop/breathing_tanks(src) + new /obj/effect/spawner/lootdrop/breathing_masks(src) + new /obj/effect/spawner/lootdrop/breathing_masks(src) + return /* @@ -100,13 +106,15 @@ if(prob(70)) new /obj/item/wrench(src) if(prob(70)) - new /obj/item/weldingtool(src) + new /obj/effect/spawner/lootdrop/welder_tools(src) if(prob(70)) new /obj/item/crowbar(src) if(prob(70)) new /obj/item/wirecutters(src) if(prob(70)) new /obj/item/t_scanner(src) + if(prob(70)) + new /obj/effect/spawner/lootdrop/low_tools(src) //Spare random basic tool if(prob(20)) new /obj/item/storage/belt/utility(src) if(prob(30)) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 916fb50844..94f5be65bf 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -75,8 +75,7 @@ new /obj/item/clothing/neck/petcollar(src) if(63 to 64) for(var/i in 1 to rand(4, 7)) - var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium) - new newcoin(src) + new /obj/effect/spawner/lootdrop/coin(src) if(65 to 66) new /obj/item/clothing/suit/ianshirt(src) new /obj/item/clothing/suit/hooded/ian_costume(src) diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index d230c22d2f..b33cee3a64 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -200,8 +200,7 @@ Regenerative extracts: colour = "gold" /obj/item/slimecross/regenerative/gold/core_effect(mob/living/target, mob/user) - var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium) - var/obj/item/coin/C = new newcoin(target.loc) + var/obj/item/coin/C = new /obj/effect/spawner/lootdrop/coin(target.loc) playsound(C, 'sound/items/coinflip.ogg', 50, 1) target.put_in_hand(C) From d6c819cad27ea99c106e72b2ebc8ad652f189d01 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 7 Apr 2020 09:20:18 -0400 Subject: [PATCH 2/5] Update lootdrop.dm --- code/game/objects/effects/spawners/lootdrop.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index bdc02877ac..bf053432a5 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -571,7 +571,7 @@ ) /obj/effect/spawner/lootdrop/healing_kits - name = "random medical kit(s) spawner" + name = "random safe medical kit(s) spawner" lootcount = 1 loot = list( /obj/item/storage/firstaid/regular = 1, @@ -580,8 +580,7 @@ /obj/item/storage/firstaid/toxin = 1, /obj/item/storage/firstaid/radbgone = 1, /obj/item/storage/firstaid/o2 = 1, - /obj/item/storage/firstaid/brute = 1, - /obj/item/storage/firstaid/tactical = 1 + /obj/item/storage/firstaid/brute = 1 ) /obj/effect/spawner/lootdrop/breathing_tanks @@ -607,4 +606,4 @@ /obj/item/clothing/mask/gas/glass = 4, /obj/item/clothing/mask/breath = 5, /obj/item/clothing/mask/breath/medical = 1 - ) \ No newline at end of file + ) From e7247c6a60966a48316d350d0b35ff38fc027941 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 14 Apr 2020 10:11:37 -0400 Subject: [PATCH 3/5] Update wallets.dm --- code/game/objects/items/storage/wallets.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 1af58011bd..3aa9911d97 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -101,11 +101,11 @@ icon_state = "random_wallet" /obj/item/storage/wallet/random/PopulateContents() - var/item1_type = /obj/effect/spawner/lootdrop/space_cash + var/item1_type = /obj/effect/spawner/lootdrop/space_cash/no_turf var/item2_type if(prob(50)) - item2_type = /obj/effect/spawner/lootdrop/space_cash - var/item3_type = /obj/effect/spawner/lootdrop/coin + item2_type = /obj/effect/spawner/lootdrop/space_cash/no_turf + var/item3_type = /obj/effect/spawner/lootdrop/coin/no_turf spawn(2) if(item1_type) From 2ebf23a32db4a116dbd1eeefaa055aab14651d34 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 14 Apr 2020 10:12:27 -0400 Subject: [PATCH 4/5] Update utility_closets.dm --- .../crates_lockers/closets/utility_closets.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 9cfd4e62c8..9ed2fbdeb5 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -50,10 +50,10 @@ // doot if ("rng") - new /obj/effect/spawner/lootdrop/breathing_tanks(src) - new /obj/effect/spawner/lootdrop/breathing_tanks(src) - new /obj/effect/spawner/lootdrop/breathing_masks(src) - new /obj/effect/spawner/lootdrop/breathing_masks(src) + new /obj/effect/spawner/lootdrop/breathing_tanks/no_turf(src) + new /obj/effect/spawner/lootdrop/breathing_tanks/no_turf(src) + new /obj/effect/spawner/lootdrop/breathing_masks/no_turf(src) + new /obj/effect/spawner/lootdrop/breathing_masks/no_turf(src) return @@ -106,7 +106,7 @@ if(prob(70)) new /obj/item/wrench(src) if(prob(70)) - new /obj/effect/spawner/lootdrop/welder_tools(src) + new /obj/effect/spawner/lootdrop/welder_tools/no_turf(src) if(prob(70)) new /obj/item/crowbar(src) if(prob(70)) @@ -114,7 +114,7 @@ if(prob(70)) new /obj/item/t_scanner(src) if(prob(70)) - new /obj/effect/spawner/lootdrop/low_tools(src) //Spare random basic tool + new /obj/effect/spawner/lootdrop/low_tools/no_turf(src) //Spare random basic tool if(prob(20)) new /obj/item/storage/belt/utility(src) if(prob(30)) From 34397a5d178292ca6575c54db89553b7acc8b45b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 14 Apr 2020 10:13:23 -0400 Subject: [PATCH 5/5] Update lootdrop.dm --- code/game/objects/effects/spawners/lootdrop.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 8a7bf65f84..2cdf57bf70 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -612,6 +612,12 @@ /obj/item/clothing/mask/breath/medical = 1 ) +/obj/effect/spawner/lootdrop/welder_tools/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/low_tools/no_turf + spawn_on_turf = FALSE + /obj/effect/spawner/lootdrop/breathing_tanks/no_turf spawn_on_turf = FALSE