PoI Stage 0.5

Doing this in smaller bits

- New random sif mob selector, peaceful animals
- Drone lootpile (basic placeholder loot right now until we figure out how to give them proper drone loot)
- New random spider mob selector, nurse spider and nurse hat spider (hat spider has 10 more health points and is a rare chance to spawn, woo)
- New spacesuit random spawn, medical space suits
- New Random Shotgun spawn
- New random gun spawns
- Fixed icon for random medicine spawn
- Fixed broken icon for 44 magazines
- Fixed Ice Cave dungeon walls being called 'steel'
- Added new Crystal type, to avoid the SM style crystal from spawning in crystal PoIs
This commit is contained in:
Woodratt
2018-04-25 22:10:39 -07:00
parent 4df02c9160
commit c32bcf785a
12 changed files with 403 additions and 7 deletions

View File

@@ -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 /obj/random/energy
name = "Random Energy Weapon" name = "Random Energy Weapon"
desc = "This is a random security weapon." desc = "This is a random weapon."
icon = 'icons/obj/gun.dmi' icon = 'icons/obj/gun.dmi'
icon_state = "energykill100" icon_state = "energykill100"
@@ -83,6 +93,18 @@
prob(2);/obj/item/weapon/gun/projectile/automatic/wt550, prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,
prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat) 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 /obj/random/handgun
name = "Random Handgun" name = "Random Handgun"
desc = "This is a random sidearm." desc = "This is a random sidearm."
@@ -127,3 +149,255 @@
prob(4);/obj/item/ammo_magazine/m45/flash, prob(4);/obj/item/ammo_magazine/m45/flash,
prob(2);/obj/item/ammo_magazine/m9mmt, prob(2);/obj/item/ammo_magazine/m9mmt,
prob(6);/obj/item/ammo_magazine/m9mmt/rubber) 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
)
)

View File

@@ -92,8 +92,8 @@
/obj/random/multiple/minevault /obj/random/multiple/minevault
name = "random vault loot" name = "random vault loot"
desc = "Loot for mine vaults." desc = "Loot for mine vaults."
icon = 'icons/misc/mark.dmi' icon = 'icons/obj/storage.dmi'
icon_state = "rup" icon_state = "crate"
/obj/random/multiple/minevault/item_to_spawn() /obj/random/multiple/minevault/item_to_spawn()
return pick( return pick(

View File

@@ -159,8 +159,8 @@
/obj/random/medical /obj/random/medical
name = "Random Medicine" name = "Random Medicine"
desc = "This is a random medical item." desc = "This is a random medical item."
icon = 'icons/obj/items.dmi' icon = 'icons/obj/stacks.dmi'
icon_state = "advfirstaid" icon_state = "traumakit"
/obj/random/medical/item_to_spawn() /obj/random/medical/item_to_spawn()
return pick(prob(21);/obj/random/medical/lite, return pick(prob(21);/obj/random/medical/lite,

View File

@@ -74,6 +74,23 @@
prob(1);/mob/living/simple_animal/hostile/goose, prob(1);/mob/living/simple_animal/hostile/goose,
prob(20);/mob/living/simple_animal/giant_crab) 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 /obj/random/mob/sif/hostile
name = "Random Hostile Sif Animal" name = "Random Hostile Sif Animal"
desc = "This is a random hostile cold weather 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(33);/mob/living/simple_animal/hostile/giant_spider/hunter,
prob(45);/mob/living/simple_animal/hostile/giant_spider) 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 /obj/random/mob/spider/mutant
name = "Random Mutant Spider" name = "Random Mutant Spider"
desc = "This is a random mutated spider." desc = "This is a random mutated spider."

View File

@@ -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 /obj/random/rigsuit
name = "Random rigsuit" name = "Random rigsuit"

View File

@@ -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/repair_droid,
/obj/item/mecha_parts/mecha_equipment/teleporter /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
)

View File

@@ -13,6 +13,9 @@
return return
/turf/simulated/wall/solidrock //for more stylish anti-cheese. /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" icon_state = "bedrock"
var/base_state = "bedrock" var/base_state = "bedrock"
block_tele = TRUE block_tele = TRUE

View File

@@ -82,6 +82,15 @@ Nurse Family
var/atom/cocoon_target var/atom/cocoon_target
var/egg_inject_chance = 5 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 /mob/living/simple_animal/hostile/giant_spider/nurse/queen
desc = "Absolutely gigantic, this creature is horror itself." desc = "Absolutely gigantic, this creature is horror itself."
icon = 'icons/mob/64x64.dmi' icon = 'icons/mob/64x64.dmi'

View File

@@ -472,7 +472,7 @@
/obj/item/ammo_magazine/m44 /obj/item/ammo_magazine/m44
name = "magazine (.44)" name = "magazine (.44)"
icon_state = "44" icon_state = "m44"
origin_tech = list(TECH_COMBAT = 2) origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE mag_type = MAGAZINE
caliber = ".44" caliber = ".44"

View File

@@ -41,6 +41,9 @@
update_icon() 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 /obj/item/weapon/gun/projectile/shotgun/pump/combat
name = "combat shotgun" 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." 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."

View File

@@ -19,6 +19,20 @@
else else
set_light(3, 3, "#33CC33") 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 /obj/machinery/crystal/ice //slightly more thematic crystals
name = "ice crystal" name = "ice crystal"
desc = "A large crystalline ice formation." desc = "A large crystalline ice formation."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB