mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
Merge remote-tracking branch 'upstream/master' into hog-mergeconflicts
Conflicts: code/__DEFINES/hud.dm code/__HELPERS/game.dm code/_onclick/hud/_defines.dm code/_onclick/hud/hud.dm code/game/gamemodes/antag_spawner.dm code/game/gamemodes/game_mode.dm code/game/machinery/turrets.dm code/modules/client/preferences_toggles.dm code/modules/events/alien_infestation.dm code/modules/mob/dead/observer/observer.dm code/modules/mob/living/carbon/alien/special/alien_embryo.dm code/modules/mob/living/simple_animal/revenant/revenant.dm icons/mob/back.dmi icons/mob/head.dmi icons/mob/hud.dmi icons/mob/inhands/items_lefthand.dmi icons/mob/inhands/items_righthand.dmi icons/mob/mob.dmi icons/mob/suit.dmi icons/obj/clothing/hats.dmi icons/obj/items.dmi icons/obj/projectiles.dmi icons/obj/storage.dmi
This commit is contained in:
@@ -149,6 +149,10 @@
|
||||
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]")
|
||||
|
||||
/proc/admin_forcemove(mob/mover, atom/newloc)
|
||||
if(mover.buckled)
|
||||
mover.buckled.unbuckle_mob()
|
||||
if(mover.buckled_mob)
|
||||
mover.unbuckle_mob(force=1)
|
||||
mover.loc = newloc
|
||||
mover.on_forcemove(newloc)
|
||||
|
||||
|
||||
@@ -7,17 +7,17 @@
|
||||
feedback_add_details("admin_verb","CP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
//all plumbing - yes, some things might get stated twice, doesn't matter.
|
||||
for (var/obj/machinery/atmospherics/plumbing in world)
|
||||
for (var/obj/machinery/atmospherics/plumbing in machines)
|
||||
if (plumbing.nodealert)
|
||||
usr << "Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])"
|
||||
|
||||
//Manifolds
|
||||
for (var/obj/machinery/atmospherics/pipe/manifold/pipe in world)
|
||||
for (var/obj/machinery/atmospherics/pipe/manifold/pipe in machines)
|
||||
if (!pipe.NODE1 || !pipe.NODE2 || !pipe.NODE3)
|
||||
usr << "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])"
|
||||
|
||||
//Pipes
|
||||
for (var/obj/machinery/atmospherics/pipe/simple/pipe in world)
|
||||
for (var/obj/machinery/atmospherics/pipe/simple/pipe in machines)
|
||||
if (!pipe.NODE1 || !pipe.NODE2)
|
||||
usr << "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])"
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
set category = "Fun"
|
||||
set name = "Make Robot"
|
||||
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
@@ -215,7 +215,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
set category = "Fun"
|
||||
set name = "Make Blob"
|
||||
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
@@ -232,7 +232,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
set category = "Fun"
|
||||
set name = "Make Simple Animal"
|
||||
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
|
||||
@@ -280,7 +280,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
set category = "Fun"
|
||||
set name = "Make Alien"
|
||||
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(ishuman(M))
|
||||
@@ -297,7 +297,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
set category = "Fun"
|
||||
set name = "Make slime"
|
||||
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(ishuman(M))
|
||||
@@ -474,7 +474,7 @@ var/global/list/g_fancy_list_of_types = null
|
||||
set category = "Admin"
|
||||
set name = "Grant Full Access"
|
||||
|
||||
if (!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if (istype(M, /mob/living/carbon/human))
|
||||
@@ -546,37 +546,37 @@ var/global/list/g_fancy_list_of_types = null
|
||||
if(!(A.type in areas_all))
|
||||
areas_all.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/power/apc/APC in world)
|
||||
for(var/obj/machinery/power/apc/APC in apcs_list)
|
||||
var/area/A = get_area(APC)
|
||||
if(!(A.type in areas_with_APC))
|
||||
areas_with_APC.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/alarm/alarm in world)
|
||||
for(var/obj/machinery/alarm/alarm in machines)
|
||||
var/area/A = get_area(alarm)
|
||||
if(!(A.type in areas_with_air_alarm))
|
||||
areas_with_air_alarm.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/requests_console/RC in world)
|
||||
for(var/obj/machinery/requests_console/RC in machines)
|
||||
var/area/A = get_area(RC)
|
||||
if(!(A.type in areas_with_RC))
|
||||
areas_with_RC.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/light/L in world)
|
||||
for(var/obj/machinery/light/L in machines)
|
||||
var/area/A = get_area(L)
|
||||
if(!(A.type in areas_with_light))
|
||||
areas_with_light.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/light_switch/LS in world)
|
||||
for(var/obj/machinery/light_switch/LS in machines)
|
||||
var/area/A = get_area(LS)
|
||||
if(!(A.type in areas_with_LS))
|
||||
areas_with_LS.Add(A.type)
|
||||
|
||||
for(var/obj/item/device/radio/intercom/I in world)
|
||||
for(var/obj/item/device/radio/intercom/I in machines)
|
||||
var/area/A = get_area(I)
|
||||
if(!(A.type in areas_with_intercom))
|
||||
areas_with_intercom.Add(A.type)
|
||||
|
||||
for(var/obj/machinery/camera/C in world)
|
||||
for(var/obj/machinery/camera/C in machines)
|
||||
var/area/A = get_area(C)
|
||||
if(!(A.type in areas_with_camera))
|
||||
areas_with_camera.Add(A.type)
|
||||
@@ -624,7 +624,7 @@ var/global/list/g_fancy_list_of_types = null
|
||||
alert("Invalid mob")
|
||||
return
|
||||
//log_admin("[key_name(src)] has alienized [M.key].")
|
||||
|
||||
|
||||
|
||||
var/list/outfits = list("Naked","Custom","As Job...")
|
||||
var/list/paths = typesof(/datum/outfit) - /datum/outfit - typesof(/datum/outfit/job)
|
||||
@@ -691,15 +691,15 @@ var/global/list/g_fancy_list_of_types = null
|
||||
if(alert("Are you sure? This will start up the engine. Should only be used during debug!",,"Yes","No") != "Yes")
|
||||
return
|
||||
|
||||
for(var/obj/machinery/power/emitter/E in world)
|
||||
for(var/obj/machinery/power/emitter/E in machines)
|
||||
if(E.anchored)
|
||||
E.active = 1
|
||||
|
||||
for(var/obj/machinery/field/generator/F in world)
|
||||
for(var/obj/machinery/field/generator/F in machines)
|
||||
if(F.anchored)
|
||||
F.Varedit_start = 1
|
||||
spawn(30)
|
||||
for(var/obj/machinery/the_singularitygen/G in world)
|
||||
for(var/obj/machinery/the_singularitygen/G in machines)
|
||||
if(G.anchored)
|
||||
var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
|
||||
// qdel(G)
|
||||
@@ -716,7 +716,7 @@ var/global/list/g_fancy_list_of_types = null
|
||||
//S.dissipate_track = 0
|
||||
//S.dissipate_strength = 10
|
||||
|
||||
for(var/obj/machinery/power/rad_collector/Rad in world)
|
||||
for(var/obj/machinery/power/rad_collector/Rad in machines)
|
||||
if(Rad.anchored)
|
||||
if(!Rad.P)
|
||||
var/obj/item/weapon/tank/internals/plasma/Plasma = new/obj/item/weapon/tank/internals/plasma(Rad)
|
||||
@@ -728,7 +728,7 @@ var/global/list/g_fancy_list_of_types = null
|
||||
if(!Rad.active)
|
||||
Rad.toggle_power()
|
||||
|
||||
for(var/obj/machinery/power/smes/SMES in world)
|
||||
for(var/obj/machinery/power/smes/SMES in machines)
|
||||
if(SMES.anchored)
|
||||
SMES.input_attempt = 1
|
||||
|
||||
@@ -767,4 +767,12 @@ var/global/list/g_fancy_list_of_types = null
|
||||
for(var/path in SSgarbage.noqdelhint)
|
||||
dat += "[path]<BR>"
|
||||
|
||||
usr << browse(dat, "window=dellog")
|
||||
usr << browse(dat, "window=dellog")
|
||||
|
||||
/client/proc/debug_huds(i as num)
|
||||
set category = "Debug"
|
||||
set name = "Debug HUDs"
|
||||
set desc = "Debug the data or antag HUDs"
|
||||
|
||||
if(!holder) return
|
||||
debug_variables(huds[i])
|
||||
|
||||
@@ -15,11 +15,7 @@
|
||||
if(alert(src, "You are setting fps to a high value:\n\t[fps] frames-per-second\n\tconfig.fps = [config.fps]","Warning!","Confirm","ABORT-ABORT-ABORT") != "Confirm")
|
||||
return
|
||||
|
||||
switch(alert("Enable Tick Compensation?","Tick Comp is currently: [config.Tickcomp]","Enable","Disable"))
|
||||
if("Enable") config.Tickcomp = 1
|
||||
else config.Tickcomp = 0
|
||||
|
||||
var/msg = "[key_name(src)] has modified world.fps to [fps] and config.Tickcomp to [config.Tickcomp]"
|
||||
var/msg = "[key_name(src)] has modified world.fps to [fps]"
|
||||
log_admin(msg, 0)
|
||||
message_admins(msg, 0)
|
||||
feedback_add_details("admin_verb","TICKLAG") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -6,7 +6,7 @@ var/list/forbidden_varedit_object_types = list(
|
||||
)
|
||||
|
||||
var/list/VVlocked = list("vars", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "step_x", "step_y", "force_ending")
|
||||
var/list/VVicon_edit_lock = list("icon", "icon_state", "overlays", "underlays")
|
||||
var/list/VVicon_edit_lock = list("icon", "icon_state", "overlays", "underlays", "resize")
|
||||
var/list/VVckey_edit = list("key", "ckey")
|
||||
|
||||
/*
|
||||
|
||||
@@ -256,16 +256,11 @@
|
||||
if(agentcount < 3)
|
||||
return 0
|
||||
|
||||
var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
|
||||
var/obj/effect/landmark/closet_spawn = locate("landmark*Syndicate-Uplink")
|
||||
var/nuke_code = "[rand(10000, 99999)]"
|
||||
|
||||
if(nuke_spawn)
|
||||
var/obj/machinery/nuclearbomb/the_bomb = new /obj/machinery/nuclearbomb(nuke_spawn.loc)
|
||||
the_bomb.r_code = nuke_code
|
||||
|
||||
if(closet_spawn)
|
||||
new /obj/structure/closet/syndicate/nuclear(closet_spawn.loc)
|
||||
var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list
|
||||
if(nuke)
|
||||
nuke.r_code = nuke_code
|
||||
|
||||
//Let's find the spawn locations
|
||||
var/list/turf/synd_spawn = list()
|
||||
@@ -412,7 +407,7 @@
|
||||
|
||||
/datum/admins/proc/makeOfficial()
|
||||
var/mission = input("Assign a task for the official", "Assign Task", "Conduct a routine preformance review of [station_name()] and its Captain.")
|
||||
var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered to be a Centcom Official?", "pAI")
|
||||
var/list/mob/dead/observer/candidates = pollCandidates("Do you wish to be considered to be a Centcom Official?", "deathsquad")
|
||||
|
||||
if(candidates.len)
|
||||
var/mob/dead/observer/chosen_candidate = pick(candidates)
|
||||
@@ -575,6 +570,7 @@
|
||||
else
|
||||
return
|
||||
|
||||
//Shadowling
|
||||
/datum/admins/proc/makeShadowling()
|
||||
var/datum/game_mode/shadowling/temp = new
|
||||
if(config.protect_roles_from_antagonist)
|
||||
@@ -588,10 +584,11 @@
|
||||
if(!applicant.stat)
|
||||
if(applicant.mind)
|
||||
if(!applicant.mind.special_role)
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
if(!(is_shadow_or_thrall(applicant)))
|
||||
candidates += applicant
|
||||
if(!jobban_isbanned(applicant, "shadowling") && !jobban_isbanned(applicant, "Syndicate"))
|
||||
if(temp.age_check(applicant.client))
|
||||
if(!(applicant.job in temp.restricted_jobs))
|
||||
if(!(is_shadow_or_thrall(applicant)))
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
H = pick(candidates)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/client/proc/only_one()
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
|
||||
/client/proc/only_me()
|
||||
if(!ticker)
|
||||
if(!ticker || !ticker.mode)
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
var/msg = input("Message:", text("Enter the text you wish to appear to everyone within view:")) as text
|
||||
if (!msg)
|
||||
return
|
||||
for(var/mob/living/M in view(range,A))
|
||||
for(var/mob/M in view(range,A))
|
||||
M << msg
|
||||
|
||||
log_admin("LocalNarrate: [key_name(usr)] at ([get_area(A)]): [msg]")
|
||||
@@ -909,4 +909,23 @@ var/list/datum/outfit/custom_outfits = list() //Admin created outfits
|
||||
<input type="submit" value="Save">
|
||||
</form></body></html>
|
||||
"}
|
||||
usr << browse(dat, "window=dressup;size=550x600")
|
||||
usr << browse(dat, "window=dressup;size=550x600")
|
||||
|
||||
/client/proc/toggle_antag_hud()
|
||||
set category = "Admin"
|
||||
set name = "Toggle AntagHUD"
|
||||
set desc = "Toggles the Admin AntagHUD"
|
||||
|
||||
if(!holder) return
|
||||
|
||||
var/datum/atom_hud/magical = huds[ANTAG_HUD_WIZ]
|
||||
var/adding_hud = (usr in magical.hudusers) ? 0 : 1
|
||||
|
||||
for(var/datum/atom_hud/H in huds)
|
||||
if(istype(H, /datum/atom_hud/antag))
|
||||
(adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr)
|
||||
|
||||
usr << "You toggled your admin antag HUD [adding_hud ? "ON" : "OFF"]."
|
||||
message_admins("[key_name_admin(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].")
|
||||
log_admin("[key_name(usr)] toggled their admin antag HUD [adding_hud ? "ON" : "OFF"].")
|
||||
feedback_add_details("admin_verb","TAH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
Reference in New Issue
Block a user