Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
map_path: [example, tradeship, exodus, ministation, shaded_hills, away_sites_testing, modpack_testing, planets_testing]
map_path: [example, tradeship, exodus, ministation, shaded_hills, cynosure, away_sites_testing, modpack_testing, planets_testing]
steps:
- uses: actions/checkout@v3
- name: Setup Cache
Expand Down
4 changes: 2 additions & 2 deletions code/__defines/definition_helpers.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**Define a poster's decl and its mapper type */
#define DEFINE_POSTER(TYPENAME, ICONSTATE, NAME, DESC)\
/decl/poster_design/##TYPENAME{name = NAME; desc = DESC; icon_state = ICONSTATE;};\
/obj/structure/sign/poster/##TYPENAME{poster_design = /decl/poster_design/##TYPENAME; name = NAME; icon_state = ICONSTATE;};
/decl/poster_design/##TYPENAME{name = NAME; desc = DESC; icon_state = ICONSTATE;} \
/obj/structure/sign/poster/##TYPENAME{poster_design = /decl/poster_design/##TYPENAME; name = NAME; icon_state = ICONSTATE;}

#define DEFINE_STACK_SUBTYPES(MAT_ID, MAT_NAME, MAT_TYPE, STACK_TYPE, REINF_TYPE) \
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID { \
Expand Down
12 changes: 12 additions & 0 deletions code/game/machinery/alarm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1123,3 +1123,15 @@ FIRE ALARM

if(. == TOPIC_REFRESH)
interact(user)

/obj/machinery/alarm/outside/Initialize(mapload, dir)
..()
return INITIALIZE_HINT_LATELOAD

// TODO: Automatically set to expected exterior conditions.
/*
/obj/machinery/alarm/outside/LateInitialize()
. = ..()
if(isatom(loc) && loc.z)
var/datum/level_data/level = SSmapping.levels_by_z[loc.z]
*/
9 changes: 5 additions & 4 deletions code/game/machinery/atmoalter/canister.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,11 @@
start_gas = /decl/material/gas/hydrogen

/obj/machinery/portable_atmospherics/canister/phoron
name = "\improper Canister \[Phoron\]"
icon_state = "orange"
canister_color = "orange"
can_label = 0
name = "phoron canister"
icon_state = "purple"
canister_color = "purple"
can_label = FALSE
start_gas = /decl/material/solid/phoron

/obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "\improper CO2 canister"
Expand Down
9 changes: 9 additions & 0 deletions code/game/machinery/cryopod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -588,3 +588,12 @@
on_store_name = "Residential Oversight"
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
on_store_visible_message = "$TARGET$ makes a ding as it moves $USER$ to the residential district."

/obj/machinery/cryopod/robot/door/checkpoint
name = "automated checkpoint"
desc = "A reinforced, automated checkpoint tracking arrivals and departures from the outpost. Beyond this vault is a small airstrip, then nothing but untamed wilderness."
on_store_message = "has departed from the colony."
on_store_name = "Travel Oversight"
on_enter_occupant_message = "The checkpoint unseals and grinds open, and you step through."
on_store_visible_message = "The checkpoint grinds closed after $TARGET$ passes through it."
time_till_despawn = 1 SECOND
50 changes: 29 additions & 21 deletions code/game/machinery/portable_turret.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
power_channel = EQUIP //drains power from the EQUIPMENT channel
max_health = 80

var/incoming_damage_multiplier = 1

var/raised = 0 //if the turret cover is "open" and the turret is raised
var/raising= 0 //if the turret is currently opening or closing its cover
var/auto_repair = 0 //if 1 the turret slowly repairs itself.
Expand Down Expand Up @@ -58,22 +60,6 @@

initial_access = list(list(access_security, access_bridge))

/obj/machinery/porta_turret/crescent
enabled = 0
ailock = 1
check_synth = 0
check_access = 1
check_arrest = 1
check_records = 1
check_weapons = 1
check_anomalies = 1
initial_access = list(access_cent_specops)

/obj/machinery/porta_turret/stationary
ailock = 1
lethal = 1
installation = /obj/item/gun/energy/laser

/obj/machinery/porta_turret/Initialize()
. = ..()
setup()
Expand Down Expand Up @@ -289,7 +275,7 @@ var/global/list/turret_icons

else
//if the turret was attacked with the intention of harming it:
var/force = used_item.expend_attack_force(user) * 0.5
var/force = used_item.expend_attack_force(user) * 0.5 * incoming_damage_multiplier
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
take_damage(force, used_item.atom_damage_type)
if(force > 1) //if the force of impact dealt at least 1 damage, the turret gets pissed off
Expand Down Expand Up @@ -327,7 +313,7 @@ var/global/list/turret_icons
die() //the death process :(

/obj/machinery/porta_turret/bullet_act(obj/item/projectile/Proj)
var/damage = Proj.get_structure_damage()
var/damage = Proj.get_structure_damage() * incoming_damage_multiplier

if(!damage)
return
Expand Down Expand Up @@ -600,9 +586,31 @@ var/global/list/turret_icons
/atom/movable/porta_turret_cover
icon = 'icons/obj/turrets.dmi'




#undef TURRET_PRIORITY_TARGET
#undef TURRET_SECONDARY_TARGET
#undef TURRET_NOT_TARGET


/obj/machinery/porta_turret/crescent
enabled = 0
ailock = 1
check_synth = 0
check_access = 1
check_arrest = 1
check_records = 1
check_weapons = 1
check_anomalies = 1
initial_access = list(access_cent_specops)

/obj/machinery/porta_turret/stationary
ailock = 1
lethal = 1
installation = /obj/item/gun/energy/laser

/obj/machinery/porta_turret/lasertag/red

/obj/machinery/porta_turret/alien

/obj/machinery/porta_turret/alien/destroyed

/obj/machinery/porta_turret/poi
1 change: 1 addition & 0 deletions code/game/objects/effects/effect_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,7 @@ steam.start() -- spawns the effect
smoke_type = /obj/effect/effect/smoke/mustard



/////////////////////////////////////////////
//////// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
/// just pass in the object to attach it to in set_up
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/effects/map_effect/_map_effect.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@
if(get_dist(player, src) <= radius)
return TRUE
return FALSE

/obj/abstract/map_effect/radiation_emitter
1 change: 1 addition & 0 deletions code/game/objects/items/circuitboards/machinery/power.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
board_type = "machine"
origin_tech = @'{"powerstorage":6,"engineering":4}'
req_components = list(/obj/item/stock_parts/smes_coil = 1, /obj/item/stack/cable_coil = 30)
spawn_components = list(/obj/item/stack/cable_coil = 30)
additional_spawn_components = list(
/obj/item/stock_parts/console_screen = 1,
/obj/item/stock_parts/keyboard = 1,
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/devices/gps.dm
Original file line number Diff line number Diff line change
Expand Up @@ -460,3 +460,7 @@ var/global/list/all_gps_units = list()
"stripe-outside" = "#ffae00",
"stripe-inside" = "#9e7900"
)

/obj/item/gps/internal

/obj/item/gps/internal/poi
33 changes: 33 additions & 0 deletions code/game/objects/structures/boat.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/obj/item/oar
name = "oar"
icon = 'icons/obj/items/oar.dmi'
icon_state = ICON_STATE_WORLD
material = /decl/material/solid/organic/wood/oak
material_alteration = MAT_FLAG_ALTERATION_ALL
desc = "Used to provide propulsion to a boat."
sharp = FALSE
edge = FALSE
_base_attack_force = 12 // bonk

/obj/structure/boat
name = "boat"
desc = "It's a wooden boat. Looks like it'll hold two people. Oars not included."
icon = 'icons/obj/structures/boat.dmi'
icon_state = ICON_STATE_WORLD
max_health = 100
pixel_x = -2
layer = ABOVE_HUMAN_LAYER
material = /decl/material/solid/organic/wood/oak
material_alteration = MAT_FLAG_ALTERATION_ALL

/obj/structure/boat/dragon/sifwood
name = "dragon boat"
desc = "It's a large wooden boat, carved to have a nordic-looking dragon on the front. Looks like it'll hold five people. Oars not included."
max_health = 250
icon = 'icons/obj/structures/boat_dragon.dmi'
pixel_x = -16

/obj/structure/boat/dragon/sifwood/on_update_icon()
. = ..()
underlays.Cut()
underlays += image(icon = icon, icon_state = "[icon_state]-underlay", layer = MOB_SHADOW_LAYER-0.01)
2 changes: 1 addition & 1 deletion code/game/objects/structures/flaps.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
/mob/living/bot,
/mob/living/simple_animal/passive/mouse,
/mob/living/silicon/robot/drone
)
)
var/airtight = FALSE
var/can_pass_lying = TRUE

