diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm index b7ad54a2582..e59d745cc90 100644 --- a/code/defines/area/Space Station 13 areas.dm +++ b/code/defines/area/Space Station 13 areas.dm @@ -43,6 +43,19 @@ // (original area before splitting due to sd_DAL) var/list/related // the other areas of the same type as this +/*Adding a wizard area teleport list because motherfucking lag -- Urist*/ +/*I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game*/ +var/list/teleportlocs = list() + +proc/process_teleport_locs() + for(var/area/AR in world) + if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue + if(teleportlocs.Find(AR.name)) continue + var/turf/picked = pick(get_area_turfs(AR.type)) + if (picked.z == 1) + teleportlocs += AR.name + teleportlocs[AR.name] = AR +/*-----------------------------------------------------------------------------*/ /area/engine/ diff --git a/code/game/algorithm.dm b/code/game/algorithm.dm index 783cac8cf39..53d5186a3f5 100644 --- a/code/game/algorithm.dm +++ b/code/game/algorithm.dm @@ -13,6 +13,7 @@ goon_loadfile() beta_tester_loadfile() LoadBans() + process_teleport_locs() //Sets up the wizard teleport locations spawn(30) //EXPERIMENTAL diff --git a/code/game/gamemodes/wizard/spell12.dm b/code/game/gamemodes/wizard/spell12.dm index 6f6aaaa1b5f..1db8d115103 100644 --- a/code/game/gamemodes/wizard/spell12.dm +++ b/code/game/gamemodes/wizard/spell12.dm @@ -5,7 +5,7 @@ if(!usr.casting()) return var/A usr.verbs -= /mob/proc/teleport - +/* var/list/theareas = new/list() for(var/area/AR in world) if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station)) continue @@ -14,14 +14,14 @@ if (picked.z == src.z) theareas += AR.name theareas[AR.name] = AR +*/ - A = input("Area to jump to", "BOOYEA", A) in theareas + A = input("Area to jump to", "BOOYEA", A) in teleportlocs spawn(450) usr.verbs += /mob/proc/teleport - - var/area/thearea = theareas[A] + var/area/thearea = teleportlocs[A] usr.say("SCYAR NILA [uppertext(A)]") usr.spellvoice() @@ -32,7 +32,6 @@ smoke.start() var/list/L = list() for(var/turf/T in get_area_turfs(thearea.type)) - if(T.z != src.z) continue if(!T.density) var/clear = 1 for(var/obj/O in T) @@ -52,17 +51,8 @@ return var/A - var/list/theareas = new/list() - for(var/area/AR in world) - if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station)) continue - if(theareas.Find(AR.name)) continue - var/turf/picked = pick(get_area_turfs(AR.type)) - if (picked.z == src.z) - theareas += AR.name - theareas[AR.name] = AR - - A = input("Area to jump to", "BOOYEA", A) in theareas - var/area/thearea = theareas[A] + A = input("Area to jump to", "BOOYEA", A) in teleportlocs + var/area/thearea = teleportlocs[A] var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread() smoke.set_up(5, 0, usr.loc) @@ -70,7 +60,6 @@ smoke.start() var/list/L = list() for(var/turf/T in get_area_turfs(thearea.type)) - if(T.z != src.z) continue if(!T.density) var/clear = 1 for(var/obj/O in T) diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 6093503b468..7cf9b83e8ad 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -97,8 +97,11 @@ /obj/table/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (istype(W, /obj/item/weapon/grab)) + if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2) var/obj/item/weapon/grab/G = W + if(G.state<2) + user << "\red You need a better grip to do that!" + return G.affecting.loc = src.loc G.affecting.weakened = 5 for(var/mob/O in viewers(world.view, src)) diff --git a/icons/changelog.html b/icons/changelog.html index 5fe7655fab9..704f0554e94 100644 --- a/icons/changelog.html +++ b/icons/changelog.html @@ -45,7 +45,16 @@