|
| 1 | +/obj/item/storage/firstaid/freegolem |
| 2 | + name = "golem emergency treatment kit" |
| 3 | + desc = "A box of essential medical supplies, formulated for golems' hard skin." |
| 4 | + icon_state = "medbriefcase" |
| 5 | + |
| 6 | +/obj/item/storage/firstaid/freegolem/populate_contents() |
| 7 | + new /obj/item/healthanalyzer(src) |
| 8 | + new /obj/item/reagent_containers/patch/styptic/small(src) |
| 9 | + new /obj/item/reagent_containers/patch/styptic/small(src) |
| 10 | + new /obj/item/reagent_containers/patch/silver_sulf/small(src) |
| 11 | + new /obj/item/reagent_containers/patch/silver_sulf/small(src) |
| 12 | + new /obj/item/reagent_containers/hypospray/autoinjector/epinephrine(src) |
| 13 | + |
| 14 | +/obj/structure/closet/freegolem |
| 15 | + name = "free golem equipment locker" |
| 16 | + icon_state = "freegolem" |
| 17 | + |
| 18 | +/obj/structure/closet/freegolem/populate_contents() |
| 19 | + new /obj/item/storage/backpack/industrial(src) |
| 20 | + new /obj/item/shovel(src) |
| 21 | + new /obj/item/pickaxe(src) |
| 22 | + new /obj/item/t_scanner/adv_mining_scanner/lesser(src) |
| 23 | + new /obj/item/storage/bag/ore(src) |
| 24 | + new /obj/item/clothing/glasses/meson(src) |
| 25 | + new /obj/item/card/id/golem(src) |
| 26 | + new /obj/item/flashlight/lantern(src) |
| 27 | + new /obj/item/resonator/upgraded(src) |
| 28 | + new /obj/item/storage/firstaid/freegolem(src) |
| 29 | + |
| 30 | +/** |
| 31 | + * # Ore Redemption Machine (Golem) |
| 32 | + * |
| 33 | + * Golem variant of the ORM. |
| 34 | + */ |
| 35 | +/obj/machinery/mineral/ore_redemption/golem |
| 36 | + req_access = list(ACCESS_FREE_GOLEMS) |
| 37 | + req_access_claim = ACCESS_FREE_GOLEMS |
| 38 | + |
| 39 | +/obj/machinery/mineral/ore_redemption/golem/Initialize(mapload) |
| 40 | + . = ..() |
| 41 | + component_parts = list() |
| 42 | + component_parts += new /obj/item/circuitboard/ore_redemption/golem(null) |
| 43 | + component_parts += new /obj/item/stock_parts/matter_bin(null) |
| 44 | + component_parts += new /obj/item/stock_parts/manipulator(null) |
| 45 | + component_parts += new /obj/item/stock_parts/micro_laser(null) |
| 46 | + component_parts += new /obj/item/assembly/igniter(null) |
| 47 | + component_parts += new /obj/item/stack/sheet/glass(null) |
| 48 | + RefreshParts() |
| 49 | + |
| 50 | +/obj/machinery/mineral/ore_redemption/golem/RefreshParts() |
| 51 | + var/P = 0.65 |
| 52 | + var/S = 0.65 |
| 53 | + for(var/obj/item/stock_parts/micro_laser/M in component_parts) |
| 54 | + P += 0.35 * M.rating |
| 55 | + for(var/obj/item/stock_parts/matter_bin/M in component_parts) |
| 56 | + S += 0.35 * M.rating |
| 57 | + // Manipulators do nothing |
| 58 | + // Update our values |
| 59 | + point_upgrade = P |
| 60 | + sheet_per_ore = S |
| 61 | + SStgui.update_uis(src) |
| 62 | + |
| 63 | +/**********************Mining Equiment Vendor (Golem)**************************/ |
| 64 | + |
| 65 | +/obj/machinery/mineral/equipment_vendor/golem |
| 66 | + name = "golem ship equipment vendor" |
| 67 | + |
| 68 | +/obj/machinery/mineral/equipment_vendor/golem/Initialize(mapload) |
| 69 | + . = ..() |
| 70 | + component_parts = list() |
| 71 | + component_parts += new /obj/item/circuitboard/mining_equipment_vendor/golem(null) |
| 72 | + component_parts += new /obj/item/stock_parts/matter_bin(null) |
| 73 | + component_parts += new /obj/item/stock_parts/matter_bin(null) |
| 74 | + component_parts += new /obj/item/stock_parts/matter_bin(null) |
| 75 | + component_parts += new /obj/item/stack/sheet/glass(null) |
| 76 | + RefreshParts() |
| 77 | + |
| 78 | + desc += "\nIt seems a few selections have been added." |
| 79 | + prize_list["Extra"] += list( |
| 80 | + EQUIPMENT("Free Golem ID", /obj/item/card/id/golem, 250), |
| 81 | + EQUIPMENT("Science Backpack", /obj/item/storage/backpack/science, 250), |
| 82 | + EQUIPMENT("Full Toolbelt", /obj/item/storage/belt/utility/full/multitool, 250), |
| 83 | + EQUIPMENT("Monkey Cube", /obj/item/food/monkeycube, 250), |
| 84 | + EQUIPMENT("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500), |
| 85 | + EQUIPMENT("Grey Slime Extract", /obj/item/slime_extract/grey, 1000), |
| 86 | + EQUIPMENT("KA Trigger Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1000), |
| 87 | + EQUIPMENT("Shuttle Console Board", /obj/item/circuitboard/shuttle/golem_ship, 2000), |
| 88 | + EQUIPMENT("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000), |
| 89 | + EQUIPMENT("The Liberator's Fabricator", /obj/item/storage/box/smithboards, 1000), |
| 90 | + ) |
| 91 | + |
| 92 | +/// Free golem blueprints, like permit but can claim as much as needed. |
| 93 | +/obj/item/areaeditor/golem |
| 94 | + name = "Golem Land Claim" |
| 95 | + desc = "Used to define new areas in space." |
| 96 | + fluffnotice = "Praise the Liberator!" |
| 97 | + |
| 98 | +/obj/item/areaeditor/golem/attack_self__legacy__attackchain(mob/user) |
| 99 | + . = ..() |
| 100 | + var/area/our_area = get_area(src) |
| 101 | + if(get_area_type() == AREA_STATION) |
| 102 | + . += "<p>According to [src], you are now in <b>\"[sanitize(our_area.name)]\"</b>.</p>" |
| 103 | + var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) |
| 104 | + popup.set_content(.) |
| 105 | + popup.open() |
| 106 | + onclose(usr, "blueprints") |
| 107 | + |
| 108 | +/obj/item/disk/design_disk/golem_shell |
| 109 | + name = "golem creation disk" |
| 110 | + desc = "A gift from the Liberator." |
| 111 | + icon_state = "datadisk1" |
| 112 | + |
| 113 | +/obj/item/disk/design_disk/golem_shell/Initialize(mapload) |
| 114 | + . = ..() |
| 115 | + var/datum/design/golem_shell/G = new |
| 116 | + blueprint = G |
| 117 | + |
| 118 | +/obj/machinery/computer/shuttle/golem_ship |
| 119 | + name = "Golem Ship Console" |
| 120 | + desc = "Used to control the Golem Ship." |
| 121 | + circuit = /obj/item/circuitboard/shuttle/golem_ship |
| 122 | + shuttleId = "freegolem" |
| 123 | + possible_destinations = "freegolem_lavaland;freegolem_space;freegolem_ussp" |
| 124 | + |
| 125 | +/obj/machinery/computer/shuttle/golem_ship/attack_hand(mob/user) |
| 126 | + if(!isgolem(user) && !isobserver(user)) |
| 127 | + to_chat(user, "<span class='notice'>The console is unresponsive. Seems only golems can use it.</span>") |
| 128 | + return |
| 129 | + ..() |
| 130 | + |
| 131 | +/obj/machinery/computer/shuttle/golem_ship/recall |
| 132 | + name = "golem ship recall terminal" |
| 133 | + desc = "Used to recall the Golem Ship." |
| 134 | + possible_destinations = "freegolem_lavaland" |
| 135 | + resistance_flags = INDESTRUCTIBLE |
0 commit comments