CC-zlevel flattening, Antag base refurbishment, bugfixes and more (#9686)

This commit is contained in:
fernerr
2020-08-19 10:24:25 +02:00
committed by GitHub
parent d5932b6e18
commit b9db49aded
81 changed files with 69805 additions and 65682 deletions
+41 -7
View File
@@ -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
+1 -2
View File
@@ -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"
)
+15
View File
@@ -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
+1 -1
View File
@@ -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)
+5 -1
View File
@@ -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