diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 619fde8125..b94c3cab42 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -46,12 +46,6 @@ /datum/game_mode/cult/pre_setup() - if(prob(50)) - objectives += "survive" - objectives += "sacrifice" - else - objectives += "eldergod" - objectives += "sacrifice" var/list/cultists_possible = get_players_for_role(BE_CULTIST) for(var/datum/mind/player in cultists_possible) @@ -65,6 +59,16 @@ var/datum/mind/cultist = pick(cultists_possible) cultists_possible -= cultist cult += cultist + + // don't give summon nar-sie if less than 10 people, + // it's literally impossible in that case! + if(prob(50) || num_players() < 10) + objectives += "survive" + objectives += "sacrifice" + else + objectives += "eldergod" + objectives += "sacrifice" + return (cult.len>0) diff --git a/code/game/magic/musician.dm b/code/game/magic/musician.dm index 1718ce70e2..464a9e9f3a 100644 --- a/code/game/magic/musician.dm +++ b/code/game/magic/musician.dm @@ -381,7 +381,8 @@ var/list/notes = dd_text2list(beat, "/") for(var/note in dd_text2list(notes[1], "-")) //world << "note: [note]" - if(!playing)//If the piano is playing and you don't want it playing, this will stop the proc. + if(!playing || !anchored)//If the piano is playing, or is loose + playing = 0 return if(lentext(note) == 0) continue @@ -404,8 +405,12 @@ else sleep(song.tempo) playing = 0 + updateUsrDialog() attack_hand(var/mob/user as mob) + if(!anchored) + return + usr.machine = src var/dat = "Piano" @@ -455,7 +460,7 @@ onclose(user, "piano") Topic(href, href_list) - if(in_range(src, usr) && !issilicon(usr)) + if(in_range(src, usr) && !issilicon(usr) && !anchored) if(href_list["tempo"]) song.tempo += text2num(href_list["tempo"]) if(song.tempo < 1) @@ -529,3 +534,26 @@ add_fingerprint(usr) updateUsrDialog() return + + attackby(obj/item/O as obj, mob/user as mob) + if (istype(O, /obj/item/weapon/wrench)) + if (anchored) + playsound(src.loc, 'Ratchet.ogg', 50, 1) + user << "\blue You begin to loosen \the [src]'s casters..." + if (do_after(user, 40)) + user.visible_message( \ + "[user] loosens \the [src]'s casters.", \ + "\blue You have loosened \the [src]. Now it can be pulled somewhere else.", \ + "You hear ratchet.") + src.anchored = 0 + else + playsound(src.loc, 'Ratchet.ogg', 50, 1) + user << "\blue You begin to tighten \the [src] to the floor..." + if (do_after(user, 20)) + user.visible_message( \ + "[user] tightens \the [src]'s casters.", \ + "\blue You have tightened \the [src]'s casters. Now it can be played again.", \ + "You hear ratchet.") + src.anchored = 1 + else + ..() diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index a47ba98229..40f9a296be 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -81,7 +81,7 @@ "You hear metal clanking") else M.visible_message(\ - "\blue [M.name] was unbuckled himself!",\ + "\blue [M.name] unbuckled \himself!",\ "You unbuckle yourself from [src].",\ "You hear metal clanking") // world << "[M] is no longer buckled to [src]" @@ -102,7 +102,7 @@ "You hear metal clanking") else M.visible_message(\ - "\blue [M.name] is buckled in to [src] by [user.name]!",\ + "\blue [M.name] is buckled into [src] by [user.name]!",\ "You buckled in to [src] by [user.name].",\ "You hear metal clanking") M.anchored = 1 @@ -290,7 +290,7 @@ else M.visible_message(\ "\blue [M.name] is buckled in to [src] by [user.name]!",\ - "You buckled in to [src] by [user.name].",\ + "You buckled into [src] by [user.name].",\ "You hear metal clanking") M.anchored = 1 M.buckled = src @@ -314,7 +314,7 @@ "You hear metal clanking") else M.visible_message(\ - "\blue [M.name] was unbuckled himself!",\ + "\blue [M.name] unbuckled \himself!",\ "You unbuckle yourself from [src].",\ "You hear metal clanking") M.pixel_y = 0 diff --git a/code/game/vote.dm b/code/game/vote.dm index e38fc77c19..7741f2c182 100644 --- a/code/game/vote.dm +++ b/code/game/vote.dm @@ -397,12 +397,8 @@ spawn(config.vote_period*10) vote.endvote() - if(vote.mode == 2) - world << "\red*** A custom vote has been initiated by [M.key]." - world << "\red You have [vote.timetext(config.vote_period)] to vote." - else - world << "\red*** A vote to [vote.mode?"change game mode":"restart"] has been initiated by [M.key]." - world << "\red You have [vote.timetext(config.vote_period)] to vote." + world << "\red*** A vote to [vote.mode?"change game mode":"restart"] has been initiated by [M.key]." + world << "\red You have [vote.timetext(config.vote_period)] to vote." log_vote("Voting to [vote.mode ? "change mode" : "restart round"] started by [M.name]/[M.key]") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 42b4f172ad..b48d7e8338 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -2233,8 +2233,12 @@ // when the vote will end spawn(config.vote_period*10) vote.endvote() - world << "\red*** A vote to [vote.mode?"change game mode":"restart"] has been initiated by Admin [usr.key]." - world << "\red You have [vote.timetext(config.vote_period)] to vote." + if(vote.mode == 2) + world << "\red*** A custom vote has been initiated by [usr.key]." + world << "\red You have [vote.timetext(config.vote_period)] to vote." + else + world << "\red*** A vote to [vote.mode?"change game mode":"restart"] has been initiated by [usr.key]." + world << "\red You have [vote.timetext(config.vote_period)] to vote." log_admin("Voting to [vote.mode?"change mode":"restart round"] forced by admin [key_name(usr)]")