Skip to content

Commit

Permalink
TGS Test Merge (shiptest-ss13#3291)
Browse files Browse the repository at this point in the history
  • Loading branch information
tgstation-server committed Sep 17, 2024
2 parents 4339faf + 8b709e5 commit 0ce6dd1
Show file tree
Hide file tree
Showing 21 changed files with 6,086 additions and 134 deletions.
5,851 changes: 5,851 additions & 0 deletions _maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions _maps/map_catalogue.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
Size = (x = 47)(y = 37)(z = 1)
Tags = "Medium Combat Challenge", "Minor Loot", "Shelter"

File Name = _maps\RandomRuins\IceRuins\icemoon_ice_lodge.dmm
Size = (x = 44)(y = 49)(z = 1)
Tags = "Major Combat Challenge", "Major Loot", "Shelter", "Hazardous"


JungleRuins:
Expand Down
6 changes: 6 additions & 0 deletions code/datums/ruins/icemoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,9 @@
id = "crashed_holemaker"
description = "Safety records for early Nanotrasen Spaceworks vessels were, and always have been, top of their class. Absolutely no multi-billion credit projects have been painstakingly erased from history. (Citation Needed)"
suffix = "icemoon_crashed_holemaker.dmm"

/datum/map_template/ruin/icemoon/ice_lodge
name = "Ice Lodge"
id = "ice_lodge"
description = "Records show this settlement as belonging to the SRM, but no one has heard from them as of late. I wonder what happened?"
suffix = "icemoon_ice_lodge.dmm"
22 changes: 22 additions & 0 deletions code/game/area/areas/ruins/icemoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,25 @@
/area/ruin/unpowered/crashed_holemaker
name = "NTSV Holemaker II" // In honor of the kugelblitz shenanigan of all time
icon_state = "green"

// Ice Lodge

/area/ruin/powered/icemoon/lodge/mainhall
name = "Main Hall"
icon_state = "bridge_hallway"

/area/ruin/powered/icemoon/lodge/cellar
name = "Cellar"
icon_state = "yellow"

/area/ruin/powered/icemoon/lodge/montagne_office
name = "Montagne's Office"
icon_state = "bridge"

/area/ruin/powered/icemoon/lodge/residential
name = "Residential Quarters"
icon_state = "crew_quarters"

/area/ruin/powered/icemoon/lodge/gear_room
name = "Gear Room"
icon_state = "security"
15 changes: 15 additions & 0 deletions code/game/objects/effects/spawners/lootdrop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1294,3 +1294,18 @@
/obj/item/storage/ration/cheese_pizza_slice = 5,
/obj/item/storage/ration/crayons = 2 // :)
)

/obj/effect/spawner/lootdrop/chem_jug
loot = list(
/obj/item/reagent_containers/glass/chem_jug/carbon,
/obj/item/reagent_containers/glass/chem_jug/oxygen,
/obj/item/reagent_containers/glass/chem_jug/nitrogen,
/obj/item/reagent_containers/glass/chem_jug/hydrogen,
/obj/item/reagent_containers/glass/chem_jug/radium,
/obj/item/reagent_containers/glass/chem_jug/aluminium,
/obj/item/reagent_containers/glass/chem_jug/chlorine,
/obj/item/reagent_containers/glass/chem_jug/copper,
/obj/item/reagent_containers/glass/chem_jug/bromine,
/obj/item/reagent_containers/glass/chem_jug/iodine,
/obj/item/reagent_containers/glass/chem_jug/potassium,
/obj/item/reagent_containers/glass/chem_jug/sulfur)
5 changes: 5 additions & 0 deletions code/game/objects/structures/displaycase.dm
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
take_damage(2)

/obj/structure/displaycase/broken
name = "broken display case"
desc = "A display case for prized possessions. Or at least it was, until someone smashed it open."
broken = 1

/obj/structure/displaycase_chassis
anchored = TRUE
density = FALSE
Expand Down
5 changes: 0 additions & 5 deletions code/game/objects/structures/fence.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,11 +111,6 @@
cuttable = FALSE
var/open = FALSE

/obj/structure/fence/door/Initialize()
. = ..()

update_door_status()

/obj/structure/fence/door/opened
icon_state = "door_opened"
open = TRUE
Expand Down
24 changes: 24 additions & 0 deletions code/game/turfs/open/floor/plating/icemoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -223,3 +223,27 @@
/turf/open/floor/plating/asteroid/snow/ice/burn_tile()
return FALSE

/turf/open/floor/wood/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
slowdown = 0

/turf/open/floor/wood/ebony/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
slowdown = 0

/turf/open/floor/plasteel/stairs/wood/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
slowdown = 0

/turf/open/floor/concrete/slab_3/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
slowdown = 0

8 changes: 8 additions & 0 deletions code/modules/hydroponics/fermenting_barrel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,14 @@
icon_state = closed_state
return ..()

/obj/structure/fermenting_barrel/gunpowder
name = "Gunpowder Barrel"
desc = "A wooden barrel packed with gunpowder. You should probably keep this away from sparks or open fires."

/obj/structure/fermenting_barrel/gunpowder/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/gunpowder, 200)

/obj/structure/fermenting_barrel/distiller
name = "Distiller"
icon_state = "distiller"
Expand Down
7 changes: 4 additions & 3 deletions code/modules/hydroponics/growninedible.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
icon = 'icons/obj/hydroponics/harvest.dmi'
resistance_flags = FLAMMABLE
var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item.
var/auto_scatter = TRUE

