Merge pull request #15070 from Heroman3003/altevian-props

Adds some altevian-themed props
This commit is contained in:
Heroman3003
2023-06-24 04:39:33 +10:00
committed by GitHub
6 changed files with 135 additions and 6 deletions
@@ -0,0 +1,36 @@
/obj/structure/prop/altevian_generator_wrecked
name = "Converted High Energy Exchange Supplier Extractor"
desc = "A take on the classic PACMAN reactors that are seen throughout the galaxy. The altevians have ripped apart the tech and seemed to of found a way to maximize the fuel usage one would see with this kind of process. \
However, it is a lot bulkier and nearly impossible to break apart, but still can be moved if need be with special tools. This one appears to be totally wrecked though."
icon = 'icons/obj/props/decor64x64.dmi'
icon_state = "alteviangenwrecked"
bound_width = 64
bound_height = 64
/obj/structure/prop/altevian_jump_drive
name = "Prosper-M Stellar Drive"
desc = "A drive created by the Altevian Hegemony that focuses heavily on using Bluespace and other tactics to achieve a stable traversal between the stars. \
This drive is commonly seen on their medium sized craft to help with logistical operations."
icon = 'icons/obj/props/decor128x128.dmi'
icon_state = "altevian_jump_drive"
bound_width = 128
bound_height = 128
var/has_misc_overlay = TRUE
/obj/structure/prop/altevian_jump_drive/Initialize()
.=..()
update_icon()
/obj/structure/prop/altevian_jump_drive/update_icon()
cut_overlays()
if(has_misc_overlay)
add_overlay("jump_drive_misc_anim_overlay")
/obj/structure/prop/altevian_jump_drive/active
icon_state = "altevian_jump_drive-active"
/obj/structure/prop/altevian_jump_drive/wrecked
icon_state = "altevian_jump_drive_wrecked"
desc = "A drive created by the Altevian Hegemony that focuses heavily on using Bluespace and other tactics to achieve a stable traversal between the stars. \
This drive is commonly seen on their medium sized craft to help with logistical operations. This one appears to be totally wrecked."
has_misc_overlay = FALSE
+12 -6
View File
@@ -32,11 +32,11 @@
/obj/machinery/power/port_gen/proc/TogglePower()
if(active)
active = FALSE
icon_state = "[initial(icon_state)]"
update_icon()
// soundloop.stop()
else if(HasFuel())
active = TRUE
icon_state = "[initial(icon_state)]on"
update_icon()
// soundloop.start()
/obj/machinery/power/port_gen/process()
@@ -45,9 +45,15 @@
UseFuel()
else
active = FALSE
icon_state = initial(icon_state)
update_icon()
handleInactive()
/obj/machinery/power/port_gen/update_icon()
if(active)
icon_state = "[initial(icon_state)]on"
else
icon_state = initial(icon_state)
/obj/machinery/power/powered()
return 1 //doesn't require an external power source
@@ -125,7 +131,7 @@
default_apply_parts()
if(anchored)
connect_to_network()
/obj/machinery/power/port_gen/pacman/Destroy()
DropFuel()
return ..()
@@ -310,7 +316,7 @@
if(!ui)
ui = new(user, src, "PortableGenerator", name)
ui.open()
/obj/machinery/power/port_gen/pacman/tgui_data(mob/user)
var/list/data = list()
@@ -322,7 +328,7 @@
data["is_ai"] = TRUE
else
data["is_ai"] = FALSE
data["sheet_name"] = capitalize(sheet_name)
data["fuel_stored"] = round((sheets * 1000) + (sheet_left * 1000))
data["fuel_capacity"] = round(max_sheets * 1000, 0.1)
+86
View File
@@ -412,3 +412,89 @@
circuit = /obj/item/weapon/circuitboard/machine/reg_c
default_power_gen = 500000 //Half power
nutrition_drain = 0.5 //for half cost - EQUIVALENT EXCHANGE >:O
// Big altevian version of pacman. has a lot of copypaste from regular kind, but less flexible.
/obj/machinery/power/port_gen/large_altevian
name = "Converted High Energy Exchange Supplier Extractor"
desc = "A take on the classic PACMAN reactors that are seen throughout the galaxy. The altevians have ripped apart the tech and seemed to of found a way to maximize the fuel usage one would see with this kind of process. \
However, it is a lot bulkier and nearly impossible to break apart, but still can be moved if need be with special tools."
icon = 'icons/obj/props/decor64x64.dmi'
icon_state = "alteviangen"
bound_width = 64
bound_height = 64
anchored = TRUE
power_gen = 200000
var/sheet_name = "Phoron Sheets"
var/sheet_path = /obj/item/stack/material/phoron
var/sheets = 0 //How many sheets of material are loaded in the generator
var/sheet_left = 0 //How much is left of the current sheet
var/time_per_sheet = 120 //fuel efficiency - how long 1 sheet lasts at power level 1
var/max_sheets = 100 //max capacity of the hopper
/obj/machinery/power/port_gen/large_altevian/Initialize()
.=..()
if(anchored)
connect_to_network()
/obj/machinery/power/port_gen/large_altevian/Destroy()
DropFuel()
return ..()
/obj/machinery/power/port_gen/large_altevian/examine(mob/user)
. = ..()
. += "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper."
/obj/machinery/power/port_gen/large_altevian/HasFuel()
var/needed_sheets = power_output / time_per_sheet
if(sheets >= needed_sheets - sheet_left)
return 1
return 0
/obj/machinery/power/port_gen/large_altevian/DropFuel()
if(sheets)
var/obj/item/stack/material/S = new sheet_path(loc, sheets)
sheets -= S.get_amount()
/obj/machinery/power/port_gen/large_altevian/UseFuel()
var/needed_sheets = power_output / time_per_sheet
if (needed_sheets > sheet_left)
sheets--
sheet_left = (1 + sheet_left) - needed_sheets
else
sheet_left -= needed_sheets
/obj/machinery/power/port_gen/large_altevian/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, sheet_path))
var/obj/item/stack/addstack = O
var/amount = min((max_sheets - sheets), addstack.get_amount())
if(amount < 1)
to_chat(user, "<span class='warning'>The [src.name] is full!</span>")
return
to_chat(user, "<span class='notice'>You add [amount] sheet\s to the [src.name].</span>")
sheets += amount
addstack.use(amount)
update_icon()
return
return ..()
/obj/machinery/power/port_gen/large_altevian/attack_hand(mob/user as mob)
..()
if (!anchored)
return
TogglePower()
/obj/machinery/power/port_gen/large_altevian/attack_ai(mob/user as mob)
TogglePower()
/obj/machinery/power/port_gen/large_altevian/update_icon()
..()
cut_overlays()
if(sheets > 75)
add_overlay("alteviangen-fuel-100")
else if(sheets > 25)
add_overlay("alteviangen-fuel-66")
else if(sheets > 0)
add_overlay("alteviangen-fuel-33")
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 46 KiB

+1
View File
@@ -1587,6 +1587,7 @@
#include "code\game\objects\structures\ghost_pods\survivor.dm"
#include "code\game\objects\structures\props\alien_props.dm"
#include "code\game\objects\structures\props\alien_props_vr.dm"
#include "code\game\objects\structures\props\altevian.dm"
#include "code\game\objects\structures\props\beam_prism.dm"
#include "code\game\objects\structures\props\blackbox.dm"
#include "code\game\objects\structures\props\esoteric.dm"