// i'm the trash code // i eat garbage /obj/monkeyplant name = "monkeyplant" icon = 'icons/obj/decoration.dmi' icon_state = "monkeyplant" desc = "Jane Goodall is crying." density = 1 attackby(obj/item/W as obj, mob/user as mob) user.lastattacked = src src.visible_message("[src] screams!",1) if (narrator_mode) playsound(get_turf(src), 'sound/vox/scream.ogg', 10, 1, -1) else playsound(get_turf(src), 'sound/voice/screams/monkey_scream.ogg', 10, 1, -1) ..() return //derelict AI// /obj/item/aiboss_tape name = "data tape" desc = "A bulky and very archaic tape of data. Seriously, how old is this?" icon = 'icons/misc/worlds.dmi' icon_state = "satanai_tape" var/tape_no = 0 w_class = 3.0 force = 3 /obj/item/aiboss_tape/first tape_no = 2 /obj/item/aiboss_tape/void icon_state = "satanai_voidtape" tape_no = 1 // hi aph, this is cirr, i hope you don't mind too strongly if i hijack your spooky tape ai machine /obj/item/aiboss_tape/martian icon_state = "satanai_martiantape" desc = "A bulky and very archaic tape of data. It's also covered in unpleasant purple goop. Yeuch." tape_no = 4 // i believe you already have plans for 3 /obj/item/aiboss_tape/singed_jape // [sic] icon_state = "singed_tape" desc = "A bulky and very archaic tape of data. It looks pretty singed, and the label's almost completely burnt off." tape_no = 420 /obj/machinery/derelict_aiboss/tower name = "databank" desc = "" icon = 'icons/effects/96x96.dmi' icon_state = "oldai_mem-0" anchored = 1 density = 1 layer = EFFECTS_LAYER_UNDER_1 pixel_x = -32 pixel_y = -32 // TO DO: Make these link to the AI and accept tapes var/loaded = 0 var/obj/machinery/derelict_aiboss/ai/ai var/obj/item/aiboss_tape/tape New() ..() SPAWN_DBG(0) for(var/obj/machinery/derelict_aiboss/ai/A in get_area(src)) src.ai = A break if(!ai) qdel(src) attack_hand(mob/user as mob) if(!ai) return if(!ai.on) return if(!ai.ready_for_tapes) return if(src.loaded) src.visible_message("[user] ejects the tape from the databank.",1) playsound(get_turf(src), 'sound/machines/driveclick.ogg', 80,1) tape.loc = user.loc tape.layer = 3 icon_state = "oldai_mem-0" ai.tapes_loaded-- src.loaded = 0 attackby(obj/item/W as obj, mob/living/user as mob) if(!ai) return if (istype(W, /obj/item/aiboss_tape/)) if(src.loaded) boutput(user, "There's already a tape inside!") return if(!ai.on) src.visible_message("[user] prods the databank's tape slot with [W]. Nothing happens.",1) return else if(!ai.ready_for_tapes) boutput(user, "The databank refuses to load the tape!") return user.u_equip(W) W.loc = src tape = W ai.ready_for_tapes = 0 src.loaded = 1 var/tape_no = tape.tape_no playsound(get_turf(src), 'sound/machines/driveclick.ogg', 80,1) src.visible_message("The databank begins loading the tape.",1) src.icon_state = "oldai_mem-1" sleep(10) src.icon_state = "oldai_mem-2" SPAWN_DBG(5 SECONDS) src.icon_state = "oldai_mem-1" if(ai) ai.load_tape(tape_no) else src.visible_message("[user] prods the databank's tape slot with [W]. Nothing happens.",1) // will probably redo the code for this guy at some point, so expect some hacks here and there for now - aph /obj/machinery/derelict_aiboss/ai name = "Bradbury II" desc = "Huh? You've never seen this type of computer before. Not even in any history books." icon = 'icons/effects/96x96.dmi' icon_state = "oldai_01" anchored = 1 density = 1 layer = EFFECTS_LAYER_UNDER_1 pixel_x = -32 pixel_y = -32 var/datum/light/light var/on = 1 var/ready_for_tapes = 1 var/teaser_enabled = 0 var/image/face = null var/tapes_loaded = 0 New() ..() light = new /datum/light/point light.attach(src) light.set_color(0.1, 0.5, 0.1) light.set_brightness(0.8) return proc/speak(var/message, var/dectalk = 1) // borrowed from bots .dm because i'm a lazy fuck if (!src.on || !message) return if(dectalk) var/list/audio = dectalk("\[_<500,1>\][message]") for (var/mob/O in hearers(src, null)) if (!O.client) continue ehjax.send(O.client, "browseroutput", list("dectalk" = audio["audio"])) src.audible_message("[src] beeps, \"[message]\"") return attackby(obj/item/W as obj, mob/living/user as mob) if(istype(W,/obj/item/paper/brad_punchcard)) if(src.teaser_enabled) return if((src.ready_for_tapes) && (src.on)) src.teaser_enabled = 1 src.visible_message("[user] loads the punchcard into Bradbury II.",1) qdel(W) src.do_teaser() else src.visible_message("[user] prods Bradbury II with [W]. Nothing happens.",1) return hear_talk(var/mob/living/carbon/speaker, messages, real_name, lang_id) if (!src.on) return if(prob(5)) speak(messages[1], 0) // spooky!!! playsound(get_turf(src), 'sound/machines/modem.ogg', 80,1) return power_change() if(powered(EQUIP) && !on) status &= ~NOPOWER src.turn_on() if(!powered(EQUIP) && on) status |= NOPOWER src.turn_off() return process() if(on) if (status & NOPOWER) src.turn_off() return src.use_power(333) //HOLY SHIT IT'S EVIL!!!!!! return proc/do_teaser() src.ready_for_tapes = 0 for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_failedboot.ogg") src.change_face("blink") sleep(20) src.change_face("static") sleep(8) src.change_face("face_fade04") sleep(10) src.change_face("face_fade03") sleep(10) src.change_face("face_fade02") sleep(10) speak("BRADBURY II IS NOW ONLINE.", 0) src.change_face("face_fade01") sleep(10) src.change_face("face_talking") sleep(35) speak("THE TIME IS 01/01/1971.", 0) sleep(75) src.change_face("static") var/datum/effects/system/spark_spread/E = unpool(/datum/effects/system/spark_spread) E.set_up(3,0,get_turf(src)) E.start() for(var/obj/machinery/light/L in get_area(src)) L.on = 1 L.broken() sleep(1) src.change_face("face_terror") sleep(3) src.change_face("face_fade01") sleep(8) src.change_face("face_neutral") sleep(2) src.change_face("face_fade03") sleep(10) src.change_face("static") sleep(10) speak("DANGER", 0) sleep(25) speak("Dddddddahhhngggggerrrrrrrrrrrrrrr.rrr.......", 0) src.change_face("dot") sleep(25) src.ready_for_tapes = 1 src.teaser_enabled = 0 proc/turn_on() src.on = 1 playsound(src.loc, 'sound/machines/computerboot_pc.ogg', 80, 1) src.change_face("blink") light.enable() sleep(50) if(!on) return if(src.teaser_enabled == 1) do_teaser() else src.change_face("static") for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_bootsignal.ogg") sleep(170) if(!on) return src.ready_for_tapes = 1 src.change_face("dot") return proc/turn_off() src.on = 0 src.ready_for_tapes = 0 src.overlays = null light.disable() return proc/change_face(state) src.overlays = null var/image/sheen = image('icons/effects/96x96.dmi', "oldai_light") sheen.plane = PLANE_SELFILLUM + 2 if(findtext(state,"face_")) var/image/face_over = image('icons/effects/96x96.dmi', "oldai-faceoverlay") face_over.plane = PLANE_SELFILLUM + 1 src.overlays += face_over src.face = image('icons/effects/96x96.dmi', "oldai-[state]") src.face.plane = PLANE_SELFILLUM src.overlays += face src.overlays += sheen return proc/load_tape(tapeno) src.ready_for_tapes = 0 if(!on) return playsound(get_turf(src), 'sound/machines/modem.ogg', 80,1) sleep(70) switch(tapeno) if(1) src.change_face("static") for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_signal01.ogg") sleep(690) if(2) src.change_face("static") for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_signal02.ogg") sleep(690) if(4) src.change_face("static") for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_signal04.ogg") sleep(690) if(420) src.change_face("static") for(var/mob/O in hearers(src, null)) O << csound("sound/misc/satanellite_signal420.ogg") sleep(690) tapes_loaded++ src.change_face("dot") src.ready_for_tapes = 1 /obj/item/paper/brad_punchcard name = "old computer punchcard" desc = "A very antiquated method of storing data." info = "A quick glance reveals to you that this card is clearly meant for a machine to read.
'Kingsway Systems 29A' is written on the back." icon = 'icons/obj/junk.dmi' icon_state = "brad_punchcard" item_state = "sheet" /area/derelict_ai_sat name = "Satellite 29A" icon_state = "AIt" sound_environment = 12 /area/derelict_ai_sat/core name = "AI Satellite Core" icon_state = "ai_chamber" sound_environment = 0 /area/derelict_ai_sat/solar name = "Satelllite 29A Solar Array" icon_state = "yellow" requires_power = 0 luminosity = 1 force_fullbright = 1 /obj/machinery/power/solar_control/derelict_ai_sat id = "derelict_ai_sat" /obj/item/paper/abandonedai/A name = "paper- 'fax #741'" info = {"

