Skip to content

Commit

Permalink
Merge branch 'master' into CaputCapital-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
xTrainx authored Apr 13, 2024
2 parents 26300eb + deabaf0 commit 162ed3d
Show file tree
Hide file tree
Showing 34 changed files with 429 additions and 21 deletions.
4 changes: 4 additions & 0 deletions code/datums/components/caltrop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
var/atom/A = parent
if(!A.has_gravity())
return

if(istype(AM, /obj/vehicle/ridden/space/speedbike) && AM.buckled_mobs.len)
var/obj/vehicle/ridden/space/speedbike/unfortunatebike = AM
unfortunatebike.crashing()

if(!prob(probability))
return
Expand Down
9 changes: 9 additions & 0 deletions code/datums/components/crafting/guncrafting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,21 @@
desc = "A basic workbench with a full set of tools for simple to intermediate projects."
resistance_flags = INDESTRUCTIBLE
density = TRUE
pass_flags = LETPASSTHROW
pass_flags_self = PASSTABLE
layer = BELOW_OBJ_LAYER
anchored = TRUE
machine_tool_behaviour = list(TOOL_WORKBENCH, TOOL_CROWBAR, TOOL_SCREWDRIVER, TOOL_WIRECUTTER, TOOL_WRENCH)
drag_delay = 0.4 SECONDS // Heavy, slow to drag
var/wrenchable = 1

/obj/machinery/workbench/CanPass(atom/movable/mover, border_dir)
if(src.density == 0)
return 1
if(istype(mover) && (mover.pass_flags & pass_flags_self))
return 1
else
return 0

/obj/machinery/workbench/can_be_unfasten_wrench(mob/user, silent)
if (!wrenchable) // case also covered by NODECONSTRUCT checks in default_unfasten_wrench
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/crafting/recipes/recipes_tribal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
result = /obj/item/gun/syringe/blowgun
time = 50
reqs = list(/obj/item/stack/sheet/mineral/bamboo = 10)
always_available = FALSE
always_available = TRUE

/datum/crafting_recipe/tribalwar/bow
name = "String Wooden Bow"
Expand Down
6 changes: 5 additions & 1 deletion code/game/machinery/camera/camera.dm
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,12 @@
I.play_tool_sound(src)
return TRUE

/obj/machinery/camera/multitool_act(mob/living/user, obj/item/I)
/obj/machinery/camera/multitool_act(mob/living/user, obj/item/multitool/I)
if(!panel_open)
if(istype(I))
to_chat(user, "<span class='notice'>You log [src] in the multitool's buffer.</span>")
I.buffer = src
return TRUE
return FALSE

setViewRange((view_range == initial(view_range)) ? short_range : initial(view_range))
Expand Down
11 changes: 11 additions & 0 deletions code/game/machinery/computer/camera.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
var/obj/screen/cam_screen
var/obj/screen/plane_master/lighting/cam_plane_master
var/obj/screen/background/cam_background
var/camera_type = /obj/machinery/camera

/obj/machinery/computer/security/Initialize()
. = ..()
Expand Down Expand Up @@ -173,6 +174,16 @@
D["[C.c_tag]"] = C
return D

/obj/machinery/computer/security/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/multitool))
var/obj/item/multitool/P = W
if(istype(P.buffer, camera_type))
to_chat(user, "<font color = #666633>-% Successfully linked [P.buffer] with [src] %-</font color>")
var/obj/machinery/camera/connectingcamera = P.buffer
network |= connectingcamera.network
return
else
return ..()
// SECURITY MONITORS

/obj/machinery/computer/security/wooden_tv
Expand Down
152 changes: 149 additions & 3 deletions code/game/mecha/mecha_construction_paths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,12 @@
return
// Remove default mech power cell, as we replace it with a new one.
var/obj/mecha/M = new result(drop_location())
QDEL_NULL(M.cell)
if(istype(M))
QDEL_NULL(M.cell)

