Explorer Expansion: New Horizons

This commit is contained in:
Mechoid
2020-05-01 11:19:21 -07:00
committed by VirgoBot
parent eb56f5b1ca
commit 7066d04df5
94 changed files with 2226 additions and 575 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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)
. = ..()

View File

@@ -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>"

View File

@@ -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
))

View File

@@ -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)

View File

@@ -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
)
)

View File

@@ -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"

View File

@@ -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>"

View File

@@ -11,7 +11,6 @@
..()
icon_state = "snowgrass[rand(1, 3)]bb"
/obj/structure/flora/grass/green
icon_state = "snowgrass1gb"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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."

View File

@@ -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"

View File

@@ -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."

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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 ..()

View 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

View File

@@ -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.

View File

@@ -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

View File

@@ -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!

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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")

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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
)

View File

@@ -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
)

View File

@@ -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)

View File

@@ -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)

View 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)

View File

@@ -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
*/

View 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)

View 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)

View File

@@ -0,0 +1,3 @@
/obj/item/weapon/broken_gun/grenadelauncher/New(var/newloc)
..(newloc, /obj/item/weapon/gun/launcher/grenade)

View File

@@ -0,0 +1,3 @@
/obj/item/weapon/broken_gun/flechette/New(var/newloc)
..(newloc, /obj/item/weapon/gun/magnetic/railgun/flechette)

View 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)

View File

@@ -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

View File

@@ -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."

View File

@@ -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."

View File

@@ -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."

View File

@@ -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."

View File

@@ -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?

View File

@@ -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"

View File

@@ -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))

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View 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."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -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

View File

@@ -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
"}

View 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
"}

View File

@@ -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)

View File

@@ -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

View 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
"}

View 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
"}

View 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
"}

View 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
"}

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View 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
"}

View File

@@ -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)

View File

@@ -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)

View 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
"}

View File

@@ -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

View File

@@ -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

View File

@@ -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"