/obj/item/grown/Initialize(newloc, obj/item/seeds/new_seed)
. = ..()
Expand All @@ -18,9 +19,9 @@
// This is for adminspawn or map-placed growns. They get the default stats of their seed type.
seed = new seed()
seed.adjust_potency(50-seed.potency)

pixel_x = base_pixel_x + rand(-5, 5)
pixel_y = base_pixel_y + rand(-5, 5)
if(auto_scatter)
pixel_x = base_pixel_x + rand(-5, 5)
pixel_y = base_pixel_y + rand(-5, 5)

if(seed)
// Go through all traits in their genes and call on_new_plant from them.
Expand Down
6 changes: 4 additions & 2 deletions code/modules/hydroponics/hydroitemdefines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,13 @@
volume = 50
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(1,2,5,10,15,25,50)
var/auto_scatter = TRUE

/obj/item/reagent_containers/glass/bottle/nutrient/Initialize()
. = ..()
pixel_x = base_pixel_x + rand(-5, 5)
pixel_y = base_pixel_y + rand(-5, 5)
if(auto_scatter)
pixel_x = base_pixel_x + rand(-5, 5)
pixel_y = base_pixel_y + rand(-5, 5)


/obj/item/reagent_containers/glass/bottle/nutrient/ez
Expand Down
30 changes: 30 additions & 0 deletions code/modules/mob/living/simple_animal/corpse.dm
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,13 @@
/obj/effect/mob_spawn/human/corpse/frontier/ranged
outfit = /datum/outfit/frontier

/obj/effect/mob_spawn/human/corpse/frontier/surgeon
outfit = /datum/outfit/job/frontiersmen/doctor/corpse

/datum/outfit/job/frontiersmen/doctor/corpse
name = "Frontiersmen Surgeon Corpse"
r_pocket = null

/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper
outfit = /datum/outfit/frontier/trooper

Expand Down Expand Up @@ -169,6 +176,17 @@
/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless
outfit = /datum/outfit/frontier/trooper/heavy/gunless

/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/flame
outfit = /datum/outfit/job/frontiersmen/ert/flamer/corpse

/datum/outfit/job/frontiersmen/ert/flamer/corpse
name = "Frontiersman Flametrooper Corpse"
back = null
belt = /obj/item/storage/belt/security/military/frontiersmen
l_hand = null

backpack_contents = null

/datum/outfit/frontier/trooper/heavy/gunless
name = "Frontiersman Heavy Corpse (Gunless)"
back = null
Expand Down Expand Up @@ -251,3 +269,15 @@
id_job = "SolGov Sonnensoldner"
outfit = /datum/outfit/job/solgov/sonnensoldner
id_access_list = list(ACCESS_SOLGOV)

/obj/effect/mob_spawn/human/corpse/srm/hunter
name = "SRM Hunter"
id_job = "Hunter"
outfit = /datum/outfit/job/roumain/security
id_access_list = null

/obj/effect/mob_spawn/human/corpse/srm/montagne
name = "SRM Montagne"
id_job = "Hunter Montagne"
outfit = /datum/outfit/job/roumain/captain
id_access_list = null
31 changes: 29 additions & 2 deletions code/modules/mob/living/simple_animal/hostile/hostile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
var/check_friendly_fire = FALSE // Should the ranged mob check for friendlies when shooting
var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat.
var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance

var/shoot_point_blank = FALSE // If this mob will still shoot even in melee range.

//These vars are related to how mobs locate and target
var/robust_searching = 0 //By default, mobs have a simple searching method, set this to 1 for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs
Expand Down Expand Up @@ -315,7 +315,10 @@
Goto(target,move_to_delay,minimum_distance)
if(target)
if(isturf(target_from.loc) && target.Adjacent(target_from)) //If they're next to us, attack
MeleeAction()
if(ranged && shoot_point_blank && ranged_cooldown <= world.time)
OpenFire(target)
else
MeleeAction()
else
if(rapid_melee > 1 && target_distance <= melee_queue_distance)
MeleeAction(FALSE)
Expand Down Expand Up @@ -698,3 +701,27 @@
if (length(initial(src.faction)) > 0)
src.faction += initial(src.faction)
src.faction += tag

/mob/living/simple_animal/hostile/proc/fire_line(source, list/turfs, fire_source = "fire breath", ignite_turfs = FALSE, power = 4, flame_color = "red")
var/list/hit_list = list()
for(var/turf/T in turfs)
if(istype(T, /turf/closed))
break
new /obj/effect/hotspot(T)
T.hotspot_expose(700,50,1)
if(ignite_turfs)
T.IgniteTurf(power,flame_color)
for(var/mob/living/L in T.contents)
if(L in hit_list || L == source)
continue
hit_list += L
L.adjustFireLoss(20)
to_chat(L, "<span class='userdanger'>You're hit by [source]'s [fire_source]!</span>")

// deals damage to mechs
for(var/obj/mecha/M in T.contents)
if(M in hit_list)
continue
hit_list += M
M.take_damage(45, BRUTE, "melee", 1)
sleep(1.5)
86 changes: 0 additions & 86 deletions code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm

This file was deleted.

Loading

0 comments on commit 0ce6dd1

Please sign in to comment.