diff --git a/code/game/objects/random/guns_and_ammo.dm b/code/game/objects/random/guns_and_ammo.dm index a910881a76..62dde5a3df 100644 --- a/code/game/objects/random/guns_and_ammo.dm +++ b/code/game/objects/random/guns_and_ammo.dm @@ -1,6 +1,16 @@ +/obj/random/gun/random + name = "Random Weapon" + desc = "This is a random energy or ballistic weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "energystun100" + +/obj/random/gun/random/item_to_spawn() + return pick(prob(5);/obj/random/energy, + prob(5);/obj/random/projectile/random) + /obj/random/energy name = "Random Energy Weapon" - desc = "This is a random security weapon." + desc = "This is a random weapon." icon = 'icons/obj/gun.dmi' icon_state = "energykill100" @@ -83,6 +93,18 @@ prob(2);/obj/item/weapon/gun/projectile/automatic/wt550, prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) +/obj/random/projectile/shotgun + name = "Random Projectile Weapon" + desc = "This is a random projectile weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "shotgun" + +/obj/random/projectile/item_to_spawn() + return pick(prob(4);/obj/item/weapon/gun/projectile/shotgun/doublebarrel, + prob(3);/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, + prob(3);/obj/item/weapon/gun/projectile/shotgun/pump, + prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) + /obj/random/handgun name = "Random Handgun" desc = "This is a random sidearm." @@ -126,4 +148,256 @@ prob(4);/obj/item/ammo_magazine/m45/rubber, prob(4);/obj/item/ammo_magazine/m45/flash, prob(2);/obj/item/ammo_magazine/m9mmt, - prob(6);/obj/item/ammo_magazine/m9mmt/rubber) \ No newline at end of file + prob(6);/obj/item/ammo_magazine/m9mmt/rubber) + +/obj/random/projectile/random + name = "Random Projectile Weapon" + desc = "This is a random weapon." + icon = 'icons/obj/gun.dmi' + icon_state = "revolver" + +/obj/random/projectile/random/item_to_spawn() + return pick(prob(3);/obj/random/multiple/gun/projectile/handgun, + prob(2);/obj/random/multiple/gun/projectile/smg, + prob(2);/obj/random/multiple/gun/projectile/shotgun, + prob(1);/obj/random/multiple/gun/projectile/rifle) + +/obj/random/multiple/gun/projectile/smg + name = "random smg projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "saber" + +/obj/random/multiple/gun/projectile/smg/item_to_spawn() + return pick( + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/wt550, + /obj/item/ammo_magazine/m9mmt, + /obj/item/ammo_magazine/m9mmt + ), + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/mini_uzi, + /obj/item/ammo_magazine/m45uzi, + /obj/item/ammo_magazine/m45uzi + ), + prob(3);list( + /obj/item/weapon/gun/projectile/automatic/tommygun, + /obj/item/ammo_magazine/m45tommy, + /obj/item/ammo_magazine/m45tommy + ), + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/c20r, + /obj/item/ammo_magazine/m10mm, + /obj/item/ammo_magazine/m10mm + ), + prob(1);list( + /obj/item/weapon/gun/projectile/automatic/p90, + /obj/item/ammo_magazine/m9mmp90 + ) + ) + +/obj/random/multiple/gun/projectile/rifle + name = "random rifle projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "carbine" + +//Concerns about the bullpup, but currently seems to be only a slightly stronger z8. But we shall see. + +/obj/random/multiple/gun/projectile/rifle/item_to_spawn() + return pick( + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/sts35, + /obj/item/ammo_magazine/m545, + /obj/item/ammo_magazine/m545 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/automatic/z8, + /obj/item/ammo_magazine/m762, + /obj/item/ammo_magazine/m762 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/shotgun/pump/rifle, + /obj/item/ammo_magazine/clip/c762, + /obj/item/ammo_magazine/clip/c762 + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever, + /obj/item/ammo_magazine/clip/c762, + /obj/item/ammo_magazine/clip/c762 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/garand, + /obj/item/ammo_magazine/m762garand, + /obj/item/ammo_magazine/m762garand + ), + prob(1);list( + /obj/item/weapon/gun/projectile/automatic/bullpup, + /obj/item/ammo_magazine/m762, + /obj/item/ammo_magazine/m762 + ) + ) + +/obj/random/multiple/gun/projectile/handgun + name = "random handgun projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "revolver" + +/obj/random/multiple/gun/projectile/handgun/item_to_spawn() + return pick( + prob(5);list( + /obj/item/weapon/gun/projectile/colt, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/contender, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(3);list( + /obj/item/weapon/gun/projectile/contender/tacticool, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/deagle, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/deagle/camo, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/deagle/gold, + /obj/item/ammo_magazine/m44, + /obj/item/ammo_magazine/m44 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/derringer, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(5);list( + /obj/item/weapon/gun/projectile/luger, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(4);list( + /obj/item/weapon/gun/projectile/luger/brown, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(5);list( + /obj/item/weapon/gun/projectile/sec, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/sec/wood, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(5);list( + /obj/item/weapon/gun/projectile/p92x, + /obj/item/ammo_magazine/m9mm, + /obj/item/ammo_magazine/m9mm + ), + prob(4);list( + /obj/item/weapon/gun/projectile/p92x/brown, + /obj/item/ammo_magazine/m9mm, + /obj/item/ammo_magazine/m9mm + ), + prob(2);list( + /obj/item/weapon/gun/projectile/p92x/large, + /obj/item/ammo_magazine/m9mm/large, + /obj/item/ammo_magazine/m9mm/large + ), + prob(5);list( + /obj/item/weapon/gun/projectile/pistol, + /obj/item/ammo_magazine/m9mm/compact, + /obj/item/ammo_magazine/m9mm/compact + ), + prob(2);list( + /obj/item/weapon/gun/projectile/silenced, + /obj/item/ammo_magazine/m45, + /obj/item/ammo_magazine/m45 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/revolver/deckard, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38 + ), + prob(4);list( + /obj/item/weapon/gun/projectile/revolver/detective, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/judge, + /obj/item/ammo_magazine/clip/c12g, + /obj/item/ammo_magazine/clip/c12g, + /obj/item/ammo_magazine/clip/c12g + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/lemat, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/s38, + /obj/item/ammo_magazine/clip/c12g + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/mateba, + /obj/item/ammo_magazine/s357, + /obj/item/ammo_magazine/s357 + ), + prob(2);list( + /obj/item/weapon/gun/projectile/revolver/webley, + /obj/item/ammo_magazine/s44, + /obj/item/ammo_magazine/s44 + ), + prob(1);list( + /obj/item/weapon/gun/projectile/revolver/webley/auto, + /obj/item/ammo_magazine/s44, + /obj/item/ammo_magazine/s44 + ) + ) + +/obj/random/multiple/gun/projectile/shotgun + name = "random shotgun projectile gun" + desc = "Loot for PoIs." + icon = 'icons/obj/gun.dmi' + icon_state = "shotgun" + +/obj/random/multiple/gun/projectile/shotgun/item_to_spawn() + return pick( + prob(4);list( + /obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet, + /obj/item/ammo_magazine/clip/c12g/pellet + ), + prob(3);list( + /obj/item/weapon/gun/projectile/shotgun/pump/slug, + /obj/item/weapon/storage/box/shotgunammo + ), + prob(1);list( + /obj/item/weapon/gun/projectile/shotgun/pump/combat, + /obj/item/weapon/storage/box/shotgunammo + ) + ) \ No newline at end of file diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 57ff7acdcd..aba62d0806 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -92,8 +92,8 @@ /obj/random/multiple/minevault name = "random vault loot" desc = "Loot for mine vaults." - icon = 'icons/misc/mark.dmi' - icon_state = "rup" + icon = 'icons/obj/storage.dmi' + icon_state = "crate" /obj/random/multiple/minevault/item_to_spawn() return pick( diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 29b597d460..c918425221 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -159,8 +159,8 @@ /obj/random/medical name = "Random Medicine" desc = "This is a random medical item." - icon = 'icons/obj/items.dmi' - icon_state = "advfirstaid" + icon = 'icons/obj/stacks.dmi' + icon_state = "traumakit" /obj/random/medical/item_to_spawn() return pick(prob(21);/obj/random/medical/lite, diff --git a/code/game/objects/random/mob.dm b/code/game/objects/random/mob.dm index 2043ef0240..3aefa9a84c 100644 --- a/code/game/objects/random/mob.dm +++ b/code/game/objects/random/mob.dm @@ -74,6 +74,23 @@ prob(1);/mob/living/simple_animal/hostile/goose, prob(20);/mob/living/simple_animal/giant_crab) + +/obj/random/mob/sif/peaceful + name = "Random Peaceful Sif Animal" + desc = "This is a random peaceful cold weather animal." + icon_state = "penguin" + + mob_returns_home = 1 + mob_wander_distance = 12 + +/obj/random/mob/sif/peaceful/item_to_spawn() + return pick(prob(30);/mob/living/simple_animal/retaliate/diyaab, + prob(15);/mob/living/simple_animal/crab, + prob(15);/mob/living/simple_animal/penguin, + prob(15);/mob/living/simple_animal/mouse, + prob(15);/mob/living/simple_animal/corgi/tamaskan, + prob(20);/mob/living/simple_animal/giant_crab) + /obj/random/mob/sif/hostile name = "Random Hostile Sif Animal" desc = "This is a random hostile cold weather animal." @@ -97,6 +114,18 @@ prob(33);/mob/living/simple_animal/hostile/giant_spider/hunter, prob(45);/mob/living/simple_animal/hostile/giant_spider) +/obj/random/mob/spider/nurse + name = "Random Nurse Spider" + desc = "This is a random nurse spider." + icon_state = "nurse" + + mob_returns_home = 1 + mob_wander_distance = 4 + +/obj/random/mob/spider/nurse/item_to_spawn() + return pick(prob(22);/mob/living/simple_animal/hostile/giant_spider/nurse/hat, + prob(45);/mob/living/simple_animal/hostile/giant_spider/nurse) + /obj/random/mob/spider/mutant name = "Random Mutant Spider" desc = "This is a random mutated spider." diff --git a/code/game/objects/random/spacesuits.dm b/code/game/objects/random/spacesuits.dm index cb4ec6d4e9..29bd799c5c 100644 --- a/code/game/objects/random/spacesuits.dm +++ b/code/game/objects/random/spacesuits.dm @@ -97,6 +97,31 @@ ) ) +/obj/random/multiple/voidsuit/medical + name = "Random Mining Voidsuit" + desc = "This is a random mining voidsuit." + icon = 'icons/obj/clothing/suits.dmi' + icon_state = "rig-mining" + +/obj/random/multiple/voidsuit/medical/item_to_spawn() + return pick( + prob(5);list( + /obj/item/clothing/suit/space/void/medical, + /obj/item/clothing/head/helmet/space/void/medical + ), + prob(1);list( + /obj/item/clothing/suit/space/void/medical/alt, + /obj/item/clothing/head/helmet/space/void/medical/alt + ), + prob(3);list( + /obj/item/clothing/suit/space/void/medical/bio, + /obj/item/clothing/head/helmet/space/void/medical/bio + ), + prob(4);list( + /obj/item/clothing/suit/space/void/medical/emt, + /obj/item/clothing/head/helmet/space/void/medical/emt + ) + ) /obj/random/rigsuit name = "Random rigsuit" diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm index 353dbe31a7..96416e0229 100644 --- a/code/game/objects/structures/loot_piles.dm +++ b/code/game/objects/structures/loot_piles.dm @@ -830,3 +830,42 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh /obj/item/mecha_parts/mecha_equipment/repair_droid, /obj/item/mecha_parts/mecha_equipment/teleporter ) + +/obj/structure/loot_pile/surface/drone + name = "drone wreckage" + desc = "The ruins of some unfortunate drone. Perhaps something is salvageable." + icon = 'icons/mob/animal.dmi' + icon_state = "drone_dead" + +// Since the actual drone loot is a bit stupid in how it is handled, this is a sparse and empty list with items I don't exactly want in it. But until we can get the proper items in . . . + + common_loot = list( + /obj/random/tool, + /obj/item/stack/cable_coil/random, + /obj/random/tank, + /obj/random/tech_supply/component, + /obj/item/stack/material/steel{amount = 25}, + /obj/item/stack/material/glass{amount = 10}, + /obj/item/stack/material/plasteel{amount = 5}, + /obj/item/weapon/cell, + /obj/item/weapon/material/shard + ) + + uncommon_loot = list( + /obj/item/weapon/cell/high, + /obj/item/robot_parts/robot_component/actuator, + /obj/item/robot_parts/robot_component/armour, + /obj/item/robot_parts/robot_component/binary_communication_device, + /obj/item/robot_parts/robot_component/camera, + /obj/item/robot_parts/robot_component/diagnosis_unit, + /obj/item/robot_parts/robot_component/radio + ) + + rare_loot = list( + /obj/item/weapon/cell/super, + /obj/item/borg/upgrade/restart, + /obj/item/borg/upgrade/jetpack, + /obj/item/borg/upgrade/tasercooler, + /obj/item/borg/upgrade/syndicate, + /obj/item/borg/upgrade/vtec + ) \ No newline at end of file diff --git a/code/game/turfs/simulated/dungeon/wall.dm b/code/game/turfs/simulated/dungeon/wall.dm index 156fddac6a..176c10142c 100644 --- a/code/game/turfs/simulated/dungeon/wall.dm +++ b/code/game/turfs/simulated/dungeon/wall.dm @@ -13,6 +13,9 @@ return /turf/simulated/wall/solidrock //for more stylish anti-cheese. + name = "solid rock" + desc = "This rock seems dense, impossible to drill." + description_info = "Probably not going to be able to drill or bomb your way through this, best to try and find a way around." icon_state = "bedrock" var/base_state = "bedrock" block_tele = TRUE diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm index 439e401e08..26c35c1ba3 100644 --- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/animals/giant_spider.dm @@ -82,6 +82,15 @@ Nurse Family var/atom/cocoon_target var/egg_inject_chance = 5 +/mob/living/simple_animal/hostile/giant_spider/nurse/hat + desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat" + icon_state = "nursemed" + icon_living = "nursemed" + icon_dead = "nursemed_dead" + + maxHealth = 50 + health = 50 + /mob/living/simple_animal/hostile/giant_spider/nurse/queen desc = "Absolutely gigantic, this creature is horror itself." icon = 'icons/mob/64x64.dmi' diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 94cf0ab21e..0c3c76caaf 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -472,7 +472,7 @@ /obj/item/ammo_magazine/m44 name = "magazine (.44)" - icon_state = "44" + icon_state = "m44" origin_tech = list(TECH_COMBAT = 2) mag_type = MAGAZINE caliber = ".44" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 087543091d..183ead39d1 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -41,6 +41,9 @@ update_icon() +/obj/item/weapon/gun/projectile/shotgun/pump/slug + ammo_type = /obj/item/ammo_casing/a12g + /obj/item/weapon/gun/projectile/shotgun/pump/combat name = "combat shotgun" desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders. Uses 12g rounds." diff --git a/code/modules/xenoarcheaology/finds/misc.dm b/code/modules/xenoarcheaology/finds/misc.dm index 129033bf6e..cc02a7f41b 100644 --- a/code/modules/xenoarcheaology/finds/misc.dm +++ b/code/modules/xenoarcheaology/finds/misc.dm @@ -19,6 +19,20 @@ else set_light(3, 3, "#33CC33") +/obj/machinery/crystal/alt + name = "Crystal" + icon = 'icons/obj/mining.dmi' + icon_state = "crystal" + density = TRUE + anchored = TRUE + +/obj/machinery/crystal/alt/New() + if(prob(50)) + icon_state = "crystal2" + set_light(3, 3, "#CC00CC") + else + set_light(3, 3, "#33CC33") + /obj/machinery/crystal/ice //slightly more thematic crystals name = "ice crystal" desc = "A large crystalline ice formation." diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index ceea8bf2b7..7c7082c2ba 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