var/obj/item/mecha_parts/chassis/parent_chassis = parent
M.CheckParts(parent_chassis.contents)
if(istype(parent_chassis))
M.CheckParts(parent_chassis.contents)

SSblackbox.record_feedback("tally", "mechas_created", 1, M.name)
QDEL_NULL(parent)
Expand All @@ -69,7 +71,7 @@
/datum/component/construction/unordered/mecha_chassis/spawn_result()
var/atom/parent_atom = parent
parent_atom.icon = 'icons/mecha/mech_construction.dmi'
if(istype(parent_atom, /obj/item/mecha_parts/chassis/phazon/car))
if(istype(parent_atom, /obj/item/mecha_parts/chassis/phazon/car) || istype(parent_atom, /obj/item/mecha_parts/chassis/phazon/bike))
parent_atom.icon = 'icons/fallout/vehicles/medium_vehicles.dmi'
parent_atom.density = TRUE
parent_atom.cut_overlays()
Expand Down Expand Up @@ -2222,6 +2224,150 @@
user.visible_message("[user] paints [parent] as a finishing touch.",
"<span class='notice'>You paint [parent] as a finishing touch.</span>")
return TRUE

/datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/bos
result = /datum/component/construction/mecha/phazon/pickuptruck/bos
/datum/component/construction/mecha/phazon/pickuptruck/bos
result = /obj/mecha/combat/phazon/pickuptruck/bos
/datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/buggy
result = /datum/component/construction/mecha/phazon/pickuptruck/buggy
/datum/component/construction/mecha/phazon/pickuptruck/buggy
result = /obj/mecha/combat/phazon/buggy
/datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/ncrtruck
result = /datum/component/construction/mecha/phazon/pickuptruck/ncrtruck
/datum/component/construction/mecha/phazon/pickuptruck/ncrtruck
result = /obj/mecha/combat/phazon/ncrtruck
/datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/highwayman
result = /datum/component/construction/mecha/phazon/pickuptruck/highwayman
/datum/component/construction/mecha/phazon/pickuptruck/highwayman
result = /obj/mecha/combat/phazon/highwayman
/datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/coverage
result = /datum/component/construction/mecha/phazon/pickuptruck/coverage
/datum/component/construction/mecha/phazon/pickuptruck/coverage
result = /obj/mecha/combat/phazon/corvega
//BIKE
/datum/component/construction/unordered/mecha_chassis/phazon/bike
result = /datum/component/construction/mecha/phazon/bike
steps = list(
/obj/item/mecha_parts/part/Car_autoshaft,
/obj/item/mecha_parts/part/Car_tire,
/obj/item/mecha_parts/part/Car_tire,
/obj/item/mecha_parts/part/Car_engine,
/obj/item/defibrillator/primitive
)

/datum/component/construction/mecha/phazon/bike
result = /obj/vehicle/ridden/space/speedbike/f13
base_icon = "bikechassis"
steps = list(
//1
list(
"key" = TOOL_WRENCH,
"desc" = "The shaft is removed."
),
//2
list(
"key" = TOOL_SCREWDRIVER,
"desc" = "The wheels are installed."
),
//3
list(

"key" = /obj/item/light/bulb,
"back_key" = TOOL_CROWBAR,
"action" = ITEM_MOVE_INSIDE,
"desc" = "The wheels are secured."
),

//5
list(
"key" = /obj/item/stack/cable_coil,
"amount" = 5,
"back_key" = TOOL_CROWBAR,
"desc" = "The busted light is replaced."
),
//6
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_WIRECUTTER,
"desc" = "The headlights are wired."
),
//7
list(
"key" = /obj/item/stack/sheet/glass,
"amount" = 5,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The gearbox is installed."
),

//8
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "the Windshield is installed."
),
//9
list(
"key" = /obj/item/stock_parts/cell,
"action" = ITEM_MOVE_INSIDE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The headlights are installed."
),
//10
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "The power cell is installed.",
)
)


