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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,9 @@
#define TRAIT_AUTOBREW "autobrewery-syndrome"
#define TRAIT_SPEED "SPEED"
#define TRAIT_SUPER_SPEED "super SPEED"

// Hey. Dickheads. Never, ever use anything cringe like 'zoomies' or 'smol' as a define ever again. - Hangyul
// Hey. Hangyul often have Zoomies, and is smol in fallout canon, according to the fallout bible. -Delta

// mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
Expand Down Expand Up @@ -330,7 +332,7 @@
#define TRAIT_MARS_TEACH "mars_teachings" //for legion unique functions
#define TRAIT_EXPLOSIVE_CRAFTING "explosive_crafting" //can craft explosives and bombs
#define TRAIT_ADVANCED_EXPLOSIVE_CRAFTING "advanced explosive crafting" //can craft almost all kinds of explosives
/// Lets your tongue heal damage on limbs
#define TRAIT_PILOT "pilot" //For Vertibird use
/*
#define TRAIT_HEAL_TONGUE "healing tongue"
/// Lets your tongue apply awful bandages to limbs
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_CANNIBAL" = TRAIT_LONGPORKLOVER,
"TRAIT_SPEED" = TRAIT_SPEED,
"TRAIT_SUPER_SPEED" = TRAIT_SUPER_SPEED,
"TRAIT_PILOT" = TRAIT_PILOT,
),
/obj/item/bodypart = list(
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS
Expand Down
8 changes: 8 additions & 0 deletions code/datums/components/crafting/recipes/vehicle_parts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
category = CAT_VEHICLES
subcategory = CAT_VEHICLEPARTS

/datum/crafting_recipe/mountedseat
name = "Mounted seat"
result = /obj/item/mecha_parts/mecha_equipment/seat
reqs = list(/obj/item/stack/sheet/plastic = 2,
/obj/item/stack/sheet/cloth = 4)
time = 20
category = CAT_VEHICLES
subcategory = CAT_VEHICLEPARTS

/datum/crafting_recipe/fuel_tank
name = "Fuel Tank"
Expand Down
9 changes: 9 additions & 0 deletions code/datums/traits/good.dm
Original file line number Diff line number Diff line change
Expand Up @@ -958,6 +958,15 @@ GLOBAL_LIST_INIT(bone_dancer_recipes, list(
lose_text = span_danger("The thought of barbed wire horrifies you.")
locked = FALSE

/datum/quirk/pilot
name = "Pilot"
desc = "You know how to fly Vertibird (and balloons)."
value = 2
mob_trait = TRAIT_PILOT
gain_text = span_notice("You know how to fly Vertbirds.")
lose_text = span_danger("You know how to crash Vertibirds")
locked = FALSE

/datum/quirk/quickercarry
name = "Quicker Carry"
desc = "You're real good at just scooping people up."
Expand Down
53 changes: 50 additions & 3 deletions code/game/mecha/combat/combatvehicle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,56 @@
turnsound = 'sound/f13machines/vertibird_loop.ogg'



/obj/mecha/combat/combatvehicle/vertibird/MouseDrop_T(mob/M, mob/user)
if (!user.canUseTopic(src) || (user != M))
return
if(!ishuman(user)) // no silicons or drones in mechas.
return
if(!HAS_TRAIT(M, TRAIT_PILOT))
to_chat(usr, "... You don'know how to pilot.")
return
if (occupant)
to_chat(usr, "<span class='warning'>The [name] is already occupied!</span>")
log_append_to_last("Permission denied.")
return
if(dna_lock)
var/passed = FALSE
if(user.has_dna())
var/mob/living/carbon/C = user
if(C.dna.unique_enzymes==dna_lock)
passed = TRUE
if (!passed)
to_chat(user, "<span class='warning'>Access denied. The [name] is secured with a DNA lock.</span>")
log_append_to_last("Permission denied.")
return
if(!operation_allowed(user))
to_chat(user, "<span class='warning'>Access denied. Insufficient operation keycodes.</span>")
log_append_to_last("Permission denied.")
return
if(user.buckled)
to_chat(user, "<span class='warning'>You are currently buckled and cannot move.</span>")
log_append_to_last("Permission denied.")
return
if(user.has_buckled_mobs()) //mob attached to us
to_chat(user, "<span class='warning'>You can't enter the exosuit with other creatures attached to you!</span>")
return

visible_message("[user] starts to climb into [name].")

if(do_after(user, enter_delay, target = src))
if(obj_integrity <= 0)
to_chat(user, "<span class='warning'>You cannot get in the [name], it has been destroyed!</span>")
else if(occupant)
to_chat(user, "<span class='danger'>[occupant] was faster! Try better next time, loser.</span>")
else if(user.buckled)
to_chat(user, "<span class='warning'>You can't enter the exosuit while buckled.</span>")
else if(user.has_buckled_mobs())
to_chat(user, "<span class='warning'>You can't enter the exosuit with other creatures attached to you!</span>")
else
moved_inside(user)
else
to_chat(user, "<span class='warning'>You stop entering the exosuit!</span>")
return

/obj/structure/mecha_wreckage/vertibird
name = "\improper Vertibird Wreck"
Expand Down Expand Up @@ -464,8 +513,6 @@
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy




/obj/mecha/combat/combatvehicle/buggy/rangerarmed/go_out()
..()
Expand Down
5 changes: 3 additions & 2 deletions code/game/mecha/mech_bay.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@

/obj/structure/reagent_dispensers/fueltank/vehicle_gas_station
name = "Gas Station"
desc = "an old world Gasoline station, for comercial distribution of fue."
desc = "an old world Gasoline station, for comercial distribution of fuel."
density = TRUE
dir = NORTH
icon = 'icons/obj/objects.dmi';
Expand Down Expand Up @@ -216,14 +216,15 @@

/obj/item/fuel_nozzle
name = "Gas Station fuel nuzzle"
desc = "an old world Gasoline station, for comercial distribution of fue."
desc = "An old world Gasoline station, for comercial distribution of fuel."
icon = 'icons/mecha/mech_bay.dmi'
icon_state = "fuel_nozzle"
var/obj/structure/reagent_dispensers/fueltank/vehicle_gas_station/main_station = null
var/list/possible_transfer_amounts = list(10, 20, 25, 50, 75, 100, 150, 200)
var/amount_per_transfer_from_this = 10
var/dispensing = FALSE
var/mob/holder = null
w_class = WEIGHT_CLASS_GIGANTIC

/obj/item/fuel_nozzle/examine(mob/user)
. = ..()
Expand Down
69 changes: 52 additions & 17 deletions code/game/mecha/working/normalvehicle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,56 @@
turnsound = 'sound/f13machines/vertibird_loop.ogg'



/obj/mecha/working/normalvehicle/vertibird/MouseDrop_T(mob/M, mob/user)
if (!user.canUseTopic(src) || (user != M))
return
if(!ishuman(user)) // no silicons or drones in mechas.
return
if(!HAS_TRAIT(M, TRAIT_PILOT))
to_chat(usr, "... You don'know how to pilot.")
return
if (occupant)
to_chat(usr, "<span class='warning'>The [name] is already occupied!</span>")
log_append_to_last("Permission denied.")
return
if(dna_lock)
var/passed = FALSE
if(user.has_dna())
var/mob/living/carbon/C = user
if(C.dna.unique_enzymes==dna_lock)
passed = TRUE
if (!passed)
to_chat(user, "<span class='warning'>Access denied. The [name] is secured with a DNA lock.</span>")
log_append_to_last("Permission denied.")
return
if(!operation_allowed(user))
to_chat(user, "<span class='warning'>Access denied. Insufficient operation keycodes.</span>")
log_append_to_last("Permission denied.")
return
if(user.buckled)
to_chat(user, "<span class='warning'>You are currently buckled and cannot move.</span>")
log_append_to_last("Permission denied.")
return
if(user.has_buckled_mobs()) //mob attached to us
to_chat(user, "<span class='warning'>You can't enter the exosuit with other creatures attached to you!</span>")
return

visible_message("[user] starts to climb into [name].")

if(do_after(user, enter_delay, target = src))
if(obj_integrity <= 0)
to_chat(user, "<span class='warning'>You cannot get in the [name], it has been destroyed!</span>")
else if(occupant)
to_chat(user, "<span class='danger'>[occupant] was faster! Try better next time, loser.</span>")
else if(user.buckled)
to_chat(user, "<span class='warning'>You can't enter the exosuit while buckled.</span>")
else if(user.has_buckled_mobs())
to_chat(user, "<span class='warning'>You can't enter the exosuit with other creatures attached to you!</span>")
else
moved_inside(user)
else
to_chat(user, "<span class='warning'>You stop entering the exosuit!</span>")
return

/obj/structure/mecha_wreckage/vertibird
name = "\improper Vertibird Wreck"
Expand Down Expand Up @@ -450,7 +499,6 @@
var/list/cargo = new
var/cargo_capacity = 30
var/hides = 0


/obj/structure/mecha_wreckage/ncrtruck
name = "\improper Salvageable wreckage"
Expand Down Expand Up @@ -611,8 +659,6 @@
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy




/obj/mecha/working/normalvehicle/pickuptruck/go_out()
..()
Expand Down Expand Up @@ -898,8 +944,6 @@
stepsound = 'sound/f13machines/buggy_loop.ogg'
turnsound = 'sound/f13machines/buggy_loop.ogg'




/obj/mecha/working/normalvehicle/ambulance/go_out()
..()
Expand Down Expand Up @@ -964,9 +1008,7 @@
stepsound = 'sound/f13machines/buggy_loop.ogg'
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy





/obj/structure/mecha_wreckage/buggy
name = "\improper Buggy wreckage"
Expand Down Expand Up @@ -1359,9 +1401,6 @@
stepsound = 'sound/f13machines/buggy_loop.ogg'
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy




/obj/mecha/working/normalvehicle/jeep/go_out()
..()
Expand Down Expand Up @@ -1539,9 +1578,7 @@
stepsound = 'sound/f13machines/buggy_loop.ogg'
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy





/obj/mecha/working/normalvehicle/highwayman/go_out()
..()
Expand Down Expand Up @@ -1596,8 +1633,6 @@
turnsound = 'sound/f13machines/buggy_loop.ogg'
wreckage = /obj/structure/mecha_wreckage/buggy




/obj/mecha/working/normalvehicle/corvega/go_out()
..()
Expand Down
8 changes: 8 additions & 0 deletions code/game/objects/items/granters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1050,6 +1050,14 @@
traitname = "Power Armor"
remarks = list("Daily maintenance is essential, clean and repair your suit often.", "Don't let overconfidence kill you, you are not invincible.", "Mechanized infantry should always be supported by regular infantry.", "You move slowly, pay attention to your position relative to the enemy.", "You are always vulnerable to ambush, do not rest in the field.", "AP rounds will shred your suit, you are not invincible.")

/obj/item/book/granter/trait/pilot
name = "Vertibird Valkiries : The Balkan War"
desc = "A comic book, with a guide to learn how to fly vertibirds. And balloons."
oneuse = TRUE
granted_trait = TRAIT_PILOT
traitname = "Pilot"
remarks = list("You feel the need for speed.", "The transition between horizontal and vertical flight is tricky, rotor angle is key.", "Stalling is a risk", "Yo buddy, Still alive ?", "Watch out, the skys are yours.", "... Hold on, there is a page on baloons ?!",)

/obj/item/book/granter/trait/explosives
name = "Industrial Society and Its Future"
desc = "This lengthy manifesto happens to contain a variety of valuable knowledge on how to craft explosives of all kinds."
Expand Down
2 changes: 1 addition & 1 deletion code/modules/vehicles/wasteland/vehicle_fuel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
name = "Jerrycan"
amount_per_transfer_from_this = 50
volume = 500
w_class = WEIGHT_CLASS_NORMAL
w_class = WEIGHT_CLASS_GIGANTIC
list_reagents = list(/datum/reagent/fuel)
icon = 'icons/mecha/mech_bay.dmi'
icon_state = "jerrycan"
Expand Down
Loading