Expand Down
4 changes: 4 additions & 0 deletions code/game/turfs/unsimulated/walls.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,7 @@
desc = "A secure airlock. Doesn't look like you can get through easily."
icon = 'icons/obj/doors/centcomm/door.dmi'
icon_state = "closed"

/turf/unsimulated/wall/rock
name = "impenetrable stone"
// todo
3 changes: 2 additions & 1 deletion code/modules/atmospherics/components/portables_connector.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,5 @@
return SPAN_WARNING("You cannot unwrench \the [src], detach \the [connected_device] first.")
if (locate(/obj/machinery/portable_atmospherics, src.loc))
return MCS_BLOCK
return ..()
return ..()

1 change: 1 addition & 0 deletions code/modules/butchery/butchery_products_meat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,4 @@
/obj/item/food/butchery/meat/bear/populate_reagents()
. = ..()
add_to_reagents(/decl/material/liquid/amphetamines, 5)

8 changes: 8 additions & 0 deletions code/modules/butchery/butchery_remains.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,11 @@
name = "deer skull"
icon = 'icons/obj/items/bone.dmi'
icon_state = "deer_skull"

/obj/item/bone/skull/unknown

/obj/item/bone/skull/tajaran

/obj/item/bone/ribs

/obj/item/bone/arm
6 changes: 6 additions & 0 deletions code/modules/clothing/armor_attachment/plate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,9 @@
/decl/material/solid/gemstone/diamond = MATTER_AMOUNT_TRACE
)
origin_tech = @'{"materials":3,"engineering":2,"combat":2}'