/datum/component/construction/mecha/phazon/bike/custom_action(obj/item/I, mob/living/user, diff)
if(!..())
return FALSE
//TODO: better messages.
switch(index)
if(1)
user.visible_message("[user] connects [parent] hydraulic systems", "<span class='notice'>You connect [parent] hydraulic systems.</span>")
if(2)
if(diff==FORWARD)
user.visible_message("[user] activates [parent] hydraulic systems.", "<span class='notice'>You activate [parent] hydraulic systems.</span>")
else
user.visible_message("[user] disconnects [parent] hydraulic systems", "<span class='notice'>You disconnect [parent] hydraulic systems.</span>")
if(3)
if(diff==FORWARD)
user.visible_message("[user] changes the lightbulb of [parent].", "<span class='notice'>You change the lightbulb of [parent].</span>")
else
user.visible_message("[user] deactivates [parent] hydraulic systems.", "<span class='notice'>You deactivate [parent] hydraulic systems.</span>")
if(4)
if(diff==FORWARD)
user.visible_message("[user] wires the lightbulb of [parent].", "<span class='notice'> You wire the lightbulb [parent].</span>")
else
user.visible_message("[user] removes the lightbulb from[parent].", "<span class='notice'>You remove the lightbulb from [parent].</span>")
if(5)
if(diff==FORWARD)
user.visible_message("[user] installs the lightbulb [parent].", "<span class='notice'>You installs the lightbulbinto the [parent].</span>")
else
user.visible_message("[user] removes the lightbulb.", "<span class='notice'>You remove the lightbulb.</span>")
if(6)
if(diff==FORWARD)
user.visible_message("[user] Positions the Windshield.", "<span class='notice'>You Position the Windshield.</span>")
else
user.visible_message("[user] uninstall the windshield.", "<span class='notice'>You uninstall the windshield.</span>")
if(7)
if(diff==FORWARD)
user.visible_message("[user] installs the windshield of [parent].", "<span class='notice'>You install windshield of [parent].</span>")
else
user.visible_message("[user] removes the windshield.", "<span class='notice'>You remove the windshield.</span>")
if(8)
if(diff==FORWARD)
user.visible_message("[user] installs the battery.", "<span class='notice'>You install the battery.</span>")
else
user.visible_message("[user] uninstalls the windshield.", "<span class='notice'>You uninstall the windshield.</span>")
if(9)
if(diff==FORWARD)
user.visible_message("[user] secures the battery.", "<span class='notice'>You secure the battery.</span>")
return TRUE
//ODYSSEUS

/datum/component/construction/unordered/mecha_chassis/odysseus
Expand Down
25 changes: 24 additions & 1 deletion code/game/mecha/mecha_parts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,30 @@
icon = 'icons/fallout/trash.dmi'
icon_state = "car_engine"


/obj/item/mecha_parts/chassis/phazon/car/bos
name = "\improper Brotherhood Car chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/bos
/obj/item/mecha_parts/chassis/phazon/car/buggy
name = "\improper Buggy Car chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/buggy
/obj/item/mecha_parts/chassis/phazon/car/ncrtruck
name = "\improper Ncr Truck chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/ncrtruck
/obj/item/mecha_parts/chassis/phazon/car/highwayman
name = "\improper Highwayman car chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/highwayman
/obj/item/mecha_parts/chassis/phazon/car/coverage
name = "\improper Coverage car chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/pickuptruck/coverage


////////// Bike
/obj/item/mecha_parts/chassis/phazon/bike
name = "\improper Bike chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/phazon/bike
icon = 'icons/obj/vehicles/medium_vehicles.dmi'
icon_state = "bikechassis"
bound_width = 64
///////// Circuitboards

/obj/item/circuitboard/mecha
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -823,7 +823,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
icon_state = "uspvt"

/obj/effect/landmark/start/f13/uspilot
name = "Enclave Navy Pilot"
name = "Enclave Pilot"
icon_state = "uspvt"

/obj/effect/landmark/start/f13/usremnant
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/effects/temporary_visuals/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
duration = 10
randomdir = 0

