mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 23:14:18 +01:00
CC-zlevel flattening, Antag base refurbishment, bugfixes and more (#9686)
This commit is contained in:
@@ -24,7 +24,6 @@
|
||||
/* Tosses things in a certain direction */
|
||||
|
||||
/obj/effect/step_trigger/thrower
|
||||
var/direction = SOUTH // the direction of throw
|
||||
var/tiles = 3 // if 0: forever until atom hits a stopper
|
||||
var/immobilize = 1 // if nonzero: prevents mobs from moving while they're being flung
|
||||
var/speed = 1 // delay of movement
|
||||
@@ -61,29 +60,64 @@
|
||||
|
||||
// Calculate if we should stop the process
|
||||
if(!nostop)
|
||||
for(var/obj/effect/step_trigger/T in get_step(AM, direction))
|
||||
for(var/obj/effect/step_trigger/T in get_step(AM, dir))
|
||||
if(T.stopper && T != src)
|
||||
stopthrow = 1
|
||||
else
|
||||
for(var/obj/effect/step_trigger/teleporter/T in get_step(AM, direction))
|
||||
for(var/obj/effect/step_trigger/teleporter/T in get_step(AM, dir))
|
||||
if(T.stopper)
|
||||
stopthrow = 1
|
||||
|
||||
if(AM)
|
||||
var/predir = AM.dir
|
||||
step(AM, direction)
|
||||
step(AM, dir)
|
||||
if(!facedir)
|
||||
AM.set_dir(predir)
|
||||
|
||||
|
||||
|
||||
affecting.Remove(AM)
|
||||
|
||||
if(ismob(AM))
|
||||
var/mob/M = AM
|
||||
if(immobilize)
|
||||
M.canmove = 1
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle
|
||||
icon_state = "dir_arrow"
|
||||
affect_ghosts = TRUE
|
||||
nostop = TRUE
|
||||
tiles = 0
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/north
|
||||
name = "north_thrower"
|
||||
dir = NORTH
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/northeast
|
||||
name = "northeast_thrower"
|
||||
dir = NORTHEAST
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/east
|
||||
name = "east_thrower"
|
||||
dir = EAST
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/southeast
|
||||
name = "southeast_thrower"
|
||||
dir = SOUTHEAST
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/south
|
||||
name = "south_thrower"
|
||||
dir = SOUTH
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/southwest
|
||||
name = "southwest_thrower"
|
||||
dir = SOUTHWEST
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/west
|
||||
name = "west_thrower"
|
||||
dir = WEST
|
||||
|
||||
/obj/effect/step_trigger/thrower/shuttle/northwest
|
||||
name = "northwest_thrower"
|
||||
dir = NORTHWEST
|
||||
|
||||
/* Stops things thrown by a thrower, doesn't do anything */
|
||||
|
||||
/obj/effect/step_trigger/stopper
|
||||
|
||||
@@ -85,8 +85,7 @@ move an amendment</a> to the drawing.</p>
|
||||
/area/shuttle,
|
||||
/area/centcom,
|
||||
/area/tdome,
|
||||
/area/syndicate_station,
|
||||
/area/wizard_station
|
||||
/area/antag
|
||||
)
|
||||
for (var/type in SPECIALS)
|
||||
if ( istype(A,type) )
|
||||
|
||||
@@ -194,7 +194,7 @@ Implant Specifics:<BR>"}
|
||||
var/elevel = "Localized Limb"
|
||||
var/phrase
|
||||
var/setup_done = FALSE //Have we set this yet?
|
||||
var/uses_codewords = TRUE
|
||||
var/uses_codewords = TRUE
|
||||
icon_state = "implant_evil"
|
||||
|
||||
/obj/item/implant/explosive/Initialize()
|
||||
@@ -548,7 +548,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
switch (cause)
|
||||
if("death")
|
||||
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
|
||||
if(istype(t, /area/syndicate_station) || istype(t, /area/syndicate_mothership) || istype(t, /area/shuttle/syndicate_elite) )
|
||||
if(istype(t, /area/antag) || istype(t, /area/shuttle/mercenary) || istype(t, /area/shuttle/syndicate_elite) )
|
||||
//give the syndies a bit of stealth
|
||||
a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm")
|
||||
else
|
||||
|
||||
@@ -569,6 +569,49 @@
|
||||
name = "pitchfork"
|
||||
desc = "An old farming tool, not something you would find at hydroponics."
|
||||
|
||||
/obj/item/material/twohanded/pike/flag
|
||||
icon_state = "flag_biesel0"
|
||||
base_icon = "flag_biesel"
|
||||
name = "republic of biesel flag"
|
||||
desc = "For the republic!"
|
||||
default_material = "bronze"
|
||||
can_embed = 1
|
||||
use_material_name = FALSE
|
||||
unbreakable = TRUE
|
||||
drop_sound = 'sound/items/drop/metalweapon.ogg'
|
||||
pickup_sound = 'sound/items/pickup/metalweapon.ogg'
|
||||
action_button_name = "Plant Flag"
|
||||
var/planted = FALSE
|
||||
|
||||
/obj/item/material/twohanded/pike/flag/verb/plant()
|
||||
set name = "Plant Flag"
|
||||
set category = "Object"
|
||||
|
||||
if(ishuman(usr))
|
||||
var/mob/living/user = usr
|
||||
user.drop_from_inventory(src)
|
||||
icon_state = "[base_icon]_planted"
|
||||
anchored = TRUE
|
||||
planted = TRUE
|
||||
pixel_x = 16
|
||||
pixel_y = 4
|
||||
user.visible_message(SPAN_DANGER("[user] plants [src] proudly into the ground!"), SPAN_DANGER("You plant [src] proudly into the ground!"))
|
||||
|
||||
/obj/item/material/twohanded/pike/flag/attack_hand(var/mob/user)
|
||||
if(planted)
|
||||
icon_state = initial(icon_state)
|
||||
planted = FALSE
|
||||
anchored = FALSE
|
||||
pixel_x = initial(pixel_x)
|
||||
pixel_y = initial(pixel_y)
|
||||
user.visible_message(SPAN_NOTICE("[user] grabs [src]."), SPAN_NOTICE("You grab [src] from where it stands."))
|
||||
..()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/material/twohanded/pike/flag/ui_action_click()
|
||||
plant()
|
||||
|
||||
/obj/item/material/twohanded/zweihander
|
||||
icon_state = "zweihander0"
|
||||
base_icon = "zweihander"
|
||||
|
||||
@@ -124,6 +124,9 @@
|
||||
if(T.density || T.contains_dense_objects())
|
||||
to_chat(user, SPAN_WARNING("You cannot teleport to a location with solid objects!"))
|
||||
return
|
||||
if(isAdminLevel(T.z))
|
||||
to_chat(user, SPAN_WARNING("You cannot use the device on this Z-level."))
|
||||
return
|
||||
|
||||
user.visible_message("<b>[user]</b> blinks into nothingness!", SPAN_NOTICE("You jump into the nothing."))
|
||||
user.forceMove(T)
|
||||
|
||||
@@ -690,7 +690,10 @@
|
||||
"critter" = "critteropen",
|
||||
"largemetal" = "largemetalopen",
|
||||
"medicalcrate" = "medicalcrateopen",
|
||||
"tcflcrate" = "tcflcrateopen"
|
||||
"tcflcrate" = "tcflcrateopen",
|
||||
"necrocrate" = "necrocrateopen",
|
||||
"zenghucrate" = "zenghucrateopen",
|
||||
"hephcrate" = "hephcrateopen"
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,21 @@
|
||||
var/driving
|
||||
var/mob/living/pulling
|
||||
|
||||
/obj/structure/janitorialcart/full/Initialize()
|
||||
..()
|
||||
mybag = new /obj/item/storage/bag/trash(src)
|
||||
mymop = new /obj/item/mop(src)
|
||||
myspray = new /obj/item/reagent_containers/spray/cleaner(src)
|
||||
myreplacer = new /obj/item/device/lightreplacer(src)
|
||||
|
||||
mybucket = new /obj/structure/mopbucket(src)
|
||||
mybucket.reagents.add_reagent(/datum/reagent/water, mybucket.bucketsize)
|
||||
|
||||
for(signs, signs < 4, signs++)
|
||||
new /obj/item/clothing/suit/caution(src)
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/structure/janitorialcart/New()
|
||||
..()
|
||||
janitorial_supplies |= src
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
shattered = 1
|
||||
|
||||
/obj/structure/mirror/raider/attack_hand(var/mob/living/carbon/human/user)
|
||||
if(istype(get_area(src),/area/syndicate_mothership))
|
||||
if(istype(get_area(src),/area/antag))
|
||||
if(istype(user) && user.mind && user.mind.special_role == "Raider" && user.species.name != "Vox")
|
||||
var/choice = input("Do you wish to become a true Vox of the Shoal? This is not reversible.") as null|anything in list("No","Yes")
|
||||
if(choice && choice == "Yes")
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
/obj/structure/shotgun_rack
|
||||
name = "shotgun rack"
|
||||
desc = "A wooden rack designated to store shotguns."
|
||||
icon = 'icons/obj/shotgunrack.dmi'
|
||||
icon_state = "shotgun_rack"
|
||||
anchored = 1
|
||||
density = 0
|
||||
|
||||
var/obj/item/gun/projectile/shotgun/rack_shotgun
|
||||
|
||||
/obj/structure/shotgun_rack/attackby(obj/item/O, mob/user)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if(istype(O, /obj/item/gun/projectile/shotgun) && O.w_class != 3) //w_class check is to stop people from placing a sawn off shotgun here
|
||||
if(!rack_shotgun)
|
||||
user.unEquip(O)
|
||||
O.forceMove(src)
|
||||
rack_shotgun = O
|
||||
to_chat(user, "<span class='notice'>You place \the [O] in \the [src].</span>")
|
||||
icon_state = "shotgun_rack_[O.icon_state]"
|
||||
|
||||
/obj/structure/shotgun_rack/attack_hand(mob/user)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if (!user.can_use_hand())
|
||||
return
|
||||
if(rack_shotgun)
|
||||
user.put_in_hands(rack_shotgun)
|
||||
to_chat(user, "<span class='notice'>You take \the [rack_shotgun] from \the [src].</span>")
|
||||
rack_shotgun = null
|
||||
icon_state = "shotgun_rack"
|
||||
|
||||
/obj/structure/shotgun_rack/do_simple_ranged_interaction(var/mob/user)
|
||||
if(rack_shotgun)
|
||||
rack_shotgun.forceMove(loc)
|
||||
to_chat(user, "<span class='notice'>You telekinetically remove \the [rack_shotgun] from \the [src].</span>")
|
||||
rack_shotgun = null
|
||||
icon_state = "shotgun_rack"
|
||||
|
||||
//premade types
|
||||
|
||||
/obj/structure/shotgun_rack/double
|
||||
icon_state = "shotgun_rack_dshotgun"
|
||||
|
||||
/obj/structure/shotgun_rack/double/Initialize()
|
||||
. = ..()
|
||||
rack_shotgun = new/obj/item/gun/projectile/shotgun/doublebarrel(src)
|
||||
|
||||
/obj/structure/shotgun_rack/double_pellet
|
||||
icon_state = "shotgun_rack_dshotgun"
|
||||
|
||||
/obj/structure/shotgun_rack/double_pellet/Initialize()
|
||||
. = ..()
|
||||
rack_shotgun = new/obj/item/gun/projectile/shotgun/doublebarrel/pellet(src)
|
||||
|
||||
|
||||
/obj/structure/shotgun_rack/pump
|
||||
icon_state = "shotgun_rack_shotgun"
|
||||
|
||||
/obj/structure/shotgun_rack/pump/Initialize()
|
||||
. = ..()
|
||||
rack_shotgun = new/obj/item/gun/projectile/shotgun/pump(src)
|
||||
|
||||
/obj/structure/shotgun_rack/combat
|
||||
icon_state = "shotgun_rack_cshotgun"
|
||||
|
||||
/obj/structure/shotgun_rack/combat/Initialize()
|
||||
. = ..()
|
||||
rack_shotgun = new/obj/item/gun/projectile/shotgun/pump/combat(src)
|
||||
|
||||
/obj/structure/shotgun_rack/improvised
|
||||
icon_state = "shotgun_rack_ishotgun"
|
||||
|
||||
/obj/structure/shotgun_rack/improvised/Initialize()
|
||||
. = ..()
|
||||
rack_shotgun = new/obj/item/gun/projectile/shotgun/improvised(src)
|
||||
@@ -184,12 +184,16 @@
|
||||
desc = "A warning sign which reads 'HYDROPONICS'."
|
||||
icon_state = "hydro1"
|
||||
|
||||
|
||||
/obj/structure/sign/patients_only
|
||||
name = "\improper PATIENTS ONLY"
|
||||
desc = "A big blue sign that reads 'PATIENTS ONLY'. Underneath you can read: 'Authorized personnel only. Tresspassers will be prosecuted by the security department.'"
|
||||
icon_state = "patients_only"
|
||||
|
||||
/obj/structure/sign/staff_only
|
||||
name = "\improper STAFF ONLY"
|
||||
desc = "A big blue sign that reads 'STAFF ONLY'"
|
||||
icon_state = "staff_only"
|
||||
|
||||
//Location and direction signs
|
||||
/obj/structure/sign/directions
|
||||
name = "direction sign"
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
/obj/structure/weapon_rack
|
||||
name = "weapon rack"
|
||||
desc = "A wooden rack designated to store weapons."
|
||||
icon = 'icons/obj/weaponrack.dmi'
|
||||
icon_state = "rack"
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
|
||||
var/obj/item/held_weapon
|
||||
|
||||
/obj/structure/weapon_rack/Initialize()
|
||||
if(held_weapon)
|
||||
held_weapon = new held_weapon(src)
|
||||
icon_state = initial(icon_state) + "_[held_weapon.icon_state]"
|
||||
|
||||
/obj/structure/weapon_rack/attackby(obj/item/W, mob/user)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if((initial(icon_state) + "_[W.icon_state]") in icon_states(icon))
|
||||
user.unEquip(W)
|
||||
W.forceMove(src)
|
||||
held_weapon = W
|
||||
to_chat(user, SPAN_NOTICE("You place \the [W] on \the [src]."))
|
||||
icon_state = initial(icon_state) + "_[W.icon_state]"
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("[W] does not fit on \the [src]."))
|
||||
|
||||
/obj/structure/weapon_rack/attack_hand(mob/user)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if (!user.can_use_hand())
|
||||
return
|
||||
if(held_weapon)
|
||||
user.put_in_hands(held_weapon)
|
||||
to_chat(user, SPAN_NOTICE("You take \the [held_weapon] from \the [src]."))
|
||||
held_weapon = null
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/structure/weapon_rack/do_simple_ranged_interaction(var/mob/user)
|
||||
if(held_weapon)
|
||||
held_weapon.forceMove(loc)
|
||||
to_chat(user, SPAN_NOTICE("You telekinetically remove \the [held_weapon] from \the [src]."))
|
||||
held_weapon = null
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
// Premade types
|
||||
|
||||
/obj/structure/weapon_rack/double
|
||||
held_weapon = /obj/item/gun/projectile/shotgun/doublebarrel
|
||||
|
||||
/obj/structure/weapon_rack/double_pellet
|
||||
held_weapon = /obj/item/gun/projectile/shotgun/doublebarrel/pellet
|
||||
|
||||
/obj/structure/weapon_rack/pump
|
||||
held_weapon = /obj/item/gun/projectile/shotgun/pump
|
||||
|
||||
/obj/structure/weapon_rack/combat
|
||||
held_weapon = /obj/item/gun/projectile/shotgun/pump/combat
|
||||
|
||||
/obj/structure/weapon_rack/improvised
|
||||
held_weapon = /obj/item/gun/projectile/shotgun/improvised
|
||||
|
||||
/obj/structure/weapon_rack/dragunov
|
||||
name = "antique sniper rifle rack"
|
||||
desc = "A wooden rack holding an old sniper rifle. Still packs a punch."
|
||||
held_weapon = /obj/item/gun/projectile/dragunov
|
||||
Reference in New Issue
Block a user