Kingsway Systems LTD


Hello.
We have recieved your order and will be sending out a shuttle containing the supplies that were requested by the R&D team right away.
We hope that your research is going well. Our moles have reported that our competitor's 'Asimov' line of systems will be announced within a few weeks.

David Holman
-------------------
13/12/2032
"} /obj/item/paper/abandonedai/B name = "paper- 'fax #742'" info = {"

Kingsway Systems LTD


Hello.
Did you recieve the supplies? We've yet to have recieved any confirmation from our shipping company.
We hope you'll get back to us soon.

David Holman
-------------------
16/12/2032
"} // Servotron (the spooky mars robots) parts /obj/item/parts/robot_parts/leg/left/servotron name = "servotron left leg" desc = "The left leg of a Kingsway Systems SV-4 Servotron." icon_state = "l_leg-servo" appearanceString = "servo" max_health = 40 speedbonus = 0.1 /obj/item/parts/robot_parts/leg/right/servotron name = "servotron right leg" desc = "The right leg of a Kingsway Systems SV-4 Servotron." icon_state = "r_leg-servo" appearanceString = "servo" max_health = 40 speedbonus = 0.1 /obj/item/parts/robot_parts/arm/right/servotron name = "servotron right arm" desc = "The right arm of a Kingsway Systems SV-4 Servotron." icon_state = "r_arm-servo" appearanceString = "servo" max_health = 40 speedbonus = 0.1 handlistPart = "armR-light" /obj/item/parts/robot_parts/arm/left/servotron name = "servotron left arm" desc = "The left arm of a Kingsway Systems SV-4 Servotron." icon_state = "l_arm-servo" appearanceString = "servo" max_health = 40 speedbonus = 0.1 handlistPart = "armL-light" /obj/item/parts/robot_parts/head/servotron name = "servotron head" desc = "The surprisingly spacious head of a Kingsway Systems SV-4 Servotron." icon_state = "head-servo" appearanceString = "servo" max_health = 87 speedbonus = 0.1 /obj/item/parts/robot_parts/chest/servotron name = "servotron chest" desc = "The chest component of a Kingsway Systems SV-4 Servotron." icon_state = "chest-servo" appearanceString = "servo" max_health = 125