Beacon() set category = "GM" set desc = "Beacons are custom teleport destinations" if(src.WatchedBattle){src<<"Cannot use this during a battle.";return} var/list/Warp_List = list("Add","Remove","(Cancel)")//"Teleport", Warp_List+=beacons var/Task = input(src,"What would you like to do?","Beacon") as null|anything in Warp_List switch(Task) if("(Cancel)",null)return if("Add") var bcloc = "x[x]y[y]z[z]" bcname = input(src,"Enter a name for your new beacon:","Add beacon at current location") as null|text if(!bcname) bcname = "[x],[y],[z]" else bcname = "[bcname] ([x],[y],[z])" beacons[bcname] = bcloc src<<"Created beacon '[bcname]' " if("Remove") var/rembc = input(src,"Remove which beacon?","Remove beacon") as anything in beacons + "(Cancel)" if(rembc == "(Cancel)") return var/confirm = alert(src,"Are you sure you want to remove beacon \"[rembc]\"?","Remove beacon","Yes","No") if(confirm == "Yes") beacons -= rembc src<<"Removed beacon '[rembc]' " else var/bc = beacons[Task] if(!bc) return var bc_y_start_pos = findtext(bc, "y")+1 bc_z_start_pos = findtext(bc, "z")+1 bc_x_end_pos = findtext(bc, "y") bc_y_end_pos = findtext(bc, "z") bc_x_num = text2num(copytext(bc, 2, bc_x_end_pos)) bc_y_num = text2num(copytext(bc, bc_y_start_pos, bc_y_end_pos)) bc_z_num = text2num(copytext(bc, bc_z_start_pos, 0)) src.density = 0//Forgot what this was for maybe due to using move()? for(var/mob/PC/M in src.Party.members)M.Move(locate(bc_x_num, bc_y_num, bc_z_num))//user is alwasy in there own party so src.density = 1