/obj/effect/temp_visual/dir_setting/speedbike_trail/f13
name = "speedbike dust"
icon_state = "bite_za_dusto_fade"
/obj/effect/temp_visual/dir_setting/firing_effect
icon = 'icons/effects/effects.dmi'
icon_state = "firing_effect"
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/apc_frame.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
return
var/turf/T = get_turf(user)
var/area/A = get_area(T)
if(!isfloorturf(T))
/*if(!isfloorturf(T))
to_chat(user, "<span class='warning'>You cannot place [src] on this spot!</span>")
return
return*/
if(A.always_unpowered)
to_chat(user, "<span class='warning'>You cannot place [src] in this area!</span>")
return
Expand Down
29 changes: 29 additions & 0 deletions code/game/objects/structures/wrecks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
desc = "An old pre-war car, rusted and destroyed with age and weathering."
icon = 'icons/obj/vehicles/medium_vehicles.dmi'
icon_state = "derelict"
var/list/allchassis
var/obj/item/mecha_parts/chassis/chassis = /obj/item/mecha_parts/chassis/phazon/car
bound_width = 64

/obj/structure/wreck/car/welder_act(mob/living/user, obj/item/I)
Expand Down Expand Up @@ -55,10 +57,37 @@
return TRUE


/obj/structure/wreck/car/welder_act(mob/living/user, obj/item/I)
I.play_tool_sound(src)
user.visible_message("<span class='notice'>[user] starts preparing the [src] for a makeover...</span>", \
"<span class='notice'>You start preparing the [src] for a makeover...</span>")
if(!I.use_tool(src, user, 50))
return
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] dexterly opens up [src]'s space .</span>", \
"<span class='notice'>You dexterly open up [src]'s space.</span>")
new chassis(loc)
qdel(src)
return TRUE

/obj/structure/wreck/car/wrench_act(mob/living/user, obj/item/I)
I.play_tool_sound(src)
allchassis = subtypesof(/obj/item/mecha_parts/chassis/phazon/car)
user.visible_message("<span class='notice'>[user] changes the chassis type [src]...</span>", \
"<span class='notice'>You change the chassis type of [src]...</span>")
chassis = pick(allchassis)
user.visible_message("<span class='notice'>[initial(chassis.name)]!...</span>")
return TRUE

/obj/structure/wreck/car/bike
name = "wrecked motorcycle"
desc = "An old pre-war motorcycle, rusted and destroyed with age and weathering."
icon_state = "rust_light_no_wheels"
chassis = /obj/item/mecha_parts/chassis/phazon/bike

/obj/structure/wreck/car/bike/wrench_act(mob/living/user, obj/item/I)
return


/obj/structure/wreck/bus
name = "wrecked bus"
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/suits/armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list("melee" = 70, "bullet" = 20, "laser" = 10,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 10)
armor = list("melee" = 60, "bullet" = 30, "laser" = 10,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 30)
blocks_shove_knockdown = TRUE
strip_delay = 80
equip_delay_other = 60
Expand Down
4 changes: 3 additions & 1 deletion code/modules/clothing/suits/f13factionarmor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
/datum/component/storage/concrete/pockets/tiny/legion
max_items = 3

/obj/item/clothing/suit/armor/f13/legion/Initialize()
/obj/item/clothing/suit/armor/f13/legion/ComponentInitialize()
. = ..()
AddComponent(/datum/component/armor_plate)

Expand Down Expand Up @@ -366,6 +366,8 @@
armor = list("melee" = 60, "bullet" = 65, "laser" = 55, "energy" = 15, "bomb" = 40, "bio" = 55, "rad" = 25, "fire" = 55, "acid" = 15, "wound" = 30)
slowdown = 1.5

/obj/item/clothing/suit/armor/f13/legion/legionsalvaged/ComponentInitialize()
return
/obj/item/clothing/suit/armor/f13/slavelabor
name = "old leather strips"
desc = "Worn leather strips, used as makeshift protection from chafing and sharp stones by labor slaves."
Expand Down
Loading

0 comments on commit 162ed3d

Please sign in to comment.