/* CONTAINS: THAT STUPID GAME KIT */ /obj/item/game_kit board_stat = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" selected = "CR" /obj/item/game_kit/MouseDrop(mob/user as mob) if (user == usr && !user.restrained() && !user.stat && (user.contents.Find(src) || in_range(src, user))) if (user.hand) if (!user.l_hand) spawn (0) src.attack_hand(user, 1, 1) else if (!user.r_hand) spawn (0) src.attack_hand(user, 0, 1) /obj/item/game_kit/proc/update() var/dat = text("
Game Board

[] remove
", src, (src.selected ? text("Selected: []", src.selected) : "Nothing Selected"), src) for (var/y = 1 to 8) dat += "" for (var/x = 1 to 8) var/color = (y + x) % 2 ? "#ffffff" : "#999999" var/piece = copytext(src.board_stat, ((y - 1) * 8 + x) * 2 - 1, ((y - 1) * 8 + x) * 2 + 1) dat += "" dat += "" dat += "
" dat += "" if (piece != "BB") dat += "" else dat += "" dat += "

Chips:
" for (var/piece in list("CB", "CR")) dat += "" dat += "
Chess pieces:
" for (var/piece in list("WP", "WK", "WQ", "WI", "WN", "WR")) dat += "" dat += "
" for (var/piece in list("BP", "BK", "BQ", "BI", "BN", "BR")) dat += "" src.data = dat /obj/item/game_kit/attack_ai(mob/user as mob, unused, flag) return src.attack_hand(user, unused, flag) /obj/item/game_kit/attack_hand(mob/user as mob, unused, flag) if (flag) return ..() else user.machine = src if (!(data)) update() user << browse("[data]", "window=game_kit") onclose(user, "game_kit") return return /obj/item/game_kit/Topic(href, href_list) ..() if ((usr.stat || usr.restrained())) return if (usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) if (href_list["s_piece"]) src.selected = href_list["s_piece"] else if (href_list["mode"]) if (href_list["mode"] == "remove") src.selected = "remove" else src.selected = null else if (href_list["s_board"]) if (!( src.selected )) src.selected = href_list["s_board"] else var/tx = text2num(copytext(href_list["s_board"], 1, 2)) var/ty = text2num(copytext(href_list["s_board"], 3, 4)) if ((copytext(src.selected, 2, 3) == " " && length(src.selected) == 3)) var/sx = text2num(copytext(src.selected, 1, 2)) var/sy = text2num(copytext(src.selected, 3, 4)) var/place = ((sy - 1) * 8 + sx) * 2 - 1 src.selected = copytext(src.board_stat, place, place + 2) if (place == 1) src.board_stat = text("BB[]", copytext(src.board_stat, 3, 129)) else if (place == 127) src.board_stat = text("[]BB", copytext(src.board_stat, 1, 127)) else if (place) src.board_stat = text("[]BB[]", copytext(src.board_stat, 1, place), copytext(src.board_stat, place + 2, 129)) place = ((ty - 1) * 8 + tx) * 2 - 1 if (place == 1) src.board_stat = text("[][]", src.selected, copytext(src.board_stat, 3, 129)) else if (place == 127) src.board_stat = text("[][]", copytext(src.board_stat, 1, 127), src.selected) else if (place) src.board_stat = text("[][][]", copytext(src.board_stat, 1, place), src.selected, copytext(src.board_stat, place + 2, 129)) src.selected = null else if (src.selected == "remove") var/place = ((ty - 1) * 8 + tx) * 2 - 1 if (place == 1) src.board_stat = text("BB[]", copytext(src.board_stat, 3, 129)) else if (place == 127) src.board_stat = text("[]BB", copytext(src.board_stat, 1, 127)) else if (place) src.board_stat = text("[]BB[]", copytext(src.board_stat, 1, place), copytext(src.board_stat, place + 2, 129)) else if (length(src.selected) == 2) var/place = ((ty - 1) * 8 + tx) * 2 - 1 if (place == 1) src.board_stat = text("[][]", src.selected, copytext(src.board_stat, 3, 129)) else if (place == 127) src.board_stat = text("[][]", copytext(src.board_stat, 1, 127), src.selected) else if (place) src.board_stat = text("[][][]", copytext(src.board_stat, 1, place), src.selected, copytext(src.board_stat, place + 2, 129)) src.add_fingerprint(usr) update() for(var/mob/M in viewers(1, src)) if ((M.client && M.machine == src)) src.attack_hand(M)