Explorer Expansion: New Horizons
@@ -65,6 +65,10 @@
|
||||
name = "Anti-Materiel Rifle ammo box (14.5mm)"
|
||||
path = /obj/item/weapon/storage/box/sniperammo
|
||||
|
||||
/datum/uplink_item/item/ammo/sniperammo_highvel
|
||||
name = "Anti-Materiel Rifle ammo box (14.5mm sabot)"
|
||||
path = /obj/item/weapon/storage/box/sniperammo/highvel
|
||||
|
||||
/datum/uplink_item/item/ammo/c545
|
||||
name = "Rifle Magazine (5.45mm)"
|
||||
path = /obj/item/ammo_magazine/m545
|
||||
|
||||
@@ -160,8 +160,8 @@
|
||||
#define WEED_NODE_BASE "nodebase"
|
||||
|
||||
/obj/effect/alien/weeds
|
||||
name = "weeds"
|
||||
desc = "Weird purple weeds."
|
||||
name = "growth"
|
||||
desc = "Weird organic growth."
|
||||
icon_state = "weeds"
|
||||
|
||||
anchored = 1
|
||||
@@ -185,25 +185,28 @@
|
||||
|
||||
/obj/effect/alien/weeds/node
|
||||
icon_state = "weednode"
|
||||
name = "purple sac"
|
||||
desc = "Weird purple octopus-like thing."
|
||||
name = "glowing growth"
|
||||
desc = "Weird glowing organic growth."
|
||||
layer = ABOVE_TURF_LAYER+0.01
|
||||
light_range = NODERANGE
|
||||
var/node_range = NODERANGE
|
||||
|
||||
var/set_color = null
|
||||
|
||||
/obj/effect/alien/weeds/node/New()
|
||||
..(src.loc, src)
|
||||
/obj/effect/alien/weeds/node/New(var/newloc, var/newcolor = "#321D37")
|
||||
var/obj/effect/alien/weeds/existing = locate() in get_turf(newloc)
|
||||
if(existing)
|
||||
qdel(existing)
|
||||
|
||||
if(newcolor)
|
||||
set_color = newcolor
|
||||
|
||||
..(newloc, src)
|
||||
|
||||
/obj/effect/alien/weeds/node/Initialize()
|
||||
..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
spawn(1 SECOND)
|
||||
if(color)
|
||||
set_color = color
|
||||
|
||||
/obj/effect/alien/weeds/node/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
..()
|
||||
@@ -272,12 +275,15 @@ Alien plants should do something if theres a lot of poison
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) )
|
||||
if(!linked_node)
|
||||
return
|
||||
|
||||
if(linked_node != src)
|
||||
color = linked_node.set_color
|
||||
|
||||
if(get_dist(linked_node, src) > linked_node.node_range)
|
||||
return
|
||||
|
||||
direction_loop:
|
||||
for(var/dirn in cardinal)
|
||||
var/turf/T = get_step(src, dirn)
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
light_power = 0.5
|
||||
light_color = "#8837A3"
|
||||
|
||||
/obj/effect/projectile/tungsten/impact
|
||||
/obj/effect/projectile/impact/tungsten
|
||||
icon_state = "impact_mhd_laser"
|
||||
light_range = 4
|
||||
light_power = 3
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
light_power = 0.5
|
||||
light_color = "#FF0D00"
|
||||
|
||||
/obj/effect/projectile/tungsten/muzzle
|
||||
/obj/effect/projectile/muzzle/tungsten
|
||||
icon_state = "muzzle_mhd_laser"
|
||||
light_range = 4
|
||||
light_power = 3
|
||||
|
||||
@@ -109,12 +109,13 @@
|
||||
light_power = 0.5
|
||||
light_color = "#0066FF"
|
||||
|
||||
/obj/effect/projectile/tungsten/tracer
|
||||
/obj/effect/projectile/tracer/tungsten
|
||||
icon_state = "mhd_laser"
|
||||
light_range = 4
|
||||
light_power = 3
|
||||
light_color = "#3300ff"
|
||||
|
||||
<<<<<<< HEAD
|
||||
//VOREStation edit: medigun
|
||||
/obj/effect/projectile/tracer/medigun
|
||||
icon = 'icons/obj/projectiles_vr.dmi'
|
||||
@@ -122,4 +123,11 @@
|
||||
light_range = 2
|
||||
light_power = 0.5
|
||||
light_color = "#80F5FF"
|
||||
//VOREStation edit ends
|
||||
//VOREStation edit ends
|
||||
=======
|
||||
/obj/effect/projectile/tracer/cannon
|
||||
icon_state = "cannon"
|
||||
light_range = 1
|
||||
light_power = 0.5
|
||||
light_color = "#f6f2b6"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
@@ -418,7 +418,7 @@
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] cracks and shakes the glowstick.</span>", "<span class='notice'>You crack and shake the glowstick, turning it on!</span>")
|
||||
user.visible_message("<span class='notice'>[user] cracks and shakes \the [name].</span>", "<span class='notice'>You crack and shake \the [src], turning it on!</span>")
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/glowstick/red
|
||||
|
||||
@@ -142,6 +142,10 @@
|
||||
if(O)
|
||||
gather_all(get_turf(src), user)
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/proc/rangedload(atom/A, mob/user)
|
||||
var/obj/item/weapon/ore/O = locate() in get_turf(A)
|
||||
if(O)
|
||||
gather_all(get_turf(A), user)
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -204,6 +204,11 @@
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
starts_with = list(/obj/item/ammo_casing/a145 = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/sniperammo/highvel
|
||||
name = "box of 14.5mm sabot shells"
|
||||
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
||||
starts_with = list(/obj/item/ammo_casing/a145/highvel = 7)
|
||||
|
||||
/obj/item/weapon/storage/box/flashbangs
|
||||
name = "box of flashbangs (WARNING)"
|
||||
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
||||
|
||||
@@ -400,4 +400,136 @@
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||
/obj/item/weapon/storage/box/shotgunammo
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
// Not strictly a gun, but is used in PoIs to spawn the dropped guns of mercs, or a busted version.
|
||||
/obj/random/projectile/scrapped_gun
|
||||
name = "broken gun spawner"
|
||||
desc = "Spawns a random broken gun, or rarely a fully functional one."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_gun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/random/projectile/scrapped_pistol = 10,
|
||||
/obj/random/projectile/scrapped_smg = 5,
|
||||
/obj/random/projectile/scrapped_laser = 5,
|
||||
/obj/random/projectile/scrapped_shotgun = 3,
|
||||
/obj/random/projectile/scrapped_ionrifle = 3,
|
||||
/obj/random/projectile/scrapped_bulldog = 1,
|
||||
/obj/random/projectile/scrapped_flechette = 1,
|
||||
/obj/random/projectile/scrapped_grenadelauncher = 1,
|
||||
/obj/random/projectile/scrapped_dartgun = 1
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_shotgun
|
||||
name = "broken shotgun spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "shotgun"
|
||||
|
||||
/obj/random/projectile/scrapped_shotgun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/pumpshotgun = 10,
|
||||
/obj/item/weapon/broken_gun/pumpshotgun_combat = 5,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump = 3,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat = 1
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_smg
|
||||
name = "broken smg spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_smg/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/c20r = 10,
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_pistol
|
||||
name = "broken pistol spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_pistol/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/silenced45 = 10,
|
||||
/obj/item/weapon/gun/projectile/silenced = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_laser
|
||||
name = "broken laser spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_laser/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/laserrifle = 10,
|
||||
/obj/item/weapon/broken_gun/laser_retro = 5,
|
||||
/obj/item/weapon/gun/energy/laser = 3,
|
||||
/obj/item/weapon/gun/energy/retro = 1
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_ionrifle
|
||||
name = "broken ionrifle spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_ionrifle/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/ionrifle = 10,
|
||||
/obj/item/weapon/gun/energy/ionrifle = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_bulldog
|
||||
name = "broken z8 spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_bulldog/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/z8 = 10,
|
||||
/obj/item/weapon/gun/projectile/automatic/z8 = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_flechette
|
||||
name = "broken flechette spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_flechette/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/flechette = 10,
|
||||
/obj/item/weapon/gun/magnetic/railgun/flechette = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_grenadelauncher
|
||||
name = "broken grenadelauncher spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_grenadelauncher/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/grenadelauncher = 10,
|
||||
/obj/item/weapon/gun/launcher/grenade = 3
|
||||
))
|
||||
|
||||
/obj/random/projectile/scrapped_dartgun
|
||||
name = "broken dartgun spawner"
|
||||
desc = "Loot for PoIs, or their mobs."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "revolver"
|
||||
|
||||
/obj/random/projectile/scrapped_dartgun/item_to_spawn()
|
||||
return pickweight(list(
|
||||
/obj/item/weapon/broken_gun/dartgun = 10,
|
||||
/obj/item/weapon/gun/projectile/dartgun = 3
|
||||
))
|
||||
|
||||
@@ -711,3 +711,16 @@
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/purple,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/grey,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/small/packet/crayon/brown)
|
||||
|
||||
/obj/random/thermalponcho
|
||||
name = "random thermal poncho"
|
||||
desc = "This is a thermal poncho spawn."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "classicponcho"
|
||||
|
||||
/obj/random/thermalponcho/item_to_spawn()
|
||||
return pick(prob(5);/obj/item/clothing/accessory/poncho/thermal,
|
||||
prob(3);/obj/item/clothing/accessory/poncho/thermal/red,
|
||||
prob(3);/obj/item/clothing/accessory/poncho/thermal/green,
|
||||
prob(3);/obj/item/clothing/accessory/poncho/thermal/purple,
|
||||
prob(3);/obj/item/clothing/accessory/poncho/thermal/blue)
|
||||
|
||||
@@ -104,6 +104,15 @@
|
||||
prob(33);/mob/living/simple_mob/animal/giant_spider/frost,
|
||||
prob(45);/mob/living/simple_mob/animal/sif/shantak)
|
||||
|
||||
/obj/random/mob/sif/kururak
|
||||
name = "Random Kururak"
|
||||
desc = "This is a random kururak, either waking or hibernating. Will be hostile if more than one are waking."
|
||||
icon_state = "frost"
|
||||
|
||||
/obj/random/mob/sif/kururak/item_to_spawn()
|
||||
return pick(prob(1);/mob/living/simple_mob/animal/sif/kururak/hibernate,
|
||||
prob(20);/mob/living/simple_mob/animal/sif/kururak)
|
||||
|
||||
/obj/random/mob/spider
|
||||
name = "Random Spider" //Spiders should patrol where they spawn.
|
||||
desc = "This is a random boring spider."
|
||||
@@ -163,6 +172,7 @@
|
||||
/obj/random/mob/robotic/item_to_spawn() //Hivebots have a total number of 'lots' equal to the lesser drone, at 60.
|
||||
return pick(prob(60);/mob/living/simple_mob/mechanical/combat_drone/lesser,
|
||||
prob(50);/mob/living/simple_mob/mechanical/combat_drone,
|
||||
prob(50);/mob/living/simple_mob/mechanical/mining_drone,
|
||||
prob(15);/mob/living/simple_mob/mechanical/mecha/ripley,
|
||||
prob(15);/mob/living/simple_mob/mechanical/mecha/odysseus,
|
||||
prob(10);/mob/living/simple_mob/mechanical/hivebot,
|
||||
@@ -174,6 +184,25 @@
|
||||
prob(5);/mob/living/simple_mob/mechanical/hivebot/ranged_damage/strong,
|
||||
prob(5);/mob/living/simple_mob/mechanical/hivebot/ranged_damage/strong/guard)
|
||||
|
||||
/obj/random/mob/robotic/drone
|
||||
name = "Random Drone"
|
||||
desc = "This is a random drone."
|
||||
icon_state = "drone_dead"
|
||||
|
||||
overwrite_hostility = 1
|
||||
|
||||
mob_faction = "malf_drone"
|
||||
mob_returns_home = 1
|
||||
mob_wander = 1
|
||||
mob_wander_distance = 5
|
||||
mob_hostile = 1
|
||||
mob_retaliate = 1
|
||||
|
||||
/obj/random/mob/robotic/drone/item_to_spawn()
|
||||
return pick(prob(6);/mob/living/simple_mob/mechanical/combat_drone/lesser,
|
||||
prob(1);/mob/living/simple_mob/mechanical/combat_drone,
|
||||
prob(3);/mob/living/simple_mob/mechanical/mining_drone)
|
||||
|
||||
/obj/random/mob/robotic/hivebot
|
||||
name = "Random Hivebot"
|
||||
desc = "This is a random hivebot."
|
||||
@@ -203,3 +232,129 @@
|
||||
prob(30);/mob/living/simple_mob/animal/passive/mouse/brown,
|
||||
prob(30);/mob/living/simple_mob/animal/passive/mouse/gray,
|
||||
prob(25);/obj/random/mouseremains) //because figuring out how to come up with it picking nothing is beyond my coding ability.
|
||||
|
||||
// Mercs
|
||||
/obj/random/mob/merc
|
||||
name = "Random Mercenary"
|
||||
desc = "This is a random PoI mercenary."
|
||||
icon_state = "syndicate"
|
||||
|
||||
mob_faction = "syndicate"
|
||||
mob_returns_home = 1
|
||||
mob_wander_distance = 7 // People like to wander, and these people probably have a lot of stuff to guard.
|
||||
|
||||
/obj/random/mob/merc/item_to_spawn()
|
||||
return pick(prob(60);/mob/living/simple_mob/humanoid/merc/melee/poi,
|
||||
prob(40);/mob/living/simple_mob/humanoid/merc/melee/sword/poi,
|
||||
prob(40);/mob/living/simple_mob/humanoid/merc/ranged/poi,
|
||||
prob(30);/mob/living/simple_mob/humanoid/merc/ranged/smg/poi,
|
||||
prob(20);/mob/living/simple_mob/humanoid/merc/ranged/laser/poi,
|
||||
prob(5);/mob/living/simple_mob/humanoid/merc/ranged/ionrifle/poi,
|
||||
prob(10);/mob/living/simple_mob/humanoid/merc/ranged/grenadier/poi,
|
||||
prob(10);/mob/living/simple_mob/humanoid/merc/ranged/rifle/poi,
|
||||
prob(15);/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi,
|
||||
prob(10);/mob/living/simple_mob/humanoid/merc/ranged/technician/poi
|
||||
)
|
||||
|
||||
/obj/random/mob/merc/armored
|
||||
name = "Random Armored Infantry Merc"
|
||||
desc = "This is a random PoI exo or robot for mercs."
|
||||
icon_state = "drone3"
|
||||
|
||||
/obj/random/mob/merc/armored/item_to_spawn()
|
||||
return pick(prob(30);/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark,
|
||||
prob(40);/mob/living/simple_mob/mechanical/mecha/combat/gygax/medgax,
|
||||
prob(40);/mob/living/simple_mob/mechanical/mecha/combat/gygax,
|
||||
prob(10);/mob/living/simple_mob/mechanical/mecha/combat/durand/defensive/mercenary,
|
||||
prob(60);/mob/living/simple_mob/mechanical/mecha/hoverpod/manned,
|
||||
prob(5);/mob/living/simple_mob/mechanical/mecha/combat/marauder,
|
||||
prob(1);/mob/living/simple_mob/mechanical/mecha/combat/marauder/seraph,
|
||||
prob(15);/mob/living/simple_mob/mechanical/mecha/odysseus/manned,
|
||||
prob(15);/mob/living/simple_mob/mechanical/mecha/odysseus/murdysseus/manned,
|
||||
prob(60);/mob/living/simple_mob/mechanical/mecha/ripley/manned
|
||||
)
|
||||
|
||||
/obj/random/mob/merc/all
|
||||
name = "Random Mercenary All"
|
||||
desc = "A random PoI mercenary, including armored."
|
||||
|
||||
/obj/random/mob/merc/all/item_to_spawn()
|
||||
return pick(prob(20);/obj/random/mob/merc,
|
||||
prob(1);/obj/random/mob/merc/armored
|
||||
)
|
||||
|
||||
// Multiple mobs, one spawner.
|
||||
/obj/random/mob/multiple
|
||||
name = "Random Multiple Mob Spawner"
|
||||
desc = "A base multiple-mob spawner. Takes lists of lists."
|
||||
|
||||
/obj/random/mob/multiple/spawn_item()
|
||||
var/list/things_to_make = item_to_spawn()
|
||||
|
||||
for(var/new_type in things_to_make)
|
||||
|
||||
var/mob/living/simple_mob/M = new new_type(src.loc)
|
||||
|
||||
if(!istype(M))
|
||||
continue
|
||||
|
||||
if(M.has_AI())
|
||||
var/datum/ai_holder/AI = M.ai_holder
|
||||
AI.go_sleep() //Don't fight eachother while we're still setting up!
|
||||
AI.returns_home = mob_returns_home
|
||||
AI.wander = mob_wander
|
||||
AI.max_home_distance = mob_wander_distance
|
||||
if(overwrite_hostility)
|
||||
AI.hostile = mob_hostile
|
||||
AI.retaliate = mob_retaliate
|
||||
AI.go_wake() //Now you can kill eachother if your faction didn't override.
|
||||
|
||||
if(pixel_x || pixel_y)
|
||||
M.pixel_x = pixel_x
|
||||
M.pixel_y = pixel_y
|
||||
|
||||
/obj/random/mob/multiple/sifmobs
|
||||
name = "Random Sifmob Pack"
|
||||
desc = "A pack of random neutral sif mobs."
|
||||
|
||||
/obj/random/mob/multiple/sifmobs/item_to_spawn()
|
||||
return pick(
|
||||
prob(60);list(
|
||||
/mob/living/simple_mob/animal/sif/diyaab,
|
||||
/mob/living/simple_mob/animal/sif/diyaab,
|
||||
/mob/living/simple_mob/animal/sif/diyaab
|
||||
),
|
||||
prob(30);list(
|
||||
/mob/living/simple_mob/animal/sif/shantak/retaliate,
|
||||
/mob/living/simple_mob/animal/sif/shantak/retaliate,
|
||||
/mob/living/simple_mob/animal/sif/shantak/retaliate,
|
||||
/mob/living/simple_mob/animal/sif/shantak/leader/autofollow/retaliate
|
||||
),
|
||||
prob(20);list(
|
||||
/mob/living/simple_mob/animal/sif/duck,
|
||||
/mob/living/simple_mob/animal/sif/duck,
|
||||
/mob/living/simple_mob/animal/sif/duck
|
||||
),
|
||||
prob(10);list(
|
||||
/mob/living/simple_mob/animal/sif/kururak/leader,
|
||||
/mob/living/simple_mob/animal/sif/kururak,
|
||||
/mob/living/simple_mob/animal/sif/kururak
|
||||
),
|
||||
prob(5);list(
|
||||
/mob/living/simple_mob/animal/sif/glitterfly,
|
||||
/mob/living/simple_mob/animal/sif/glitterfly,
|
||||
/mob/living/simple_mob/animal/sif/glitterfly,
|
||||
/mob/living/simple_mob/animal/sif/glitterfly,
|
||||
/mob/living/simple_mob/animal/sif/glitterfly
|
||||
),
|
||||
prob(1);list(
|
||||
/mob/living/simple_mob/animal/goat,
|
||||
/mob/living/simple_mob/animal/goat
|
||||
),
|
||||
prob(1);list(
|
||||
/mob/living/simple_mob/animal/sif/sakimm/intelligent,
|
||||
/mob/living/simple_mob/animal/sif/sakimm,
|
||||
/mob/living/simple_mob/animal/sif/sakimm,
|
||||
/mob/living/simple_mob/animal/sif/sakimm
|
||||
)
|
||||
)
|
||||
@@ -161,4 +161,7 @@
|
||||
var/datum/gas_mixture/above_air = return_air()
|
||||
grave_breath.adjust_gas(gasid, BREATH_MOLES)
|
||||
grave_breath.temperature = (above_air.temperature) - 30 //Underground
|
||||
return grave_breath
|
||||
return grave_breath
|
||||
|
||||
/obj/structure/closet/grave/dirthole
|
||||
name = "hole"
|
||||
|
||||
@@ -1,478 +1,493 @@
|
||||
|
||||
/obj/structure/flora
|
||||
name = "flora"
|
||||
desc = "A perfectly generic plant."
|
||||
|
||||
anchored = TRUE // Usually, plants don't move. Usually.
|
||||
plane = DECAL_PLANE
|
||||
layer = BELOW_MOB_LAYER
|
||||
|
||||
var/randomize_size = FALSE
|
||||
var/max_x_scale = 1.25
|
||||
var/max_y_scale = 1.25
|
||||
var/min_x_scale = 0.9
|
||||
var/min_y_scale = 0.9
|
||||
|
||||
var/harvest_tool = null // The type of item used to harvest the plant.
|
||||
var/harvest_count = 0
|
||||
|
||||
var/randomize_harvest_count = TRUE
|
||||
var/max_harvests = 0
|
||||
var/min_harvests = -1
|
||||
var/list/harvest_loot = null // Should be an associative list for things to spawn, and their weights. An example would be a branch from a tree.
|
||||
|
||||
/obj/structure/flora/Initialize()
|
||||
..()
|
||||
|
||||
if(randomize_size)
|
||||
icon_scale_x = rand(min_x_scale * 100, max_x_scale * 100) / 100
|
||||
icon_scale_y = rand(min_y_scale * 100, max_y_scale * 100) / 100
|
||||
|
||||
if(prob(50))
|
||||
icon_scale_x *= -1
|
||||
update_transform()
|
||||
|
||||
if(randomize_harvest_count)
|
||||
max_harvests = max(0, rand(min_harvests, max_harvests)) // Incase you want to weight it more toward 'not harvestable', set min_harvests to a negative value.
|
||||
|
||||
/obj/structure/flora/examine(mob/user)
|
||||
. = ..()
|
||||
if(harvest_count < max_harvests)
|
||||
. += "<span class='notice'>It seems to have something hanging from it.</span>"
|
||||
|
||||
/obj/structure/flora/attackby(var/obj/item/weapon/W, var/mob/living/user)
|
||||
if(can_harvest(W))
|
||||
var/harvest_spawn = pickweight(harvest_loot)
|
||||
var/atom/movable/AM = spawn_harvest(harvest_spawn, user)
|
||||
|
||||
if(!AM)
|
||||
to_chat(user, "<span class='notice'>You fail to harvest anything from \the [src].</span>")
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You harvest \the [AM] from \the [src].</span>")
|
||||
return
|
||||
|
||||
..(W, user)
|
||||
|
||||
/obj/structure/flora/proc/can_harvest(var/obj/item/I)
|
||||
. = FALSE
|
||||
if(harvest_tool && istype(I, harvest_tool) && harvest_loot && harvest_loot.len && harvest_count < max_harvests)
|
||||
. = TRUE
|
||||
return .
|
||||
|
||||
/obj/structure/flora/proc/spawn_harvest(var/path = null, var/mob/user = null)
|
||||
if(!ispath(path))
|
||||
return 0
|
||||
var/turf/Target = get_turf(src)
|
||||
if(user)
|
||||
Target = get_turf(user)
|
||||
|
||||
var/atom/movable/AM = new path(Target)
|
||||
|
||||
harvest_count++
|
||||
return AM
|
||||
|
||||
//bushes
|
||||
/obj/structure/flora/bush
|
||||
name = "bush"
|
||||
icon = 'icons/obj/flora/snowflora.dmi'
|
||||
icon_state = "snowbush1"
|
||||
|
||||
/obj/structure/flora/bush/New()
|
||||
..()
|
||||
icon_state = "snowbush[rand(1, 6)]"
|
||||
|
||||
/obj/structure/flora/pottedplant
|
||||
name = "potted plant"
|
||||
desc = "Really ties the room together."
|
||||
icon = 'icons/obj/plants.dmi'
|
||||
icon_state = "plant-26"
|
||||
|
||||
anchored = FALSE
|
||||
|
||||
//newbushes
|
||||
|
||||
/obj/structure/flora/ausbushes
|
||||
name = "bush"
|
||||
icon = 'icons/obj/flora/ausflora.dmi'
|
||||
icon_state = "firstbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/New()
|
||||
..()
|
||||
icon_state = "firstbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/reedbush
|
||||
icon_state = "reedbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/reedbush/New()
|
||||
..()
|
||||
icon_state = "reedbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush
|
||||
icon_state = "leafybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush/New()
|
||||
..()
|
||||
icon_state = "leafybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush
|
||||
icon_state = "palebush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush/New()
|
||||
..()
|
||||
icon_state = "palebush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush
|
||||
icon_state = "stalkybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush/New()
|
||||
..()
|
||||
icon_state = "stalkybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush
|
||||
icon_state = "grassybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush/New()
|
||||
..()
|
||||
icon_state = "grassybush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush
|
||||
icon_state = "fernybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush/New()
|
||||
..()
|
||||
icon_state = "fernybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush
|
||||
icon_state = "sunnybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush/New()
|
||||
..()
|
||||
icon_state = "sunnybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush
|
||||
icon_state = "genericbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush/New()
|
||||
..()
|
||||
icon_state = "genericbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush
|
||||
icon_state = "pointybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush/New()
|
||||
..()
|
||||
icon_state = "pointybush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass
|
||||
icon_state = "lavendergrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass/New()
|
||||
..()
|
||||
icon_state = "lavendergrass_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers
|
||||
icon_state = "ywflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers/New()
|
||||
..()
|
||||
icon_state = "ywflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers
|
||||
icon_state = "brflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers/New()
|
||||
..()
|
||||
icon_state = "brflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers
|
||||
icon_state = "ppflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers/New()
|
||||
..()
|
||||
icon_state = "ppflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass
|
||||
icon_state = "sparsegrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass/New()
|
||||
..()
|
||||
icon_state = "sparsegrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass
|
||||
icon_state = "fullgrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass/New()
|
||||
..()
|
||||
icon_state = "fullgrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/skeleton
|
||||
name = "hanging skeleton model"
|
||||
icon = 'icons/obj/plants.dmi' //what an interesting plant
|
||||
icon_state = "hangskele"
|
||||
desc = "It's an anatomical model of a human skeletal system made of plaster."
|
||||
|
||||
plane = OBJ_PLANE
|
||||
|
||||
//potted plants credit: Flashkirby
|
||||
/obj/structure/flora/pottedplant
|
||||
name = "potted plant"
|
||||
desc = "Really brings the room together."
|
||||
icon = 'icons/obj/plants.dmi'
|
||||
icon_state = "plant-01"
|
||||
|
||||
plane = OBJ_PLANE
|
||||
var/obj/item/stored_item
|
||||
|
||||
/obj/structure/flora/pottedplant/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) && stored_item)
|
||||
. += "<i>You can see something in there...</i>"
|
||||
|
||||
/obj/structure/flora/pottedplant/attackby(obj/item/I, mob/user)
|
||||
if(stored_item)
|
||||
to_chat(user, "<span class='notice'>[I] won't fit in. There already appears to be something in here...</span>")
|
||||
return
|
||||
|
||||
if(I.w_class > ITEMSIZE_TINY)
|
||||
to_chat(user, "<span class='notice'>[I] is too big to fit inside [src].</span>")
|
||||
return
|
||||
|
||||
if(do_after(user, 10))
|
||||
user.drop_from_inventory(I, src)
|
||||
I.forceMove(src)
|
||||
stored_item = I
|
||||
src.visible_message("\icon[src] \icon[I] [user] places [I] into [src].")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You refrain from putting things into the plant pot.</span>")
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/structure/flora/pottedplant/attack_hand(mob/user)
|
||||
if(!stored_item)
|
||||
to_chat(user, "<b>You see nothing of interest in [src]...</b>")
|
||||
else
|
||||
if(do_after(user, 10))
|
||||
to_chat(user, "You find \icon[stored_item] [stored_item] in [src]!")
|
||||
stored_item.forceMove(get_turf(src))
|
||||
stored_item = null
|
||||
..()
|
||||
|
||||
|
||||
/obj/structure/flora/pottedplant/large
|
||||
name = "large potted plant"
|
||||
desc = "This is a large plant. Three branches support pairs of waxy leaves."
|
||||
icon_state = "plant-26"
|
||||
|
||||
/obj/structure/flora/pottedplant/fern
|
||||
name = "potted fern"
|
||||
desc = "This is an ordinary looking fern. It looks like it could do with some water."
|
||||
icon_state = "plant-02"
|
||||
|
||||
/obj/structure/flora/pottedplant/overgrown
|
||||
name = "overgrown potted plants"
|
||||
desc = "This is an assortment of colourful plants. Some parts are overgrown."
|
||||
icon_state = "plant-03"
|
||||
|
||||
/obj/structure/flora/pottedplant/bamboo
|
||||
name = "potted bamboo"
|
||||
desc = "These are bamboo shoots. The tops looks like they've been cut short."
|
||||
icon_state = "plant-04"
|
||||
|
||||
/obj/structure/flora/pottedplant/largebush
|
||||
name = "large potted bush"
|
||||
desc = "This is a large bush. The leaves stick upwards in an odd fashion."
|
||||
icon_state = "plant-05"
|
||||
|
||||
/obj/structure/flora/pottedplant/thinbush
|
||||
name = "thin potted bush"
|
||||
desc = "This is a thin bush. It appears to be flowering."
|
||||
icon_state = "plant-06"
|
||||
|
||||
/obj/structure/flora/pottedplant/mysterious
|
||||
name = "mysterious potted bulbs"
|
||||
desc = "This is a mysterious looking plant. Touching the bulbs cause them to shrink."
|
||||
icon_state = "plant-07"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/eyebulbs)
|
||||
|
||||
/obj/structure/flora/pottedplant/smalltree
|
||||
name = "small potted tree"
|
||||
desc = "This is a small tree. It is rather pleasant."
|
||||
icon_state = "plant-08"
|
||||
|
||||
/obj/structure/flora/pottedplant/unusual
|
||||
name = "unusual potted plant"
|
||||
desc = "This is an unusual plant. It's bulbous ends emit a soft blue light."
|
||||
icon_state = "plant-09"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#33CCFF"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/sif_tree)
|
||||
|
||||
/obj/structure/flora/pottedplant/orientaltree
|
||||
name = "potted oriental tree"
|
||||
desc = "This is a rather oriental style tree. Its flowers are bright pink."
|
||||
icon_state = "plant-10"
|
||||
|
||||
/obj/structure/flora/pottedplant/smallcactus
|
||||
name = "small potted cactus"
|
||||
desc = "This is a small cactus. Its needles are sharp."
|
||||
icon_state = "plant-11"
|
||||
|
||||
/obj/structure/flora/pottedplant/tall
|
||||
name = "tall potted plant"
|
||||
desc = "This is a tall plant. Tiny pores line its surface."
|
||||
icon_state = "plant-12"
|
||||
|
||||
/obj/structure/flora/pottedplant/sticky
|
||||
name = "sticky potted plant"
|
||||
desc = "This is an odd plant. Its sticky leaves trap insects."
|
||||
icon_state = "plant-13"
|
||||
|
||||
/obj/structure/flora/pottedplant/smelly
|
||||
name = "smelly potted plant"
|
||||
desc = "This is some kind of tropical plant. It reeks of rotten eggs."
|
||||
icon_state = "plant-14"
|
||||
|
||||
/obj/structure/flora/pottedplant/small
|
||||
name = "small potted plant"
|
||||
desc = "This is a pot of assorted small flora. Some look familiar."
|
||||
icon_state = "plant-15"
|
||||
|
||||
/obj/structure/flora/pottedplant/aquatic
|
||||
name = "aquatic potted plant"
|
||||
desc = "This is apparently an aquatic plant. It's probably fake."
|
||||
icon_state = "plant-16"
|
||||
|
||||
/obj/structure/flora/pottedplant/shoot
|
||||
name = "small potted shoot"
|
||||
desc = "This is a small shoot. It still needs time to grow."
|
||||
icon_state = "plant-17"
|
||||
|
||||
/obj/structure/flora/pottedplant/flower
|
||||
name = "potted flower"
|
||||
desc = "This is a slim plant. Sweet smelling flowers are supported by spindly stems."
|
||||
icon_state = "plant-18"
|
||||
|
||||
/obj/structure/flora/pottedplant/crystal
|
||||
name = "crystalline potted plant"
|
||||
desc = "These are rather cubic plants. Odd crystal formations grow on the end."
|
||||
icon_state = "plant-19"
|
||||
|
||||
/obj/structure/flora/pottedplant/subterranean
|
||||
name = "subterranean potted plant"
|
||||
desc = "This is a subterranean plant. It's bulbous ends glow faintly."
|
||||
icon_state = "plant-20"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#FF6633"
|
||||
|
||||
/obj/structure/flora/pottedplant/minitree
|
||||
name = "potted tree"
|
||||
desc = "This is a miniature tree. Apparently it was grown to 1/5 scale."
|
||||
icon_state = "plant-21"
|
||||
|
||||
/obj/structure/flora/pottedplant/stoutbush
|
||||
name = "stout potted bush"
|
||||
desc = "This is a stout bush. Its leaves point up and outwards."
|
||||
icon_state = "plant-22"
|
||||
|
||||
/obj/structure/flora/pottedplant/drooping
|
||||
name = "drooping potted plant"
|
||||
desc = "This is a small plant. The drooping leaves make it look like its wilted."
|
||||
icon_state = "plant-23"
|
||||
|
||||
/obj/structure/flora/pottedplant/tropical
|
||||
name = "tropical potted plant"
|
||||
desc = "This is some kind of tropical plant. It hasn't begun to flower yet."
|
||||
icon_state = "plant-24"
|
||||
|
||||
/obj/structure/flora/pottedplant/dead
|
||||
name = "dead potted plant"
|
||||
desc = "This is the dried up remains of a dead plant. Someone should replace it."
|
||||
icon_state = "plant-25"
|
||||
|
||||
/obj/structure/flora/pottedplant/decorative
|
||||
name = "decorative potted plant"
|
||||
desc = "This is a decorative shrub. It's been trimmed into the shape of an apple."
|
||||
icon_state = "applebush"
|
||||
|
||||
/obj/structure/flora/pottedplant/xmas
|
||||
name = "small christmas tree"
|
||||
desc = "This is a tiny well lit decorative christmas tree."
|
||||
icon_state = "plant-xmas"
|
||||
|
||||
/obj/structure/flora/sif
|
||||
icon = 'icons/obj/flora/sifflora.dmi'
|
||||
|
||||
/obj/structure/flora/sif/attack_hand(mob/user)
|
||||
if (user.a_intent == I_HURT)
|
||||
if(do_after(user, 5 SECONDS))
|
||||
user.visible_message("\The [user] digs up \the [src.name].", "You dig up \the [src.name].")
|
||||
qdel(src)
|
||||
else
|
||||
user.visible_message("\The [user] pokes \the [src.name].", "You poke \the [src.name].")
|
||||
|
||||
/datum/category_item/catalogue/flora/subterranean_bulbs
|
||||
name = "Sivian Flora - Subterranean Bulbs"
|
||||
desc = "A plant which is native to Sif, it continues the trend of being a bioluminescent specimen. These plants \
|
||||
are generally suited for conditions experienced in caverns, which are generally dark and cold. It is not \
|
||||
known why this plant evolved to be bioluminescent, however this property has, unintentionally, allowed for \
|
||||
it to spread much farther than before, with the assistance of humans.\
|
||||
<br><br>\
|
||||
In Sif's early history, Sivian settlers found this plant while they were establishing mines. Their ability \
|
||||
to emit low, but consistant amounts of light made them desirable to the settlers. They would often cultivate \
|
||||
this plant inside man-made tunnels and mines to act as a backup source of light that would not need \
|
||||
electricity. This technique has saved many lost miners, and this practice continues to this day."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/obj/structure/flora/sif/subterranean
|
||||
name = "subterranean plant"
|
||||
desc = "This is a subterranean plant. It's bulbous ends glow faintly."
|
||||
icon_state = "glowplant"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#FF6633"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/subterranean_bulbs)
|
||||
|
||||
/obj/structure/flora/sif/subterranean/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,2)]"
|
||||
. = ..()
|
||||
|
||||
|
||||
/datum/category_item/catalogue/flora/eyebulbs
|
||||
name = "Sivian Flora - Eyebulbs"
|
||||
desc = "A plant native to Sif. On the end of its stems are bulbs which visually resemble \
|
||||
eyes, which shrink when touched. One theory is that the bulbs are a result of mimicry, appearing as eyeballs to protect from predators.<br><br>\
|
||||
These plants have no known use."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/obj/structure/flora/sif/eyes
|
||||
name = "mysterious bulbs"
|
||||
desc = "This is a mysterious looking plant. They kind of look like eyeballs. Creepy."
|
||||
icon_state = "eyeplant"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/eyebulbs)
|
||||
|
||||
/obj/structure/flora/sif/eyes/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,3)]"
|
||||
. = ..()
|
||||
|
||||
/datum/category_item/catalogue/flora/mosstendrils
|
||||
name = "Sivian Flora - Moss Stalks"
|
||||
desc = "A plant native to Sif. The plant is most closely related to the common, dense moss found covering Sif's terrain. \
|
||||
It has evolved a method of camouflage utilizing white hairs on its dorsal sides to make it appear as a small mound of snow from \
|
||||
above. It has no known use, though it is a common furnishing in contemporary homes."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/obj/structure/flora/sif/tendrils
|
||||
name = "stocky tendrils"
|
||||
desc = "A 'plant' made up of hardened moss. It has tiny hairs that bunch together to look like snow."
|
||||
icon_state = "grass"
|
||||
randomize_size = TRUE
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/mosstendrils)
|
||||
|
||||
/obj/structure/flora/sif/tendrils/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,3)]"
|
||||
. = ..()
|
||||
|
||||
/obj/structure/flora
|
||||
name = "flora"
|
||||
desc = "A perfectly generic plant."
|
||||
|
||||
anchored = TRUE // Usually, plants don't move. Usually.
|
||||
plane = DECAL_PLANE
|
||||
layer = BELOW_MOB_LAYER
|
||||
|
||||
var/randomize_size = FALSE
|
||||
var/max_x_scale = 1.25
|
||||
var/max_y_scale = 1.25
|
||||
var/min_x_scale = 0.9
|
||||
var/min_y_scale = 0.9
|
||||
|
||||
var/harvest_tool = null // The type of item used to harvest the plant.
|
||||
var/harvest_count = 0
|
||||
|
||||
var/randomize_harvest_count = TRUE
|
||||
var/max_harvests = 0
|
||||
var/min_harvests = -1
|
||||
var/list/harvest_loot = null // Should be an associative list for things to spawn, and their weights. An example would be a branch from a tree.
|
||||
|
||||
/obj/structure/flora/Initialize()
|
||||
..()
|
||||
|
||||
if(randomize_size)
|
||||
icon_scale_x = rand(min_x_scale * 100, max_x_scale * 100) / 100
|
||||
icon_scale_y = rand(min_y_scale * 100, max_y_scale * 100) / 100
|
||||
|
||||
if(prob(50))
|
||||
icon_scale_x *= -1
|
||||
update_transform()
|
||||
|
||||
if(randomize_harvest_count)
|
||||
max_harvests = max(0, rand(min_harvests, max_harvests)) // Incase you want to weight it more toward 'not harvestable', set min_harvests to a negative value.
|
||||
|
||||
/obj/structure/flora/examine(mob/user)
|
||||
. = ..()
|
||||
if(harvest_count < max_harvests)
|
||||
. += get_harvestable_desc()
|
||||
|
||||
/obj/structure/flora/proc/get_harvestable_desc()
|
||||
return "<span class='notice'>\The [src] seems to have something hanging from it.</span>"
|
||||
|
||||
/obj/structure/flora/attackby(var/obj/item/weapon/W, var/mob/living/user)
|
||||
if(can_harvest(W))
|
||||
var/harvest_spawn = pickweight(harvest_loot)
|
||||
var/atom/movable/AM = spawn_harvest(harvest_spawn, user)
|
||||
|
||||
if(!AM)
|
||||
to_chat(user, "<span class='notice'>You fail to harvest anything from \the [src].</span>")
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You harvest \the [AM] from \the [src].</span>")
|
||||
return
|
||||
|
||||
..(W, user)
|
||||
|
||||
/obj/structure/flora/proc/can_harvest(var/obj/item/I)
|
||||
. = FALSE
|
||||
if(harvest_tool && istype(I, harvest_tool) && harvest_loot && harvest_loot.len && harvest_count < max_harvests)
|
||||
. = TRUE
|
||||
return .
|
||||
|
||||
/obj/structure/flora/proc/spawn_harvest(var/path = null, var/mob/user = null)
|
||||
if(!ispath(path))
|
||||
return 0
|
||||
var/turf/Target = get_turf(src)
|
||||
if(user)
|
||||
Target = get_turf(user)
|
||||
|
||||
var/atom/movable/AM = new path(Target)
|
||||
|
||||
harvest_count++
|
||||
return AM
|
||||
|
||||
//bushes
|
||||
/obj/structure/flora/bush
|
||||
name = "bush"
|
||||
icon = 'icons/obj/flora/snowflora.dmi'
|
||||
icon_state = "snowbush1"
|
||||
|
||||
/obj/structure/flora/bush/New()
|
||||
..()
|
||||
icon_state = "snowbush[rand(1, 6)]"
|
||||
|
||||
/obj/structure/flora/pottedplant
|
||||
name = "potted plant"
|
||||
desc = "Really ties the room together."
|
||||
icon = 'icons/obj/plants.dmi'
|
||||
icon_state = "plant-26"
|
||||
|
||||
anchored = FALSE
|
||||
|
||||
//newbushes
|
||||
|
||||
/obj/structure/flora/ausbushes
|
||||
name = "bush"
|
||||
icon = 'icons/obj/flora/ausflora.dmi'
|
||||
icon_state = "firstbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/New()
|
||||
..()
|
||||
icon_state = "firstbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/reedbush
|
||||
icon_state = "reedbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/reedbush/New()
|
||||
..()
|
||||
icon_state = "reedbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush
|
||||
icon_state = "leafybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/leafybush/New()
|
||||
..()
|
||||
icon_state = "leafybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush
|
||||
icon_state = "palebush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/palebush/New()
|
||||
..()
|
||||
icon_state = "palebush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush
|
||||
icon_state = "stalkybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/stalkybush/New()
|
||||
..()
|
||||
icon_state = "stalkybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush
|
||||
icon_state = "grassybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/grassybush/New()
|
||||
..()
|
||||
icon_state = "grassybush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush
|
||||
icon_state = "fernybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fernybush/New()
|
||||
..()
|
||||
icon_state = "fernybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush
|
||||
icon_state = "sunnybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sunnybush/New()
|
||||
..()
|
||||
icon_state = "sunnybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush
|
||||
icon_state = "genericbush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/genericbush/New()
|
||||
..()
|
||||
icon_state = "genericbush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush
|
||||
icon_state = "pointybush_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/pointybush/New()
|
||||
..()
|
||||
icon_state = "pointybush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass
|
||||
icon_state = "lavendergrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/lavendergrass/New()
|
||||
..()
|
||||
icon_state = "lavendergrass_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers
|
||||
icon_state = "ywflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ywflowers/New()
|
||||
..()
|
||||
icon_state = "ywflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers
|
||||
icon_state = "brflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/brflowers/New()
|
||||
..()
|
||||
icon_state = "brflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers
|
||||
icon_state = "ppflowers_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/ppflowers/New()
|
||||
..()
|
||||
icon_state = "ppflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass
|
||||
icon_state = "sparsegrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/sparsegrass/New()
|
||||
..()
|
||||
icon_state = "sparsegrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass
|
||||
icon_state = "fullgrass_1"
|
||||
|
||||
/obj/structure/flora/ausbushes/fullgrass/New()
|
||||
..()
|
||||
icon_state = "fullgrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/skeleton
|
||||
name = "hanging skeleton model"
|
||||
icon = 'icons/obj/plants.dmi' //what an interesting plant
|
||||
icon_state = "hangskele"
|
||||
desc = "It's an anatomical model of a human skeletal system made of plaster."
|
||||
|
||||
plane = OBJ_PLANE
|
||||
|
||||
//potted plants credit: Flashkirby
|
||||
/obj/structure/flora/pottedplant
|
||||
name = "potted plant"
|
||||
desc = "Really brings the room together."
|
||||
icon = 'icons/obj/plants.dmi'
|
||||
icon_state = "plant-01"
|
||||
|
||||
plane = OBJ_PLANE
|
||||
var/obj/item/stored_item
|
||||
|
||||
/obj/structure/flora/pottedplant/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) && stored_item)
|
||||
. += "<span class='filter_notice'><i>You can see something in there...</i></span>"
|
||||
|
||||
/obj/structure/flora/pottedplant/attackby(obj/item/I, mob/user)
|
||||
if(stored_item)
|
||||
to_chat(user, "<span class='notice'>[I] won't fit in. There already appears to be something in here...</span>")
|
||||
return
|
||||
|
||||
if(I.w_class > ITEMSIZE_TINY)
|
||||
to_chat(user, "<span class='notice'>[I] is too big to fit inside [src].</span>")
|
||||
return
|
||||
|
||||
if(do_after(user, 10))
|
||||
user.drop_from_inventory(I, src)
|
||||
I.forceMove(src)
|
||||
stored_item = I
|
||||
src.visible_message("[bicon(src)] [bicon(I)] [user] places [I] into [src].")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You refrain from putting things into the plant pot.</span>")
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/structure/flora/pottedplant/attack_hand(mob/user)
|
||||
if(!stored_item)
|
||||
to_chat(user, "<span class='filter_notice'><b>You see nothing of interest in [src]...</b></span>")
|
||||
else
|
||||
if(do_after(user, 10))
|
||||
to_chat(user, "<span class='filter_notice'>You find [bicon(stored_item)] [stored_item] in [src]!</span>")
|
||||
stored_item.forceMove(get_turf(src))
|
||||
stored_item = null
|
||||
..()
|
||||
|
||||
|
||||
/obj/structure/flora/pottedplant/large
|
||||
name = "large potted plant"
|
||||
desc = "This is a large plant. Three branches support pairs of waxy leaves."
|
||||
icon_state = "plant-26"
|
||||
|
||||
/obj/structure/flora/pottedplant/fern
|
||||
name = "potted fern"
|
||||
desc = "This is an ordinary looking fern. It looks like it could do with some water."
|
||||
icon_state = "plant-02"
|
||||
|
||||
/obj/structure/flora/pottedplant/overgrown
|
||||
name = "overgrown potted plants"
|
||||
desc = "This is an assortment of colourful plants. Some parts are overgrown."
|
||||
icon_state = "plant-03"
|
||||
|
||||
/obj/structure/flora/pottedplant/bamboo
|
||||
name = "potted bamboo"
|
||||
desc = "These are bamboo shoots. The tops looks like they've been cut short."
|
||||
icon_state = "plant-04"
|
||||
|
||||
/obj/structure/flora/pottedplant/largebush
|
||||
name = "large potted bush"
|
||||
desc = "This is a large bush. The leaves stick upwards in an odd fashion."
|
||||
icon_state = "plant-05"
|
||||
|
||||
/obj/structure/flora/pottedplant/thinbush
|
||||
name = "thin potted bush"
|
||||
desc = "This is a thin bush. It appears to be flowering."
|
||||
icon_state = "plant-06"
|
||||
|
||||
/obj/structure/flora/pottedplant/mysterious
|
||||
name = "mysterious potted bulbs"
|
||||
desc = "This is a mysterious looking plant. Touching the bulbs cause them to shrink."
|
||||
icon_state = "plant-07"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/eyebulbs)
|
||||
|
||||
/obj/structure/flora/pottedplant/smalltree
|
||||
name = "small potted tree"
|
||||
desc = "This is a small tree. It is rather pleasant."
|
||||
icon_state = "plant-08"
|
||||
|
||||
/obj/structure/flora/pottedplant/unusual
|
||||
name = "unusual potted plant"
|
||||
desc = "This is an unusual plant. It's bulbous ends emit a soft blue light."
|
||||
icon_state = "plant-09"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#33CCFF"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/sif_tree)
|
||||
|
||||
/obj/structure/flora/pottedplant/orientaltree
|
||||
name = "potted oriental tree"
|
||||
desc = "This is a rather oriental style tree. Its flowers are bright pink."
|
||||
icon_state = "plant-10"
|
||||
|
||||
/obj/structure/flora/pottedplant/smallcactus
|
||||
name = "small potted cactus"
|
||||
desc = "This is a small cactus. Its needles are sharp."
|
||||
icon_state = "plant-11"
|
||||
|
||||
/obj/structure/flora/pottedplant/tall
|
||||
name = "tall potted plant"
|
||||
desc = "This is a tall plant. Tiny pores line its surface."
|
||||
icon_state = "plant-12"
|
||||
|
||||
/obj/structure/flora/pottedplant/sticky
|
||||
name = "sticky potted plant"
|
||||
desc = "This is an odd plant. Its sticky leaves trap insects."
|
||||
icon_state = "plant-13"
|
||||
|
||||
/obj/structure/flora/pottedplant/smelly
|
||||
name = "smelly potted plant"
|
||||
desc = "This is some kind of tropical plant. It reeks of rotten eggs."
|
||||
icon_state = "plant-14"
|
||||
|
||||
/obj/structure/flora/pottedplant/small
|
||||
name = "small potted plant"
|
||||
desc = "This is a pot of assorted small flora. Some look familiar."
|
||||
icon_state = "plant-15"
|
||||
|
||||
/obj/structure/flora/pottedplant/aquatic
|
||||
name = "aquatic potted plant"
|
||||
desc = "This is apparently an aquatic plant. It's probably fake."
|
||||
icon_state = "plant-16"
|
||||
|
||||
/obj/structure/flora/pottedplant/shoot
|
||||
name = "small potted shoot"
|
||||
desc = "This is a small shoot. It still needs time to grow."
|
||||
icon_state = "plant-17"
|
||||
|
||||
/obj/structure/flora/pottedplant/flower
|
||||
name = "potted flower"
|
||||
desc = "This is a slim plant. Sweet smelling flowers are supported by spindly stems."
|
||||
icon_state = "plant-18"
|
||||
|
||||
/obj/structure/flora/pottedplant/crystal
|
||||
name = "crystalline potted plant"
|
||||
desc = "These are rather cubic plants. Odd crystal formations grow on the end."
|
||||
icon_state = "plant-19"
|
||||
|
||||
/obj/structure/flora/pottedplant/subterranean
|
||||
name = "subterranean potted plant"
|
||||
desc = "This is a subterranean plant. It's bulbous ends glow faintly."
|
||||
icon_state = "plant-20"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#FF6633"
|
||||
|
||||
/obj/structure/flora/pottedplant/minitree
|
||||
name = "potted tree"
|
||||
desc = "This is a miniature tree. Apparently it was grown to 1/5 scale."
|
||||
icon_state = "plant-21"
|
||||
|
||||
/obj/structure/flora/pottedplant/stoutbush
|
||||
name = "stout potted bush"
|
||||
desc = "This is a stout bush. Its leaves point up and outwards."
|
||||
icon_state = "plant-22"
|
||||
|
||||
/obj/structure/flora/pottedplant/drooping
|
||||
name = "drooping potted plant"
|
||||
desc = "This is a small plant. The drooping leaves make it look like its wilted."
|
||||
icon_state = "plant-23"
|
||||
|
||||
/obj/structure/flora/pottedplant/tropical
|
||||
name = "tropical potted plant"
|
||||
desc = "This is some kind of tropical plant. It hasn't begun to flower yet."
|
||||
icon_state = "plant-24"
|
||||
|
||||
/obj/structure/flora/pottedplant/dead
|
||||
name = "dead potted plant"
|
||||
desc = "This is the dried up remains of a dead plant. Someone should replace it."
|
||||
icon_state = "plant-25"
|
||||
|
||||
/obj/structure/flora/pottedplant/decorative
|
||||
name = "decorative potted plant"
|
||||
desc = "This is a decorative shrub. It's been trimmed into the shape of an apple."
|
||||
icon_state = "applebush"
|
||||
|
||||
/obj/structure/flora/pottedplant/xmas
|
||||
name = "small christmas tree"
|
||||
desc = "This is a tiny well lit decorative christmas tree."
|
||||
icon_state = "plant-xmas"
|
||||
|
||||
/obj/structure/flora/sif
|
||||
icon = 'icons/obj/flora/sifflora.dmi'
|
||||
|
||||
/obj/structure/flora/sif/attack_hand(mob/user)
|
||||
if (user.a_intent == I_HURT)
|
||||
if(do_after(user, 5 SECONDS))
|
||||
user.visible_message("<span class='filter_notice'>\The [user] digs up \the [src.name].", "You dig up \the [src.name].</span>")
|
||||
qdel(src)
|
||||
else
|
||||
user.visible_message("<span class='filter_notice'>\The [user] pokes \the [src.name].", "You poke \the [src.name].</span>")
|
||||
|
||||
/datum/category_item/catalogue/flora/subterranean_bulbs
|
||||
name = "Sivian Flora - Subterranean Bulbs"
|
||||
desc = "A plant which is native to Sif, it continues the trend of being a bioluminescent specimen. These plants \
|
||||
are generally suited for conditions experienced in caverns, which are generally dark and cold. It is not \
|
||||
known why this plant evolved to be bioluminescent, however this property has, unintentionally, allowed for \
|
||||
it to spread much farther than before, with the assistance of humans.\
|
||||
<br><br>\
|
||||
In Sif's early history, Sivian settlers found this plant while they were establishing mines. Their ability \
|
||||
to emit low, but consistant amounts of light made them desirable to the settlers. They would often cultivate \
|
||||
this plant inside man-made tunnels and mines to act as a backup source of light that would not need \
|
||||
electricity. This technique has saved many lost miners, and this practice continues to this day."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/obj/structure/flora/sif/subterranean
|
||||
name = "subterranean plant"
|
||||
desc = "This is a subterranean plant. It's bulbous ends glow faintly."
|
||||
icon_state = "glowplant"
|
||||
light_range = 2
|
||||
light_power = 0.6
|
||||
light_color = "#FF6633"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/subterranean_bulbs)
|
||||
|
||||
/obj/structure/flora/sif/subterranean/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,2)]"
|
||||
. = ..()
|
||||
|
||||
|
||||
/datum/category_item/catalogue/flora/eyebulbs
|
||||
name = "Sivian Flora - Eyebulbs"
|
||||
desc = "A plant native to Sif. On the end of its stems are bulbs which visually resemble \
|
||||
eyes, which shrink when touched. One theory is that the bulbs are a result of mimicry, appearing as eyeballs to protect from predators.<br><br>\
|
||||
These plants have no known use."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/obj/structure/flora/sif/eyes
|
||||
name = "mysterious bulbs"
|
||||
desc = "This is a mysterious looking plant. They kind of look like eyeballs. Creepy."
|
||||
icon_state = "eyeplant"
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/eyebulbs)
|
||||
|
||||
/obj/structure/flora/sif/eyes/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,3)]"
|
||||
. = ..()
|
||||
|
||||
/datum/category_item/catalogue/flora/mosstendrils
|
||||
name = "Sivian Flora - Moss Stalks"
|
||||
desc = "A plant native to Sif. The plant is most closely related to the common, dense moss found covering Sif's terrain. \
|
||||
It has evolved a method of camouflage utilizing white hairs on its dorsal sides to make it appear as a small mound of snow from \
|
||||
above. It has no known use, though it is a common furnishing in contemporary homes."
|
||||
value = CATALOGUER_REWARD_TRIVIAL
|
||||
|
||||
/obj/structure/flora/sif/tendrils
|
||||
name = "stocky tendrils"
|
||||
desc = "A 'plant' made up of hardened moss. It has tiny hairs that bunch together to look like snow."
|
||||
icon_state = "grass"
|
||||
randomize_size = TRUE
|
||||
catalogue_data = list(/datum/category_item/catalogue/flora/mosstendrils)
|
||||
|
||||
harvest_tool = /obj/item/weapon/material/knife
|
||||
max_harvests = 1
|
||||
min_harvests = -4
|
||||
harvest_loot = list(
|
||||
/obj/item/seeds/wabback = 15,
|
||||
/obj/item/seeds/blackwabback = 1,
|
||||
/obj/item/seeds/wildwabback = 30
|
||||
)
|
||||
|
||||
/obj/structure/flora/sif/tendrils/Initialize()
|
||||
icon_state = "[initial(icon_state)][rand(1,3)]"
|
||||
. = ..()
|
||||
|
||||
/obj/structure/flora/sif/tendrils/get_harvestable_desc()
|
||||
return "<span class='notice'>\The [src] seems to be growing over something.</span>"
|
||||
@@ -11,7 +11,6 @@
|
||||
..()
|
||||
icon_state = "snowgrass[rand(1, 3)]bb"
|
||||
|
||||
|
||||
/obj/structure/flora/grass/green
|
||||
icon_state = "snowgrass1gb"
|
||||
|
||||
|
||||
@@ -273,7 +273,9 @@
|
||||
max_harvests = 2
|
||||
min_harvests = -4
|
||||
harvest_loot = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/siffruit = 5
|
||||
/obj/item/weapon/reagent_containers/food/snacks/siffruit = 20,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/sifpod = 5,
|
||||
/obj/item/seeds/sifbulb = 1
|
||||
)
|
||||
|
||||
var/light_shift = 0
|
||||
|
||||
@@ -12,6 +12,13 @@ var/list/grass_types = list(
|
||||
)
|
||||
var/grass_chance = 20
|
||||
|
||||
var/animal_chance = 1
|
||||
|
||||
// Weighted spawn list.
|
||||
var/list/animal_types = list(
|
||||
/mob/living/simple_mob/animal/passive/tindalos = 1
|
||||
)
|
||||
|
||||
var/list/grass_types = list(
|
||||
/obj/structure/flora/ausbushes/sparsegrass,
|
||||
/obj/structure/flora/ausbushes/fullgrass
|
||||
@@ -32,6 +39,12 @@ var/list/grass_types = list(
|
||||
grass_chance = 5
|
||||
var/tree_chance = 2
|
||||
|
||||
animal_chance = 0.5
|
||||
|
||||
animal_types = list(
|
||||
/obj/random/mob/multiple/sifmobs = 1
|
||||
)
|
||||
|
||||
grass_types = list(
|
||||
/obj/structure/flora/sif/eyes = 1,
|
||||
/obj/structure/flora/sif/tendrils = 10
|
||||
@@ -53,6 +66,11 @@ var/list/grass_types = list(
|
||||
if(grass_chance && prob(grass_chance) && !check_density())
|
||||
var/grass_type = pickweight(grass_types)
|
||||
new grass_type(src)
|
||||
|
||||
if(animal_chance && prob(animal_chance) && !check_density())
|
||||
var/animal_type = pickweight(animal_types)
|
||||
new animal_type(src)
|
||||
|
||||
. = ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/grass/forest
|
||||
|
||||
@@ -96,6 +96,42 @@
|
||||
. = check
|
||||
break
|
||||
|
||||
// For now, these two temp procs only return TRUE or FALSE if they can provide resistance to a given temperature.
|
||||
/obj/item/clothing/proc/handle_low_temperature(var/tempcheck = T20C)
|
||||
. = FALSE
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/C in accessories)
|
||||
if(C.handle_low_temperature(tempcheck))
|
||||
. = TRUE
|
||||
|
||||
if(min_cold_protection_temperature && min_cold_protection_temperature <= tempcheck)
|
||||
. = TRUE
|
||||
|
||||
/obj/item/clothing/proc/handle_high_temperature(var/tempcheck = T20C)
|
||||
. = FALSE
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/C in accessories)
|
||||
if(C.handle_low_temperature(tempcheck))
|
||||
. = TRUE
|
||||
|
||||
if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck)
|
||||
. = TRUE
|
||||
|
||||
// Returns the relative flag-vars for covered protection.
|
||||
/obj/item/clothing/proc/get_cold_protection_flags()
|
||||
. = cold_protection
|
||||
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/C in accessories)
|
||||
. |= C.get_cold_protection_flags()
|
||||
|
||||
/obj/item/clothing/proc/get_heat_protection_flags()
|
||||
. = heat_protection
|
||||
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/C in accessories)
|
||||
. |= C.get_heat_protection_flags()
|
||||
|
||||
/obj/item/clothing/proc/refit_for_species(var/target_species)
|
||||
if(!species_restricted)
|
||||
return //this item doesn't use the species_restricted system
|
||||
|
||||
@@ -96,9 +96,16 @@
|
||||
name = "mesh armor plate"
|
||||
desc = "A mesh armor plate made of steel-reinforced synthetic fibers, great for dealing with small blades. Attaches to a plate carrier."
|
||||
icon_state = "armor_stab"
|
||||
armor = list(melee = 25, bullet = 5, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0)
|
||||
armor = list(melee = 30, bullet = 5, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0)
|
||||
armorsoak = list(melee = 7, bullet = 5, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/accessory/armor/armorplate/blast
|
||||
name = "gel armor plate"
|
||||
desc = "A gel armor plate made of high-grade polymers, great for dealing with localized blasts. Attaches to a plate carrier."
|
||||
icon_state = "armor_blast"
|
||||
armor = list(melee = 25, bullet = 25, laser = 10, energy = 0, bomb = 30, bio = 0, rad = 0)
|
||||
armorsoak = list(melee = 5, bullet = 7, laser = 0, energy = 0, bomb = 40, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/accessory/armor/armorplate/medium
|
||||
name = "medium armor plate"
|
||||
desc = "A plasteel-reinforced synthetic armor plate, providing good protection. Attaches to a plate carrier."
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal
|
||||
name = "thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer."
|
||||
slot_flags = SLOT_OCLOTHING | SLOT_TIE
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
|
||||
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
slowdown = 0.2
|
||||
|
||||
min_cold_protection_temperature = T0C - 40
|
||||
max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/green
|
||||
name = "green thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is green."
|
||||
icon_state = "greenponcho"
|
||||
item_state = "greenponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/red
|
||||
name = "red thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is red."
|
||||
icon_state = "redponcho"
|
||||
item_state = "redponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/purple
|
||||
name = "purple thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is purple."
|
||||
icon_state = "purpleponcho"
|
||||
item_state = "purpleponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/blue
|
||||
name = "blue thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is blue."
|
||||
icon_state = "blueponcho"
|
||||
item_state = "blueponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/security
|
||||
name = "security thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is black and red, standard NanoTrasen Security colors."
|
||||
icon_state = "secponcho"
|
||||
item_state = "secponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/medical
|
||||
name = "medical thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is white with green and blue tint, standard Medical colors."
|
||||
icon_state = "medponcho"
|
||||
item_state = "medponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/engineering
|
||||
name = "engineering thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is yellow and orange, standard Engineering colors."
|
||||
icon_state = "engiponcho"
|
||||
item_state = "engiponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/science
|
||||
name = "science thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is white with purple trim, standard NanoTrasen Science colors."
|
||||
icon_state = "sciponcho"
|
||||
item_state = "sciponcho"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/thermal/cargo
|
||||
name = "cargo thermal poncho"
|
||||
desc = "A simple, comfortable poncho with a thermal foil layer. This one is tan and grey, the colors of Cargo."
|
||||
icon_state = "cargoponcho"
|
||||
item_state = "cargoponcho"
|
||||
@@ -938,6 +938,11 @@ Uniforms and such
|
||||
name = "explorer's jumpsuit"
|
||||
icon_state = "explorer"
|
||||
|
||||
/obj/item/clothing/under/explorer/armored
|
||||
desc = "A green uniform for operating in hazardous environments. This one looks like it's been modified."
|
||||
armor = list(melee = 10, bullet = 10, laser = 10,energy = 10, bomb = 10, bio = 10, rad = 30)
|
||||
armorsoak = list(melee = 5, bullet = 5, laser = 5,energy = 5, bomb = 5, bio = 5, rad = 0)
|
||||
|
||||
/obj/item/clothing/under/cohesion
|
||||
name = "black cohesion suit"
|
||||
desc = "A plain black cohesion suit intended to assist Prometheans in maintaining their form and prevent direct skin exposure."
|
||||
|
||||
@@ -2,4 +2,7 @@
|
||||
plantname = "ambrosia"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus
|
||||
plantname = "ambrosiadeus"
|
||||
plantname = "ambrosiadeus"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/sifpod
|
||||
plantname = "sifbulb"
|
||||
|
||||
@@ -292,6 +292,26 @@
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#FFDD00")
|
||||
set_trait(TRAIT_PLANT_COLOUR,"#D6B44D")
|
||||
|
||||
/datum/seed/apple/sif
|
||||
name = "sifbulb"
|
||||
seed_name = "sivian tree"
|
||||
display_name = "sivian tree"
|
||||
kitchen_tag = "apple"
|
||||
chems = list("nutriment" = list(1,5),"sifsap" = list(10,20))
|
||||
|
||||
/datum/seed/apple/sif/New()
|
||||
..()
|
||||
set_trait(TRAIT_HARVEST_REPEAT,1)
|
||||
set_trait(TRAIT_MATURATION,3)
|
||||
set_trait(TRAIT_PRODUCTION,10)
|
||||
set_trait(TRAIT_YIELD,3)
|
||||
set_trait(TRAIT_POTENCY,12)
|
||||
set_trait(TRAIT_PRODUCT_ICON,"alien3")
|
||||
set_trait(TRAIT_PRODUCT_COLOUR,"#0720c3")
|
||||
set_trait(TRAIT_PLANT_ICON,"tree5")
|
||||
set_trait(TRAIT_FLESH_COLOUR,"#05157d")
|
||||
set_trait(TRAIT_IDEAL_LIGHT, 1)
|
||||
|
||||
//Ambrosia/varieties.
|
||||
/datum/seed/ambrosia
|
||||
name = "ambrosia"
|
||||
|
||||
@@ -334,3 +334,6 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds)
|
||||
|
||||
/obj/item/seeds/gnomes
|
||||
seed_type = "gnomes"
|
||||
|
||||
/obj/item/seeds/sifbulb
|
||||
seed_type = "sifbulb"
|
||||
|
||||
@@ -386,6 +386,9 @@
|
||||
strict_color_stacking = TRUE
|
||||
drop_sound = 'sound/items/drop/clothing.ogg'
|
||||
|
||||
/obj/item/stack/material/cloth/diyaab
|
||||
color = "#c6ccf0"
|
||||
|
||||
/obj/item/stack/material/resin
|
||||
name = "resin"
|
||||
icon_state = "sheet-resin"
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 90),
|
||||
new /datum/data/mining_equipment("Geiger Counter", /obj/item/device/geiger, 75),
|
||||
new /datum/data/mining_equipment("Plush Toy", /obj/random/plushie, 30),
|
||||
<<<<<<< HEAD
|
||||
new /datum/data/mining_equipment("Extraction Equipment - Fulton Beacon",/obj/item/fulton_core, 300),
|
||||
new /datum/data/mining_equipment("Extraction Equipment - Fulton Pack",/obj/item/extraction_pack, 125),
|
||||
new /datum/data/mining_equipment("Umbrella", /obj/item/weapon/melee/umbrella/random, 20),
|
||||
@@ -52,6 +53,30 @@
|
||||
new /datum/data/mining_equipment("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 100),
|
||||
new /datum/data/mining_equipment("Durasteel Fishing Rod", /obj/item/weapon/material/fishing_rod/modern/strong, 750),
|
||||
new /datum/data/mining_equipment("Bar Shelter Capsule", /obj/item/device/survivalcapsule/luxurybar, 1000)
|
||||
=======
|
||||
new /datum/data/mining_equipment("Umbrella", /obj/item/weapon/melee/umbrella/random, 10),
|
||||
new /datum/data/mining_equipment("Extraction Equipment - Fulton Beacon", /obj/item/fulton_core, 100),
|
||||
new /datum/data/mining_equipment("Extraction Equipment - Fulton Pack", /obj/item/extraction_pack, 50),
|
||||
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card/survey, 50),
|
||||
new /datum/data/mining_equipment("Fishing Net", /obj/item/weapon/material/fishing_net, 50),
|
||||
new /datum/data/mining_equipment("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 50),
|
||||
new /datum/data/mining_equipment("Direct Payment - 1000", /obj/item/weapon/spacecash/c1000, 500),
|
||||
new /datum/data/mining_equipment("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed, 500),
|
||||
new /datum/data/mining_equipment("Survey Tools - Shovel", /obj/item/weapon/shovel, 20),
|
||||
new /datum/data/mining_equipment("Survey Tools - Mechanical Trap", /obj/item/weapon/beartrap, 30),
|
||||
new /datum/data/mining_equipment("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 100),
|
||||
new /datum/data/mining_equipment("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 300),
|
||||
new /datum/data/mining_equipment("Injector (L) - Glucose",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose, 30),
|
||||
new /datum/data/mining_equipment("Injector (L) - Panacea",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity, 30),
|
||||
new /datum/data/mining_equipment("Injector (L) - Trauma",/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute, 50),
|
||||
new /datum/data/mining_equipment("Nanopaste Tube", /obj/item/stack/nanopaste, 50),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Phase Pistol",/obj/item/weapon/gun/energy/phasegun/pistol, 15),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Smoke Bomb",/obj/item/weapon/grenade/smokebomb, 50),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Razor Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/manhacks/station, 50),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Sentry Drone Deployer",/obj/item/weapon/grenade/spawnergrenade/ward, 100),
|
||||
new /datum/data/mining_equipment("Defense Equipment - Steel Machete", /obj/item/weapon/material/knife/machete, 50),
|
||||
new /datum/data/mining_equipment("Survival Equipment - Insulated Poncho", /obj/random/thermalponcho, 75)
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
)
|
||||
//VOREStation Edit End
|
||||
|
||||
|
||||
@@ -151,6 +151,11 @@
|
||||
if (prob(50) && !shielded)
|
||||
Paralyse(10)
|
||||
|
||||
var/blastsoak = getsoak(null, "bomb")
|
||||
|
||||
b_loss = max(1, b_loss - blastsoak)
|
||||
f_loss = max(1, f_loss - blastsoak)
|
||||
|
||||
var/update = 0
|
||||
|
||||
// focus most of the blast on one organ
|
||||
|
||||
@@ -817,8 +817,8 @@
|
||||
//Handle normal clothing
|
||||
for(var/obj/item/clothing/C in list(head,wear_suit,w_uniform,shoes,gloves,wear_mask))
|
||||
if(C)
|
||||
if(C.max_heat_protection_temperature && C.max_heat_protection_temperature >= temperature)
|
||||
. |= C.heat_protection
|
||||
if(C.handle_low_temperature(temperature))
|
||||
. |= C.get_heat_protection_flags()
|
||||
|
||||
//See proc/get_heat_protection_flags(temperature) for the description of this proc.
|
||||
/mob/living/carbon/human/proc/get_cold_protection_flags(temperature)
|
||||
@@ -826,8 +826,8 @@
|
||||
//Handle normal clothing
|
||||
for(var/obj/item/clothing/C in list(head,wear_suit,w_uniform,shoes,gloves,wear_mask))
|
||||
if(C)
|
||||
if(C.min_cold_protection_temperature && C.min_cold_protection_temperature <= temperature)
|
||||
. |= C.cold_protection
|
||||
if(C.handle_high_temperature(temperature))
|
||||
. |= C.get_cold_protection_flags()
|
||||
|
||||
/mob/living/carbon/human/get_heat_protection(temperature) //Temperature is the temperature you're being exposed to.
|
||||
var/thermal_protection_flags = get_heat_protection_flags(temperature)
|
||||
|
||||
@@ -121,9 +121,7 @@
|
||||
|
||||
if(check_alien_ability(50,1,O_RESIN))
|
||||
visible_message("<span class='alium'><B>[src] has planted some alien weeds!</B></span>")
|
||||
var/obj/O = new /obj/effect/alien/weeds/node(loc)
|
||||
if(O)
|
||||
O.color = "#321D37"
|
||||
new /obj/effect/alien/weeds/node(get_turf(src), "#321D37")
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/Spit(var/atom/A)
|
||||
|
||||
@@ -72,6 +72,23 @@
|
||||
if(istype(O, /obj/item/weapon/material/knife))
|
||||
harvest(user)
|
||||
|
||||
if(user.a_intent == I_HELP && harvest_tool && istype(O, harvest_tool) && stat != DEAD)
|
||||
if(world.time > (harvest_recent + harvest_cooldown))
|
||||
livestock_harvest(O, user)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] can't be [harvest_verb] so soon.</span>")
|
||||
return
|
||||
|
||||
if(can_tame(O, user))
|
||||
to_chat(user, "<span class='notice'>You offer \the [src] \the [O].</span>")
|
||||
if(tame_prob(O, user))
|
||||
to_chat(user, "<span class='notice'>\The [src] appears to accept \the [O], seemingly calmed.</span>")
|
||||
do_tame(O,user)
|
||||
else
|
||||
fail_tame(O, user)
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
42
code/modules/mob/living/simple_mob/harvesting.dm
Normal file
@@ -0,0 +1,42 @@
|
||||
|
||||
/mob/living/simple_mob
|
||||
// What do you hit the mob with (on help) to get something from it?
|
||||
var/obj/harvest_tool
|
||||
// How long do we have to wait until it's harvestable again?
|
||||
var/harvest_cooldown = 10 MINUTES
|
||||
// How long does it take to harvest?
|
||||
var/harvest_delay = 30 SECONDS
|
||||
// What world.time was the last harvest?
|
||||
var/harvest_recent = 0
|
||||
// How many times can we roll at max on the chance table?
|
||||
var/harvest_per_hit = 1
|
||||
// Verb for harvesting. "sheared" "clipped" etc.
|
||||
var/harvest_verb = "harvested"
|
||||
// Associative list of paths and their chances. path = straws in the lot
|
||||
var/list/harvest_results
|
||||
|
||||
/mob/living/simple_mob/examine(mob/user)
|
||||
..(user)
|
||||
if(user && harvest_tool && (get_dist(user, src) <= 3))
|
||||
to_chat(user, "<span class='notice'>\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes.</span>")
|
||||
var/time_to_harvest = (harvest_recent + harvest_cooldown) - world.time
|
||||
if(time_to_harvest > 0)
|
||||
to_chat(user, "<span class='notice'>It can be [harvest_verb] in [time_to_harvest / (1 MINUTE)] second(s).</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It can be [harvest_verb] now.</span>")
|
||||
|
||||
/mob/living/simple_mob/proc/livestock_harvest(var/obj/item/tool, var/mob/living/user)
|
||||
if(!LAZYLEN(harvest_results)) // Might be a unique interaction of an object using the proc to do something weird, or just someone's a donk.
|
||||
harvest_recent = world.time
|
||||
return
|
||||
|
||||
if(istype(tool, harvest_tool)) // Sanity incase something incorrect is passed in.
|
||||
harvest_recent = world.time
|
||||
|
||||
var/max_harvests = rand(1,harvest_per_hit)
|
||||
|
||||
for(var/I = 1 to max_harvests)
|
||||
var/new_path = pickweight(harvest_results)
|
||||
new new_path(get_turf(user))
|
||||
|
||||
return
|
||||
@@ -100,6 +100,12 @@
|
||||
|
||||
say_list_type = /datum/say_list/spider
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/xenomeat = 10,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab = 40,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 20
|
||||
)
|
||||
|
||||
var/poison_type = "spidertoxin" // The reagent that gets injected when it attacks.
|
||||
var/poison_chance = 10 // Chance for injection to occur.
|
||||
var/poison_per_bite = 5 // Amount added per injection.
|
||||
|
||||
@@ -45,6 +45,11 @@
|
||||
poison_per_bite = 0.5
|
||||
poison_type = "phoron"
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/tank/phoron = 20,
|
||||
/obj/item/stack/material/phoron = 30
|
||||
)
|
||||
|
||||
var/exploded = FALSE
|
||||
var/explosion_dev_range = 1
|
||||
var/explosion_heavy_range = 2
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/crab/sif/Initialize()
|
||||
..()
|
||||
adjust_scale(rand(5,15) / 10)
|
||||
adjust_scale(rand(5,12) / 10)
|
||||
|
||||
// Meat!
|
||||
|
||||
|
||||
@@ -166,11 +166,15 @@
|
||||
/mob/living/simple_mob/animal/passive/fish/icebass/update_icon()
|
||||
overlays.Cut()
|
||||
..()
|
||||
|
||||
if(!dorsal_image)
|
||||
dorsal_image = image(icon, "[icon_state]_mask-body")
|
||||
if(!belly_image)
|
||||
belly_image = image(icon, "[icon_state]_mask-belly")
|
||||
|
||||
dorsal_image.icon_state = "[icon_state]_mask-body"
|
||||
belly_image.icon_state = "[icon_state]_mask-belly"
|
||||
|
||||
dorsal_image.color = dorsal_color
|
||||
belly_image.color = belly_color
|
||||
|
||||
@@ -237,6 +241,8 @@
|
||||
if(!head_image)
|
||||
head_image = image(icon, "[icon_state]_mask")
|
||||
|
||||
head_image.icon_state = "[icon_state]_mask"
|
||||
|
||||
head_image.color = head_color
|
||||
|
||||
overlays += head_image
|
||||
|
||||
@@ -40,6 +40,23 @@
|
||||
say_list_type = /datum/say_list/diyaab
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/cooperative
|
||||
|
||||
// What do you hit the mob with (on help) to get something from it?
|
||||
harvest_tool = /obj/item/weapon/tool/wirecutters
|
||||
// How long do we have to wait until it's harvestable again?
|
||||
harvest_cooldown = 10 MINUTES
|
||||
// How long does it take to harvest?
|
||||
harvest_delay = 30 SECONDS
|
||||
// What world.time was the last harvest?
|
||||
harvest_recent = 0
|
||||
// How many times do we roll on the chance table?
|
||||
harvest_per_hit = 1
|
||||
// Verb for harvesting. "sheared" "clipped" etc.
|
||||
harvest_verb = "sheared"
|
||||
// Associative list of paths and their chances. path = straws in the lot
|
||||
harvest_results = list(
|
||||
/obj/item/stack/material/cloth/diyaab = 10
|
||||
)
|
||||
|
||||
/datum/say_list/diyaab
|
||||
speak = list("Awrr?", "Aowrl!", "Worrl.")
|
||||
emote_see = list("sniffs the air cautiously","looks around")
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
Family units have been observed to form gangs and scavenge from Sivian domeciles and \
|
||||
various food transports during stressful months. \
|
||||
It is advised to seal and hide any form of food near even lone individuals, as they will become \
|
||||
increasingly aggressive."
|
||||
increasingly aggressive in order to acquire it."
|
||||
value = CATALOGUER_REWARD_EASY
|
||||
|
||||
/mob/living/simple_mob/animal/sif/duck
|
||||
@@ -38,6 +38,11 @@
|
||||
attack_edge = 1 // Razor-edged wings, and 'claws' made for digging through ice.
|
||||
attacktext = list("nipped", "bit", "cut", "clawed")
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread = 90,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/slice/bread = 25
|
||||
)
|
||||
|
||||
say_list_type = /datum/say_list/duck
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/cooperative
|
||||
|
||||
|
||||
@@ -52,6 +52,12 @@
|
||||
|
||||
attacktext = list("bit", "buffeted", "slashed")
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown = 90,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab = 10,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 5
|
||||
)
|
||||
|
||||
say_list_type = /datum/say_list/glitterfly
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/glitterfly
|
||||
|
||||
@@ -81,6 +87,17 @@
|
||||
/mob/living/simple_mob/animal/sif/glitterfly/rare/Initialize()
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/glitterfly/unique_tame_check(var/obj/O, var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(.)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O
|
||||
|
||||
if(G.seed && G.seed.kitchen_tag == "berries")
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/say_list/glitterfly
|
||||
speak = list("Pi..","Po...", "Pa...")
|
||||
emote_see = list("vibrates","flutters", "twirls")
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
icon_state = "bigcat"
|
||||
icon_living = "bigcat"
|
||||
icon_dead = "bigcat_dead"
|
||||
icon_rest = "bigcat_rest"
|
||||
icon_rest = "bigcat_sleep"
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
|
||||
default_pixel_x = -16
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/apply_melee_effects(atom/A) // Only gains instinct.
|
||||
instinct += rand(1, 2)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/should_special_attack(atom/A)
|
||||
return has_modifier_of_type(/datum/modifier/ace)
|
||||
@@ -136,6 +136,8 @@
|
||||
set_AI_busy(TRUE)
|
||||
rending_strike(A)
|
||||
set_AI_busy(FALSE)
|
||||
a_intent = I_HURT
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/verb/do_flash()
|
||||
set category = "Abilities"
|
||||
@@ -329,6 +331,15 @@
|
||||
else
|
||||
remove_modifiers_of_type(/datum/modifier/ace)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/kururak/hibernate/Initialize()
|
||||
..()
|
||||
lay_down()
|
||||
instinct = 0
|
||||
|
||||
/*
|
||||
* Kururak AI
|
||||
*/
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/kururak
|
||||
hostile = FALSE
|
||||
retaliate = TRUE
|
||||
@@ -359,6 +370,8 @@
|
||||
else
|
||||
hostile = initial(hostile)
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/kururak/pre_special_attack(atom/A)
|
||||
holder.a_intent = I_HURT
|
||||
if(isliving(A))
|
||||
@@ -378,9 +391,12 @@
|
||||
else if(istype(A, /obj/mecha))
|
||||
holder.a_intent = I_GRAB
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/kururak/post_melee_attack()
|
||||
if(holder.has_modifier_of_type(/datum/modifier/ace))
|
||||
request_help()
|
||||
return ..()
|
||||
|
||||
// Kururak Ace modifier, given to the one with the highest Instinct.
|
||||
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
desc = "What appears to be an oversized rodent with hands. This one has a curious look in its eyes."
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/sakimm
|
||||
randomize_size = FALSE // Most likely to have a hat.
|
||||
melee_attack_delay = 0 // For some reason, having a delay makes item pick-up not work.
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/sakimm
|
||||
hostile = FALSE
|
||||
|
||||
@@ -44,6 +44,12 @@
|
||||
player_msg = "You have the ability to <b>berserk at will</b>, which will grant strong physical bonuses for \
|
||||
a short period of time, however it will tire you and you will be much weaker for awhile after it expires."
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/organ = 70,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab = 30,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 20
|
||||
)
|
||||
|
||||
say_list_type = /datum/say_list/savik
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/savik
|
||||
|
||||
@@ -57,6 +63,12 @@
|
||||
if(health <= (maxHealth * 0.5)) // At half health, and fighting someone currently.
|
||||
berserk()
|
||||
|
||||
/mob/living/simple_mob/animal/sif/savik/fail_tame(var/obj/O, var/mob/user)
|
||||
..()
|
||||
|
||||
if(prob(30)) // They don't like people messing with them and their food.
|
||||
berserk()
|
||||
|
||||
/datum/ai_holder/simple_mob/savik
|
||||
mauling = TRUE
|
||||
|
||||
|
||||
@@ -93,14 +93,18 @@
|
||||
rally_pack()
|
||||
return ..()
|
||||
|
||||
|
||||
// These ones only retaliate. Used for a PoI.
|
||||
// These ones only retaliate. Used for PoIs.
|
||||
/mob/living/simple_mob/animal/sif/shantak/retaliate
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
|
||||
|
||||
<<<<<<< HEAD
|
||||
//Vorestation Addition
|
||||
/mob/living/simple_mob/animal/sif/shantak/scruffy
|
||||
name = "Scruffy"
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/passive
|
||||
makes_dirt = 0
|
||||
faction = "neutral"
|
||||
faction = "neutral"
|
||||
=======
|
||||
/mob/living/simple_mob/animal/sif/shantak/leader/autofollow/retaliate
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
/mob/living/simple_mob/animal/sif
|
||||
minbodytemp = 175
|
||||
cold_resist = 0.75
|
||||
heat_resist = -0.5
|
||||
heat_resist = -0.5
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/crab = 20,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 10
|
||||
)
|
||||
|
||||
@@ -89,6 +89,11 @@
|
||||
firing_lanes = TRUE // But not your buddies!
|
||||
conserve_ammo = TRUE // And don't go wasting bullets!
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/ranged/sniper
|
||||
vision_range = 14 // We're a person with a long-ranged gun.
|
||||
|
||||
/datum/ai_holder/simple_mob/merc/ranged/sniper/max_range(atom/movable/AM)
|
||||
return holder.ICheckRangedAttack(AM) ? 14 : 1
|
||||
|
||||
////////////////////////////////
|
||||
// Melee
|
||||
@@ -174,6 +179,27 @@
|
||||
base_attack_cooldown = 5 // Two attacks a second or so.
|
||||
reload_max = 20
|
||||
|
||||
// Rifles
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/rifle
|
||||
icon_state = "syndicateranged_rifle"
|
||||
icon_living = "syndicateranged_rifle"
|
||||
|
||||
loot_list = list(/obj/item/weapon/gun/projectile/automatic/z8 = 100)
|
||||
|
||||
projectilesound = 'sound/weapons/Gunshot_heavy.ogg'
|
||||
projectiletype = /obj/item/projectile/bullet/rifle/a762
|
||||
projectile_dispersion = 8
|
||||
projectile_accuracy = -15
|
||||
base_attack_cooldown = 5
|
||||
reload_max = 30
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag
|
||||
loot_list = list(/obj/item/weapon/gun/magnetic/railgun/flechette = 100)
|
||||
projectiletype = /obj/item/projectile/bullet/magnetic/flechette
|
||||
|
||||
projectilesound = 'sound/weapons/rapidslice.ogg'
|
||||
reload_max = 10
|
||||
|
||||
// Laser Rifle
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/laser
|
||||
icon_state = "syndicateranged_laser"
|
||||
@@ -214,6 +240,89 @@
|
||||
projectile_accuracy = -40
|
||||
special_attack_charges = 5
|
||||
|
||||
// Technician, also kind of a miniboss. Carries a dartgun and manhack launcher.
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/technician
|
||||
icon_state = "syndicateranged_technician"
|
||||
icon_living = "syndicateranged_technician"
|
||||
projectiletype = /obj/item/projectile/fake_syringe/poison // Toxin dart.
|
||||
projectilesound = 'sound/weapons/Gunshot_old.ogg'
|
||||
|
||||
loot_list = list(/obj/item/weapon/gun/projectile/dartgun = 100,
|
||||
/obj/item/weapon/gun/launcher/grenade = 100,
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary = 50,
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary = 30
|
||||
)
|
||||
|
||||
reload_max = 5
|
||||
reload_time = 1 SECOND
|
||||
|
||||
// Manhacks.
|
||||
grenade_type = /obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary
|
||||
|
||||
projectile_dispersion = 8
|
||||
projectile_accuracy = -40
|
||||
special_attack_charges = 5
|
||||
|
||||
// Sniper, definitely a miniboss, based on its massive range advantage, and method of battle.
|
||||
// Creates a beam for 2 seconds, fire after another .5, then a 5 second reload.
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/sniper
|
||||
icon_state = "syndicateranged_sniper"
|
||||
icon_living = "syndicateranged_sniper"
|
||||
projectiletype = /obj/item/projectile/bullet/rifle/a145/highvel // Really scary bullet.
|
||||
projectilesound = 'sound/weapons/Gunshot_cannon.ogg'
|
||||
|
||||
projectile_accuracy = 75
|
||||
|
||||
reload_max = 1
|
||||
reload_time = 5 SECONDS
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/ranged/sniper
|
||||
|
||||
ranged_attack_delay = 2.5 SECONDS
|
||||
|
||||
loot_list = list(/obj/item/sniper_rifle_part/barrel = 50,
|
||||
/obj/item/sniper_rifle_part/stock = 50,
|
||||
/obj/item/sniper_rifle_part/trigger_group = 50,
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary = 90
|
||||
)
|
||||
|
||||
// Babyfrags.
|
||||
grenade_type = /obj/item/weapon/grenade/explosive/mini
|
||||
// Babyfrags go a long way.
|
||||
special_attack_min_range = 6
|
||||
special_attack_max_range = 10
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/sniper/ranged_pre_animation(atom/A)
|
||||
Beam(get_turf(A), icon_state = "sniper_beam", time = 2 SECONDS, maxdistance = 15)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/sniper/shoot_target(atom/A)
|
||||
set waitfor = FALSE
|
||||
setClickCooldown(get_attack_speed())
|
||||
|
||||
face_atom(A)
|
||||
|
||||
var/atom/orig_targ = A
|
||||
|
||||
if(ranged_attack_delay)
|
||||
A = get_turf(orig_targ)
|
||||
ranged_pre_animation(A)
|
||||
handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false.
|
||||
|
||||
if(needs_reload)
|
||||
if(reload_count >= reload_max)
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [orig_targ]!</span>")
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
if(ranged_attack_delay)
|
||||
ranged_post_animation(A)
|
||||
|
||||
return TRUE
|
||||
|
||||
////////////////////////////////
|
||||
// Space Mercs
|
||||
@@ -274,24 +383,39 @@
|
||||
// PoI Mercs
|
||||
////////////////////////////////
|
||||
|
||||
// None of these drop weapons, until we have a better way to balance them
|
||||
// Most likely to drop a broken weapon matching them, if it's a gun.
|
||||
/mob/living/simple_mob/humanoid/merc/melee/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/item/weapon/material/knife/tacknife/combatknife = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/melee/sword/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/item/weapon/melee/energy/sword/color = 20,
|
||||
/obj/item/weapon/shield/energy = 40
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/random/projectile/scrapped_pistol = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/smg/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/random/projectile/scrapped_smg = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/laser/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/random/projectile/scrapped_laser = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/ionrifle
|
||||
loot_list = list()
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/ionrifle/poi
|
||||
loot_list = list(/obj/random/projectile/scrapped_ionrifle = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/grenadier/poi
|
||||
loot_list = list()
|
||||
loot_list = list(/obj/random/projectile/scrapped_shotgun = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/rifle/poi
|
||||
loot_list = list(/obj/random/projectile/scrapped_bulldog = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi
|
||||
loot_list = list(/obj/random/projectile/scrapped_flechette = 100)
|
||||
|
||||
/mob/living/simple_mob/humanoid/merc/ranged/technician/poi
|
||||
loot_list = list(/obj/random/projectile/scrapped_dartgun = 100,
|
||||
/obj/random/projectile/scrapped_grenadelauncher = 100,
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary = 50,
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks/mercenary = 30
|
||||
)
|
||||
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
Mining drones have a slow-firing, armor-piercing beam that can destroy rocks.
|
||||
They will, if "tamed", collect ore and deposit it into nearby oreboxes when adjacent.
|
||||
*/
|
||||
|
||||
/datum/category_item/catalogue/technology/drone/mining_drone
|
||||
name = "Drone - Mining Drone"
|
||||
desc = "A crude modification of the commonly seen combat drone model, usually created\
|
||||
from the salvaged husks that litter debris fields. Capable of crude problem solving,\
|
||||
the drone's targeting system has been repurposed for locating suitable ores, though even\
|
||||
that is only functional in certain conditions.\
|
||||
<br><br>\
|
||||
These drones are armed with high-power mining emitters, which makes their decrepit forms\
|
||||
just as lethal as they were in their prime. Modified thrust vectoring devices allow them\
|
||||
to gather ore effectively without expending mechanical energy."
|
||||
value = CATALOGUER_REWARD_MEDIUM
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone
|
||||
name = "mining drone"
|
||||
desc = "An automated drone with a worn-out appearance, but an ominous gaze."
|
||||
catalogue_data = list(/datum/category_item/catalogue/technology/drone/mining_drone)
|
||||
|
||||
icon_state = "miningdrone"
|
||||
icon_living = "miningdrone"
|
||||
icon_dead = "miningdrone_dead"
|
||||
has_eye_glow = TRUE
|
||||
|
||||
faction = "malf_drone"
|
||||
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
movement_cooldown = 5
|
||||
hovering = TRUE
|
||||
|
||||
base_attack_cooldown = 5
|
||||
projectiletype = /obj/item/projectile/energy/excavate
|
||||
projectilesound = 'sound/weapons/pulse3.ogg'
|
||||
|
||||
response_help = "pokes"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening
|
||||
say_list_type = /datum/say_list/malf_drone
|
||||
|
||||
tame_items = list(
|
||||
/obj/item/weapon/ore/verdantium = 90,
|
||||
/obj/item/weapon/ore/hydrogen = 90,
|
||||
/obj/item/weapon/ore/osmium = 70,
|
||||
/obj/item/weapon/ore/diamond = 70,
|
||||
/obj/item/weapon/ore/gold = 55,
|
||||
/obj/item/weapon/ore/silver = 55,
|
||||
/obj/item/weapon/ore/lead = 40,
|
||||
/obj/item/weapon/ore/marble = 30,
|
||||
/obj/item/weapon/ore/coal = 25,
|
||||
/obj/item/weapon/ore/iron = 25,
|
||||
/obj/item/weapon/ore/glass = 15,
|
||||
/obj/item/weapon/ore = 5
|
||||
)
|
||||
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail = null
|
||||
var/obj/item/shield_projector/shields = null
|
||||
var/obj/item/weapon/storage/bag/ore/my_storage = null
|
||||
|
||||
var/last_search = 0
|
||||
var/search_cooldown = 5 SECONDS
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/Initialize()
|
||||
ion_trail = new
|
||||
ion_trail.set_up(src)
|
||||
ion_trail.start()
|
||||
|
||||
my_storage = new /obj/item/weapon/storage/bag/ore(src)
|
||||
shields = new /obj/item/shield_projector/rectangle/automatic/drone(src)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/Destroy()
|
||||
QDEL_NULL(ion_trail)
|
||||
QDEL_NULL(shields)
|
||||
QDEL_NULL(my_storage)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/death()
|
||||
my_storage.forceMove(get_turf(src))
|
||||
my_storage = null
|
||||
..(null,"suddenly breaks apart.")
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/Process_Spacemove(var/check_drift = 0)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/IIsAlly(mob/living/L)
|
||||
. = ..()
|
||||
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(!istype(H))
|
||||
return .
|
||||
|
||||
if(!.)
|
||||
var/has_tool = FALSE
|
||||
var/obj/item/I = H.get_active_hand()
|
||||
if(istype(I,/obj/item/weapon/pickaxe))
|
||||
has_tool = TRUE
|
||||
return has_tool
|
||||
|
||||
/mob/living/simple_mob/mechanical/mining_drone/handle_special()
|
||||
if(my_storage && (get_AI_stance() in list(STANCE_APPROACH, STANCE_IDLE, STANCE_FOLLOW)) && !is_AI_busy() && isturf(loc) && (world.time > last_search + search_cooldown) && (my_storage.contents.len < my_storage.max_storage_space))
|
||||
last_search = world.time
|
||||
|
||||
for(var/turf/T in view(world.view,src))
|
||||
if(my_storage.contents.len >= my_storage.max_storage_space)
|
||||
break
|
||||
|
||||
if((locate(/obj/item/weapon/ore) in T) && prob(40))
|
||||
src.Beam(T, icon_state = "holo_beam", time = 0.5 SECONDS)
|
||||
my_storage.rangedload(T, src)
|
||||
|
||||
if(my_storage.contents.len >= my_storage.max_storage_space)
|
||||
visible_message("<span class='notice'>\The [src] emits a shrill beep, indicating its storage is full.</span>")
|
||||
|
||||
var/obj/structure/ore_box/OB = locate() in view(2, src)
|
||||
|
||||
if(istype(OB) && my_storage && my_storage.contents.len)
|
||||
src.Beam(OB, icon_state = "rped_upgrade", time = 1 SECONDS)
|
||||
for(var/obj/item/I in my_storage)
|
||||
my_storage.remove_from_storage(I, OB)
|
||||
@@ -67,4 +67,16 @@
|
||||
// Variant that starts in defense mode, perhaps for PoIs.
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/durand/defensive/Initialize()
|
||||
set_defense_mode(TRUE)
|
||||
<<<<<<< HEAD
|
||||
return ..()
|
||||
=======
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/durand/defensive/mercenary
|
||||
desc = "An aging combat exosuit utilized by many corporations. It was originally developed to fight in the First Contact War.\
|
||||
This one has been retrofitted into a turret."
|
||||
|
||||
projectiletype = /obj/item/projectile/beam/heavylaser/fakeemitter
|
||||
|
||||
pilot_type = /mob/living/simple_mob/humanoid/merc/ranged
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
62
code/modules/mob/living/simple_mob/taming.dm
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
/mob/living/simple_mob
|
||||
// Assoc list of items that can be given to a mob to befriend it, and the percent success.
|
||||
var/list/tame_items
|
||||
// List of mobs who are 'friends'.
|
||||
var/list/tamers
|
||||
|
||||
/mob/living/simple_mob/IIsAlly(mob/living/L)
|
||||
. = ..()
|
||||
|
||||
if(!. && LAZYLEN(tamers))
|
||||
listclearnulls(tamers)
|
||||
if(L in tamers)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_mob/proc/can_tame(var/obj/O, var/mob/user)
|
||||
if(!LAZYLEN(tame_items))
|
||||
return FALSE
|
||||
|
||||
if(!user)
|
||||
return FALSE
|
||||
|
||||
if(!O)
|
||||
return FALSE
|
||||
|
||||
for(var/path in tame_items)
|
||||
if(istype(O, path) && unique_tame_check(O,user))
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_mob/proc/unique_tame_check(var/obj/O, var/mob/user)
|
||||
if(do_after(user, 0.5 SECONDS, src))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_mob/proc/tame_prob(var/obj/O, var/mob/user)
|
||||
for(var/path in tame_items)
|
||||
if(istype(O, path))
|
||||
if(prob(tame_items[path]))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_mob/proc/do_tame(var/obj/O, var/mob/user)
|
||||
if(!user)
|
||||
return
|
||||
|
||||
if(!LAZYLEN(tamers))
|
||||
tamers = list()
|
||||
|
||||
handle_tame_item(O, user)
|
||||
|
||||
tamers |= user
|
||||
ai_holder.forget_everything()
|
||||
|
||||
/mob/living/simple_mob/proc/handle_tame_item(var/obj/O, var/mob/user)
|
||||
user.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
|
||||
/mob/living/simple_mob/proc/fail_tame(var/obj/O, var/mob/user)
|
||||
user.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
@@ -287,6 +287,14 @@
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1250)
|
||||
|
||||
/obj/item/ammo_casing/a145/highvel
|
||||
desc = "A 14.5mm sabot shell."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
|
||||
/obj/item/ammo_casing/a145/spent/Initialize()
|
||||
..()
|
||||
expend()
|
||||
|
||||
/*
|
||||
* 5.45mm
|
||||
*/
|
||||
|
||||
134
code/modules/projectiles/broken.dm
Normal file
@@ -0,0 +1,134 @@
|
||||
|
||||
/obj/item/weapon/broken_gun
|
||||
desc = "The remains of an unfortunate firearm."
|
||||
|
||||
var/obj/item/weapon/gun/my_guntype = null
|
||||
|
||||
// Materials needed for repair. Associative list, path - number of items
|
||||
var/list/material_needs
|
||||
|
||||
var/do_rotation = TRUE
|
||||
|
||||
/obj/item/weapon/broken_gun/New(var/newloc, var/path)
|
||||
..()
|
||||
if(path)
|
||||
if(!setup_gun(path))
|
||||
qdel(src)
|
||||
return
|
||||
setup_repair_needs()
|
||||
|
||||
/obj/item/weapon/broken_gun/Initialize()
|
||||
..()
|
||||
spawn(30 SECONDS)
|
||||
if(!my_guntype && !QDELETED(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/broken_gun/examine(mob/user)
|
||||
..()
|
||||
if(get_dist(get_turf(user),get_turf(src)) <= 1)
|
||||
to_chat(user, "<span class='notice'>You begin inspecting \the [src].</span>")
|
||||
|
||||
if(do_after(user, 5 SECONDS))
|
||||
to_chat(user, "<span class='notice'>\The [src] can possibly be restored with:</span>")
|
||||
for(var/resource in material_needs)
|
||||
if(material_needs[resource] > 0)
|
||||
to_chat(user, "<span class='notice'>- \icon [resource] x [material_needs[resource]] [resource]</span>")
|
||||
|
||||
/obj/item/weapon/broken_gun/proc/setup_gun(var/obj/item/weapon/gun/path)
|
||||
if(ispath(path))
|
||||
name = "[pick("busted", "broken", "shattered", "scrapped")] [initial(path.name)]"
|
||||
icon = initial(path.icon)
|
||||
icon_state = initial(path.icon_state)
|
||||
|
||||
my_guntype = path
|
||||
|
||||
w_class = initial(path.w_class)
|
||||
|
||||
if(do_rotation)
|
||||
adjust_rotation(rand() * pick(-1,1) * rand(0, 45))
|
||||
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/weapon/broken_gun/proc/setup_repair_needs()
|
||||
if(!LAZYLEN(material_needs))
|
||||
material_needs = list()
|
||||
|
||||
if(prob(40))
|
||||
var/chosen_mat = pick(/obj/item/stack/material/plastic, /obj/item/stack/material/plasteel, /obj/item/stack/material/glass)
|
||||
material_needs[chosen_mat] = rand(1, 3)
|
||||
|
||||
if(prob(30))
|
||||
var/component_needed = pick(/obj/item/weapon/stock_parts/gear,/obj/item/weapon/stock_parts/spring,/obj/item/weapon/stock_parts/manipulator)
|
||||
material_needs[component_needed] = rand(1,3)
|
||||
|
||||
if(ispath(my_guntype, /obj/item/weapon/gun/energy) && prob(25))
|
||||
var/component_needed = pick(/obj/item/stack/cable_coil, /obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/capacitor)
|
||||
material_needs[component_needed] = rand(1,3)
|
||||
|
||||
if(ispath(my_guntype, /obj/item/weapon/gun/launcher) && prob(50))
|
||||
var/component_needed = pick(/obj/item/weapon/tape_roll, /obj/item/weapon/material/wirerod)
|
||||
material_needs[component_needed] = 1
|
||||
|
||||
if(ispath(my_guntype, /obj/item/weapon/gun/magnetic) && prob(70))
|
||||
var/component_needed = pick(/obj/item/weapon/smes_coil, /obj/item/device/assembly/prox_sensor, /obj/item/weapon/module/power_control)
|
||||
material_needs[component_needed] = 1
|
||||
|
||||
material_needs[/obj/item/stack/material/steel] = rand(1,5)
|
||||
|
||||
/obj/item/weapon/broken_gun/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(can_repair_with(W, user))
|
||||
if(do_after(user, (rand() * 10 SECONDS) + 5 SECONDS))
|
||||
repair_with(W, user)
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/weapon/broken_gun/proc/can_repair_with(obj/item/I, mob/user)
|
||||
for(var/path in material_needs)
|
||||
if(ispath(path) && istype(I, path))
|
||||
if(material_needs[path] > 0)
|
||||
if(istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/S = I
|
||||
if(S.can_use(material_needs[path]))
|
||||
return TRUE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You do not have enough [path] to continue repairs.</span>")
|
||||
else
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/weapon/broken_gun/proc/repair_with(obj/item/I, mob/user)
|
||||
for(var/path in material_needs)
|
||||
if(ispath(path) && istype(I, path))
|
||||
if(material_needs[path] > 0)
|
||||
if(istype(I, /obj/item/stack))
|
||||
var/obj/item/stack/S = I
|
||||
if(S.can_use(material_needs[path]))
|
||||
S.use(material_needs[path])
|
||||
material_needs[path] = 0
|
||||
to_chat(user, "<span class='notice'>You repair some damage on \the [src] with \the [S].</span>")
|
||||
else
|
||||
material_needs[path] = max(0, material_needs[path] - 1)
|
||||
user.drop_from_inventory(I)
|
||||
to_chat(user, "<span class='notice'>You repair some damage on \the [src] with \the [I].</span>")
|
||||
qdel(I)
|
||||
|
||||
check_complete_repair(user)
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/broken_gun/proc/check_complete_repair(mob/user)
|
||||
var/fully_repaired = TRUE
|
||||
for(var/resource in material_needs)
|
||||
if(material_needs[resource] > 0)
|
||||
fully_repaired = FALSE
|
||||
break
|
||||
|
||||
if(fully_repaired)
|
||||
my_guntype = new my_guntype(get_turf(src))
|
||||
my_guntype.name = "[pick("salvaged", "repaired", "old")] [initial(my_guntype.name)]"
|
||||
to_chat(user, "<span class='notice'>You finish your repairs on \the [my_guntype].</span>")
|
||||
qdel(src)
|
||||
9
code/modules/projectiles/brokenguns/energy.dm
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
/obj/item/weapon/broken_gun/laserrifle/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/energy/laser/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/laser_retro/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/energy/retro/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/ionrifle/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/energy/ionrifle/empty)
|
||||
3
code/modules/projectiles/brokenguns/launcher.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
/obj/item/weapon/broken_gun/grenadelauncher/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/launcher/grenade)
|
||||
3
code/modules/projectiles/brokenguns/magnetic.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
/obj/item/weapon/broken_gun/flechette/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/magnetic/railgun/flechette)
|
||||
18
code/modules/projectiles/brokenguns/projectile.dm
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
/obj/item/weapon/broken_gun/c20r/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/automatic/c20r/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/silenced45/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/silenced/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/pumpshotgun/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/shotgun/pump/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/pumpshotgun_combat/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/shotgun/pump/combat/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/z8/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/automatic/z8/empty)
|
||||
|
||||
/obj/item/weapon/broken_gun/dartgun/New(var/newloc)
|
||||
..(newloc, /obj/item/weapon/gun/projectile/dartgun)
|
||||
@@ -19,6 +19,9 @@
|
||||
list(mode_name="suppressive", fire_delay=5, projectile_type=/obj/item/projectile/beam/weaklaser, charge_cost = 60),
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/empty
|
||||
cell_type = null
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/mounted
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
@@ -175,7 +178,7 @@
|
||||
force = 10
|
||||
w_class = ITEMSIZE_HUGE // So it can't fit in a backpack.
|
||||
accuracy = -45 //shooting at the hip
|
||||
scoped_accuracy = 0
|
||||
scoped_accuracy = 50
|
||||
one_handed_penalty = 60 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand.
|
||||
|
||||
/obj/item/weapon/gun/energy/sniperrifle/ui_action_click()
|
||||
@@ -192,7 +195,8 @@
|
||||
name = "antique mono-rifle"
|
||||
desc = "An old laser rifle. This one can only fire once before requiring recharging."
|
||||
description_fluff = "Modeled after ancient hunting rifles, this rifle was dubbed the 'Rainy Day Special' by some, due to its use as some barmens' fight-stopper of choice. One shot is all it takes, or so they say."
|
||||
icon_state = "eshotgun"
|
||||
icon = 'icons/obj/energygun.dmi'
|
||||
icon_state = "mono"
|
||||
item_state = "shotgun"
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_POWER = 3)
|
||||
projectile_type = /obj/item/projectile/beam/sniper
|
||||
@@ -204,6 +208,7 @@
|
||||
w_class = ITEMSIZE_LARGE
|
||||
accuracy = 10
|
||||
scoped_accuracy = 15
|
||||
charge_meter = FALSE
|
||||
var/scope_multiplier = 1.5
|
||||
|
||||
/obj/item/weapon/gun/energy/monorifle/ui_action_click()
|
||||
@@ -220,7 +225,7 @@
|
||||
name = "combat mono-rifle"
|
||||
desc = "A modernized version of the mono-rifle. This one can fire twice before requiring recharging."
|
||||
description_fluff = "A modern design produced by a company once working from Saint Columbia, based on the antique mono-rifle 'Rainy Day Special' design."
|
||||
icon_state = "ecshotgun"
|
||||
icon_state = "cmono"
|
||||
item_state = "cshotgun"
|
||||
charge_cost = 1000
|
||||
force = 12
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
/obj/item/weapon/gun/energy/ionrifle/emp_act(severity)
|
||||
..(max(severity, 4)) //so it doesn't EMP itself, I guess
|
||||
|
||||
/obj/item/weapon/gun/energy/ionrifle/empty
|
||||
cell_type = null
|
||||
|
||||
/obj/item/weapon/gun/energy/ionrifle/pistol
|
||||
name = "ion pistol"
|
||||
desc = "The NT Mk63 EW Pan is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. This model sacrifices capacity for portability."
|
||||
|
||||
@@ -58,6 +58,9 @@
|
||||
|
||||
// one_handed_penalty = 15
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r/empty
|
||||
magazine_type = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r/update_icon()
|
||||
..()
|
||||
if(ammo_magazine)
|
||||
@@ -192,6 +195,9 @@
|
||||
else
|
||||
. += "\The [launcher] is empty."
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/z8/empty
|
||||
magazine_type = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw
|
||||
name = "light machine gun"
|
||||
desc = "A rather traditionally made L6 SAW with a pleasantly lacquered wooden pistol grip. 'Aussec Armoury-2531' is engraved on the reciever. Uses 5.45mm rounds. It's also compatible with magazines from STS-35 assault rifles."
|
||||
|
||||
@@ -125,6 +125,9 @@
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m45)
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/weapon/gun/projectile/silenced/empty
|
||||
magazine_type = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/deagle
|
||||
name = "desert eagle"
|
||||
desc = "The perfect handgun for shooters with a need to hit targets through a wall and behind a fridge in your neighbor's house. Uses .44 rounds."
|
||||
|
||||
@@ -54,6 +54,9 @@
|
||||
else
|
||||
icon_state = "[icon_state]-empty"
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/empty
|
||||
ammo_type = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/slug
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
|
||||
@@ -67,6 +70,9 @@
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
load_method = SINGLE_CASING|SPEEDLOADER
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat/empty
|
||||
ammo_type = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel
|
||||
name = "double-barreled shotgun"
|
||||
desc = "A truely classic weapon. No need to change what works. Uses 12g rounds."
|
||||
|
||||
@@ -216,6 +216,16 @@
|
||||
armor_penetration = 80
|
||||
hitscan = 1 //so the PTR isn't useless as a sniper weapon
|
||||
|
||||
icon_state = "bullet_alt"
|
||||
tracer_type = /obj/effect/projectile/tracer/cannon
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a145/highvel
|
||||
damage = 50
|
||||
stun = 1
|
||||
weaken = 0
|
||||
penetrating = 15
|
||||
armor_penetration = 90
|
||||
|
||||
/* Miscellaneous */
|
||||
|
||||
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
|
||||
|
||||
@@ -101,6 +101,19 @@
|
||||
|
||||
combustion = FALSE
|
||||
|
||||
/obj/item/projectile/energy/excavate
|
||||
name = "kinetic blast"
|
||||
icon_state = "kinetic_blast"
|
||||
fire_sound = 'sound/weapons/pulse3.ogg'
|
||||
damage_type = BRUTE
|
||||
damage = 30
|
||||
armor_penetration = 60
|
||||
excavation_amount = 200
|
||||
check_armour = "melee"
|
||||
|
||||
vacuum_traversal = 0
|
||||
combustion = FALSE
|
||||
|
||||
/obj/item/projectile/energy/dart
|
||||
name = "dart"
|
||||
icon_state = "toxin"
|
||||
|
||||
@@ -277,9 +277,9 @@
|
||||
light_power = 3
|
||||
light_color = "#3300ff"
|
||||
|
||||
muzzle_type = /obj/effect/projectile/tungsten/muzzle
|
||||
tracer_type = /obj/effect/projectile/tungsten/tracer
|
||||
impact_type = /obj/effect/projectile/tungsten/impact
|
||||
muzzle_type = /obj/effect/projectile/muzzle/tungsten
|
||||
tracer_type = /obj/effect/projectile/tracer/tungsten
|
||||
impact_type = /obj/effect/projectile/impact/tungsten
|
||||
|
||||
/obj/item/projectile/beam/tungsten/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(isliving(target))
|
||||
|
||||
@@ -9,19 +9,43 @@
|
||||
var/datum/artifact_effect/secondary_effect
|
||||
var/being_used = 0
|
||||
|
||||
var/predefined_effects = FALSE
|
||||
|
||||
var/predefined_primary
|
||||
var/predefined_secondary
|
||||
|
||||
var/predefined_icon_num
|
||||
|
||||
var/predefined_triggers = FALSE
|
||||
|
||||
var/predefined_trig_primary
|
||||
var/predefined_trig_secondary
|
||||
|
||||
/obj/machinery/artifact/New()
|
||||
..()
|
||||
|
||||
var/effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect)
|
||||
my_effect = new effecttype(src)
|
||||
if(predefined_effects && predefined_primary)
|
||||
my_effect = new predefined_primary(src)
|
||||
|
||||
if(predefined_secondary)
|
||||
secondary_effect = new predefined_secondary(src)
|
||||
if(prob(75))
|
||||
secondary_effect.ToggleActivate(0)
|
||||
|
||||
else
|
||||
var/effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect)
|
||||
my_effect = new effecttype(src)
|
||||
|
||||
if(prob(75))
|
||||
effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect)
|
||||
secondary_effect = new effecttype(src)
|
||||
if(prob(75))
|
||||
secondary_effect.ToggleActivate(0)
|
||||
effecttype = pick(typesof(/datum/artifact_effect) - /datum/artifact_effect)
|
||||
secondary_effect = new effecttype(src)
|
||||
if(prob(75))
|
||||
secondary_effect.ToggleActivate(0)
|
||||
|
||||
icon_num = rand(0, 14)
|
||||
if(!isnull(predefined_icon_num))
|
||||
icon_num = predefined_icon_num
|
||||
else
|
||||
icon_num = rand(0, 14)
|
||||
|
||||
icon_state = "ano[icon_num]0"
|
||||
if(icon_num == 7 || icon_num == 8)
|
||||
@@ -53,6 +77,13 @@
|
||||
if(prob(60))
|
||||
my_effect.trigger = pick(TRIGGER_TOUCH, TRIGGER_HEAT, TRIGGER_COLD, TRIGGER_PHORON, TRIGGER_OXY, TRIGGER_CO2, TRIGGER_NITRO)
|
||||
|
||||
if(predefined_triggers)
|
||||
if(predefined_trig_primary && my_effect)
|
||||
my_effect.trigger = predefined_trig_primary
|
||||
|
||||
if(predefined_trig_secondary && secondary_effect)
|
||||
secondary_effect.trigger = predefined_trig_secondary
|
||||
|
||||
/obj/machinery/artifact/proc/choose_effect()
|
||||
var/effect_type = input(usr, "What type do you want?", "Effect Type") as null|anything in typesof(/datum/artifact_effect) - /datum/artifact_effect
|
||||
if(effect_type)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/obj/machinery/artifact/predefined
|
||||
name = "alien artifact"
|
||||
desc = "A large alien device."
|
||||
|
||||
predefined_effects = TRUE
|
||||
|
||||
predefined_primary = null
|
||||
predefined_secondary = null
|
||||
|
||||
predefined_icon_num = null
|
||||
|
||||
predefined_triggers = FALSE
|
||||
|
||||
predefined_trig_primary = null
|
||||
predefined_trig_secondary = null
|
||||
@@ -0,0 +1,15 @@
|
||||
/obj/machinery/artifact/predefined/hungry_statue
|
||||
name = "alien artifact"
|
||||
desc = "A large alien device."
|
||||
|
||||
predefined_effects = TRUE
|
||||
|
||||
predefined_primary = /datum/artifact_effect/animate_anomaly
|
||||
predefined_secondary = /datum/artifact_effect/vampire
|
||||
|
||||
predefined_icon_num = 14
|
||||
|
||||
predefined_triggers = TRUE
|
||||
|
||||
predefined_trig_primary = TRIGGER_OXY
|
||||
predefined_trig_secondary = TRIGGER_OXY
|
||||
44
html/changelogs/mechoid-newhorizon.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Mechoid
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Adds more interactions with animals, like shearing and taming."
|
||||
- rscadd: "Sif moss turfs can now spawn animal groups."
|
||||
- rscadd: "New PoIs"
|
||||
- rscadd: "Thermal poncho attachment, has minor slowdown, but gives thermal protection to the armor it is attached to."
|
||||
- rscadd: "Mercenaries now drop their guns again. Most likely to be broken, however they can be repaired. Examining when adjacent will allow you to inspect the gun for what is needed."
|
||||
- rscadd: "Mercenary Snipers now exist. They will telegraph their shots approximately 2 seconds in advance, and can fire at 14 tiles away. Will occasionally drop pieces of their PTRs that survive combat."
|
||||
- tweak: "Clothing can now check attachments for temperature resistance."
|
||||
- bugfix: "MHD Howitzer beam effect actually exists again.
|
||||
- bugfix: "Xenoresin ground cover is properly colored again."
|
||||
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 277 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 739 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 106 KiB |
@@ -1,4 +1,5 @@
|
||||
"a" = (/turf/template_noop,/area/template_noop)
|
||||
<<<<<<< HEAD
|
||||
"b" = (/turf/template_noop,/area/submap/Cavelake)
|
||||
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Cavelake)
|
||||
"d" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
|
||||
@@ -13,6 +14,43 @@
|
||||
"m" = (/obj/random/mob/sif,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
|
||||
"n" = (/obj/item/clothing/mask/snorkel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
|
||||
"o" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
|
||||
=======
|
||||
"b" = (/turf/template_noop,/area/submap/CaveTrench)
|
||||
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"d" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"e" = (/turf/simulated/floor/outdoors/rocks,/area/submap/CaveTrench)
|
||||
"f" = (/turf/simulated/floor/water{outdoors = 0},/area/submap/CaveTrench)
|
||||
"g" = (/obj/random/mob/robotic/drone,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"h" = (/mob/living/simple_mob/animal/passive/fish/trout{faction = "malf_drone"},/turf/simulated/floor/water{outdoors = 0},/area/submap/CaveTrench)
|
||||
"i" = (/obj/effect/decal/remains/human,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"j" = (/turf/simulated/wall,/area/submap/CaveTrench)
|
||||
"k" = (/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"l" = (/mob/living/simple_mob/animal/passive/fish/trout,/turf/simulated/floor/water{outdoors = 0},/area/submap/CaveTrench)
|
||||
"m" = (/turf/simulated/wall/wood,/area/submap/CaveTrench)
|
||||
"n" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lantern,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"o" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"p" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"q" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"r" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"s" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "Rellek's telling me that we're in deep shit if the townies found out I'm cooking up drones out here. Like I give a fuck, We're minning our asses off only to dig into some bug nest to get our legs chewed. Well I'm not looking a gift horse in the mouth. Those drone dudes out in the wild hooked us up with these machines so long as they get some of the metal we dig up. Win win for us, Guess we're retiring early after all."; name = "Note"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"t" = (/obj/structure/table/steel,/obj/item/robot_parts/robot_component/actuator,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"u" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"v" = (/obj/structure/simple_door/wood,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"w" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"x" = (/obj/structure/table/steel,/obj/item/device/robotanalyzer,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"y" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"z" = (/obj/structure/table/bench/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"A" = (/obj/effect/decal/remains,/obj/item/clothing/under/rank/miner,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"B" = (/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
|
||||
"C" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
|
||||
"G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
|
||||
"I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
|
||||
"J" = (/obj/machinery/drone_fabricator{fabricator_tag = "Unknown"},/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
"ay" = (/obj/effect/decal/mecha_wreckage/gygax{anchored = 1},/turf/simulated/shuttle/floor/black,/area/submap/crashedcontainmentshuttle)
|
||||
"az" = (/obj/effect/gibspawner/generic,/turf/simulated/shuttle/floor/black,/area/submap/crashedcontainmentshuttle)
|
||||
"aA" = (/obj/structure/closet/medical_wall,/turf/simulated/shuttle/wall/dark,/area/submap/crashedcontainmentshuttle)
|
||||
"aB" = (/obj/machinery/artifact/predefined/hungry_statue,/obj/structure/largecrate,/turf/simulated/shuttle/floor/red,/area/submap/crashedcontainmentshuttle)
|
||||
"aC" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/crashedcontainmentshuttle)
|
||||
"aD" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/crashedcontainmentshuttle)
|
||||
"aE" = (/obj/structure/extinguisher_cabinet,/turf/simulated/shuttle/wall/dark,/area/submap/crashedcontainmentshuttle)
|
||||
@@ -90,7 +91,7 @@
|
||||
"bM" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/crashedcontainmentshuttle)
|
||||
"bN" = (/obj/structure/toilet{dir = 8},/obj/effect/gibspawner/generic,/obj/effect/decal/remains/human,/obj/item/weapon/card/id/syndicate{age = "\\42"; blood_type = "\\O+"; desc = "A strange ID card."; dna_hash = "\[REDACTED]"; fingerprint_hash = "\\------"; name = "Aaron Presley's ID Card(Delivery Service) "; registered_name = "Aaron Presley"; sex = "\\Male"},/turf/simulated/shuttle/floor/white,/area/submap/crashedcontainmentshuttle)
|
||||
"bO" = (/obj/effect/decal/cleanable/liquid_fuel,/obj/effect/decal/remains/human,/obj/item/weapon/flame/lighter/random,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/crashedcontainmentshuttle)
|
||||
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -103,7 +104,7 @@ aaaYaaaRacaaadadaZapbIbybIazbbadaNacanbJaaaaaaaaaa
|
||||
aaaababdbeapapapadadadbIadadauadaNaAaeaTanaaaaataa
|
||||
acaaaaaaapadauadadadacacaSacanadavacbhaeaeahaaaaaa
|
||||
aPadaVaRacadadadbiadacbjafafacadadadbKbpaHaraaaaaa
|
||||
aaaPadaaacaMadbkadbbacbvafbwacaLadaSbKbqaHaoapaaaa
|
||||
aaaPadaaacaMadbkadbbacbvaBbwacaLadaSbKbqaHaoapaaaa
|
||||
aPbxaVaRacaWadbbadbbanblbLbzanadbbasaebraFaIaabfaa
|
||||
aPaPaaaaaaaabEazadadanacacacaEadadahaebpaHaoaaaiaa
|
||||
aPaPadaaaJapbIadadaPaPadadadadadadacaeaeaeahaaaaaa
|
||||
@@ -118,4 +119,3 @@ aaaaaaaaaaaaadaLaaaabmbMbObmbmaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaadadaaaaaaacaPbCbmbmbmaaajaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaadaaaaaaaPaPaaaaaabmaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
|
||||
|
||||
51
maps/submaps/surface_submaps/mountains/excavation1.dmm
Normal file
@@ -0,0 +1,51 @@
|
||||
"a" = (/turf/simulated/mineral,/area/template_noop)
|
||||
"b" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
|
||||
"c" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"d" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"e" = (/obj/structure/cliff/automatic,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"f" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 5},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"g" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"h" = (/obj/random/outcrop,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"i" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"j" = (/obj/structure/cliff/automatic/corner,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"k" = (/obj/mecha/working/ripley,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"l" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"m" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/tool/drill/bore,/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"n" = (/obj/item/weapon/ore,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"o" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/hardpoint_actuator,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"p" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"q" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"r" = (/obj/structure/table/sifwoodentable,/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"s" = (/obj/item/weapon/ore/marble,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"t" = (/obj/item/weapon/ore/gold,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"u" = (/obj/item/weapon/ore/diamond,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"v" = (/mob/living/simple_mob/mechanical/mining_drone,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"w" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"x" = (/obj/structure/table/sifwoodentable,/obj/random/projectile/scrapped_grenadelauncher,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"y" = (/obj/structure/table/sifwoodentable,/obj/random/medical/pillbottle,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"z" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"A" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/mining_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"B" = (/obj/structure/table/sifwoodentable,/obj/random/cigarettes,/obj/random/tool/powermaint,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Excavation)
|
||||
"C" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"D" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 2},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"E" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 10},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"F" = (/obj/structure/cliff/automatic/corner{icon_state = "cliffbuilder-corner"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
"G" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 6},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Excavation)
|
||||
|
||||
(1,1,1) = {"
|
||||
aabbbbbbbaa
|
||||
accdeeefcca
|
||||
bcdghhijfcb
|
||||
bdghikihjfb
|
||||
bliimnoiipb
|
||||
blhiqirihpb
|
||||
bliniisnhpb
|
||||
blhtiuiiipb
|
||||
bliviinvhpb
|
||||
blhwinixipb
|
||||
blhynitzhpb
|
||||
bliAiniBhpb
|
||||
bliisinihpb
|
||||
aCDEniiFDGa
|
||||
aabbbbbbbaa
|
||||
"}
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "Geyser2.dmm"
|
||||
#include "Geyser3.dmm"
|
||||
#include "Cliff1.dmm"
|
||||
#include "excavation1.dmm"
|
||||
#endif
|
||||
|
||||
// The 'mountains' is the mining z-level, and has a lot of caves.
|
||||
@@ -254,8 +255,8 @@
|
||||
|
||||
/datum/map_template/surface/mountains/normal/crashed_ufo_frigate //VOREStation Edit
|
||||
name = "Crashed UFO Frigate"
|
||||
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet its combat protocols still seem to be running..."
|
||||
mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo.dmm'
|
||||
desc = "A (formerly) flying saucer that is now embedded into the mountain, yet the combat protocols still seem to be running..."
|
||||
mappath = 'maps/submaps/surface_submaps/mountains/crashed_ufo_frigate.dmm'
|
||||
cost = 60
|
||||
discard_prob = 50
|
||||
|
||||
@@ -337,6 +338,17 @@
|
||||
/datum/map_template/surface/mountains/normal/crashedmedshuttle //VOREStation Edit
|
||||
name = "Crashed Med Shuttle"
|
||||
desc = "A medical response shuttle that went missing some time ago. So this is where they went."
|
||||
<<<<<<< HEAD
|
||||
mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1_vr.dmm' //VOREStation Edit
|
||||
cost = 20
|
||||
fixed_orientation = TRUE
|
||||
=======
|
||||
mappath = 'maps/submaps/surface_submaps/mountains/CrashedMedShuttle1.dmm'
|
||||
cost = 20
|
||||
|
||||
/datum/map_template/surface/mountains/deep/excavation1
|
||||
name = "Excavation Site"
|
||||
desc = "An abandoned mining site."
|
||||
mappath = 'maps/submaps/surface_submaps/mountains/excavation1.dmm'
|
||||
cost = 20
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
@@ -134,4 +134,8 @@
|
||||
/area/submap/lava_trench/outpost
|
||||
name = "POI - Trench Outpost"
|
||||
requires_power = FALSE
|
||||
icon_state = "submap2"
|
||||
icon_state = "submap2"
|
||||
|
||||
/area/submap/Excavation
|
||||
name = "POI - Excavation Site"
|
||||
ambience = AMBIENCE_FOREBODING
|
||||
|
||||
10
maps/submaps/surface_submaps/plains/BuriedTreasure.dmm
Normal file
@@ -0,0 +1,10 @@
|
||||
"a" = (/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
"b" = (/obj/structure/closet/grave,/obj/random/gun/random,/obj/random/contraband,/obj/random/cash,/obj/random/cigarettes,/obj/random/trash,/obj/random/junk,/obj/random/drinkbottle,/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaa
|
||||
aaaaa
|
||||
aabaa
|
||||
aaaaa
|
||||
aaaaa
|
||||
"}
|
||||
10
maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm
Normal file
@@ -0,0 +1,10 @@
|
||||
"a" = (/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
"b" = (/obj/structure/closet/grave,/obj/random/contraband,/obj/random/contraband,/obj/random/cash,/obj/random/cash,/obj/random/cash,/obj/random/cash,/obj/random/drinkbottle,/obj/random/mre,/obj/random/projectile/sec,/obj/item/clothing/under/explorer/armored,/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaa
|
||||
aaaaa
|
||||
aabaa
|
||||
aaaaa
|
||||
aaaaa
|
||||
"}
|
||||
10
maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm
Normal file
@@ -0,0 +1,10 @@
|
||||
"a" = (/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
"b" = (/obj/structure/closet/grave,/obj/random/energy,/obj/random/drinkbottle,/obj/random/contraband,/obj/random/ammo,/obj/random/ammo,/obj/random/mre,/obj/random/tool/power,/obj/random/unidentified_medicine/fresh_medicine,/obj/random/unidentified_medicine/combat_medicine,/obj/random/medical/pillbottle,/obj/random/soap,/turf/template_noop,/area/submap/BuriedTreasure)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaa
|
||||
aaaaa
|
||||
aabaa
|
||||
aaaaa
|
||||
aaaaa
|
||||
"}
|
||||
26
maps/submaps/surface_submaps/plains/PlainsKururak.dmm
Normal file
@@ -0,0 +1,26 @@
|
||||
"a" = (/turf/template_noop,/area/template_noop)
|
||||
"b" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"c" = (/obj/random/trash,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"d" = (/obj/random/firstaid,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"e" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"f" = (/obj/random/projectile/sec,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"g" = (/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"h" = (/mob/living/simple_mob/animal/sif/kururak,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"i" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"j" = (/obj/random/contraband,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"k" = (/mob/living/simple_mob/animal/sif/diyaab,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/PlainsKururak)
|
||||
"l" = (/obj/random/trash,/turf/template_noop,/area/submap/PlainsKururak)
|
||||
"m" = (/turf/template_noop,/area/submap/PlainsKururak)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaa
|
||||
abbbbbbbaa
|
||||
bbbcdefbaa
|
||||
bbgeehibba
|
||||
bbieebbbba
|
||||
bbbjebklma
|
||||
abbbckkbba
|
||||
aabbbbibba
|
||||
aaaabbbbaa
|
||||
aaaaaaaaaa
|
||||
"}
|
||||
@@ -13,7 +13,7 @@
|
||||
"m" = (/obj/structure/table/steel,/obj/item/weapon/paper{desc = "This is some bullshit. First chance we got to knick something that looks half decent turns out to be mostly junk. And now we're getting calls that the other stash we've got has got a spider problem. Fuck this, Between the shitty weather, The pissed of bugs, And now apparently some NT goon running around in the area there's hardly enough reason to stick around. I'm telling Carl I'm out tommorow."; name = "Note"},/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
|
||||
"n" = (/obj/vehicle/train/trolley,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
|
||||
"o" = (/obj/structure/closet/crate,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
|
||||
"p" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/practiceshells,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
|
||||
"p" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/practiceshells,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
#include "SupplyDrop2.dmm"
|
||||
#include "RationCache.dmm"
|
||||
#include "Oldhouse.dmm"
|
||||
#include "PlainsKururak.dmm"
|
||||
#include "BuriedTreasure.dmm"
|
||||
#include "BuriedTreasure2.dmm"
|
||||
#include "BuriedTreasure3.dmm"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -213,5 +217,37 @@
|
||||
/datum/map_template/surface/plains/ChemSpill1
|
||||
name = "Ruptured Canister"
|
||||
desc = "A dumped chemical canister. Looks dangerous."
|
||||
<<<<<<< HEAD
|
||||
mappath = 'maps/submaps/surface_submaps/plains/chemspill1_vr.dmm' //VOREStation Edit
|
||||
cost = 10
|
||||
=======
|
||||
mappath = 'maps/submaps/surface_submaps/plains/chemspill1.dmm'
|
||||
cost = 10
|
||||
|
||||
/datum/map_template/surface/plains/PlainsKururak
|
||||
name = "Lone Kururak"
|
||||
desc = "A lone Kururak's den."
|
||||
mappath = 'maps/submaps/surface_submaps/plains/PlainsKururak.dmm'
|
||||
cost = 10
|
||||
|
||||
/datum/map_template/surface/plains/BuriedTreasure1
|
||||
name = "Buried Treasure 1"
|
||||
desc = "A hole in the ground, who knows what might be inside!"
|
||||
mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure.dmm'
|
||||
cost = 10
|
||||
template_group = "Shallow Grave"
|
||||
|
||||
/datum/map_template/surface/plains/BuriedTreasure2
|
||||
name = "Buried Treasure 2"
|
||||
desc = "A hole in the ground, who knows what might be inside!"
|
||||
mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure2.dmm'
|
||||
cost = 10
|
||||
template_group = "Shallow Grave"
|
||||
|
||||
/datum/map_template/surface/plains/BuriedTreasure3
|
||||
name = "Buried Treasure 3"
|
||||
desc = "A hole in the ground, who knows what might be inside!"
|
||||
mappath = 'maps/submaps/surface_submaps/plains/BuriedTreasure3.dmm'
|
||||
cost = 10
|
||||
template_group = "Shallow Grave"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960)
|
||||
|
||||
@@ -61,6 +61,9 @@
|
||||
/area/submap/Smol3
|
||||
name = "POI - Merchant's Stand"
|
||||
|
||||
/area/submap/PlainsKururak
|
||||
name = "POI - Lone Kururak"
|
||||
|
||||
/area/submap/PooledR
|
||||
name = "POI - Pooled Rocks"
|
||||
ambience = AMBIENCE_SIF
|
||||
@@ -103,3 +106,7 @@
|
||||
/area/submap/ChemSpill1
|
||||
name = "POI - Ruptured Canister"
|
||||
ambience = AMBIENCE_TECH_RUINS
|
||||
|
||||
/area/submap/BuriedTreasure
|
||||
name = "POI - Buried Treasure"
|
||||
ambience = AMBIENCE_FOREBODING
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"ae" = (/obj/effect/decal/cleanable/blood,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"af" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"ag" = (/obj/structure/table/steel,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"ah" = (/mob/living/simple_mob/humanoid/merc/ranged/smg/poi,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"ah" = (/obj/random/mob/merc/all,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"ai" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"},/area/submap/Blackshuttledown)
|
||||
"aj" = (/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"},/area/submap/Blackshuttledown)
|
||||
"ak" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"},/area/submap/Blackshuttledown)
|
||||
@@ -63,16 +63,16 @@
|
||||
"bk" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bl" = (/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bm" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bn" = (/mob/living/simple_mob/humanoid/merc/ranged/smg/poi,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bn" = (/obj/random/mob/merc/all,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bo" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bp" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bp" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/random/projectile/scrapped_gun,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
|
||||
"br" = (/obj/structure/table/steel,/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bu" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bv" = (/obj/structure/table/steel,/obj/random/projectile,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bw" = (/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bw" = (/obj/machinery/fusion_fuel_compressor,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
|
||||
"by" = (/obj/machinery/door/airlock/glass,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bz" = (/obj/effect/floor_decal/corner/grey,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
@@ -86,7 +86,7 @@
|
||||
"bH" = (/obj/machinery/power/apc{dir = 8; name = "BSD APC"; pixel_x = -24},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bI" = (/mob/living/simple_mob/humanoid/merc/melee/sword/poi,/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bJ" = (/obj/machinery/computer/area_atmos,/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bK" = (/mob/living/simple_mob/humanoid/merc/ranged/laser/poi,/turf/template_noop,/area/submap/Blackshuttledown)
|
||||
"bK" = (/obj/machinery/fusion_fuel_injector/mapped{icon_state = "injector0"; dir = 4},/turf/simulated/floor/tiled/yellow,/area/submap/Blackshuttledown)
|
||||
"bL" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bM" = (/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
"bN" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
|
||||
@@ -130,17 +130,17 @@ aaabababababababababababababadadabababafabababafababaeababadadabababaa
|
||||
aaababafabadadadababababafababababababababababababababababadadabababaa
|
||||
aaabababababadadadabacababababagagagagagagabababababacabafabadabababaa
|
||||
aaababababababadadabafababababagahabababagabababababababababababababaa
|
||||
aaabababababababaiajajajakababagabababbKagabababafaiajajajajakabababaa
|
||||
aaabababababababaiajajajakababagabababahagabababafaiajajajajakabababaa
|
||||
aaabababababababajajajajajajajajajababajajajajajajajajajajajalamababaa
|
||||
aaababababafababajajajajajajanaoajapapajaqarasatauajajajajajalamababaa
|
||||
aaabababababababavajajawaxajayazajaAaAajaBaCaDaEaEaEaFajajaGababababaa
|
||||
aaabababababababaHajajaIaJajayaKaLaLaMajaBaNaNaEaOaDaPajaGabababababaa
|
||||
aaabafababababaHajaQajawaRajayaSaTaTaUajaVaWaEaXaYaZbaajababababafabaa
|
||||
aaabababababaHajbbbcajbdajajayazajajajajajajbeajajajajajbfabababababaa
|
||||
aaabababababajbgbhazajbiaLaLbhazajbjbkblbmblbnblajbobobpajbfababababaa
|
||||
aaabababababajbgbhazajbiaLaLbhazajbjbkblbmbnblblajbobobpajbfababababaa
|
||||
aaabababababbqbrblazajbsblblblbtajblblbububublblajbvblblbwalamabababaa
|
||||
aaabababababbxbrblaKbybhblbzblblbAblblbBbCbCblblbDblblblbwalamabababaa
|
||||
aaabababababbxbrblaSbEbFblblblblbAblblbCbCbCblblbDblblblbwalamabababaa
|
||||
aaabababababbxbrblaKbybhblbzblblbAblblbBbCbCblblbDblblblbKalamabababaa
|
||||
aaabababababbxbrblaSbEbFblblblblbAblblbCbCbCblblbDblblblbKalamabababaa
|
||||
aaabababababbGbrblazajbsblblblbtajblblbububublblajbHblblbIalamabababaa
|
||||
aaabababababajbJbFcsajbLaTaTbFbMajbNbOblbPbnblblajbQbRbSajaGababababaa
|
||||
aaabababababavajbTbUajbdajajayazajajajajajajbAajajajajajaGabababababaa
|
||||
@@ -149,7 +149,7 @@ aaabafabababababavajajcbccajayaSaTaTcdajceblbYblbYajcfajbfabafabababaa
|
||||
aaabababababababaHajajcgchajaycrajaAaAajbYblbYblbYajciajajbfababababaa
|
||||
aaabababababababajajajajajajcjckajapapajbYclcmcncoajajajajalamabababaa
|
||||
aaabababababababajajajajajajajajajababajajajajajajajajajajalamabababaa
|
||||
aaababafababababcpajajajcqababagbKabababagabababcpajajajajcqababababaa
|
||||
aaababafababababcpajajajcqababagahabababagabababcpajajajajcqababababaa
|
||||
aaabababadabababababafababababagabababahagababafabafabababadadadababaa
|
||||
aaababadadabacababababafabababagagagagagagababababacababadadadadababaa
|
||||
aaabadadadabababababababaeababababababababababadadabababadadadadababaa
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"aV" = (/obj/item/weapon/flame/candle/candelabra,/obj/structure/table/sifwoodentable,/turf/simulated/floor/wood/sif/broken,/area/submap/Chapel1)
|
||||
"aW" = (/obj/structure/table/sifwoodentable,/obj/item/weapon/flame/candle/candelabra,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"aX" = (/obj/structure/table/sifwoodentable,/obj/item/glass_jar,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"aY" = (/obj/structure/closet/coffin,/obj/random/maintenance/cargo,/obj/effect/decal/remains/human,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"aY" = (/obj/structure/closet/coffin,/obj/random/maintenance/cargo,/obj/effect/decal/remains/human,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"aZ" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"ba" = (/obj/structure/bed/padded,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
"bb" = (/obj/structure/closet/coffin,/obj/random/cash,/obj/effect/decal/remains/xeno,/turf/simulated/floor/wood/sif,/area/submap/Chapel1)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"ap" = (/obj/effect/decal/remains/mouse,/obj/random/landmine,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP)
|
||||
"aq" = (/obj/structure/flora/tree/sif,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP)
|
||||
"ar" = (/obj/machinery/light/small,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP)
|
||||
"as" = (/obj/machinery/porta_turret/poi,/turf/simulated/floor/plating,/area/submap/DoomP)
|
||||
"as" = (/obj/machinery/porta_turret/poi{faction = "syndicate"},/turf/simulated/floor/plating,/area/submap/DoomP)
|
||||
"at" = (/turf/simulated/wall/r_wall,/area/submap/DoomP)
|
||||
"au" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/submap/DoomP)
|
||||
"av" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/submap/DoomP)
|
||||
@@ -24,7 +24,7 @@
|
||||
"ax" = (/obj/effect/floor_decal/borderfloor{dir = 9},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"ay" = (/obj/structure/bed/chair,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"az" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aA" = (/obj/effect/floor_decal/borderfloor{dir = 1},/mob/living/simple_mob/humanoid/merc/ranged/smg/poi,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aA" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/random/mob/merc/all,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aB" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aC" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/borderfloor{dir = 5},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aD" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
@@ -38,7 +38,7 @@
|
||||
"aL" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/DoomP)
|
||||
"aM" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/borderfloor{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aN" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aO" = (/obj/structure/table/standard,/obj/item/pizzabox,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aO" = (/obj/structure/table/standard,/obj/random/pizzabox,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aP" = (/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aQ" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/borderfloor{dir = 4},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"aR" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/submap/DoomP)
|
||||
@@ -56,7 +56,7 @@
|
||||
"bd" = (/obj/effect/floor_decal/borderfloor{dir = 10},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"be" = (/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bf" = (/obj/machinery/light/small,/obj/effect/floor_decal/borderfloor,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bg" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/mob/living/simple_mob/humanoid/merc/ranged/laser/poi,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bg" = (/obj/structure/table/standard,/obj/random/firstaid,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bh" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bi" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bj" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP)
|
||||
@@ -73,7 +73,7 @@
|
||||
"bu" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bv" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bw" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/obj/effect/floor_decal/corner/lime{dir = 5},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bx" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/effect/floor_decal/corner/lime{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bx" = (/obj/effect/floor_decal/borderfloor,/obj/random/mob/merc/all,/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"by" = (/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bz" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bA" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
@@ -88,6 +88,11 @@
|
||||
"bJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/submap/DoomP)
|
||||
"bK" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP)
|
||||
"bL" = (/mob/living/simple_mob/humanoid/merc/melee/sword/poi,/turf/simulated/floor/tiled/techfloor,/area/submap/DoomP)
|
||||
"bM" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bN" = (/mob/living/bot/cleanbot{faction = "syndicate"; name = "Fitz"},/turf/simulated/floor/tiled,/area/submap/DoomP)
|
||||
"bO" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/effect/floor_decal/corner/lime{dir = 1},/obj/random/soap,/turf/simulated/floor/tiled/white,/area/submap/DoomP)
|
||||
"bP" = (/obj/random/junk,/turf/simulated/floor/outdoors/rocks,/area/submap/DoomP)
|
||||
"bQ" = (/obj/random/junk,/turf/simulated/floor/outdoors/grass/sif/forest,/area/submap/DoomP)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -121,15 +126,15 @@ aaabababacafafafafafafafakakakakakafafafacadadasadadasadatauavavavauatadasadadas
|
||||
aaabababacafafafafafafafakakakakakakafafacatatatatatatatatatatawatatatatatatatatatatatafafafafafakakakakafafafafacacabaa
|
||||
aaabababacacafafafafafafakakakakakakafafacataxayaAayaBayazaCataDataEaFaFaFaGaHaIaJaKatafafafafafakakakakafafafafacacabaa
|
||||
aaabababacacacafafafafakakakakakakakafasaLataMaNaOaNaNaNaPaQataPataRaSaSaSaTaUaVaWaVataXasafafafakakakafafafafafafacabaa
|
||||
aaabababababacacafafafakakakakakakakafafafataYaNaNaNaNaNaPaZatbaatatatatatatbbbcatatatafafafafafakakakafafafafafafacabaa
|
||||
aaababababababacafafafakakakakakakakakafafatbdbebebfbebebgaPbhaPaPbiaPaPaPaPaPbiaPaPatafafafafafakakakafafafafafafafacaa
|
||||
aaabababababacacafafafakakakakakakakafafafataYaNaNaNbgaNaPaZatbaatatatatatatbbbcatatatafafafafafakakakafafafafafafacabaa
|
||||
aaababababababacafafafakakakakakakakakafafatbdbebebfbebxbMaPbhaPbNbiaPaPaPaPaPbiaPaPatafafafafafakakakafafafafafafafacaa
|
||||
aaabababagabababacafafakakakakakakakakasaXatbjatatatatatatatatatatatatatatbkatatatatataXasafafafakakakafafafafafafafacaa
|
||||
aaababababababacacafafafakakakakakakakakafatblbmbnbobpbqbrbsatbtbubvbwbvbxbybkbzbkbAatafafafafafakakakafafafafafafafacaa
|
||||
aaababababababacacafafafakakakakakakakakafatblbmbnbobpbqbrbsatbtbubvbwbvbObybkbzbkbAatafafafafafakakakafafafafafafafacaa
|
||||
aaababababababacafafafafakakakakakakakakafatblblbBblbLbBblblatbCbDbDbDbDbDbEatbFatbGatafafafafakakakakakafafafafafafacaa
|
||||
aaababababababacafafafafakakakakakakakakakatatatatatatatatatatatatbHbIbIbIbJatatatatatafafafafakakakakafafafafafafafacaa
|
||||
aaabababababacacafafafakakakakakakakakakakafafafafaLacacadadadadbKadadadadadbKacacafafafafafafakakakakafafafafafafafacaa
|
||||
aaabababababacacafafafakakakakakakakakakakafafafafaLacbPadadadadbKadadadadadbKacbPafafafafafafakakakakafafafafafafafacaa
|
||||
aaabababababacafafafafakakakakakakakakakakakakafafasafacacacacacasadadadadadasacafafafafafafakakakakakafafafafafafacacaa
|
||||
aaababababacacafafafafakakakakakakakakakakakakakafafafafafafafacacadadadadadacacafafafafafakakakakakakafafafafafafacabaa
|
||||
aaababababacacafafafafakakakakakakakakakakakakakafafafafafafafacacadbQadadadacacafafafafafakakakakakakafafafafafafacabaa
|
||||
aaababababacafafafafafafakakakakakakakakakakakakafafafafafafafafacacacacacacacafafafafafafafakakakakakafafafafafacacabaa
|
||||
aaabababacacafafafafafafakakakakakakakakakakakakakafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafacababaa
|
||||
aaabababacacafafafafafakakakakakakakakakakakakakakafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafacababaa
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
"S" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Drugd)
|
||||
"T" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/carpet,/area/submap/Drugd)
|
||||
"U" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/syringe/drugs,/turf/simulated/floor/carpet,/area/submap/Drugd)
|
||||
"V" = (/obj/structure/closet/cabinet,/obj/random/projectile/scrapped_gun,/obj/random/toy,/turf/simulated/floor/carpet,/area/submap/Drugd)
|
||||
"W" = (/obj/structure/closet/cabinet,/obj/random/mre,/obj/random/medical/lite,/turf/simulated/floor/carpet,/area/submap/Drugd)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -64,9 +66,9 @@ abcccccccccdllldvwxydccba
|
||||
acccccddddddzlgmoooAdccba
|
||||
acccccdBCDEdllfdFGHIdccba
|
||||
acccccdJKgLdlfMddddddccba
|
||||
abccccdNllOdhlgdqPwwdccca
|
||||
abccccdNllOdhlgdVPwwdccca
|
||||
abbcccdlQllelllmoooodccca
|
||||
abbcccdRlSldllhdqTUndccca
|
||||
abbcccdRlSldllhdWTUndccca
|
||||
abbcccddddddludddddddccca
|
||||
abbccccccccccccccccccccba
|
||||
abbbcccccccccccccccccccba
|
||||
|
||||
25
maps/submaps/surface_submaps/wilderness/FrostflyNest.dmm
Normal file
@@ -0,0 +1,25 @@
|
||||
"a" = (/turf/template_noop,/area/template_noop)
|
||||
"b" = (/turf/simulated/mineral/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"c" = (/obj/structure/boulder,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"d" = (/turf/simulated/wall/solidrock,/area/submap/FrostflyNest)
|
||||
"e" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"f" = (/obj/structure/outcrop/diamond,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"g" = (/obj/random/humanoidremains,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"h" = (/obj/structure/prop/nest{color = "#041164"; creature_types = list(/mob/living/simple_mob/animal/sif/frostfly); name = "frostfly den"; spawn_delay = 300},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"i" = (/obj/random/medical/lite,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"j" = (/obj/random/humanoidremains,/obj/random/gun/random,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"k" = (/obj/random/medical/pillbottle,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
"l" = (/obj/random/gun/random,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/submap/FrostflyNest)
|
||||
|
||||
(1,1,1) = {"
|
||||
aabbbcbbaa
|
||||
abbddedbba
|
||||
bbddfgddbb
|
||||
bddhieiddb
|
||||
bdfjefefdb
|
||||
bdkeegeddb
|
||||
ceefefldbb
|
||||
bdddgdddba
|
||||
bbbdddbbba
|
||||
abbbbbbaaa
|
||||
"}
|
||||
@@ -2,21 +2,21 @@
|
||||
"b" = (/turf/simulated/wall/log_sif,/area/submap/Shack1)
|
||||
"c" = (/turf/template_noop,/area/submap/Shack1)
|
||||
"d" = (/turf/simulated/floor/outdoors/dirt,/area/submap/Shack1)
|
||||
"e" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{ icon_state = "wood_broken1"},/area/submap/Shack1)
|
||||
"e" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken1"},/area/submap/Shack1)
|
||||
"f" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/fancy/candle_box,/obj/item/weapon/storage/box/matches,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"g" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/apron/overalls,/obj/item/clothing/under/overalls,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"g" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/apron/overalls,/obj/item/clothing/under/overalls,/obj/random/mre,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"h" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"i" = (/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"j" = (/turf/simulated/floor/holofloor/wood{ icon_state = "wood_broken0"},/area/submap/Shack1)
|
||||
"k" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood{ icon_state = "wood_broken5"},/area/submap/Shack1)
|
||||
"j" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Shack1)
|
||||
"k" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Shack1)
|
||||
"l" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Shack1)
|
||||
"m" = (/obj/structure/simple_door/wood,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"n" = (/turf/simulated/floor/holofloor/wood{ icon_state = "wood_broken3"},/area/submap/Shack1)
|
||||
"n" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Shack1)
|
||||
"o" = (/obj/structure/table/bench/wooden,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"p" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"q" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/wooden_reinforced,/obj/item/weapon/material/twohanded/fireaxe/scythe,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"r" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"s" = (/turf/simulated/floor/holofloor/wood{ icon_state = "wood_broken6"},/area/submap/Shack1)
|
||||
"s" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Shack1)
|
||||
"t" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/wooden_reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor/wood,/area/submap/Shack1)
|
||||
"u" = (/obj/structure/flora/tree/dead,/turf/template_noop,/area/submap/Shack1)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"i" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"j" = (/obj/structure/bonfire/sifwood,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"k" = (/obj/random/mob/robotic,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"l" = (/obj/structure/bed/roller/adv,/obj/random/humanoidremains,/obj/random/cash,/obj/random/cigarettes,/obj/item/clothing/under/explorer,/obj/item/clothing/shoes/boots/winter/explorer,/obj/item/clothing/mask/gas/explorer,/obj/item/clothing/accessory/permit/gun/planetside,/obj/item/clothing/suit/armor/pcarrier/light/nt,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"l" = (/obj/structure/bed/roller/adv,/obj/random/humanoidremains,/obj/random/cash,/obj/random/cigarettes,/obj/item/clothing/under/explorer,/obj/item/clothing/shoes/boots/winter/explorer,/obj/item/clothing/mask/gas/explorer,/obj/item/clothing/accessory/permit/gun/planetside,/obj/item/clothing/suit/armor/pcarrier/light/nt,/obj/random/projectile/scrapped_smg,/obj/random/projectile/scrapped_pistol,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"m" = (/obj/random/medical/lite,/obj/random/technology_scanner,/obj/random/toolbox,/obj/random/trash,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/Shelter1)
|
||||
"n" = (/obj/structure/fence/corner{icon_state = "corner"; dir = 1},/turf/simulated/floor/outdoors/snow,/area/submap/Shelter1)
|
||||
"o" = (/obj/structure/fence/door/locked{icon_state = "door_closed"; dir = 1},/turf/simulated/floor/outdoors/snow,/area/submap/Shelter1)
|
||||
|
||||
23
maps/submaps/surface_submaps/wilderness/kururakden.dmm
Normal file
@@ -0,0 +1,23 @@
|
||||
"a" = (/turf/template_noop,/area/template_noop)
|
||||
"b" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/KururakDen)
|
||||
"c" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"d" = (/obj/random/mob/sif/kururak,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"e" = (/mob/living/simple_mob/animal/sif/kururak/leader,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"f" = (/obj/random/outcrop,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"g" = (/obj/random/junk,/obj/random/medical/pillbottle,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"h" = (/obj/random/junk,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"i" = (/obj/random/powercell,/obj/random/unidentified_medicine/old_medicine,/obj/random/trash,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
"j" = (/obj/random/humanoidremains,/obj/random/coin,/obj/random/contraband,/obj/random/projectile/random,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/KururakDen)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaa
|
||||
aaaaabbaaa
|
||||
aaabbbbbaa
|
||||
aabbbfbbaa
|
||||
aacbgdccaa
|
||||
abhdccibaa
|
||||
abfcefbbaa
|
||||
abbdjbbaaa
|
||||
abbbbbbaaa
|
||||
aaaaaaaaaa
|
||||
"}
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "Rockybase.dmm"
|
||||
#include "MHR.dmm"
|
||||
#include "GovPatrol.dmm"
|
||||
#include "kururakden.dmm"
|
||||
#include "DecoupledEngine.dmm"
|
||||
#include "DoomP.dmm"
|
||||
#include "CaveS.dmm"
|
||||
@@ -202,6 +203,12 @@
|
||||
mappath = 'maps/submaps/surface_submaps/wilderness/GovPatrol.dmm'
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/surface/wilderness/normal/KururakDen
|
||||
name = "Kururak Den"
|
||||
desc = "The den of a Kururak pack. May contain hibernating members."
|
||||
mappath = 'maps/submaps/surface_submaps/wilderness/kururakden.dmm'
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/surface/wilderness/normal/DecoupledEngine
|
||||
name = "Decoupled Engine"
|
||||
desc = "A damaged fission engine jettisoned from a starship long ago."
|
||||
@@ -272,4 +279,10 @@
|
||||
name = "Acrid Lake"
|
||||
desc = "A pool of water contaminated with highly dangerous chemicals."
|
||||
mappath = 'maps/submaps/surface_submaps/wilderness/chemspill2.dmm'
|
||||
cost = 10
|
||||
cost = 10
|
||||
|
||||
/datum/map_template/surface/wilderness/normal/FrostflyNest
|
||||
name = "Frostfly Nest"
|
||||
desc = "The nest of a Frostfly, or more."
|
||||
mappath = 'maps/submaps/surface_submaps/wilderness/FrostflyNest.dmm'
|
||||
cost = 20
|
||||
|
||||
@@ -95,6 +95,10 @@
|
||||
name = "POI - Lost Government Patrol"
|
||||
ambience = AMBIENCE_GHOSTLY
|
||||
|
||||
/area/submap/KururakDen
|
||||
name = "POI - Kururak Den"
|
||||
ambience = AMBIENCE_SIF
|
||||
|
||||
/area/submap/DecoupledEngine
|
||||
name = "POI - Decoupled Engine"
|
||||
ambience = AMBIENCE_FOREBODING
|
||||
@@ -138,3 +142,7 @@
|
||||
/area/submap/ChemSpill2
|
||||
name = "POI - Acrid Lake"
|
||||
ambience = AMBIENCE_FOREBODING
|
||||
|
||||
/area/submap/FrostflyNest
|
||||
name = "POI - Frostfly Nest"
|
||||
ambience = AMBIENCE_SIF
|
||||
|
||||
@@ -1341,9 +1341,12 @@
|
||||
#include "code\game\objects\structures\fence.dm"
|
||||
#include "code\game\objects\structures\fireaxe.dm"
|
||||
#include "code\game\objects\structures\fitness.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\game\objects\structures\fitness_vr.dm"
|
||||
#include "code\game\objects\structures\flora.dm"
|
||||
#include "code\game\objects\structures\flora_vr.dm"
|
||||
=======
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\game\objects\structures\girders.dm"
|
||||
#include "code\game\objects\structures\gravemarker.dm"
|
||||
#include "code\game\objects\structures\grille.dm"
|
||||
@@ -1418,7 +1421,11 @@
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\security.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\security_vr.dm"
|
||||
=======
|
||||
#include "code\game\objects\structures\flora\flora.dm"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\game\objects\structures\flora\grass.dm"
|
||||
#include "code\game\objects\structures\flora\trees.dm"
|
||||
#include "code\game\objects\structures\ghost_pods\ghost_pods.dm"
|
||||
@@ -1916,7 +1923,11 @@
|
||||
#include "code\modules\clothing\under\accessories\permits_vr.dm"
|
||||
#include "code\modules\clothing\under\accessories\storage.dm"
|
||||
#include "code\modules\clothing\under\accessories\torch.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\modules\clothing\under\accessories\torch_vr.dm"
|
||||
=======
|
||||
#include "code\modules\clothing\under\accessories\temperature\poncho.dm"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\modules\clothing\under\jobs\civilian.dm"
|
||||
#include "code\modules\clothing\under\jobs\engineering.dm"
|
||||
#include "code\modules\clothing\under\jobs\medsci.dm"
|
||||
@@ -2582,11 +2593,16 @@
|
||||
#include "code\modules\mob\living\simple_mob\combat.dm"
|
||||
#include "code\modules\mob\living\simple_mob\defense.dm"
|
||||
#include "code\modules\mob\living\simple_mob\hands.dm"
|
||||
#include "code\modules\mob\living\simple_mob\harvesting.dm"
|
||||
#include "code\modules\mob\living\simple_mob\life.dm"
|
||||
#include "code\modules\mob\living\simple_mob\on_click.dm"
|
||||
#include "code\modules\mob\living\simple_mob\simple_hud.dm"
|
||||
#include "code\modules\mob\living\simple_mob\simple_mob.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\modules\mob\living\simple_mob\simple_mob_vr.dm"
|
||||
=======
|
||||
#include "code\modules\mob\living\simple_mob\taming.dm"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm"
|
||||
@@ -2668,15 +2684,23 @@
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\humanoid\mercs\mercs_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\illusion\illusion.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\combat_drone.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm"
|
||||
=======
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm"
|
||||
<<<<<<< HEAD:vorestation.dme
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\wahlem_vr.dm"
|
||||
=======
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\drones\mining_drone.dm"
|
||||
>>>>>>> aafd4b4... Explorer Expansion: New Horizons (#6960):polaris.dme
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm"
|
||||
#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm"
|
||||
@@ -3044,6 +3068,7 @@
|
||||
#include "code\modules\power\tesla\telsa_construction.dm"
|
||||
#include "code\modules\power\tesla\tesla_act.dm"
|
||||
#include "code\modules\projectiles\ammunition.dm"
|
||||
#include "code\modules\projectiles\broken.dm"
|
||||
#include "code\modules\projectiles\dnalocking.dm"
|
||||
#include "code\modules\projectiles\gun.dm"
|
||||
#include "code\modules\projectiles\projectile.dm"
|
||||
@@ -3052,6 +3077,10 @@
|
||||
#include "code\modules\projectiles\ammunition\magnetic.dm"
|
||||
#include "code\modules\projectiles\ammunition\rounds.dm"
|
||||
#include "code\modules\projectiles\ammunition\smartmag.dm"
|
||||
#include "code\modules\projectiles\brokenguns\energy.dm"
|
||||
#include "code\modules\projectiles\brokenguns\launcher.dm"
|
||||
#include "code\modules\projectiles\brokenguns\magnetic.dm"
|
||||
#include "code\modules\projectiles\brokenguns\projectile.dm"
|
||||
#include "code\modules\projectiles\guns\energy.dm"
|
||||
#include "code\modules\projectiles\guns\launcher.dm"
|
||||
#include "code\modules\projectiles\guns\modular_guns.dm"
|
||||
@@ -3463,6 +3492,8 @@
|
||||
#include "code\modules\xenoarcheaology\artifacts\crystal.dm"
|
||||
#include "code\modules\xenoarcheaology\artifacts\gigadrill.dm"
|
||||
#include "code\modules\xenoarcheaology\artifacts\replicator.dm"
|
||||
#include "code\modules\xenoarcheaology\artifacts\predefined\_predefined.dm"
|
||||
#include "code\modules\xenoarcheaology\artifacts\predefined\hungry_statue.dm"
|
||||
#include "code\modules\xenoarcheaology\effects\animate_anomaly.dm"
|
||||
#include "code\modules\xenoarcheaology\effects\badfeeling.dm"
|
||||
#include "code\modules\xenoarcheaology\effects\berserk.dm"
|
||||
|
||||