diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index c2f598b68af..2e5fa3cfe61 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -177,7 +177,7 @@ var/global/list/all_cults = list()
C.Grant(cult_mind.current)
cult_mind.current.create_attack_log("Has been converted to the cult!")
if(jobban_isbanned(cult_mind.current, ROLE_CULTIST) || jobban_isbanned(cult_mind.current, ROLE_SYNDICATE))
- replace_jobbaned_player(cult_mind.current, ROLE_CULTIST)
+ replace_jobbanned_player(cult_mind.current, ROLE_CULTIST)
update_cult_icons_added(cult_mind)
if(GAMEMODE_IS_CULT)
var/datum/game_mode/cult/cult_mode = ticker.mode
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 2a9c9851478..59f4b79c84d 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -440,7 +440,7 @@ proc/get_nt_opposed()
nukecode = bomb.r_code
return nukecode
-/datum/game_mode/proc/replace_jobbaned_player(mob/living/M, role_type)
+/datum/game_mode/proc/replace_jobbanned_player(mob/living/M, role_type)
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as a [role_type]?", role_type, 0, 100)
var/mob/dead/observer/theghost = null
if(candidates.len)
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index 56c83b1550f..72477e4ed06 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -145,7 +145,7 @@
if(client.statpanel == "Status")
stat("Chemicals", chemicals)
-/mob/living/simple_animal/borer/say(message)
+/mob/living/simple_animal/borer/say(var/message)
var/datum/language/dialect = parse_language(message)
if(!dialect)
dialect = get_default_language()
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 9c5f598895d..08fbf0d4cc7 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -249,7 +249,7 @@
rev_mind.special_role = SPECIAL_ROLE_REV
update_rev_icons_added(rev_mind)
if(jobban_isbanned(rev_mind.current, ROLE_REV) || jobban_isbanned(rev_mind.current, ROLE_SYNDICATE))
- replace_jobbaned_player(rev_mind.current, ROLE_REV)
+ replace_jobbanned_player(rev_mind.current, ROLE_REV)
return 1
//////////////////////////////////////////////////////////////////////////////
//Deals with players being converted from the revolution (Not a rev anymore)// // Modified to handle borged MMIs. Accepts another var if the target is being borged at the time -- Polymorph.
diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm
index bdd7c21f3bb..97f609ca9ff 100644
--- a/code/game/gamemodes/shadowling/shadowling.dm
+++ b/code/game/gamemodes/shadowling/shadowling.dm
@@ -163,7 +163,7 @@ Made by Xhuis
to_chat(new_thrall_mind.current, "Though not nearly as powerful as your masters, you possess some weak powers. These can be found in the Thrall Abilities tab.")
to_chat(new_thrall_mind.current, "You may communicate with your allies by speaking in the Shadowling Hivemind (:8).")
if(jobban_isbanned(new_thrall_mind.current, ROLE_SHADOWLING) || jobban_isbanned(new_thrall_mind.current, ROLE_SYNDICATE))
- replace_jobbaned_player(new_thrall_mind.current, ROLE_SHADOWLING)
+ replace_jobbanned_player(new_thrall_mind.current, ROLE_SHADOWLING)
return 1
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index e1532051632..ed1554166b2 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -39,19 +39,23 @@
else
layer = open_layer
+ update_dir()
+ update_freelook_sight()
+ airlocks += src
+
+/obj/machinery/door/setDir(newdir)
+ ..()
+ update_dir()
+/obj/machinery/door/proc/update_dir()
if(width > 1)
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
else
bound_width = world.icon_size
- bound_height = width * world.icon_size
-
- update_freelook_sight()
- airlocks += src
- return
-
+ bound_height = width * world.icon_size
+
/obj/machinery/door/initialize()
air_update_turf(1)
..()
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index f187741d430..497c6a8a487 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -1,6 +1,4 @@
-//NOT using the existing /obj/machinery/door type, since that has some complications on its own, mainly based on its
-//machineryness
-
+//NOT using the existing /obj/machinery/door type, since that has some complications on its own, mainly based on its machineryness
/obj/structure/mineral_door
name = "metal door"
density = 1
@@ -19,7 +17,8 @@
var/sheetType = /obj/item/stack/sheet/metal
var/sheetAmount = 7
var/openSound = 'sound/effects/stonedoor_openclose.ogg'
- var/closeSound = 'sound/effects/stonedoor_openclose.ogg'
+ var/closeSound = 'sound/effects/stonedoor_openclose.ogg'
+ var/damageSound = null
/obj/structure/mineral_door/New(location)
..()
@@ -135,16 +134,26 @@
/obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/pickaxe))
var/obj/item/weapon/pickaxe/digTool = W
- to_chat(user, "You start digging the [name].")
+ to_chat(user, "You start digging \the [src].")
if(do_after(user, digTool.digspeed * hardness, target = src) && src)
- to_chat(user, "You finished digging.")
+ to_chat(user, "You finished digging.")
deconstruct(TRUE)
- else if(istype(W, /obj/item/weapon)) //not sure, can't not just weapons get passed to this proc?
- hardness -= W.force/100
- to_chat(user, "You hit the [name] with your [W.name]!")
- CheckHardness()
- else
+ else if(user.a_intent != I_HARM)
attack_hand(user)
+ else
+ attacked_by(W, user)
+
+/obj/structure/mineral_door/proc/attacked_by(obj/item/I, mob/user)
+ if(I.damtype != STAMINA)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
+ visible_message("[user] hits \the [src] with \the [I].")
+ if(damageSound)
+ playsound(loc, damageSound, 100, 1)
+ else
+ playsound(loc, I.hitsound, 100, 1)
+ hardness -= I.force / 100
+ CheckHardness()
/obj/structure/mineral_door/proc/CheckHardness()
if(hardness <= 0)
@@ -251,12 +260,9 @@
close_delay = 100
openSound = 'sound/effects/attackblob.ogg'
closeSound = 'sound/effects/attackblob.ogg'
+ damageSound = 'sound/effects/attackblob.ogg'
sheetType = null
/obj/structure/mineral_door/resin/TryToSwitchState(atom/user)
if(isalien(user))
return ..()
-
-/obj/structure/mineral_door/resin/CheckHardness()
- playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
- ..()
diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm
index 4ff960ba185..61bd133efef 100644
--- a/code/modules/mob/language.dm
+++ b/code/modules/mob/language.dm
@@ -494,11 +494,10 @@
ask_verb = "sings"
exclaim_verb = "sings"
colour = "alien"
- key = "w"
+ key = "bo"
flags = RESTRICTED | HIVEMIND
/datum/language/corticalborer/broadcast(mob/living/speaker, message, speaker_mask)
-
var/mob/living/simple_animal/borer/B
if(iscarbon(speaker))
diff --git a/code/modules/pda/messenger_plugins.dm b/code/modules/pda/messenger_plugins.dm
index c8eb599d404..b1fa63dd2e0 100644
--- a/code/modules/pda/messenger_plugins.dm
+++ b/code/modules/pda/messenger_plugins.dm
@@ -22,7 +22,7 @@
/datum/data/pda/messenger_plugin/virus/clown/user_act(mob/user as mob, obj/item/device/pda/P)
. = ..(user, P)
if(.)
- user.show_message("Virus sent!", 1)
+ user.show_message("Virus sent!", 1)
P.honkamt = (rand(15,20))
P.ttone = "honk"
@@ -33,7 +33,7 @@
/datum/data/pda/messenger_plugin/virus/mime/user_act(mob/user as mob, obj/item/device/pda/P)
. = ..(user, P)
if(.)
- user.show_message("Virus sent!", 1)
+ user.show_message("Virus sent!", 1)
var/datum/data/pda/app/M = P.find_program(/datum/data/pda/app/messenger)
if(M)
M.notify_silent = 1
@@ -57,18 +57,19 @@
else
difficulty += 2
- if(!P.detonate)
- user.show_message("The target PDA does not seem to respond to the detonation command.", 1)
- else if(prob(difficulty * 12) || (pda.hidden_uplink))
- user.show_message("An error flashes on your [pda].", 1)
+ if(!P.detonate || P.hidden_uplink)
+ user.show_message("The target PDA does not seem to respond to the detonation command.", 1)
+ pda.cartridge.charges++
+ else if(prob(difficulty * 12))
+ user.show_message("An error flashes on your [pda].", 1)
else if(prob(difficulty * 3))
- user.show_message("Energy feeds back into your [pda]!", 1)
+ user.show_message("Energy feeds back into your [pda]!", 1)
pda.close(user)
pda.explode()
log_admin("[key_name(user)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up")
message_admins("[key_name_admin(user)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up", 1)
else
- user.show_message("Success!", 1)
+ user.show_message("Success!", 1)
log_admin("[key_name(user)] just attempted to blow up [P] with the Detomatix cartridge and succeded")
message_admins("[key_name_admin(user)] just attempted to blow up [P] with the Detomatix cartridge and succeded", 1)
P.explode()
\ No newline at end of file
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index 4e720f39c00..422fc8c532a 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -175,26 +175,6 @@
to_chat(user, "You can only attach the [nicetype] if the floor plating is removed.")
return
- var/obj/structure/disposalpipe/CP = locate() in T
- if(ptype>=6 && ptype <= 8) // Disposal or outlet
- if(CP) // There's something there
- if(!istype(CP,/obj/structure/disposalpipe/trunk))
- to_chat(user, "The [nicetype] requires a trunk underneath it in order to work.")
- return
- else // Nothing under, fuck.
- to_chat(user, "The [nicetype] requires a trunk underneath it in order to work.")
- return
- else
- if(CP)
- update()
- var/pdir = CP.dpdir
- if(istype(CP, /obj/structure/disposalpipe/broken))
- pdir = CP.dir
- if(pdir & dpdir)
- to_chat(user, "There is already a [nicetype] at that location.")
- return
-
-
if(istype(I, /obj/item/weapon/wrench))
if(anchored)
anchored = 0
@@ -214,8 +194,28 @@
to_chat(user, "You attach the [nicetype] to the underfloor.")
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
update()
+ return
+
+ var/obj/structure/disposalpipe/CP = locate() in T
+ if(ptype>=6 && ptype <= 8) // Disposal or outlet
+ if(CP) // There's something there
+ if(!istype(CP,/obj/structure/disposalpipe/trunk))
+ to_chat(user, "The [nicetype] requires a trunk underneath it in order to work.")
+ return
+ else // Nothing under, fuck.
+ to_chat(user, "The [nicetype] requires a trunk underneath it in order to work.")
+ return
+ else
+ if(CP)
+ update()
+ var/pdir = CP.dpdir
+ if(istype(CP, /obj/structure/disposalpipe/broken))
+ pdir = CP.dir
+ if(pdir & dpdir)
+ to_chat(user, "There is already a [nicetype] at that location.")
+ return
- else if(istype(I, /obj/item/weapon/weldingtool))
+ if(istype(I, /obj/item/weapon/weldingtool))
if(anchored)
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 0bbafd586a3..a39152bb507 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -210,7 +210,8 @@
// leave the disposal
/obj/machinery/disposal/proc/go_out(mob/user)
- user.forceMove(loc)
+ if(user)
+ user.forceMove(loc)
update()
// ai as human but can't flush
diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm
index 5cf39ccfec1..2a1ea4c7d64 100644
--- a/code/modules/vehicle/vehicle.dm
+++ b/code/modules/vehicle/vehicle.dm
@@ -16,6 +16,7 @@
//Pixels
var/generic_pixel_x = 0 //All dirs show this pixel_x for the driver
var/generic_pixel_y = 0 //All dirs shwo this pixel_y for the driver
+ var/spaceworthy = FALSE
/obj/vehicle/New()
@@ -130,6 +131,8 @@
/obj/vehicle/Bump(atom/movable/M)
+ if(!spaceworthy && isspaceturf(get_turf(src)))
+ return 0
. = ..()
if(auto_door_open)
if(istype(M, /obj/machinery/door) && buckled_mob)
@@ -143,7 +146,7 @@
if(has_gravity(src))
return 1
- if(pulledby && !istype(buckled_mob)) // no pulling the vehicle you're driving through space!
+ if(pulledby && pulledby != buckled_mob) // no pulling the vehicle you're driving through space!
return 1
if(needs_gravity)
@@ -153,6 +156,7 @@
/obj/vehicle/space
pressure_resistance = INFINITY
+ spaceworthy = TRUE
/obj/vehicle/space/Process_Spacemove(direction)
return 1
\ No newline at end of file