diff --git a/code/game/objects/structures/props/esoteric.dm b/code/game/objects/structures/props/esoteric.dm new file mode 100644 index 0000000000..7ed9b1567e --- /dev/null +++ b/code/game/objects/structures/props/esoteric.dm @@ -0,0 +1,50 @@ +/obj/structure/prop/esoteric + name = "some esoteric thing" + desc = "Perhaps it's of ritual significance?" + icon = 'icons/obj/props/decor.dmi' + +/obj/structure/prop/esoteric/nt_pedestal0_old + name = "pedestal" + desc = "A pedestal with a mysterious slot at its center." + icon_state = "nt_pedestal0_old" + +/obj/structure/prop/esoteric/nt_pedestal1_old + name = "pedestal" + desc = "A pedestal with some kind of sword slotted securely in the center." + icon_state = "nt_pedestal1_old" + +// eye of the protector from Eris +/obj/structure/prop/esoteric/eotp + icon = 'icons/obj/props/decor32x64.dmi' + icon_state = "eotp" + +// neotheology cruciform reader from Eris +/obj/structure/prop/esoteric/reader + name = "electronic altar" + desc = "It looks like you're meant to scan something here." + icon = 'icons/obj/props/decor.dmi' + icon_state = "nt_reader_off" + +/obj/structure/prop/esoteric/reader/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "nt_reader_off" + if("on") + icon_state = "nt_reader_on" + if("no_cruciform") + cut_overlay("nt_reader_c_green") + cut_overlay("nt_reader_c_red") + if("red_cruciform") + cut_overlay("nt_reader_c_green") + cut_overlay("nt_reader_c_red") + add_overlay("nt_reader_c_red") + if("green_cruciform") + cut_overlay("nt_reader_c_red") + cut_overlay("nt_reader_c_green") + add_overlay("nt_reader_c_green") + if("panel_open") + cut_overlay("nt_reader_panel") + add_overlay("nt_reader_panel") + if("panel_closed") + cut_overlay("nt_reader_panel") diff --git a/code/game/objects/structures/props/fences.dm b/code/game/objects/structures/props/fences.dm new file mode 100644 index 0000000000..0d7ac7dbe2 --- /dev/null +++ b/code/game/objects/structures/props/fences.dm @@ -0,0 +1,7 @@ +// fences from TGMC +// You'll need to 'create instances from icon_states' in an editor to use these well +/obj/structure/prop/fence + name = "fence" + desc = "It's a fence! Not much else to say about it." + icon = 'icons/obj/props/decor_fences.dmi' + diff --git a/code/game/objects/structures/props/machines.dm b/code/game/objects/structures/props/machines.dm new file mode 100644 index 0000000000..9ad19fec1e --- /dev/null +++ b/code/game/objects/structures/props/machines.dm @@ -0,0 +1,564 @@ +/obj/structure/prop/machine + name = "doodad" + desc = "Some kind of machine." + icon = 'icons/obj/props/decor.dmi' + +//Eris Bluespace Beacon + +/obj/structure/prop/machine/bsb_off + name = "beacon" + icon_state = "bsb_off" + +/obj/structure/prop/machine/bsb_on + name = "beacon" + icon_state = "bsb_on" + +/obj/structure/prop/machine/biosyphon + icon_state = "biosyphon" + +/obj/structure/prop/machine/von_krabin + icon_state = "von_krabin" + +/obj/structure/prop/machine/last_shelter + icon_state = "last_shelter" + +/obj/structure/prop/machine/complicator + icon_state = "complicator" + +/obj/structure/prop/machine/random_radio + name = "radio" + icon_state = "random_radio" + +// vatgrowing thing from /tg/ +/obj/structure/prop/machine/green_egg + icon_state = "gel_cocoon" + +// gravity generator from Eris +/obj/structure/prop/machine/gravygen + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "bigdice" + bound_width = 64 + bound_height = 64 + +// dna vault from /tg/ +/obj/structure/prop/dna_vault + icon = 'icons/obj/props/decor96x96.dmi' + icon_state = "vault" + +/** + * Possible 'state' options for change_state(state) are: + * off: Looks boring and off + * on: candles lit and stuff + * no_cruciform: No cruciform (the little triangle thing) inserted + * red_cruciform: Red light cruciform inserted + * green_cruciform: Green light cruciform inserted + * panel_open: The panel is open (wiring) + * panel_closed: The panel is closed + */ + +/** + * Possible 'state' options for change_state(state) are: + * panel_open: The panel is opened + * panel_closed: The panel is closed + */ +// neotheology cloning biocan from Eris +/obj/structure/prop/machine/nt_biocan + icon = 'icons/obj/props/decor.dmi' + icon_state = "nt_biocan" + +/obj/structure/prop/nt_biocan/change_state(state) + . = ..() + switch(state) + if("panel_open") + cut_overlay("nt_biocan_panel") + add_overlay("nt_biocan_panel") + if("panel_closed") + cut_overlay("nt_biocan_panel") + +/** + * Possible 'state' options for change_state(state) are: + * blue, red, orange, yellow, green, purple: Set that color + * damaged: add damage overlay + * undamaged: remove damage overlay + * broken: become damaged + * plain: undamaged white version, otherwise use a color + */ +// dominator console from /tg/ +/obj/structure/prop/dominator + icon = 'icons/obj/props/decor.dmi' + icon_state = "dominator" + +/obj/structure/prop/dominator/change_state(state) + . = ..() + switch(state) + if("blue") + icon_state = "dominator-blue" + if("red") + icon_state = "dominator-red" + if("orange") + icon_state = "dominator-orange" + if("yellow") + icon_state = "dominator-yellow" + if("green") + icon_state = "dominator-green" + if("purple") + icon_state = "dominator-purple" + if("damaged") + add_overlay("dom_damage") + if("undamaged") + cut_overlay("dom_damage") + if("broken") + icon_state = "dominator-broken" + if("plain") + icon_state = "dominator" + +/obj/structure/prop/dominator/blue + icon_state = "dominator-blue" +/obj/structure/prop/dominator/red + icon_state = "dominator-red" +/obj/structure/prop/dominator/orange + icon_state = "dominator-orange" +/obj/structure/prop/dominator/yellow + icon_state = "dominator-yellow" +/obj/structure/prop/dominator/green + icon_state = "dominator-green" +/obj/structure/prop/dominator/purple + icon_state = "dominator-purple" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Pumping or something + */ +// some neotheology thing from Eris +/obj/structure/prop/machine/solifier + icon_state = "nt_solidifier" + +/obj/structure/prop/machine/solifier/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "nt_solidifier" + if("on") + icon_state = "nt_solidifier_on" + +/obj/structure/prop/machine/solifier/starts_on + icon_state = "nt_solidifier_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Boring, round + * on: Spinny glowy + */ +// conduit of soul from Eris +/obj/structure/prop/machine/conduit + icon_state = "conduit_off" + +/obj/structure/prop/machine/conduit/change_state(state) + . = ..() + switch(state) + if("on") + icon_state = "conduit_spin" + flick("conduit_starting", src) + if("off") + icon_state = "conduit_off" + flick("conduit_stopping", src) + +/obj/structure/prop/machine/conduit/starts_on + icon_state = "conduit_spin" + +/** + * Possible 'state' options for change_state(state) are: + * on: Doing some kinda worky thing + * off: Not doing much of anything + * empty: No blue crystal thingy + * loaded: off but without the animation + */ +// some kinda NT thing from Eris +/obj/structure/prop/machine/core + icon_state = "core_inactive" + +/obj/structure/prop/machine/core/change_state(state) + . = ..() + switch(state) + if("on") + icon_state = "core_active" + flick("core_warmup", src) + if("off") + icon_state = "core_inactive" + flick("core_shutdown", src) + if("empty") + icon_state = "core_empty" + if("loaded") + icon_state = "core_inactive" + +/obj/structure/prop/machine/core/starts_on + icon_state = "core_active" + +/** + * Possible 'state' options for change_state(state) are: + * down: In the ground, glowing + * up: Out of the ground, open + */ +// experimental science destructor from /tg/ +/obj/structure/prop/machine/tube + icon = 'icons/obj/props/decor32x64.dmi' + icon_state = "tube_open" + +/obj/structure/prop/machine/tube/change_state(state) + . = ..() + switch(state) + if("down") + icon_state = "tube_on" + flick("tube_down", src) + if("up") + icon_state = "tube_open" + flick("tube_up", src) + +/obj/structure/prop/machine/tube/starts_down + icon_state = "tube_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Boring, static + * on: Turny and blinky + */ +// experimental science destructor from /tg/ +/obj/structure/prop/machine/comm_tower + icon = 'icons/obj/props/decor.dmi' + icon = 'icons/obj/props/decor96x96.dmi' + icon_state = "comm_tower" + +/obj/structure/prop/machine/comm_tower/change_state(state) + . = ..() + switch(state) + if("on") + icon_state = "comm_tower_on" + if("off") + icon_state = "comm_tower" + +/obj/structure/prop/machine/comm_tower/starts_on + icon_state = "comm_tower_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Not doing much + * on: Stamping mysterious substances + */ +// sheetizer from /tg/ +/obj/structure/prop/machine/stamper + icon = 'icons/obj/props/decor.dmi' + icon_state = "stamper" + +/obj/structure/prop/machine/stamper/change_state(state) + . = ..() + switch(state) + if("off") + cut_overlays() + if("on") + add_overlay("stamper_proc") + add_overlay("stamper_but") + +/obj/structure/prop/machine/stamper/starts_on + icon_state = "stamper_on" + +/obj/structure/prop/machine/stamper/starts_on/Initialize() + add_overlay("stamper_proc") + add_overlay("stamper_but") + + +/** + * Possible 'state' options for change_state(state) are: + * whole: Not doing much + * broken: Stamping mysterious substances + */ +// alien autopsy thing from TGMC +/obj/structure/prop/machine/alien_tank + icon_state = "tank_larva" + +/obj/structure/prop/machine/alien_tank/change_state(state) + . = ..() + switch(state) + if("whole") + icon_state = "tank_larva" + if("broken") + icon_state = "tank_broken" + +/obj/structure/prop/machine/alien_tank/starts_broken + icon_state = "tank_broken" + +/** + * Possible 'state' options for change_state(state) are: + * idle: The default look + * active: Glowy lights underneath + * panel_open: Opened panel (wiring) + * panel_closed: Closed panel + */ +// neotheology optable from Eris +/obj/structure/prop/machine/nt_optable + icon_state = "nt_optable-idle" + +/obj/structure/prop/machine/nt_optable/change_state(state) + . = ..() + switch(state) + if("idle") + icon_state = "nt_optable-idle" + if("active") + icon_state = "nt_optable-active" + if("panel_open") + cut_overlay("nt_optable_panel") + add_overlay("nt_optable_panel") + if("panel_closed") + cut_overlay("nt_optable_panel") + +/obj/structure/prop/nt_optable/starts_active + icon_state = "nt_optable-active" + +/** + * Possible 'state' options for change_state(state) are: + * idle: The default look + * active: Glowy lights in the center + * panel_open: Opened panel (wiring) + * panel_closed: Closed panel + */ +// trade beacon from Eris +/obj/structure/prop/machine/tradebeacon + icon_state = "tradebeacon" + +/obj/structure/prop/machine/tradebeacon/change_state(state) + . = ..() + switch(state) + if("idle") + icon_state = "tradebeacon" + if("active") + icon_state = "tradebeacon_active" + if("panel_open") + cut_overlay("tradebeacon_panel") + add_overlay("tradebeacon_panel") + if("panel_closed") + cut_overlay("tradebeacon_panel") + +/obj/structure/prop/machine/tradebeacon/starts_active + icon_state = "tradebeacon_active" + +/** + * Possible 'state' options for change_state(state) are: + * idle: The default look + * active: Glowy lights in the center + * panel_open: Opened panel (wiring) + * panel_closed: Closed panel + */ +// another trade beacon from Eris +/obj/structure/prop/machine/tradebeacon2 + icon_state = "tradebeacon" + +/obj/structure/prop/machine/tradebeacon2/change_state(state) + . = ..() + switch(state) + if("idle") + icon_state = "tradebeacon_sending" + if("active") + icon_state = "tradebeacon_sending_active" + if("panel_open") + cut_overlay("tradebeacon_sending_panel") + add_overlay("tradebeacon_sending_panel") + if("panel_closed") + cut_overlay("tradebeacon_sending_panel") + +/obj/structure/prop/machine/tradebeacon2/starts_active + icon_state = "tradebeacon_sending_active" + +/** + * Possible 'state' options for change_state(state) are: + * off: Non-spinny + * on: Spinny and floaty + */ +// neotheology decorative(?) obelisk from Eris +/obj/structure/prop/machine/nt_obelisk + icon = 'icons/obj/props/decor.dmi' + icon_state = "nt_obelisk" + +/obj/structure/prop/machine/nt_obelisk/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "nt_obelisk" + if("on") + icon_state = "nt_obelisk_on" + +/obj/structure/prop/machine/nt_obelisk/starts_on + icon_state = "nt_obelisk_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Inert + * on: Hand destroying machinery + */ +// 'sorter' from Eris +/obj/structure/prop/machine/sorter + icon = 'icons/obj/props/decor.dmi' + icon_state = "sorter" + +/obj/structure/prop/machine/sorter/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "sorter" + if("on") + icon_state = "sorter-process" + +/obj/structure/prop/machine/sorter/starts_on + icon_state = "sorter-process" + +/** + * Possible 'state' options for change_state(state) are: + * off: Inert + * on: Hand destroying machinery + */ +// 'smelter' from Eris +/obj/structure/prop/machine/smelter + icon = 'icons/obj/props/decor.dmi' + icon_state = "smelter" + +/obj/structure/prop/machine/smelter/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "smelter" + if("on") + icon_state = "smelter-process" + +/obj/structure/prop/machine/smelter/starts_on + icon_state = "smelter-process" + +/** + * Possible 'state' options for change_state(state) are: + * idle: Not doing anything, with yellow template exposed + * work: busy doing work + * pause: paused work + */ +// cruciform forge from Eris +/obj/structure/prop/machine/nt_cruciforge + icon = 'icons/obj/props/decor.dmi' + icon_state = "nt_cruciforge" + +/obj/structure/prop/machine/nt_cruciforge/change_state(state) + . = ..() + switch(state) + if("idle") + icon_state = "nt_cruciforge" + flick("nt_cruciforge_finish", src) // 8ds + if("work") + icon_state = "nt_cruciforge_work" + flick("nt_cruciforge_start", src) // 8ds + if("pause") + icon_state = "nt_cruciforge_pause" + +/obj/structure/prop/machine/nt_cruciforge/starts_working + icon_state = "nt_cruciforge_work" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/machine/tgmc_console1 + name = "console" + icon = 'icons/obj/props/decor.dmi' + icon_state = "tgmc_console1" + +/obj/structure/prop/machine/tgmc_console1/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console1" + if("on") + icon_state = "tgmc_console1_on" + +/obj/structure/prop/machine/tgmc_console1/starts_on + icon_state = "tgmc_console1_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/machine/tgmc_console2 + name = "console" + icon_state = "tgmc_console2" + +/obj/structure/prop/machine/tgmc_console2/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console2" + if("on") + icon_state = "tgmc_console2_on" + +/obj/structure/prop/machine/tgmc_console2/starts_on + icon_state = "tgmc_console2_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/machine/tgmc_console3 + name = "console" + icon_state = "tgmc_console3" + +/obj/structure/prop/machine/tgmc_console3/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console3" + if("on") + icon_state = "tgmc_console3_on" + +/obj/structure/prop/machine/tgmc_console3/starts_on + icon_state = "tgmc_console3_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/machine/tgmc_console4 + name = "console" + icon_state = "tgmc_console4" + +/obj/structure/prop/machine/tgmc_console4/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console4" + if("on") + icon_state = "tgmc_console4_on" + +/obj/structure/prop/machine/tgmc_console4/starts_on + icon_state = "tgmc_console4_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/machine/tgmc_console5 + name = "console" + icon_state = "tgmc_console5" + +/obj/structure/prop/machine/tgmc_console5/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console5" + if("on") + icon_state = "tgmc_console5_on" + +/obj/structure/prop/machine/tgmc_console5/starts_on + icon_state = "tgmc_console5_on" \ No newline at end of file diff --git a/code/game/objects/structures/props/prop.dm b/code/game/objects/structures/props/prop.dm index fea5815674..5d57dfb648 100644 --- a/code/game/objects/structures/props/prop.dm +++ b/code/game/objects/structures/props/prop.dm @@ -1,13 +1,26 @@ -//The base 'prop' for PoIs or other large junk. +/** + * Decorative items for PoIs etc. + * These are generally sprites ported from other servers, which don't have any unique code. + * They can be used by mappers for decorating their maps. They're mostly here so people who aren't + * rummaging around in the sprites can be aware of some neat sprites they can use. + * + * Obviously you can swipe the sprites for real structures and add code, but please don't add any code + * (beyond decorative things like maybe light) directly to these types or this file! + * Take the icon and state and make your own type under /obj/structure. + * + * Some of these do have a SMIDGE of code to allow a mapper to twirl them through states/animations without + * much effort, but beyond 'visuals logic', I'd rather keep all the logic out of here. + */ /obj/structure/prop - name = "something" - desc = "My description is broken, bug a developer." + name = "mysterious structure" + desc = "You're not sure what this is." icon = 'icons/obj/structures.dmi' icon_state = "safe" density = TRUE anchored = TRUE var/interaction_message = null + var/state /obj/structure/prop/attack_hand(mob/living/user) // Used to tell the player that this isn't useful for anything. if(!istype(user)) @@ -16,3 +29,41 @@ return ..() else to_chat(user, interaction_message) + +/obj/structure/prop/proc/change_state(state) + SHOULD_CALL_PARENT(TRUE) + src.state = state + +/// Helper so admins can varedit the state easily. +/obj/structure/prop/vv_edit_var(var_name, var_value) + if(var_name == "state") + change_state(var_value) + + +//Misc stuff that fits no category + +// ship memorial from TGMC +/obj/structure/prop/memorial + name = "engraved wall" + desc = "A finely engraved list on dark stone." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "ship_memorial" + bound_width = 64 + +/** + * + Notes on change_state + * + * tl;dr "You can varedit 'state' on these to the things in the comments below to get cool animations" + * + * These items have some logic to handle some fun animations on them. Mappers can call the 'change_state(state)' proc + * while referring to the comments here for what states they can use. You'll notice some crazy overlay handling, + * and that's because I don't want to add any vars to these mappers think they can fiddle with, which requires + * more logic than I'm willing to do at the moment. So we get crazy cut/add operations instead. + * + * There's also a VV helper so if you varedit 'state' to these during the game, you can get that to work. + * + * Like, I don't want to add a state machine to decorative objects. You can if you want. + * + */ + diff --git a/code/game/objects/structures/props/rocks.dm b/code/game/objects/structures/props/rocks.dm index 5d343c0744..e1deeb4898 100644 --- a/code/game/objects/structures/props/rocks.dm +++ b/code/game/objects/structures/props/rocks.dm @@ -38,4 +38,15 @@ density = FALSE /obj/structure/prop/rock/small/wateralt - icon_state = "waterrocks2" \ No newline at end of file + icon_state = "waterrocks2" + +// bluespace crystal from Eris +/obj/structure/prop/crystal + name = "crystal" + icon = 'icons/obj/props/decor.dmi' + icon_state = "bsc" + +/obj/structure/prop/crystal_dust + name = "crystal dust" + icon = 'icons/obj/props/decor.dmi' + icon_state = "bsc_dust" \ No newline at end of file diff --git a/code/game/objects/structures/props/statue.dm b/code/game/objects/structures/props/statue.dm new file mode 100644 index 0000000000..1fe74ffba0 --- /dev/null +++ b/code/game/objects/structures/props/statue.dm @@ -0,0 +1,65 @@ +//Eris statues + +/obj/structure/prop/statue + name = "statue" + desc = "It's art!" + icon = 'icons/obj/props/decor.dmi' + icon_state = "artwork_statue" + +/obj/structure/prop/statue/statue1 + icon_state = "artwork_statue_1" + +/obj/structure/prop/statue/statue2 + icon_state = "artwork_statue_2" + +/obj/structure/prop/statue/statue3 + icon_state = "artwork_statue_3" + +/obj/structure/prop/statue/statue4 + icon_state = "artwork_statue_4" + +/obj/structure/prop/statue/statue5 + icon_state = "artwork_statue_5" + +//TGMC Ship Mast + +/obj/structure/prop/statue/stump_plaque + name = "commemorative stump" + desc = "A wooden stump adorned with a little plaque." + icon = 'icons/obj/props/decor.dmi' + icon_state = "stump" + +//World Server statues + +/obj/structure/prop/statue + name = "statue" + desc = "A statue." + icon = 'icons/obj/props/decor32x64.dmi' + icon_state = "venus" + +/obj/structure/prop/statue/lion + icon_state = "lion" + +/obj/structure/prop/statue/angel + icon = 'icons/obj/props/decor.dmi' + icon_state = "angel" + +/obj/structure/prop/statue/phoron + name = "phoronic cascade" + desc = "A sculpture made of pure phoron. It is covered in a lacquer that prevents erosion and renders it fireproof. It's safe. Probably." + icon_state = "phoronic" + layer = ABOVE_WINDOW_LAYER + interaction_message = "Cool to touch and unbelievable smooth. You can almost see your reflection in it." + +/obj/structure/prop/statue/phoron/New() + set_light(2, 3, "#cc66ff") + +/obj/structure/prop/statue/pillar + name = "pillar" + desc = "A pillar." + icon_state = "pillar" + +/obj/structure/prop/statue/pillar/dark + name = "pillar" + desc = "A dark pillar." + icon_state = "dark_pillar" \ No newline at end of file diff --git a/code/game/objects/structures/props/warfare.dm b/code/game/objects/structures/props/warfare.dm new file mode 100644 index 0000000000..c295599c39 --- /dev/null +++ b/code/game/objects/structures/props/warfare.dm @@ -0,0 +1,167 @@ +/obj/structure/prop/war + name = "military hardware" + desc = "What is it good for?" + icon = 'icons/obj/props/decor.dmi' + +// warheads from TGMC +/obj/structure/prop/war/warhead1 + name = "nuclear warhead" + icon_state = "ob_warhead_1" + +/obj/structure/prop/war/warhead2 + name = "incindiary warhead" + icon_state = "ob_warhead_2" + +/obj/structure/prop/war/warhead3 + name = "bluespace warhead" + icon_state = "ob_warhead_3" + +/obj/structure/prop/war/warhead4 + name = "phoron warhead" + icon_state = "ob_warhead_4" + +// minirocket pod from TGMC +/obj/structure/prop/war/minirocket_pod + name = "rocket pod" + icon_state = "minirocket_pod" + +// sentry console from TGMC +/obj/structure/prop/war/sentry_control + name = "portable sentry gun" + desc = "Needs a dispenser." + icon_state = "tgmc_sentry" + +// various weapons from TGMC +/obj/structure/prop/war/tgmc_missile + name = "missile" + desc = "It seems to be some sort of spacecraft-tier ordinance." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "single" + bound_width = 64 + +/obj/structure/prop/war/tgmc_missile/double + icon_state = "widowmaker" + +/obj/structure/prop/war/tgmc_missile/banshee + icon_state = "banshee" + +/obj/structure/prop/war/tgmc_missile/keeper + icon_state = "keeper" + +/obj/structure/prop/war/tgmc_missile/fatty + icon_state = "fatty" + +/obj/structure/prop/war/tgmc_missile/napalm + icon_state = "napalm" + +/** + * Possible 'state' options for change_state(state) are: + * empty, single, banshee, keeper, fatty, napalm + */ +// ship weapons from TGMC +/obj/structure/prop/tgmc_missile_rack + name = "missile launcher" + desc = "Some sort of spacecraft-tier missile weapon." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "rocket_pod" + bound_height = 64 + +/obj/structure/prop/war/tgmc_missile_rack/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "rocket_pod" + if("single") + icon_state = "rocket_pod_loaded" + if("banshee") + icon_state = "rocket_pod_loadedb" + if("keeper") + icon_state = "rocket_pod_loadedk" + if("fatty") + icon_state = "rocket_pod_loadedf" + if("napalm") + icon_state = "rocket_pod_loadedn" + +/obj/structure/prop/war/tgmc_missile_rack/single + icon_state = "rocket_pod_loaded" +/obj/structure/prop/war/tgmc_missile_rack/banshee + icon_state = "rocket_pod_loadedb" +/obj/structure/prop/war/tgmc_missile_rack/keeper + icon_state = "rocket_pod_loadedk" +/obj/structure/prop/war/tgmc_missile_rack/fatty + icon_state = "rocket_pod_loadedf" +/obj/structure/prop/war/tgmc_missile_rack/napalm + icon_state = "rocket_pod_loadedn" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded + */ +// ship weapons from TGMC +/obj/structure/prop/war/tgmc_minirockets + name = "rocket pod" + desc = "Some sort of spacecraft-tier rocket weapon." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "minirocket_pod" + bound_height = 64 + +/obj/structure/prop/war/tgmc_minirockets/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "minirocket_pod" + if("loaded") + icon_state = "minirocket_pod_loaded" + +/obj/structure/prop/war/tgmc_minirockets/loaded + icon_state = "minirocket_pod_loaded" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded + */ +// ship weapons from TGMC +/obj/structure/prop/war/tgmc_laser + name = "laser cannon" + desc = "Some sort of spacecraft-tier energy weapon." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "laser_beam" + bound_height = 64 + +/obj/structure/prop/war/tgmc_laser/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "laser_beam" + if("loaded") + icon_state = "laser_beam_loaded" + +/obj/structure/prop/war/tgmc_laser/loaded + icon_state = "laser_beam_loaded" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded, loadedempty + */ +// ship weapons from TGMC +/obj/structure/prop/war/tgmc_30mm + name = "30mm cannon" + desc = "Some sort of spacecraft-tier rotary cannon weapon." + icon = 'icons/obj/props/decor64x64.dmi' + icon_state = "30mm_cannon" + bound_height = 64 + +/obj/structure/prop/war/tgmc_30mm/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "30mm_cannon" + if("loaded") + icon_state = "30mm_cannon_loaded1" + if("loadedempty") + icon_state = "30mm_cannon_loaded0" + +/obj/structure/prop/war/tgmc_30mm/loaded + icon_state = "30mm_cannon_loaded1" +/obj/structure/prop/war/tgmc_30mm/loadedempty + icon_state = "30mm_cannon_loaded0" \ No newline at end of file diff --git a/icons/obj/props/decor.dmi b/icons/obj/props/decor.dmi new file mode 100644 index 0000000000..f5b5ee5460 Binary files /dev/null and b/icons/obj/props/decor.dmi differ diff --git a/icons/obj/props/decor32x64.dmi b/icons/obj/props/decor32x64.dmi new file mode 100644 index 0000000000..ceb577bb2c Binary files /dev/null and b/icons/obj/props/decor32x64.dmi differ diff --git a/icons/obj/props/decor64x64.dmi b/icons/obj/props/decor64x64.dmi new file mode 100644 index 0000000000..e9ac905d19 Binary files /dev/null and b/icons/obj/props/decor64x64.dmi differ diff --git a/icons/obj/props/decor96x96.dmi b/icons/obj/props/decor96x96.dmi new file mode 100644 index 0000000000..7229e30f23 Binary files /dev/null and b/icons/obj/props/decor96x96.dmi differ diff --git a/icons/obj/props/decor_fences.dmi b/icons/obj/props/decor_fences.dmi new file mode 100644 index 0000000000..155d5bef68 Binary files /dev/null and b/icons/obj/props/decor_fences.dmi differ diff --git a/polaris.dme b/polaris.dme index 2dea794844..d2300020b8 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1289,14 +1289,19 @@ #include "code\game\objects\structures\props\alien_props.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" #include "code\game\objects\structures\props\fake_ai.dm" +#include "code\game\objects\structures\props\fences.dm" +#include "code\game\objects\structures\props\machines.dm" #include "code\game\objects\structures\props\nest.dm" #include "code\game\objects\structures\props\projectile_lock.dm" #include "code\game\objects\structures\props\prop.dm" #include "code\game\objects\structures\props\puzzledoor.dm" #include "code\game\objects\structures\props\rocks.dm" +#include "code\game\objects\structures\props\statue.dm" #include "code\game\objects\structures\props\swarm.dm" #include "code\game\objects\structures\props\transmitter.dm" +#include "code\game\objects\structures\props\warfare.dm" #include "code\game\objects\structures\stool_bed_chair_nest\alien_nests.dm" #include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" #include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm"