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)]")