Skip to content

Commit

Permalink
Merge branch 'master' into missing-icon
Browse files Browse the repository at this point in the history
Signed-off-by: FalloutFalcon <[email protected]>
  • Loading branch information
FalloutFalcon authored Jan 30, 2024
2 parents 4d3a577 + a8c38df commit 0543031
Show file tree
Hide file tree
Showing 26 changed files with 370 additions and 30 deletions.
3 changes: 2 additions & 1 deletion _maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@
"iT" = (
/obj/structure/stone_tile/slab,
/mob/living/simple_animal/hostile/megafauna/dragon/icemoon{
loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair)
loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair);
crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair)
},
/turf/open/indestructible/boss,
/area/ruin)
Expand Down
2 changes: 1 addition & 1 deletion _maps/RandomRuins/JungleRuins/jungle_demon.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/suit_storage_unit/inherit,
/obj/item/tank/internals/oxygen/red,
/obj/item/clothing/suit/space/hardsuit/syndi,
/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
/obj/item/clothing/mask/gas/syndicate,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"KT" = (
/obj/structure/safe/floor,
/obj/item/clothing/suit/space/hardsuit/syndi,
/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
/obj/item/documents/syndicate,
/turf/open/floor/plating{
icon_state = "panelscorched";
Expand Down
2 changes: 1 addition & 1 deletion _maps/RandomRuins/SpaceRuins/onehalf.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -920,7 +920,7 @@
/obj/structure/safe/floor,
/obj/item/tank/internals/oxygen/red,
/obj/item/clothing/mask/gas/syndicate,
/obj/item/clothing/suit/space/hardsuit/syndi,
/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/folder/syndicate/mining,
Expand Down
2 changes: 1 addition & 1 deletion _maps/configs/syndicate_aegis.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"prefix": "SSV",
"prefix": "SUNS",
"map_name": "Aegis-class Long Term Care Ship",
"map_short_name": "Aegis-class",
"map_path": "_maps/shuttles/syndicate/syndicate_aegis.dmm",
Expand Down
2 changes: 1 addition & 1 deletion _maps/configs/syndicate_cybersun_kansatsu.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"prefix": "SSV",
"prefix": "CSSV",
"namelists": [
"CYBERSUN",
"SPACE",
Expand Down
2 changes: 1 addition & 1 deletion _maps/configs/syndicate_gorlex_hyena.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"prefix": "SSV",
"prefix": "NGRV",
"namelists": [
"GORLEX",
"NATURAL_AGGRESSIVE",
Expand Down
2 changes: 1 addition & 1 deletion _maps/configs/syndicate_gorlex_komodo.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"prefix": "SSV",
"prefix": "ISV",
"namelists": [
"GORLEX",
"NATURAL_AGGRESSIVE",
Expand Down
2 changes: 1 addition & 1 deletion _maps/configs/syndicate_litieguai.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Li Tieguai-class Rescue Ship",
"prefix": "SSV",
"prefix": "CSSV",
"map_short_name": "Li Tieguai-class",
"description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.",
"tags": [
Expand Down
4 changes: 2 additions & 2 deletions _maps/configs/syndicate_lugol.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"map_name": "Lugol-class GEC Engineering Project",
"prefix": "SEV",
"prefix": "XSV",
"map_short_name": "Lugol-class",
"description": "The Lugol is effectively an enormous Galactic Engineers Concordat research barge, used as a test bed for refinements to power systems, new technologies, and so on. As it offers freedom from the usual constraints of working aboard vessels belonging to other Syndicate factions, Lugols are especially popular among the GEC’s more radical members. Accordingly, they have a reputation for either accomplishing the impossible or generating the equivalent of a new star when they inevitably melt down. Lugols are generally only found on the Frontier, where the collateral damage from potential accidents can be kept to a minimum and secrecy, when needed, can be better maintained.",
"tags": [
Expand All @@ -14,7 +14,7 @@
],
"map_path": "_maps/shuttles/syndicate/syndicate_gec_lugol.dmm",
"map_id": "gec_lugol",
"limit": 2,
"limit": 1,
"job_slots": {
"Project Overseer": {
"outfit": "/datum/outfit/job/syndicate/ce/gec",
Expand Down
11 changes: 10 additions & 1 deletion _maps/shuttles/independent/independent_mudskipper.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@
dir = 8
},
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/machinery/light_switch{
pixel_y = 23;
pixel_x = -3
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"dQ" = (
Expand Down Expand Up @@ -970,7 +974,7 @@
"uW" = (
/obj/machinery/door/airlock/grunge{
name = "Bridge";
req_one_access_txt = "7"
req_one_access_txt = "20"
},
/obj/effect/turf_decal/industrial/warning,
/obj/effect/turf_decal/industrial/warning{
Expand Down Expand Up @@ -1058,6 +1062,11 @@
/obj/structure/dresser,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 22;
pixel_y = -6
},
/turf/open/floor/wood/walnut{
icon_state = "wood-broken7"
},
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mapgen/planetary/BeachGenerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@

/mob/living/simple_animal/butterfly = 4,
/mob/living/simple_animal/hostile/retaliate/poison/snake = 5,
/mob/living/simple_animal/hostile/poison/bees/toxin = 3,
/mob/living/simple_animal/hostile/poison/bees = 3,
)
mob_spawn_chance = 2
feature_spawn_chance = 0.1
Expand Down
2 changes: 1 addition & 1 deletion code/datums/mapgen/planetary/JungleGenerator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
)
mob_spawn_chance = 1
mob_spawn_list = list(
/mob/living/simple_animal/hostile/poison/bees/toxin = 1,
/mob/living/simple_animal/hostile/poison/bees = 1,
/mob/living/simple_animal/hostile/mushroom = 1,
/mob/living/simple_animal/pet/dog/corgi/capybara = 1
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1496,6 +1496,15 @@
/obj/item/stock_parts/capacitor = 2
)

/obj/item/circuitboard/machine/printer
name = "Poster Printer (Machine Board)"
build_path = /obj/machinery/printer
req_components = list(
/obj/item/stock_parts/scanning_module = 2,
/obj/item/stock_parts/micro_laser = 1,
/obj/item/stock_parts/manipulator = 2,
)

/obj/item/circuitboard/machine/coffeemaker
name = "Modello 3 Coffeemaker"
build_path = /obj/machinery/coffeemaker
Expand Down
185 changes: 185 additions & 0 deletions code/game/objects/structures/printer.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
/obj/machinery/printer
name = "poster printer"
desc = "Used to print out various posters using toner cartridges."
icon = 'icons/obj/printer.dmi'
icon_state = "printer"
density = TRUE
power_channel = AREA_USAGE_EQUIP
max_integrity = 100
pass_flags = PASSTABLE
circuit = /obj/item/circuitboard/machine/printer
var/busy = FALSE
var/datum/weakref/loaded_item_ref
var/datum/weakref/printed_poster
var/obj/item/toner/toner_cartridge
var/poster_type

/obj/machinery/printer/Initialize()
. = ..()
toner_cartridge = new(src)

/obj/machinery/printer/update_overlays()
. = ..()
if(panel_open)
. += mutable_appearance(icon, "printer_panel")
var/obj/item/loaded = loaded_item_ref?.resolve()
var/obj/item/poster = printed_poster?.resolve()
if(loaded)
. += mutable_appearance(icon, "contain_paper")
if(poster)
. += mutable_appearance(icon, "contain_poster")

/obj/machinery/printer/screwdriver_act(mob/living/user, obj/item/screwdriver)
. = ..()
default_deconstruction_screwdriver(user, icon_state, icon_state, screwdriver)
update_icon()
return TRUE

/obj/machinery/printer/Destroy()
QDEL_NULL(toner_cartridge)
QDEL_NULL(loaded_item_ref)
QDEL_NULL(printed_poster)
return ..()

/obj/machinery/printer/attackby(obj/item/item, mob/user, params)
if(panel_open)
if(is_wire_tool(item))
wires.interact(user)
return
if(can_load_item(item))
if(!loaded_item_ref?.resolve())
loaded_item_ref = WEAKREF(item)
item.forceMove(src)
update_icon()
return
else if(istype(item, /obj/item/toner))
if(toner_cartridge)
to_chat(user, "<span class='warning'>[src] already has a toner cartridge inserted. Remove that one first.</span>")
return
item.forceMove(src)
toner_cartridge = item
to_chat(user, "<span class='notice'>You insert [item] into [src].</span>")
else return ..()

/obj/machinery/printer/proc/can_load_item(obj/item/item)
if(busy)
return FALSE //no loading the printer if there's already a print job happening!
if(!istype(item, /obj/item/paper))
return FALSE
if(!istype(item, /obj/item/stack))
return TRUE
var/obj/item/stack/stack_item = item
return stack_item.amount == 1

/obj/machinery/printer/ui_data(mob/user)
var/list/data = list()
data["has_paper"] = !!loaded_item_ref?.resolve()
data["has_poster"] = !!printed_poster?.resolve()

if(toner_cartridge)
data["has_toner"] = TRUE
data["current_toner"] = toner_cartridge.charges
data["max_toner"] = toner_cartridge.max_charges
data["has_enough_toner"] = has_enough_toner()
else
data["has_toner"] = FALSE
data["has_enough_toner"] = FALSE

return data

/obj/machinery/printer/proc/has_enough_toner()
return toner_cartridge.charges >= 1

/obj/machinery/printer/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "PosterPrinter")
ui.open()

/obj/machinery/printer/ui_act(action, list/params)
. = ..()
if(.)
return
var/obj/item/poster = printed_poster?.resolve()
var/obj/item/loaded = loaded_item_ref?.resolve()
switch(action)
if("remove")
if(!loaded)
return
loaded.forceMove(drop_location())
loaded_item_ref = null
update_icon()
return TRUE
if("remove_poster")
if(!poster)
to_chat(usr, span_warning("No poster! waddaheeeeell"))
return
if(busy)
to_chat(usr, span_warning("[src] is still printing your poster! Please wait until it is finished."))
return FALSE
poster.forceMove(drop_location())
printed_poster = null
update_icon()
return TRUE
if("choose_type")
poster_type = params["poster_type"]
return TRUE
if("print")
if(busy)
to_chat(usr, span_warning("[src] is currently busy printing a poster. Please wait until it is finished."))
return FALSE
if(toner_cartridge.charges - 1 < 0)
to_chat(usr, span_warning("There is not enough toner in [src] to print the poster, please replace the cartridge."))
return FALSE
if(!loaded)
to_chat(usr, span_warning("[src] has no paper in it! Please insert a sheet of paper."))
return FALSE
if(!poster_type)
to_chat(usr, span_warning("[src] has no poster type selected! Please select a type first!"))
return FALSE
if(poster)
to_chat(usr, span_warning("[src] ejects its current poster before printing a new one."))
poster.forceMove(drop_location())
printed_poster = null
update_icon()
print_poster()
return TRUE
if("remove_toner")
if(issilicon(usr) || (ishuman(usr) && !usr.put_in_hands(toner_cartridge)))
toner_cartridge.forceMove(drop_location())
toner_cartridge = null
return TRUE

/obj/machinery/printer/proc/print_poster()
busy = TRUE
loaded_item_ref = null
playsound(src, 'sound/items/poster_being_created.ogg', 20, FALSE)
toner_cartridge.charges -= 1
icon_state = "print"
var/mutable_appearance/overlay = mutable_appearance(icon, "print_poster")
overlays += overlay
update_icon()
addtimer(CALLBACK(src, PROC_REF(print_complete), overlay), 2.6 SECONDS)

/obj/machinery/printer/proc/print_complete(mutable_appearance/remove_overlay)
icon_state = "printer"
overlays -= remove_overlay
switch(poster_type)
if("Syndicate")
var/obj/item/poster/random_contraband/poster = new()
printed_poster = WEAKREF(poster)
if("SolGov")
var/obj/item/poster/random_solgov/poster = new()
printed_poster = WEAKREF(poster)
if("Nanotrasen")
var/obj/item/poster/random_official/poster = new()
printed_poster = WEAKREF(poster)
if("RILENA")
var/obj/item/poster/random_rilena/poster = new()
printed_poster = WEAKREF(poster)
if("Nanotrasen (Retro)")
var/obj/item/poster/random_retro/poster = new()
printed_poster = WEAKREF(poster)
update_icon()
busy = FALSE
poster_type = null
9 changes: 4 additions & 5 deletions code/modules/clothing/spacesuits/hardsuit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -423,17 +423,17 @@
//Ramzi Syndie suit
/obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi
name = "rusted-red hardsuit helmet"
desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders."
alt_desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders."
desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Ramzi Clique."
alt_desc = "A beat-up standardized dual-mode helmet derived from more advanced special operations helmets, its red rusted into a dirty brown. It is in combat mode. Manufactured by Ramzi Clique."
icon_state = "hardsuit1-ramzi"
item_state = "hardsuit1-ramzi"
hardsuit_type = "ramzi"
armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)

/obj/item/clothing/suit/space/hardsuit/syndi/ramzi
name = "rusted-red hardsuit"
desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Gorlex Marauders."
alt_desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in combat mode. Manufactured by Gorlex Marauders."
desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in EVA mode. Manufactured by Ramzi Clique."
alt_desc = "A beat-up standardized dual-mode hardsuit derived from more advanced special operations hardsuits, its red rusted into a dirty brown. It is in combat mode. Manufactured by Ramzi Clique."
icon_state = "hardsuit1-ramzi"
item_state = "hardsuit1-ramzi"
hardsuit_type = "ramzi"
Expand Down Expand Up @@ -464,7 +464,6 @@
lightweight = 1
jetpack = null


//Hardliner Syndie suit
/obj/item/clothing/head/helmet/space/hardsuit/syndi/hl
name = "white-red hardsuit helmet"
Expand Down
7 changes: 0 additions & 7 deletions code/modules/library/lib_machines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
dat += "<h3>NTGanda(tm) Universal Printing Module</h3>"
dat += "What would you like to print?<BR>"
dat += "<A href='?src=[REF(src)];printbible=1'>\[Bible\]</A><BR>"
dat += "<A href='?src=[REF(src)];printposter=1'>\[Poster\]</A><BR>"
dat += "<A href='?src=[REF(src)];switchscreen=0'>(Return to main menu)</A><BR>"
if(8)
dat += "<h3>Accessing Forbidden Lore Vault v 1.3</h3>"
Expand Down Expand Up @@ -524,12 +523,6 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
cooldown = world.time + PRINTER_COOLDOWN
else
say("Printer currently unavailable, please wait a moment.")
if(href_list["printposter"])
if(cooldown < world.time)
new /obj/item/poster/random_official(src.loc)
cooldown = world.time + PRINTER_COOLDOWN
else
say("Printer currently unavailable, please wait a moment.")
add_fingerprint(usr)
updateUsrDialog()

Expand Down
Loading

0 comments on commit 0543031

Please sign in to comment.