/obj/item/clothing/armor_attachment/plate/laserproof

/obj/item/clothing/armor_attachment/plate/riot

/obj/item/clothing/armor_attachment/plate/bulletproof
28 changes: 14 additions & 14 deletions code/modules/lighting/lighting_corner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -347,19 +347,19 @@ var/global/list/REVERSE_LIGHTING_CORNER_DIAGONAL = list(0, 0, 0, 0, 3, 4, 0, 0,
var/Ti

if (!new_opacity)
for (;;)
if (Tcorn.t1 && (T = Tcorn.t1.below || GET_BELOW(Tcorn.t1)) && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
while(TRUE)
if (Tcorn.t1 && (T = Tcorn.t1.below || GET_BELOW(Tcorn.t1)) && T.corners?[Tcorn.t1i] && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t1i
else if (Tcorn.t2 && (T = Tcorn.t2.below || GET_BELOW(Tcorn.t2)) && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t2 && (T = Tcorn.t2.below || GET_BELOW(Tcorn.t2)) && T.corners?[Tcorn.t2i] && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t2i
else if (Tcorn.t3 && (T = Tcorn.t3.below || GET_BELOW(Tcorn.t3)) && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t3 && (T = Tcorn.t3.below || GET_BELOW(Tcorn.t3)) && T.corners?[Tcorn.t3i] && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t3i
else if (Tcorn.t4 && (T = Tcorn.t4.below || GET_BELOW(Tcorn.t4)) && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t4 && (T = Tcorn.t4.below || GET_BELOW(Tcorn.t4)) && T.corners?[Tcorn.t4i] && (T.above?.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t4i
else // Nothing above us that cares about below light.
else // Nothing above us that cares about below light.
break

Tcorn = T.corners[Ti]
Tcorn = T.corners?[Ti]
below_r += Tcorn.apparent_r
below_g += Tcorn.apparent_g
below_b += Tcorn.apparent_b
Expand All @@ -375,19 +375,19 @@ var/global/list/REVERSE_LIGHTING_CORNER_DIAGONAL = list(0, 0, 0, 0, 3, 4, 0, 0,
T = null
Tcorn = src

for (;;)
if (Tcorn.t1 && (T = Tcorn.t1.above || GET_ABOVE(Tcorn.t1)) && (T.z_flags & ZM_ALLOW_LIGHTING))
while(TRUE)
if (Tcorn.t1 && (T = Tcorn.t1.above || GET_ABOVE(Tcorn.t1)) && T.corners?[Tcorn.t1i] && (T.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t1i
else if (Tcorn.t2 && (T = Tcorn.t2.above || GET_ABOVE(Tcorn.t2)) && (T.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t2 && (T = Tcorn.t2.above || GET_ABOVE(Tcorn.t2)) && T.corners?[Tcorn.t2i] && (T.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t2i
else if (Tcorn.t3 && (T = Tcorn.t3.above || GET_ABOVE(Tcorn.t3)) && (T.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t3 && (T = Tcorn.t3.above || GET_ABOVE(Tcorn.t3)) && T.corners?[Tcorn.t3i] && (T.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t3i
else if (Tcorn.t4 && (T = Tcorn.t4.above || GET_ABOVE(Tcorn.t4)) && (T.z_flags & ZM_ALLOW_LIGHTING))
else if (Tcorn.t4 && (T = Tcorn.t4.above || GET_ABOVE(Tcorn.t4)) && T.corners?[Tcorn.t4i] && (T.z_flags & ZM_ALLOW_LIGHTING))
Ti = Tcorn.t4i
else // Nothing above us that cares about below light.
else // Nothing above us that cares about below light.
break

Tcorn = T.corners[Ti]
Tcorn = T.corners?[Ti]
Tcorn.below_r += apparent_r
Tcorn.below_g += apparent_g
Tcorn.below_b += apparent_b
Expand Down
2 changes: 1 addition & 1 deletion code/modules/materials/stack_types/material_stack_ore.dm
Original file line number Diff line number Diff line change
Expand Up @@ -231,4 +231,4 @@
new drop_type(T, mat.ore_result_amount, mtype)

#undef ORE_MAX_AMOUNT
#undef ORE_MAX_OVERLAYS
#undef ORE_MAX_OVERLAYS
3 changes: 3 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/viscerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,6 @@

/mob/living/simple_animal/hostile/viscerator/hive
faction = "hivebot"

/mob/living/simple_animal/hostile/viscerator/mercenary
faction = "mercenary" // TODO: check target antag status(?)
1 change: 1 addition & 0 deletions code/modules/power/smes_construction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
should_be_mapped = 1
base_type = /obj/machinery/power/smes/buildable
maximum_component_parts = list(/obj/item/stock_parts/smes_coil = 6, /obj/item/stock_parts = 15)
uncreated_component_parts = list(/obj/item/stock_parts/smes_coil = 1)
interact_offline = TRUE
var/safeties_enabled = 1 // If 0 modifications can be done without discharging the SMES, at risk of critical failure.
var/failing = 0 // If 1 critical failure has occurred and SMES explosion is imminent.
Expand Down
8 changes: 8 additions & 0 deletions code/modules/projectiles/ammunition/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,14 @@
ammo_type = /obj/item/ammo_casing/rifle
max_ammo = 100

/obj/item/ammo_magazine/clip
name = "clip"
caliber = CALIBER_PISTOL

/obj/item/ammo_magazine/clip/rifle
name = "rifle clip"
caliber = CALIBER_RIFLE

/obj/item/ammo_magazine/caps
name = "speed loader"
desc = "A cheap plastic speed loader for some kind of revolver."
Expand Down
Binary file added icons/obj/items/oar.dmi
Binary file not shown.
Binary file added icons/obj/structures/boat.dmi
Binary file not shown.
Binary file added icons/obj/structures/boat_dragon.dmi
Binary file not shown.
Loading
Loading