diff --git a/code/defines/obj.dm b/code/defines/obj.dm deleted file mode 100644 index 4e620df5fc2..00000000000 --- a/code/defines/obj.dm +++ /dev/null @@ -1,84 +0,0 @@ -/obj/structure/signpost - icon = 'icons/obj/stationobjs.dmi' - icon_state = "signpost" - anchored = 1 - density = 1 - -/obj/structure/signpost/attackby(obj/item/weapon/W as obj, mob/user as mob, params) - return attack_hand(user) - -/obj/structure/signpost/attack_hand(mob/user as mob) - switch(alert("Travel back to ss13?",,"Yes","No")) - if("Yes") - if(user.z != src.z) return - user.loc.loc.Exited(user) - user.loc = pick(latejoin) - if("No") - return - -/obj/effect/mark - var/mark = "" - icon = 'icons/misc/mark.dmi' - icon_state = "blank" - anchored = 1 - layer = 99 - mouse_opacity = 0 - unacidable = 1//Just to be sure. - -/obj/effect/beam - name = "beam" - unacidable = 1//Just to be sure. - var/def_zone - pass_flags = PASSTABLE - -/obj/effect/list_container - name = "list container" - -/obj/effect/list_container/mobl - name = "mobl" - var/master = null - - var/list/container = list( ) - -/obj/structure/showcase - name = "showcase" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "showcase_1" - desc = "A stand with the empty body of a cyborg bolted to it." - density = 1 - anchored = 1 - unacidable = 1//temporary until I decide whether the borg can be removed. -veyveyr - -/obj/structure/showcase/fakeid - name = "\improper Centcom identification console" - desc = "You can use this to change ID's." - icon = 'icons/obj/computer.dmi' - icon_state = "id" - -/obj/structure/showcase/fakesec - name = "\improper Centcom security records" - desc = "Used to view and edit personnel's security records" - icon = 'icons/obj/computer.dmi' - icon_state = "security" - -/obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER - -/obj/item/weapon/beach_ball - icon = 'icons/misc/beach.dmi' - icon_state = "ball" - name = "beach ball" - item_state = "beachball" - density = 0 - anchored = 0 - w_class = 1.0 - force = 0.0 - throwforce = 0.0 - throw_speed = 2 - throw_range = 7 - -/obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob) - user.drop_item() - src.throw_at(target, throw_range, throw_speed) - -/obj/effect/spawner - name = "object spawner" diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 6d127808ceb..bc10565b0b4 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -390,21 +390,20 @@ //BASKETBALL OBJECTS -/obj/item/weapon/beach_ball/holoball +/obj/item/toy/beach_ball/holoball name = "basketball" icon = 'icons/obj/basketball.dmi' icon_state = "basketball" item_state = "basketball" desc = "Here's your chance, do your dance at the Space Jam." - w_class = 4 //Stops people from hiding it in their bags/pockets -/obj/item/weapon/beach_ball/holoball/dodgeball +/obj/item/toy/beach_ball/holoball/dodgeball name = "dodgeball" icon_state = "dodgeball" item_state = "dodgeball" desc = "Used for playing the most violent and degrading of childhood games." -/obj/item/weapon/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) +/obj/item/toy/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) ..() if((ishuman(hit_atom))) var/mob/living/carbon/M = hit_atom diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index c2f590c5613..4d621cf0fdd 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -5,4 +5,31 @@ icon = 'icons/obj/items.dmi' icon_state = "strangepresent" density = 1 - anchored = 0 \ No newline at end of file + anchored = 0 + +/obj/effect/mark + var/mark = "" + icon = 'icons/misc/mark.dmi' + icon_state = "blank" + anchored = 1 + layer = 99 + mouse_opacity = 0 + unacidable = 1//Just to be sure. + +/obj/effect/beam + name = "beam" + unacidable = 1//Just to be sure. + var/def_zone + pass_flags = PASSTABLE + +/obj/effect/spawner + name = "object spawner" + +/obj/effect/list_container + name = "list container" + +/obj/effect/list_container/mobl + name = "mobl" + var/master = null + + var/list/container = list( ) \ No newline at end of file diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 5e1ef66ee32..2557171bcbc 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -1,110 +1,3 @@ -/* The old single tank bombs that dont really work anymore -/obj/effect/spawner/bomb - name = "bomb" - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x" - var/btype = 0 //0 = radio, 1= prox, 2=time - var/explosive = 1 // 0= firebomb - var/btemp = 500 // bomb temperature (degC) - var/active = 0 - -/obj/effect/spawner/bomb/radio - btype = 0 - -/obj/effect/spawner/bomb/proximity - btype = 1 - -/obj/effect/spawner/bomb/timer - btype = 2 - -/obj/effect/spawner/bomb/timer/syndicate - btemp = 450 - -/obj/effect/spawner/bomb/suicide - btype = 3 - -/obj/effect/spawner/bomb/New() - ..() - - switch (src.btype) - // radio - if (0) - var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc) - var/obj/item/weapon/tank/internals/plasma/p3 = new /obj/item/weapon/tank/internals/plasma(R) - var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - p1.b_stat = 0 - p2.secured = 1 - p3.air_contents.temperature = btemp + T0C - - // proximity - if (1) - var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc) - var/obj/item/weapon/tank/internals/plasma/p3 = new /obj/item/weapon/tank/internals/plasma(R) - var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - - if(src.active) - R.part1.secured = 1 - R.part1.icon_state = text("motion[]", 1) - R.c_state(1, src) - - // timer - if (2) - var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc) - var/obj/item/weapon/tank/internals/plasma/p3 = new /obj/item/weapon/tank/internals/plasma(R) - var/obj/item/device/timer/p1 = new /obj/item/device/timer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - //bombvest - if(3) - var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc) - var/obj/item/weapon/tank/internals/plasma/p4 = new /obj/item/weapon/tank/internals/plasma(R) - var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - R.part4 = p4 - p1.master = R - p2.master = R - p3.master = R - p4.master = R - R.status = explosive - - p4.air_contents.temperature = btemp + T0C - p2.secured = 1 - - qdel(src) -*/ - /obj/effect/spawner/newbomb name = "bomb" icon = 'icons/mob/screen_gen.dmi' diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index f6369e0c1af..69085aca0cc 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -20,6 +20,17 @@ return Trigger(H) +/* Sends a message to mob when triggered*/ + +/obj/effect/step_trigger/message + var/message //the message to give to the mob + var/once = 1 + +/obj/effect/step_trigger/message/Trigger(mob/M as mob) + if(M.client) + M << "[message]" + if(once) + qdel(src) /* Tosses things in a certain direction */ @@ -117,6 +128,42 @@ A.y = rand(teleport_y, teleport_y_offset) A.z = rand(teleport_z, teleport_z_offset) +/* Fancy teleporter, creates sparks and smokes when used */ + +/obj/effect/step_trigger/teleport_fancy + var/locationx + var/locationy + var/uses = 1 //0 for infinite uses + var/entersparks = 0 + var/exitsparks = 0 + var/entersmoke = 0 + var/exitsmoke = 0 + +/obj/effect/step_trigger/teleport_fancy/Trigger(mob/M as mob) + var/dest = locate(locationx, locationy, z) + M.Move(dest) + + if(entersparks) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(4, 1, src) + s.start() + if(exitsparks) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(4, 1, dest) + s.start() + + if(entersmoke) + var/datum/effect/effect/system/harmless_smoke_spread/s = new /datum/effect/effect/system/harmless_smoke_spread + s.set_up(4, 1, src, 0) + s.start() + if(exitsmoke) + var/datum/effect/effect/system/harmless_smoke_spread/s = new /datum/effect/effect/system/harmless_smoke_spread + s.set_up(4, 1, dest, 0) + s.start() + + uses-- + if(uses == 0) + qdel(src) /* Simple sound player, Mapper friendly! */ diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e586ab90a8b..8ea4e1cfaad 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -52,6 +52,8 @@ var/suittoggled = 0 var/hooded = 0 + /obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged + //So items can have custom embedd values //Because customisation is king var/embed_chance = EMBED_CHANCE diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ce8c268529c..54a982ced76 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -15,6 +15,7 @@ * Carp plushie * Foam armblade * Toy big red button + Beach ball */ @@ -1153,3 +1154,17 @@ obj/item/toy/cards/deck/syndicate else user << "Nothing happens." + +/* + * Beach ball + */ +/obj/item/toy/beach_ball + icon = 'icons/misc/beach.dmi' + icon_state = "ball" + name = "beach ball" + item_state = "beachball" + w_class = 4 //Stops people from hiding it in their bags/pockets + +/obj/item/toy/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob) + user.drop_item() + src.throw_at(target, throw_range, throw_speed) \ No newline at end of file diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index b36865df202..4731a6bd18a 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -44,8 +44,8 @@ /obj/item/weapon/book/manual/barman_recipes, /obj/item/weapon/book/manual/chef_recipes, /obj/item/weapon/bikehorn, - /obj/item/weapon/beach_ball, - /obj/item/weapon/beach_ball/holoball, + /obj/item/toy/beach_ball, + /obj/item/toy/beach_ball/holoball, /obj/item/weapon/banhammer, /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris, diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm new file mode 100644 index 00000000000..3a5be7f1b01 --- /dev/null +++ b/code/game/objects/structures/showcase.dm @@ -0,0 +1,20 @@ +/*Completely generic structures for use by mappers to create fake objects, i.e. display rooms*/ +/obj/structure/showcase + name = "showcase" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "showcase_1" + desc = "A stand with the empty body of a cyborg bolted to it." + density = 1 + anchored = 1 + +/obj/structure/showcase/fakeid + name = "\improper Centcom identification console" + desc = "You can use this to change ID's." + icon = 'icons/obj/computer.dmi' + icon_state = "id" + +/obj/structure/showcase/fakesec + name = "\improper Centcom security records" + desc = "Used to view and edit personnel's security records" + icon = 'icons/obj/computer.dmi' + icon_state = "security" \ No newline at end of file diff --git a/code/modules/awaymissions/signpost.dm b/code/modules/awaymissions/signpost.dm new file mode 100644 index 00000000000..d836829598b --- /dev/null +++ b/code/modules/awaymissions/signpost.dm @@ -0,0 +1,18 @@ +/*An alternative to exit gateways, signposts send you back to the arrivals shuttle with their semiotic magic.*/ +/obj/structure/signpost + icon = 'icons/obj/stationobjs.dmi' + icon_state = "signpost" + anchored = 1 + density = 1 + +/obj/structure/signpost/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + return attack_hand(user) + +/obj/structure/signpost/attack_hand(mob/user as mob) + switch(alert("Travel back to ss13?",,"Yes","No")) + if("Yes") + if(user.z != src.z) return + user.loc.loc.Exited(user) + user.loc = pick(latejoin) + if("No") + return \ No newline at end of file diff --git a/code/modules/awaymissions/trigger.dm b/code/modules/awaymissions/trigger.dm deleted file mode 100644 index c31b37fbd8b..00000000000 --- a/code/modules/awaymissions/trigger.dm +++ /dev/null @@ -1,44 +0,0 @@ -/obj/effect/step_trigger/message - var/message //the message to give to the mob - var/once = 1 - -/obj/effect/step_trigger/message/Trigger(mob/M as mob) - if(M.client) - M << "[message]" - if(once) - qdel(src) - -/obj/effect/step_trigger/teleport_fancy - var/locationx - var/locationy - var/uses = 1 //0 for infinite uses - var/entersparks = 0 - var/exitsparks = 0 - var/entersmoke = 0 - var/exitsmoke = 0 - -/obj/effect/step_trigger/teleport_fancy/Trigger(mob/M as mob) - var/dest = locate(locationx, locationy, z) - M.Move(dest) - - if(entersparks) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(4, 1, src) - s.start() - if(exitsparks) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(4, 1, dest) - s.start() - - if(entersmoke) - var/datum/effect/effect/system/harmless_smoke_spread/s = new /datum/effect/effect/system/harmless_smoke_spread - s.set_up(4, 1, src, 0) - s.start() - if(exitsmoke) - var/datum/effect/effect/system/harmless_smoke_spread/s = new /datum/effect/effect/system/harmless_smoke_spread - s.set_up(4, 1, dest, 0) - s.start() - - uses-- - if(uses == 0) - qdel(src) \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 26382e022e7..46722f072e9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -251,7 +251,6 @@ #include "code\datums\wires\taperecorder.dm" #include "code\datums\wires\vending.dm" #include "code\datums\wires\wires.dm" -#include "code\defines\obj.dm" #include "code\defines\obj\weapon.dm" #include "code\defines\procs\AStar.dm" #include "code\defines\procs\dbcore.dm" @@ -718,6 +717,7 @@ #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\OpTable.dm" #include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\showcase.dm" #include "code\game\objects\structures\signs.dm" #include "code\game\objects\structures\spirit_board.dm" #include "code\game\objects\structures\statues.dm" @@ -854,7 +854,7 @@ #include "code\modules\awaymissions\exile.dm" #include "code\modules\awaymissions\gateway.dm" #include "code\modules\awaymissions\pamphlet.dm" -#include "code\modules\awaymissions\trigger.dm" +#include "code\modules\awaymissions\signpost.dm" #include "code\modules\awaymissions\zlevel.dm" #include "code\modules\awaymissions\maploader\dmm_suite.dm" #include "code\modules\awaymissions\maploader\reader.dm"