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