You need an agressive grip to table now, as well as being within one tile of the table (to nerf teletabling).

Teleport only runs once at the beginning of the round, hopefully reducing the lag in wizard rounds.
Wizards can't telepot back to their shuttle to afk now.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@707 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2010-12-27 11:02:10 +00:00
parent 386efd1797
commit 1ad450eb19
6 changed files with 39 additions and 23 deletions

View File

@@ -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/

View File

@@ -13,6 +13,7 @@
goon_loadfile()
beta_tester_loadfile()
LoadBans()
process_teleport_locs() //Sets up the wizard teleport locations
spawn(30)
//EXPERIMENTAL

View File

@@ -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)

View File

@@ -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))