From 421e41f3e29b78afb106b26ca91e3c2a208db8b1 Mon Sep 17 00:00:00 2001 From: Whitellama Date: Sat, 10 Nov 2012 19:07:32 -0800 Subject: [PATCH 001/163] Ported knocking on windows --- code/game/objects/structures/window.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index ce11f1969d6..a6af06a6a67 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -119,7 +119,13 @@ if(reinf) new /obj/item/stack/rods( src.loc) src.density = 0 del(src) - return + return + else + playsound(src.loc, 'Glassknock.ogg', 80, 1) + usr.visible_message("[usr.name] knocks on the [src.name].", \ + "You knock on the [src.name].", \ + "You hear a knocking sound.") + return /obj/structure/window/attack_paw() if ((HULK in usr.mutations)) @@ -436,4 +442,4 @@ /obj/structure/window/reinforced/tinted/frosted icon_state = "fwindow" - name = "frosted window" + name = "frosted window" From a9e3300a73c12916bfdfa1b8d72ae627b3c4e97a Mon Sep 17 00:00:00 2001 From: Whitellama Date: Sun, 18 Nov 2012 16:45:53 -0800 Subject: [PATCH 002/163] Disabled automatic spawning of space ninjas --- code/game/gamemodes/events/space_ninja.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 2801807815b..0a53b2ef9ee 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -90,7 +90,7 @@ I decided to scrap round-specific objectives since keeping track of them would r When I already created about 4 new objectives, this doesn't seem terribly important or needed. */ -/var/global/toggle_space_ninja = 1//If ninjas can spawn or not. +/var/global/toggle_space_ninja = 0//If ninjas can spawn or not. /var/global/sent_ninja_to_station = 0//If a ninja is already on the station. /proc/space_ninja_arrival() From 77b6f1e6fcf494e361183076d6cb5a5179bb9d4f Mon Sep 17 00:00:00 2001 From: Whitellama Date: Sun, 18 Nov 2012 17:40:39 -0800 Subject: [PATCH 003/163] WIP: Porting gun auto-targetting + suicide --- code/game/hud.dm | 6 + code/modules/mob/living/carbon/human/hud.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 28 +- code/modules/mob/living/carbon/monkey/hud.dm | 4 +- code/modules/mob/living/silicon/robot/hud.dm | 4 +- code/modules/mob/mob_defines.dm | 7 + code/modules/mob/screen.dm | 86 +++ code/modules/projectiles/gun.dm | 522 +++++++++++++++++- code/modules/projectiles/projectile.dm | 69 +++ icons/mob/screen1.dmi | Bin 146271 -> 158885 bytes icons/mob/screen1_old.dmi | Bin 113495 -> 114244 bytes 11 files changed, 716 insertions(+), 14 deletions(-) diff --git a/code/game/hud.dm b/code/game/hud.dm index 4d2e37532d9..9a29adc082b 100644 --- a/code/game/hud.dm +++ b/code/game/hud.dm @@ -45,6 +45,12 @@ #define ui_borg_module "13:26,2:7" #define ui_borg_panel "14:28,2:7" +//Gun buttons +#define ui_gun1 "13:26,2:5" +#define ui_gun2 "12:24,2:5" +#define ui_gun3 "11:22,2:5" +#define ui_gun_select "14:28,3:7" + //Upper-middle right (damage indicators) #define ui_toxin "14:28,13:27" #define ui_fire "14:28,12:25" diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm index baaa63bd93d..86c08fbddc0 100644 --- a/code/modules/mob/living/carbon/human/hud.dm +++ b/code/modules/mob/living/carbon/human/hud.dm @@ -485,9 +485,11 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + mymob.client.screen = null - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) mymob.client.screen += src.adding + src.hotkeybuttons inventory_shown = 0; diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 16c740f6dc8..3cad3a2f64d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -64,6 +64,7 @@ There are several things that need to be remembered: update_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and ...eyes were merged into update_body) + update_targeted() // Updates the target overlay when someone points a gun at you > All of these procs update our overlays_lying and overlays_standing, and then call update_icons() by default. If you wish to update several overlays at once, you can set the argument to 0 to disable the update and call @@ -117,7 +118,8 @@ Please contact me on #coderbus IRC. ~Carn x #define L_HAND_LAYER 19 #define R_HAND_LAYER 20 #define TAIL_LAYER 21 //bs12 specific. this hack is probably gonna come back to haunt me -#define TOTAL_LAYERS 21 +#define TARGETED_LAYER 22 //BS12: Layer for the target overlay from weapon targeting system +#define TOTAL_LAYERS 22 ////////////////////////////////// /mob/living/carbon/human @@ -441,6 +443,30 @@ proc/get_damage_icon_part(damage_state, body_part) update_hair(0) if(update_icons) update_icons() +/mob/living/carbon/human/proc/update_targeted(var/update_icons=1) + // If someone's targeting you + if (targeted_by.len) + + //If the target is already there and finished locking (after two seconds), put in locked state and be done + if (overlays_standing[TARGETED_LAYER]) + var/target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locked") + overlays_lying[TARGETED_LAYER] = target_locked + overlays_standing[TARGETED_LAYER] = target_locked + return + + var/target_locking = new/image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locking") + + //Put in our overlay, since it isn't already there + overlays_lying[TARGETED_LAYER] = target_locking + overlays_standing[TARGETED_LAYER] = target_locking + + else + overlays_lying[TARGETED_LAYER] = null + overlays_standing[TARGETED_LAYER] = null + + if(update_icons) update_icons() + + /* --------------------------------------- */ //For legacy support. /mob/living/carbon/human/regenerate_icons() diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm index bffdc9468ad..54b487ca680 100644 --- a/code/modules/mob/living/carbon/monkey/hud.dm +++ b/code/modules/mob/living/carbon/monkey/hud.dm @@ -220,9 +220,11 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + mymob.client.screen = null - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach ) mymob.client.screen += src.adding + src.other return diff --git a/code/modules/mob/living/silicon/robot/hud.dm b/code/modules/mob/living/silicon/robot/hud.dm index 88ef5577055..0087c13e969 100644 --- a/code/modules/mob/living/silicon/robot/hud.dm +++ b/code/modules/mob/living/silicon/robot/hud.dm @@ -143,9 +143,11 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + mymob.client.screen = null - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.rest, mymob.sleep, mymob.mach ) mymob.client.screen += src.adding + src.other return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 068851304c6..d69fc758db0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -28,6 +28,13 @@ var/obj/screen/pressure = null var/obj/screen/damageoverlay = null var/obj/screen/pain = null + var/obj/screen/gun/item/item_use_icon = null + var/obj/screen/gun/move/gun_move_icon = null + var/obj/screen/gun/run/gun_run_icon = null + var/obj/screen/gun/mode/gun_setting_icon = null + +// var/total_luminosity = 0 //This controls luminosity for mobs, when you pick up lights and such this is edited. If you want the mob to use lights it must update its lum in its life proc or such. Note clamp this value around 7 or such to prevent massive light lag. +// var/last_luminosity = 0 /*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob. A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such. diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index 3cc082d1798..53f705bead9 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -5,6 +5,7 @@ unacidable = 1 var/id = 0.0 var/obj/master + var/gun_click_time = -100 //I'm lazy. /obj/screen/inventory var/slot_id @@ -64,6 +65,33 @@ var/selecting = "chest" screen_loc = ui_zonesel +/obj/screen/gun + name = "gun" + icon = 'screen1.dmi' + master = null + dir = 2 + + move + name = "Allow Walking" + icon_state = "no_walk" + screen_loc = ui_gun2 + + run + name = "Allow Running" + icon_state = "no_run" + screen_loc = ui_gun3 + + item + name = "Allow Item Use" + icon_state = "no_item" + screen_loc = ui_gun1 + + mode + name = "Toggle Gun Mode" + icon_state = "gun" + screen_loc = ui_gun_select + dir = 1 + /obj/screen/zone_sel/MouseDown(location, control,params) // Changes because of 4.0 @@ -456,6 +484,64 @@ if("radar closed") usr:start_radar() + if("Allow Walking") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetMove() + gun_click_time = world.time + + if("Disallow Walking") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetMove() + gun_click_time = world.time + + if("Allow Running") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetRun() + gun_click_time = world.time + + if("Disallow Running") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetRun() + gun_click_time = world.time + + if("Allow Item Use") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetClick() + gun_click_time = world.time + + + if("Disallow Item Use") + if(gun_click_time > world.time - 30) //give them 3 seconds between mode changes. + return + if(!istype(usr.equipped(),/obj/item/weapon/gun)) + usr << "You need your gun in your active hand to do that!" + return + usr.client.AllowTargetClick() + gun_click_time = world.time + + if("Toggle Gun Mode") + usr.client.ToggleGunMode() + else DblClick() return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 1dd3ca5114b..b642f088b32 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -22,7 +22,12 @@ var/recoil = 0 var/ejectshell = 1 var/clumsy_check = 1 - + var/tmp/list/mob/living/target //List of who yer targeting. + var/tmp/lock_time = -100 + var/tmp/mouthshoot = 0 ///To stop people from suiciding twice... >.> + var/automatic = 0 //Used to determine if you can target multiple people. + var/tmp/mob/living/last_moved_mob //Used to fire faster at more than one person. + var/tmp/told_cant_shoot = 0 //So that it doesn't spam them with the fact they cannot hit them. proc/load_into_chamber() return @@ -34,6 +39,17 @@ load_into_chamber() return 0 +//Removing the lock and the buttons. + dropped(mob/user as mob) + if(target) + for(var/mob/living/M in target) + if(M) + M.NotTargeted(src) //Untargeting people. + del(target) + del(user.item_use_icon) //Removing the control icons. + del(user.gun_move_icon) + del(user.gun_run_icon) + return ..() special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver. return 1 @@ -43,10 +59,99 @@ for(var/obj/O in contents) O.emp_act(severity) +//Handling lowering yer gun. + attack_self() + if(target) + for(var/mob/living/M in target) + if(M) + M.NotTargeted(src) + del(target) + usr.visible_message("\blue \The [usr] lowers \the [src]...") + return 0 + return 1 - afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)//TODO: go over this - if(flag) return //we're placing gun on a table or in backpack - if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? +//Suiciding. + attack(mob/living/M as mob, mob/living/user as mob, def_zone) + if (M == user && user.zone_sel.selecting == "mouth" && load_into_chamber() && !mouthshoot) //Suicide handling. + mouthshoot = 1 + M.visible_message("\red \The [user] sticks their gun in their mouth, ready to pull the trigger...") + if(!do_after(user, 40)) + M.visible_message("\blue \The [user] decided life was worth living") + mouthshoot = 0 + return + if(istype(src.in_chamber, /obj/item/projectile/bullet) && !istype(src.in_chamber, /obj/item/projectile/bullet/stunshot) && !istype(src.in_chamber, /obj/item/ammo_casing/shotgun/beanbag)) + M.apply_damage(75, BRUTE, "head", used_weapon = "Suicide attempt with a projectile weapon.") + M.apply_damage(85, BRUTE, "chest") + M.visible_message("\red \The [user] pulls the trigger.") + else if(istype(src.in_chamber, /obj/item/projectile/bullet/stunshot) || istype(src.in_chamber, /obj/item/projectile/energy/electrode)) + M.apply_damage(10, BURN, "head", used_weapon = "Suicide attempt with a stun round.") + M.visible_message("\red \The [user] pulls the trigger, but luckily it was a stun round.") + else if(istype(src.in_chamber, /obj/item/ammo_casing/shotgun/beanbag)) + M.apply_damage(20, BRUTE, "head", used_weapon = "Suicide attempt with a beanbag.") + M.visible_message("\red \The [user] pulls the trigger, but luckily it was a stun round.") + else if(istype(src.in_chamber, /obj/item/projectile/beam) || istype(src.in_chamber, /obj/item/projectile/energy)) + M.apply_damage(75, BURN, "head", used_weapon = "Suicide attempt with an energy weapon") + M.apply_damage(85, BURN, "chest") + M.visible_message("\red \The [user] pulls the trigger.") + else + M.apply_damage(75, BRUTE, "head", used_weapon = "Suicide attempt with a gun") + M.apply_damage(85, BRUTE, "chest") + M.visible_message("\red \The [user] pulls the trigger. Ow.") + del(in_chamber) + mouthshoot = 0 + return + else if(user.a_intent == "hurt" && load_into_chamber() && (istype(src.in_chamber, /obj/item/projectile/beam) || istype(src.in_chamber, /obj/item/projectile/energy)\ + || istype(src.in_chamber, /obj/item/projectile/bullet)) && !istype(in_chamber,/obj/item/projectile/energy/electrode)) //Point blank shooting. + //Lets shoot them, then. + user.visible_message("\red \The [user] fires \the [src] point blank at [M]!") + if(silenced) + playsound(user, fire_sound, 10, 1) + else + playsound(user, fire_sound, 50, 1) + M.apply_damage(30+in_chamber.damage, BRUTE, user.zone_sel.selecting, used_weapon = "Point Blank Shot") //So we'll put him an inch from death. + M.attack_log += text("\[[]\] []/[] shot []/[] point blank with a []", time_stamp(), user, user.ckey, M, M.ckey, src) + user.attack_log += text("\[[]\] []/[] shot []/[] point blank with a []", time_stamp(), user, user.ckey, M, M.ckey, src) + log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) point blank with [src].") + message_admins("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) point blank with [src].") + del(in_chamber) + update_icon() + return + else if(user.a_intent != "hurt" && load_into_chamber() && istype(in_chamber,/obj/item/projectile/energy/electrode)) //Point blank tasering. + /*if (M.canstun == 0 || M.canweaken == 0) + user.visible_message("\red \The [M] has been stunned with the taser gun by \the [user] to no effect!") + del(in_chamber) + update_icon() + return*/ + if (prob(50)) + if (M.paralysis < 60 && (!(HULK in M.mutations)) ) + M.paralysis = 60 + else + if (M.weakened < 60 && (!(HULK in M.mutations)) ) + M.weakened = 60 + if (M.stuttering < 60 && (!(HULK in M.mutations)) ) + M.stuttering = 60 + if(silenced) + playsound(user, fire_sound, 10, 1) + else + playsound(user, fire_sound, 50, 1) + user.visible_message("\red \The [M] has been stunned with the taser gun by \the [user]!") + M.attack_log += text("\[[]\] []/[] stunned []/[] with a []", time_stamp(), user, user.ckey, M, M.ckey, src) + user.attack_log += text("\[[]\] []/[] stunned []/[] with a []", time_stamp(), user, user.ckey, M, M.ckey, src) + log_admin("ATTACK: [user] ([user.ckey]) stunned [M] ([M.ckey]) with [src].") + message_admins("ATTACK: [user] ([user.ckey]) stunned [M] ([M.ckey]) with [src].") + del(in_chamber) + update_icon() + return + else if(target && M in target) //Yer targeting them, and 1 tile away. FIRE! + if(!load_into_chamber()) //No ammo, hit them! + return ..() + else + PreFire(M,user) ///Otherwise, shoot! + return + else + return ..() //Pistolwhippin' + + proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)//TODO: go over this //Exclude lasertag guns from the CLUMSY check. if(src.clumsy_check) @@ -77,8 +182,10 @@ if(!special_check(user)) return - if(!load_into_chamber()) - user << "\red *click*"; + if(!load_into_chamber()) //CHECK + user.visible_message("*click click*", "\red *click*") + for(var/mob/K in viewers(usr)) + K << 'empty.ogg' return if(!in_chamber) @@ -87,7 +194,6 @@ in_chamber.firer = user in_chamber.def_zone = user.zone_sel.selecting - if(targloc == curloc) user.bullet_act(in_chamber) del(in_chamber) @@ -102,7 +208,10 @@ playsound(user, fire_sound, 10, 1) else playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user.name] fires the [src.name]!", "\red You fire the [src.name]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") + if(reflex) + user.visible_message("\red \The [user] fires \the [src] by reflex!", "\red You reflex fire \the [src]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") + else + user.visible_message("\red \The [user] fires \the [src]!", "\red You fire \the [src]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") in_chamber.original = targloc in_chamber.loc = get_turf(user) @@ -122,13 +231,406 @@ spawn() if(in_chamber) - in_chamber.process() + in_chamber.process() //CHECK Might need to be fired() sleep(1) in_chamber = null update_icon() return +//Aiming at the target mob. + proc/Aim(var/mob/M) + if(!target || !(M in target)) + lock_time = world.time + if(target && !automatic) //If they're targeting someone and they have a non automatic weapon. + //usr.ClearRequest("Aim") + for(var/mob/living/L in target) + if(L) + L.NotTargeted(src) + del(target) + usr.visible_message("\red [usr] turns \the [src] on [M]!") + else + usr.visible_message("\red [usr] aims \a [src] at [M]!") + for(var/mob/K in viewers(usr)) + K << 'TargetOn.ogg' + M.Targeted(src) + + +//HE MOVED, SHOOT HIM! + proc/TargetActed(var/mob/living/T) + var/mob/living/M = loc + if(M == T) return + if(!istype(M) || src != M.equipped()) + for(var/mob/living/N in target) + if(N) + N.NotTargeted(src) + del(target) + return + M.last_move_intent = world.time + if(load_into_chamber()) + var/firing_check = in_chamber.check_fire(T,usr) //0 if it cannot hit them, 1 if it is capable of hitting, and 2 if a special check is preventing it from firing. + if(firing_check > 0) + if(firing_check == 1) + Fire(T,usr, reflex = 1) + else if(!told_cant_shoot) + M << "\red They can't be hit from here!" + told_cant_shoot = 1 + spawn(30) + told_cant_shoot = 0 + else + usr.visible_message("*click click*", "\red *click*") + for(var/mob/K in viewers(usr)) + K << 'empty.ogg' + // Stolen from sd_get_approx_dir, didn't want to reinclude + var/d=get_dir(M,T) + var/dir_to_fire = d + if(d&d-1) // diagonal + var/ax=abs(M.x-T.x) + var/ay=abs(M.y-T.y) + if(ax>=ay<<1) dir_to_fire = d&12 // keep east/west (4 and 8) + else if(ay>=ax<<1) dir_to_fire = d&3 // keep north/south (1 and 2) + if(dir_to_fire != M.dir) + M.dir = dir_to_fire + + afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + if(flag) return //we're placing gun on a table or in backpack + if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? + if(user && user.client && user.client.gun_mode) + PreFire(A,user,params) //They're using the new gun system, locate what they're aiming at. + else + Fire(A,user,params) //Otherwise, fire normally. + +//Compute how to fire..... + proc/PreFire(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, params) + //GraphicTrace(usr.x,usr.y,A.x,A.y,usr.z) + if(lock_time > world.time - 2) return //Lets not spam it. + if(!ismob(A)) //Didn't click someone, check if there is anyone along that guntrace +// var/mob/M = locate() in range(0,A) +// if(M && !ismob(A)) +// if(M.type == /mob) +// return FindTarget(M,user,params) + var/mob/M = GunTrace(usr.x,usr.y,A.x,A.y,usr.z,usr) //Find dat mob. + if(M && ismob(M) && isliving(M) && M in view(user)) + //if(!(M.client && M.client.admin_invis)) TODO: Look into admin invisibility in post-merge code + Aim(M) //Aha! Aim at them! + return + else if(!ismob(M) || (ismob(M) && !(M in view(user)))) //Nope! They weren't there! + Fire(A,user,params) //Fire like normal, then. + if(ismob(A) && isliving(A) && !(A in target)) + Aim(A) //Clicked a mob, aim at them. + else if(lock_time < world.time + 10) + Fire(A,user,params) //Bang! + else if(!target) + Fire(A,user,params) //Boom! + //else + //var/item/gun/G = usr.OHand + //if(!G) + //Fire(A,0) + //else if(istype(G)) + //G.Fire(A,3) + //Fire(A,2) + //else + //Fire(A) + // Stolen from sd_get_approx_dir, didn't want to reinclude + var/d=get_dir(usr,A) + var/dir_to_fire = d //Turn them to face their target. + if(d&d-1) // diagonal + var/ax=abs(usr.x-A.x) + var/ay=abs(usr.y-A.y) + if(ax>=ay<<1) dir_to_fire = d&12 // keep east/west (4 and 8) + else if(ay>=ax<<1) dir_to_fire = d&3 // keep north/south (1 and 2) + if(dir_to_fire != usr.dir) + usr.dir = dir_to_fire + + + +//Yay, math! + +#define SIGN(X) ((X<0)?-1:1) + +proc/GunTrace(X1,Y1,X2,Y2,Z=1,exc_obj,PX1=16,PY1=16,PX2=16,PY2=16) + //bluh << "Tracin' [X1],[Y1] to [X2],[Y2] on floor [Z]." + var/turf/T + var/mob/M + if(X1==X2) + if(Y1==Y2) return 0 //Light cannot be blocked on same tile + else + var/s = SIGN(Y2-Y1) + Y1+=s + while(1) + T = locate(X1,Y1,Z) + if(!T) return 0 + M = locate() in T + if(M) return M + M = locate() in orange(1,T)-exc_obj + if(M) return M + Y1+=s + else + var + m=(32*(Y2-Y1)+(PY2-PY1))/(32*(X2-X1)+(PX2-PX1)) + b=(Y1+PY1/32-0.015625)-m*(X1+PX1/32-0.015625) //In tiles + signX = SIGN(X2-X1) + signY = SIGN(Y2-Y1) + if(X1= 5) //Otherwise, they can just aim at one person. + if(ismob(I.loc)) + I.loc << "You can only target 5 people at once!" + return + else + return + if(!targeted_by) targeted_by = list() + targeted_by += I + I.lock_time = world.time + 20 //Target has 2 second to realize they're targeted and stop (or target the opponent). + src << "((\red Your character is being targeted. They have 2 seconds to stop any click or move actions. \black While targeted, they may \ + drag and drop items in or into the map, speak, and click on interface buttons. Clicking on the map, their items \ + (other than a weapon to de-target), or moving will result in being fired upon. \red The aggressor may also fire manually, \ + so try not to get on their bad side.\black ))" + if(targeted_by.len == 1) + spawn(0) + target_locked = new /obj/effect/target_locked(src) //Add the overlay + overlays += target_locked + spawn(0) //Make it show the 2 states properly + if(target_locked) + target_locked.icon_state = "locking" + if (ispath(src,mob/living/carbon/human)) + src:update_icons() + sleep(20) + if(target_locked) + target_locked.icon_state = "locked" + if (ispath(src,mob/living/carbon/human)) + src:update_icons() + var/mob/T = I.loc + //Adding the buttons to the controler person + if(T) + T.item_use_icon = new /obj/screen/gun/item(null) + T.gun_move_icon = new /obj/screen/gun/move(null) + if(T.client) + T.client.screen += T.item_use_icon + T.client.screen += T.gun_move_icon + if(m_intent == "run" && T.client && T.client.target_can_move == 1 && T.client.target_can_run == 0) + src << "\red Your move intent is now set to walk, as your targeter permits it." //Self explanitory. + m_intent = "walk" + hud_used.move_intent.icon_state = "walking" + while(targeted_by && T.client) + if(last_move_intent > I.lock_time + 10 && !T.client.target_can_move) //If the target moved while targeted + I.TargetActed(src) + if(I.last_moved_mob == src) //If they were the last ones to move, give them more of a grace period, so that an automatic weapon can hold down a room better. + I.lock_time = world.time + 5 + I.lock_time = world.time + 5 + I.last_moved_mob = src + else if(last_move_intent > I.lock_time + 10 && !T.client.target_can_run && m_intent == "run") //If the target ran while targeted + I.TargetActed(src) + if(I.last_moved_mob == src) //If they were the last ones to move, give them more of a grace period, so that an automatic weapon can hold down a room better. + I.lock_time = world.time + 5 + I.lock_time = world.time + 5 + I.last_moved_mob = src + if(last_target_click > I.lock_time + 10 && !T.client.target_can_click) //If the target clicked the map to pick something up/shoot/etc + I.TargetActed(src) + if(I.last_moved_mob == src) //If they were the last ones to move, give them more of a grace period, so that an automatic weapon can hold down a room better. + I.lock_time = world.time + 5 + I.lock_time = world.time + 5 + I.last_moved_mob = src + sleep(1) + + NotTargeted(var/obj/item/weapon/gun/I) + if(!I.silenced) + for(var/mob/M in viewers(src)) + M << 'TargetOff.ogg' + del(target_locked) //Remove the overlay + targeted_by -= I + I.target.Remove(src) //De-target them + if(!I.target.len) + del(I.target) + var/mob/T = I.loc //Remove the targeting icons + if(T && ismob(T) && !I.target) + del(T.item_use_icon) + del(T.gun_move_icon) + del(T.gun_run_icon) + if(!targeted_by.len) del targeted_by + spawn(1) + if (ispath(src,mob/living/carbon/human)) + src:update_icons() + +/* Captive(var/obj/item/weapon/gun/I) + Sound(src,'CounterAttack.ogg') + if(!targeted_by) targeted_by = list() + targeted_by += I + I.target = src +// Stun("Captive") + I.lock_time = world.time + 10 //Target has 1 second to realize they're targeted and stop (or target the opponent). + src << "(Your character is being held captive. They have 1 second to stop any click or move actions. While held, they may \ + drag and drop items in or into the map, speak, and click on interface buttons. Clicking on the map or their items \ + (other than a weapon to de-target) will result in being attacked. The aggressor may also attack manually, \ + so try not to get on their bad side.)" + if(targeted_by.len == 1) + var/mob/T = I.loc + while(targeted_by) + sleep(1) + if(last_target_click > I.lock_time + 10 && !T.target_can_click) //If the target clicked the map to pick something up/shoot/etc + I.TargetActed() + + NotCaptive(var/obj/item/weapon/gun/I,silent) + if(!silent) Sound(src,'SwordSheath.ogg') +// UnStun("Captive") + targeted_by -= I + I.target = null + if(!targeted_by.len) del targeted_by*/ + + +//Used to overlay the awesome stuff +/obj/effect +// target_locking +// icon = 'icons/effects/Targeted.dmi' +// icon_state = "locking" +// layer = 99 + target_locked + icon = 'icons/effects/Targeted.dmi' + icon_state = "locked" + layer = 17.9 +// captured +// icon = 'Captured.dmi' +// layer = 99 + +//If you move out of range, it isn't going to still stay locked on you any more. +client/var + target_can_move = 0 + target_can_run = 0 + target_can_click = 0 + gun_mode = 0 +mob/Move() + . = ..() + for(var/obj/item/weapon/gun/G in targeted_by) //Handle moving out of the gunner's view. + var/mob/M = G.loc + if(!(M in view(src))) + //ClearRequest("Aim") + NotTargeted(G) + for(var/obj/item/weapon/gun/G in src) //Handle the gunner loosing sight of their target/s + if(G.target) + for(var/mob/living/M in G.target) + if(M && !(M in view(src))) + //ClearRequest("Aim") + M.NotTargeted(G) +client/verb +//These are called by the on-screen buttons, adjusting what the victim can and cannot do. + AllowTargetMove() + set hidden=1 + spawn(1) target_can_move = !target_can_move + if(!target_can_move) +// winset(usr,"default.target_can_move","is-flat=true;border=sunken") + usr << "Target may now walk." + usr.gun_run_icon = new /obj/screen/gun/run(null) + screen += usr.gun_run_icon + if(usr.gun_move_icon) + usr.gun_move_icon.dir = 1 + usr.gun_move_icon.name = "Disallow Walking" + else +// winset(usr,"default.target_can_move","is-flat=false;border=none") + usr << "Target may no longer move." + target_can_run = 0 + del(usr.gun_run_icon) + if(usr.gun_move_icon) + usr.gun_move_icon.dir = 2 + usr.gun_move_icon.name = "Allow Walking" + for(var/obj/item/weapon/gun/G in usr) + G.lock_time = world.time + 5 + if(G.target) + for(var/mob/living/M in G.target) + if(!target_can_move) + M << "Your character may now walk at the discretion of their targeter." + if(!target_can_run) + M << "\red Your move intent is now set to walk, as your targeter permits it." + M.m_intent = "walk" + if(M.hud_used.move_intent) + M.hud_used.move_intent.icon_state = "walking" + else + M << "\red Your character will now be shot if they move." + AllowTargetRun() + set hidden=1 + spawn(1) target_can_run = !target_can_run + if(!target_can_run) +// winset(usr,"default.target_can_move","is-flat=true;border=sunken") + usr << "Target may now run." + if(usr.gun_run_icon) + usr.gun_run_icon.dir = 1 + usr.gun_run_icon.name = "Disallow Running" + else +// winset(usr,"default.target_can_move","is-flat=false;border=none") + usr << "Target may no longer run." + if(usr.gun_run_icon) + usr.gun_run_icon.dir = 2 + usr.gun_run_icon.name = "Allow Running" + for(var/obj/item/weapon/gun/G in src) + G.lock_time = world.time + 5 + if(G.target) + for(var/mob/living/M in G.target) + if(!target_can_run) + M << "Your character may now run at the discretion of their targeter." + else + M << "\red Your character will now be shot if they run." + AllowTargetClick() + set hidden=1 + spawn(1) target_can_click = !target_can_click + if(!target_can_click) +// winset(usr,"default.target_can_click","is-flat=true;border=sunken") + usr << "Target may now use items." + if(usr.item_use_icon) + usr.item_use_icon.dir = 1 + usr.item_use_icon.name = "Disallow Item Use" + else +// winset(usr,"default.target_can_click","is-flat=false;border=none") + usr << "Target may no longer use items." + if(usr.item_use_icon) + usr.item_use_icon.dir = 2 + usr.item_use_icon.name = "Allow Item Use" + for(var/obj/item/weapon/gun/G in src) + G.lock_time = world.time + 5 + if(G.target) + for(var/mob/living/M in G.target) + if(!target_can_click) + M << "Your character may now use items at the discretion of their targeter." + else + M << "\red Your character will now be shot if they use items." + + ToggleGunMode() + set hidden = 1 + spawn(1) gun_mode = !gun_mode + if(!gun_mode) +// winset(usr,"default.target_can_click","is-flat=true;border=sunken") + usr << "You will now take people captive." + if(usr.gun_setting_icon) + usr.gun_setting_icon.dir = 2 + else +// winset(usr,"default.target_can_click","is-flat=false;border=none") + usr << "You will now shoot where you target." + if(usr.gun_setting_icon) + usr.gun_setting_icon.dir = 1 /obj/item/weapon/gun/proc/isHandgun() - return 1 + return 1 \ No newline at end of file diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 067ef207acd..c78d9729aed 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -57,6 +57,17 @@ L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, blocked) return 1 + proc/check_fire(var/mob/living/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not. + if(!istype(target) || !istype(user)) + return 0 + var/obj/item/projectile/test/in_chamber = new /obj/item/projectile/test(get_step_to(user,target)) //Making the test.... + in_chamber.target = target + in_chamber.flags = flags //Set the flags... + in_chamber.pass_flags = pass_flags //And the pass flags to that of the real projectile... + in_chamber.firer = user + var/output = in_chamber.fired() //Test it! + del(in_chamber) //No need for it anymore + return output //Send it back to the gun! Bump(atom/A as mob|obj|turf|area) if(A == firer) @@ -153,3 +164,61 @@ Bump(M) sleep(1) return + + proc/fired() + spawn while(src) + if((!( current ) || loc == current)) + current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z) + if((x == 1 || x == world.maxx || y == 1 || y == world.maxy)) + del(src) + return + step_towards(src, current) + sleep(1) + if(!bumped) + if(loc == original) + for(var/mob/living/M in original) + if(!(M in permutated)) + Bump(M) + sleep(1) + return + +/obj/item/projectile/test //Used to see if you can hit them. + invisibility = 101 //Nope! Can't see me! + yo = null + xo = null + var/target = null + var/result = 0 //To pass the message back to the gun. + + Bump(atom/A as mob|obj|turf|area) + if(A == firer) + loc = A.loc + return //cannot shoot yourself + if(istype(A, /obj/item/projectile)) + return + if(istype(A, /mob/living)) + result = 2 //We hit someone, return 1! + return + result = 1 + return + + fired() + var/turf/curloc = get_turf(src) + var/turf/targloc = get_turf(target) + if(!curloc || !targloc) + return 0 + yo = targloc.y - curloc.y + xo = targloc.x - curloc.x + target = targloc + while(src) //Loop on through! + if(result) + return (result - 1) + if((!( target ) || loc == target)) + target = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z) //Finding the target turf at map edge + step_towards(src, target) + var/mob/living/M = locate() in get_turf(src) + if(istype(M)) //If there is someting living... + return 1 //Return 1 + else + M = locate() in get_step(src,target) + if(istype(M)) + return 1 diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi index 6040e7107ce165eb46d25052976ca207ac113603..48b8efcafc1bb759133c9f02eff68ace3ed914ad 100644 GIT binary patch literal 158885 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 literal 146271 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 diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi index 2994f9fd7b5a32b7481eeec04c8bc31ae7d29bae..ebf104c891884de8a9d5716963e792d5a7821048 100644 GIT binary patch delta 6364 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 O;H9#*Qq>EK@c#j|5{3%^ delta 5609 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 beKv_?Crr8GYr`Q5Akxy+GI~&{X&3f?IPDm= From 5ad12e5c95dd67c495a8d4f2ade1546decde2446 Mon Sep 17 00:00:00 2001 From: Travis Whitehead Date: Mon, 19 Nov 2012 12:32:36 -0800 Subject: [PATCH 004/163] WIP: Porting gun targeting --- .../mob/living/carbon/human/update_icons.dm | 9 +++--- code/modules/mob/update_icons.dm | 4 +++ code/modules/projectiles/gun.dm | 30 +++++++++---------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3cad3a2f64d..1feb9fa74a5 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -132,7 +132,7 @@ Please contact me on #coderbus IRC. ~Carn x //this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers //I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date. /mob/living/carbon/human/update_icons() - + world << "[src] CALLED THE HUMAN VERSION OF UPDATE_ICONS" lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this overlays = null @@ -443,18 +443,19 @@ proc/get_damage_icon_part(damage_state, body_part) update_hair(0) if(update_icons) update_icons() -/mob/living/carbon/human/proc/update_targeted(var/update_icons=1) +/mob/living/carbon/human/update_targeted(var/update_icons=1) // If someone's targeting you if (targeted_by.len) //If the target is already there and finished locking (after two seconds), put in locked state and be done - if (overlays_standing[TARGETED_LAYER]) + if (overlays_standing[TARGETED_LAYER]||overlays_lying[TARGETED_LAYER]) var/target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locked") overlays_lying[TARGETED_LAYER] = target_locked overlays_standing[TARGETED_LAYER] = target_locked return - var/target_locking = new/image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locking") + var/target_locking = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locking") + world << "TARGET_LOCKING IS [target_locking]" //Put in our overlay, since it isn't already there overlays_lying[TARGETED_LAYER] = target_locking diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 252439277c5..32ea610cd10 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -5,6 +5,7 @@ return /mob/proc/update_icons() + world << "[src] CALLED THE MOB VERSION OF UPDATE_ICONS" return /mob/proc/update_hud() @@ -63,3 +64,6 @@ /mob/proc/update_inv_ears() return + +/mob/proc/update_targeted() + return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b642f088b32..a44abf2a9ff 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -414,18 +414,20 @@ mob/proc so try not to get on their bad side.\black ))" if(targeted_by.len == 1) spawn(0) - target_locked = new /obj/effect/target_locked(src) //Add the overlay - overlays += target_locked + //target_locked = new /obj/effect/target_locked(src) //Add the overlay + //overlays += target_locked spawn(0) //Make it show the 2 states properly - if(target_locked) - target_locked.icon_state = "locking" - if (ispath(src,mob/living/carbon/human)) - src:update_icons() + //if(target_locked) + // target_locked.icon_state = "locking" + //update_icons() + update_targeted() + //overlays += target_locked sleep(20) - if(target_locked) - target_locked.icon_state = "locked" - if (ispath(src,mob/living/carbon/human)) - src:update_icons() + //if(target_locked) + // target_locked.icon_state = "locked" + //update_icons() + update_targeted() + //overlays += target_locked var/mob/T = I.loc //Adding the buttons to the controler person if(T) @@ -463,7 +465,7 @@ mob/proc if(!I.silenced) for(var/mob/M in viewers(src)) M << 'TargetOff.ogg' - del(target_locked) //Remove the overlay + //del(target_locked) //Remove the overlay targeted_by -= I I.target.Remove(src) //De-target them if(!I.target.len) @@ -473,10 +475,8 @@ mob/proc del(T.item_use_icon) del(T.gun_move_icon) del(T.gun_run_icon) - if(!targeted_by.len) del targeted_by - spawn(1) - if (ispath(src,mob/living/carbon/human)) - src:update_icons() + //if(!targeted_by.len) del targeted_by + spawn(1) /*update_icons()*/ update_targeted() /* Captive(var/obj/item/weapon/gun/I) Sound(src,'CounterAttack.ogg') From f0be63eaa1f093a1c12fa08cd8401a362fc2123f Mon Sep 17 00:00:00 2001 From: Whitellama Date: Tue, 20 Nov 2012 03:09:42 -0800 Subject: [PATCH 005/163] Allowed more mobs to emote with me verb --- code/modules/mob/emote.dm | 2 +- code/modules/mob/living/blob/blob.dm | 1 + code/modules/mob/living/carbon/brain/brain.dm | 5 ++++- code/modules/mob/living/parasite/meme.dm | 6 +++--- code/modules/mob/mob_defines.dm | 3 ++- code/modules/mob/say.dm | 2 +- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 783f3404e85..0a8f7045ce5 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -1,7 +1,7 @@ // All mobs should have custom emote, really.. mob/proc/custom_emote(var/m_type=1,var/message = null) - if(!emote_allowed && usr == src) + if(!use_me && usr == src) usr << "You are unable to emote." return diff --git a/code/modules/mob/living/blob/blob.dm b/code/modules/mob/living/blob/blob.dm index e49c166f1b2..b8ec9a3b368 100644 --- a/code/modules/mob/living/blob/blob.dm +++ b/code/modules/mob/living/blob/blob.dm @@ -8,6 +8,7 @@ see_invisible = SEE_INVISIBLE_LEVEL_TWO var/ghost_name = "Unknown" var/creating_blob = 0 + use_me = 0 //Blobs can't emote New() diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 0a917a0158f..8f60796d0d5 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -5,6 +5,7 @@ var/timeofhostdeath = 0 var/emp_damage = 0//Handles a type of MMI damage var/alert = null + use_me = 0 //Can't use the me verb, it's a freaking immobile brain New() var/datum/reagents/R = new/datum/reagents(1000) @@ -48,6 +49,8 @@ /mob/living/carbon/brain/update_canmove() - if(in_contents_of(/obj/mecha)) canmove = 1 + if(in_contents_of(/obj/mecha)) + canmove = 1 + use_me = 1 //If it can move, let it emote else canmove = 0 return canmove \ No newline at end of file diff --git a/code/modules/mob/living/parasite/meme.dm b/code/modules/mob/living/parasite/meme.dm index 60a729c6628..880f21bad51 100644 --- a/code/modules/mob/living/parasite/meme.dm +++ b/code/modules/mob/living/parasite/meme.dm @@ -259,7 +259,7 @@ mob/living/parasite/meme/verb/Paralyze() set desc = "Prevents your host from using emote for a while." if(!src.host) return - if(!host.emote_allowed) + if(!host.use_me) usr << "\red Your host already can't use body language.." return if(!use_points(250)) return @@ -271,11 +271,11 @@ mob/living/parasite/meme/verb/Paralyze() host << "\red Your body feels numb.. You lose your ability to use body language." usr << "\red Your host can't use body language anymore." - host.emote_allowed = 0 + host.use_me = 0 sleep(1200) - host.emote_allowed = 1 + host.use_me = 1 host << "\red Your body has feeling again.." usr << "\red [host] can use body language again." diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index d69fc758db0..946875f5578 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -44,7 +44,7 @@ */ var/obj/screen/zone_sel/zone_sel = null - var/emote_allowed = 1 + var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot var/computer_id = null var/lastattacker = null var/lastattacked = null @@ -234,3 +234,4 @@ var/can_stand = 1 //Whether this mob have ability to stand var/immune_to_ssd = 0 + diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 401383762b6..0d2f1b63e7e 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -17,7 +17,7 @@ message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - if(ishuman(src) || isrobot(src)) + if(use_me) usr.emote("me",1,message) else usr.emote(message) From 900b931c34f71e53e98e3c9c57adc91d77636cb5 Mon Sep 17 00:00:00 2001 From: Whitellama Date: Wed, 21 Nov 2012 04:00:31 -0800 Subject: [PATCH 006/163] Readded Xenobiology shuttle, readded combat shotguns to armoury (with beanbag shells), Removed Roboticist's access from command-clearance tech storage --- .../projectiles/guns/projectile/shotgun.dm | 2 +- maps/tgstation.2.0.9.1.dmm | 57 ++++++++++++------- 2 files changed, 38 insertions(+), 21 deletions(-) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 5170421e17e..34ea3e3423a 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -55,7 +55,7 @@ icon_state = "cshotgun" max_shells = 8 origin_tech = "combat=5;materials=2" - ammo_type = "/obj/item/ammo_casing/shotgun" + ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" //this is largely hacky and bad :( -Pete /obj/item/weapon/gun/projectile/shotgun/doublebarrel diff --git a/maps/tgstation.2.0.9.1.dmm b/maps/tgstation.2.0.9.1.dmm index ea425cf97d2..ddbd609e81f 100644 --- a/maps/tgstation.2.0.9.1.dmm +++ b/maps/tgstation.2.0.9.1.dmm @@ -83,8 +83,8 @@ "abE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/security/prison) "abF" = (/obj/machinery/door/airlock{name = "Toilet"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "abG" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) -"abH" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = -2},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) -"abI" = (/obj/structure/rack,/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) +"abH" = (/obj/machinery/deployable/barrier,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden) +"abI" = (/obj/machinery/deployable/barrier,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/warden) "abJ" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "abK" = (/obj/structure/closet{name = "Contraband Locker"},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "abL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/hos) @@ -99,8 +99,8 @@ "abU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/lattice,/turf/space,/area) "abV" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "abW" = (/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"abX" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/warden) -"abY" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/security/warden) +"abX" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = -2},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/warden) +"abY" = (/obj/structure/rack,/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/security/warden) "abZ" = (/obj/machinery/door/window/southleft{dir = 8; name = "Contraband Storage"; req_access_txt = "3"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aca" = (/obj/structure/rack,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "acb" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/light{dir = 8},/turf/simulated/floor/carpet,/area/security/hos) @@ -1034,7 +1034,7 @@ "atT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/tech) "atU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/storage/tech) "atV" = (/obj/effect/sign/securearea,/turf/simulated/wall/r_wall,/area/storage/tech) -"atW" = (/obj/machinery/door/airlock/highsecurity{name = "High Tech Storage"; req_access_txt = "19;23"},/turf/simulated/floor/plating,/area/storage/tech) +"atW" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "atX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/storage/tech) "atY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/tech) "atZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -2627,7 +2627,7 @@ "aYA" = (/obj/machinery/door/firedoor/border_only{dir = 8},/turf/simulated/floor,/area/hallway/secondary/exit) "aYB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/exit) "aYC" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/exit) -"aYD" = (/turf/space,/area/shuttle/research/station) +"aYD" = (/obj/structure/table/reinforced,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/obj/item/ammo_casing/shotgun/beanbag,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aYE" = (/turf/space,/area/shuttle/specops/station) "aYF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "aYG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry) @@ -8975,7 +8975,23 @@ "dqE" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dqF" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dqG" = (/obj/machinery/conveyor{tag = "icon-conveyor0 (SOUTHWEST)"; icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/mine/production) - +"dqH" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/research/station) +"dqI" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqK" = (/obj/structure/window/reinforced,/obj/structure/closet/crate,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/research/station) +"dqM" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/research/station) +"dqN" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/research/station) +"dqO" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqP" = (/obj/machinery/door/airlock/highsecurity{name = "High Tech Storage"; req_access_txt = "19"},/turf/simulated/floor/plating,/area/storage/tech) +"dqQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/shuttle/research/station) +"dqR" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/research/station) +"dqS" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/research/station) +"dqT" = (/obj/structure/ore_box,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqU" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/research/station) +"dqV" = (/obj/machinery/computer/research_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) +"dqW" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/research/station) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9042,13 +9058,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaahaahaahaahaahaahaaiaajaakaahaahaahaahaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaamaanaaoaapaaqaaraasaataauaavaawaahaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaxaaxaaxaaxaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaayaazaamaaAaamaamaaBaaCaaDaamaaEaaFaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaxaaGaaHaaIaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaalaamaaJaaKaaLaazaaMaaNaaOaamaavaawaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaxaaPaaQaaRaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaaSaaSaaSaaSaaTaaUaaVaaCaaWaaXaaSaaSaahaafaafaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaafaaxaaYaaRaaZaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaahabaabbabcabdabeabfabgaamaaDaamabhabiaahaafaagaagaagaafaagaafaaaaaaaafaaaaafaaaaafaaaaafabjaaRaaPaaRabjaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabkablaazaaBabmabnaboabpaaDabqabrabsabtabtabtabtabtabtabtabtabtabuaafaafaafaafaafaafaafabvaaPaaRaaPabwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabxaaSabyabzabAabBabCabDabEaaSaaSabFabtabGabGabGabHabIabJabKabtabLabMabNabOabPabPabPabPaaxaaPaaPaaRaaxaafaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaahabQaaSabRabSaaSabTaaaabUaaaaaaaaSabVabtabWabWabWabXabYabZacaabtacbaccacdaceacfacgachabPaaxaciaaPacjaaxaaxaaxaaxaaxaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaahackaaSabRaclaaSabTaaaabUaaaaaaaaSacmabtacnacoacoacpacqacracsabtactacuacvacwacxacyaczabPacAacBacCacDacEacFacGacGaaxaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaalaamaaJaaKaaLaazaaMaaNaaOaamaavaawaahaafaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaafaaxaaPaaQaaRaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaaSaaSaaSaaSaaTaaUaaVaaCaaWaaXaaSaaSabtabtabtabtabtabtabtabtabtaaaaafaaaaafaaaaafaaaaafaaxaaYaaRaaZaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaafaahabaabbabcabdabeabfabgaamaaDaamabhabiabtaYDatWatWabXabYabJabKabtaaaaafaaaaafaaaaafaaaaafabjaaRaaPaaRabjaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabkablaazaaBabmabnaboabpaaDabqabrabsabtabWabWabWacpacqabZacaabtabuaafaafaafaafaafaafaafabvaaPaaRaaPabwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabxaaSabyabzabAabBabCabDabEaaSaaSabFabtabGabGabGacpacqacracsabtabLabMabNabOabPabPabPabPaaxaaPaaPaaRaaxaafaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagaahabQaaSabRabSaaSabTaaaabUaaaaaaaaSabVabtabWabWabWacpacqabHabIabtacbaccacdaceacfacgachabPaaxaciaaPacjaaxaaxaaxaaxaaxaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaahackaaSabRaclaaSabTaaaabUaaaaaaaaSacmabtacnacoacoacpacqabHabIabtactacuacvacwacxacyaczabPacAacBacCacDacEacFacGacGaaxaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahacHaaSacIacJaaSacKacLacMacNaaSaaSaaSabtacOabWabWacpacPacQacRabtacSacuacvacTacUacVacWabPacXacYacZadaadbadcadcaddaaxaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeadfadgadhadiadjadkadladmadnadoadpadqadradsadtaaoaduadvabtadwadwadwacpadxadyadzabtadAadBadCadDadEadFadGabPadHadIadJadKadLadMadNadOaaxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPadQadRadSadTadUadVadWadXaazaazaazadYadZaeaaebaecaedaeeabtaefaegaehacpacqaeiaejabtabPaekaelaemaenaeoabPabPaaxaepaeqaeraaxaaxaaxaesaaxaaxaaxaesaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9079,7 +9095,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraarbarcardaraarearfargaraapFapFapFarhariarjarkarlaqpaaaaaaajXaaaamIamIamIamIamIaafamraafamIamIamIamIamIaaaajlaaaaaaaaaaaaaaaaaaaaaaaaarmarmarnarmarmaaaaaaaafaafaagaagaagaroarparoanTarqarrarsaorartaruarvanVanUanZanZarwarxaryarzarAarBarCarDajUarEarFaqHarFapVaqJaqKapVapVarGapVapVapVarHapVapxarIarJarKarLarMarNaqUarOarPapzapzapzapzapzarQarRarSarTaaaaaaajmaaaaafaaaaafaafaaaaaaamkaaaaaaaafaaaaaaaafaaaajlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraarUarVarWaraarUarVarWaraarXarYarZarZarZarZasaasbaoYaaaaaaajlaaaaafaaaaafaafaaaaaaascaaaaaaaafaaaaaaaafaaaajlaafaaaaaaaaaaaaaaaaaaaaaasdaseasfasgasdaaaaaaaafaafaagaagaagamvamvamvamvarqashasiasiasjasiasiasiaskaslasmasnasmasoaspasqamSasrairassapnastaqHasuapVasvaswasxasyaszaszasAasBaszasCasDasEarJasFasGasHasIasJasKasLapzapzapzapzapzasLasMasNasOaaaaaaajmajmajlaaaaaaaafaaaaaaamkaaaaafaafaafaafajlajlajlaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaqmaraasPasQaqmaraasPasQaqmaqpasRaqpaqpaqpaqpaqpasSapGaaaaaaajlajlajlaaaaaaaafaaaasTasUasTaafaafaafaafajlajlajlaafaafaaaaaaaafaaaaaaaaaasVasWasXasYasZaaaamvamvataatbatcamvamvatdateatfatgathathathatiathathatjatkathathatlatmatmatnatoatpatqanpatraqEatsattaqHatuaqJatvatvatwatxatyatzatwatvatvatAatBatCasFasGasHasIasJatDatEapzapzapzapzapzatEatFasNasOaaaaaaaaaaaaaafaafaaaaafaaaaaaatGaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHatIatIatIatJatIatIatIatKatLatMatNatNatNatNaqpatOapGaaaaafaafaaaaaaaaaaaaaafaaaatPatQatRaafaaaaafaaaaaaaaaaaaaaaaafaafaaaaafaafatSatTatUatVatWatVatXatYatSatZauaauaauaauaauaauaaubaucaudaueaueaueaufaueaueaueaueaueaueaueaueaueaueaugauhauiaujaukarEapVapVapVapVaulaumatvatwatyaunatyauoaupauqaurausaqRautauuauvauwauxauyauzapzapzapzapzapzauAauBauCauDaaaaaaaaaaaaaaaaafaaaaafaaaauEauFauEaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHatIatIatIatJatIatIatIatKatLatMatNatNatNatNaqpatOapGaaaaafaafaaaaaaaaaaaaaafaaaatPatQatRaafaaaaafaaaaaaaaaaaaaaaaafaafaaaaafaafatSatTatUatVdqPatVatXatYatSatZauaauaauaauaauaauaaubaucaudaueaueaueaufaueaueaueaueaueaueaueaueaueaueaugauhauiaujaukarEapVapVapVapVaulaumatvatwatyaunatyauoaupauqaurausaqRautauuauvauwauxauyauzapzapzapzapzapzauAauBauCauDaaaaaaaaaaaaaaaaafaaaaafaaaauEauFauEaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauGauHatNauIauJatNatNauKauIatNauLauMauNauNauOaqpatOauPaafaafaaaaaaaaaaaaaaaaafauQauRauSauTauUaaaaafaaaaaaaaaaaaaqpaqpaqpaqpaqpaqpatSauVauWauXauYauZavaavbatSavcavdavdavdavdavdavdavdaveavfaueavgavhaviavjavkavlavmavnavoavpavqavraueavsamSavtairavuapnastarFavvapVaqJavwavxauqauqavyavzavAavBavCasDavDavEavFavGavHavIavJavKavLapzapzapzapzapzavMapxapxapxaaaaaaaaaaaaaafaafaafaafaaaavNavOavPaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaraatHavQatHavRatNatNavSatHavQatHavTauHauJavUaqpatOaqpaqpavVaqsaqsaqsaqsaqtaqpavWavXavYavZavWaqpaqpavVaqsawaaqpaqparlawbawcapFawdatSauYauYauYaweauYawfauYatSavcavdawgawhawiawjawgavdaveanrawkawlawmawnawoawpawpawqawrawsawtawtawuawvavsamSawwairawxaqEaqFaqHaqHawyaqJawzawAavBawBawCawDawEawEawFawEapxawGawHawIawJawKawLapxawMapzapzapzapzapzawMapxaafaaaaaaaaaaaaaaaaafaafaaaaafawNawOawPawQawRaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafawSaqmawTarVawUawVawWawXawYawUarVawZaxaaqmaxbaxcaqpaxdaxeaxeaxeaxeaxeaxeasbaxfaxgavWaxhaxiaxjavWaxkapFapFapFapFapFapFapFapFapFapFapFatSaxlauYaxmaxnaxoaxpaxqatSavcavdawgaxraxsaxtawgavdaveaxuaueaxvaxwaxxaxyawtaxzaxAaxBaxCawtawtaxDaxEavsamSaxFairawxapRarFaqHarFapVasvaxGawEawEawEawEawEawEaxHaxIaxJawEapxapxapxapxaxKapxapxawMapzapzapzapzapzawMapxaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaxLaxMaxNaxOaxLaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9102,11 +9118,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUavQarVavQatNaTxaPNaTyaTzaTAaTAaTAaTzaTBaTCaPLaTDaTEaTFaTGaTHaTHaTHaTIaTHaTJaTKaTLaTMaTNaTNaTOaNoaTPaTQaTRaTSaTTaTUaTVaTWaTXaTYaTZaUaaUbaUcaUcaUcaUdaMcaGaaGaaUeaUfaUgaUhaUiaUjaUkaUlaUmaUnaUoaMgaMgaMgaMgaMgaMgaUpaUqaUraUsaSWaUtaUuaMgaUjaUiaUvaUwaUfaLhaGaaGaaPcaKnaUxaQtaKnaKnaKnaQtaKnaNSaKnaJkaJkaKnaKnaUyaUzaUAaPlaPlaPlaUBaUCaUDaGtaUEaUFaOfaUGaUGaUHaUFaUIaGxaUJaUKaTsaTtaFeaMNaPBaPBaPBaPBaPBaMOaULaUMaUNaUOaUPaUQaUPaURaOtaafaafaaaaGIaGIaGIaGIaGIaGIaGIaGIaGIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaUSaUTaShavRaUUaUVaUWaUXaUWaUYaTzaTzaUZaTAaPLaVaaVbaTFaTGaVcaVdaVeaVfaTHaVgaVhaViaLRaVjaVkaVlaVmaLRaVnaVoaVpaVpaVpaVpaVqaVpaVraVsaVtaVsaVsaVuaVsaVvaVraGaaGaaVwaVxaVyaVyaVyaVyaVzaVAaVBaVAaVAaVCaVCaVCaVCaVCaVDaVEaVEaVFaVGaVHaVIaVHaVHaVHaVHaVHaQeaQeaLhaGaaVJaGnaVKaVLaVMaVNaKnaKnaKnaVOaVPaVQaKnaVRaVSaVTaGtaGtaGtaVUaVVaVVaVVaGtaGtaGtaVWaOfaOfaVXaVYaVZaWaaKwaGxaWbaUKaTsaLIaWcaOjaOkaPAaPBaPAaOjaOkaWdaFgaWeaOpaOpaOpaOpaWfaOtaaaaafaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaQUaafauGaWgatKatMaPNaWhaWhaWiaWjaWkaWiaWlaWhaPLaWmaWnaWoaWpaWqaWqaWraWsaWqaWtaVhaWuaLRaVjaVkaWvaWwaLRaVnaVoaVpaWxaWyaWyaWyaWzaVraWAaWBaWCaWDaVraVraVraVraGaaGaaUeaWEaWFaWGaWHaWIaWJaWKaWLaWMaVAaVCaWNaWOaWPaWQaWRaWSaWTaWUaVHaWVaWWaWXaWYaWZaXaaVHaXbaXbaHoaGaaGaaGnaGnaGnaGnaGnaXcaPcaXcaXdaXeaGnaNPaGnaGnaGnaXfaXgaXhaXgaXgaXgaXgaXiaXgaXfaKwaXjaXjaXkaXlaXlaXlaXlaXfaXmaXnaXoaXpaXqaXraXraXsaXraXraXraXraXtaXuaXvaOpaOpaOpaOpaXwaPFaMTaMTaSeaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawSaqmaXxaxQaSharaaraaraaraaraaraaXyaXzaPNaPLaPLaPLaPLaPLaPLaPLaPLaPLaXAaMZaTFaTGaVcaXBaXCaXDaTHaXEaXFaXGaLRaVjaVkaXHaXIaLRaVnaVoaVpaWyaXJaXJaWyaXJaVraWAaXKaXLaXLaXMaXNaXOaVraXPaGaaUeaXQaXRaXSaXTaXTaXTaXTaXUaXVaVAaVCaXWaXXaXYaXZaWNaYaaYbaYcaYdaYeaWWaYfaYgaYhaYiaVHaYjaYkaFZaYlaGaaYmaYnaTsaTsaYoaTsaTsaTsaYoaTsaYpaTsaTsaYqaTsaYraTsaYsaTsaTsaTsaTsaTsaTsaYnaTsaTsaTsaTsaTsaTsaTsaTsaYtaYuaYvaYwaYxaYvaYvaYvaYyaYvaYvaYzaTsaYnaYAaOpaOpaOpaOpaOpaYBaQTaYCaQSaQTaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaYDaYDaYDaYDaYDaYDaYDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaaaaafaYFawVauJaYGaYHaYIaYIaYIaYIaYIaYIaYJaYKaLOaSIaMZaTFaTGaTHaTHaYLaYMaTHaLRaLRaYNaLRaVjaYOaXHaYPaLRaVnaVoaVpaYQaYRaWyaXJaYSaVraYTaVraYUaXLaXLaYVaYWaVraGaaGaaYXaWEaYYaYZaXTaXTaZaaXTaXUaZbaVAaVCaZcaZdaZeaZeaZeaYaaZfaVCaZgaZhaWWaYfaZiaYeaZjaVHaXbaNNaZkaGaaGaaYmaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsaZlaZmaZmaZnaZoaTsaTsaTsaTsaTsaTsaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaZpaTsaYsaTsaTsaTsaTsaTsaTsaTsaZqaTsaYnaYAaOpaOpaOpaOpaOpaZraSdaMTaMTaPGaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaYDaYDaYDaYDaYDaYDaYDaafaZsagQagQaZsaafaZsagQagQaZsaafaZsagQagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaSfaSgaShavRaZtaZuaZvaZvaZwaZvaZvaZvaZxaLOaLOaLOaLOaTFaTGaVcaZyaZzaZAaTHaZBaZCaZDaLRaLRaLRaLRaZEaLRaVnaVoaVpaZFaWyaXJaZGaZHaVraWAaVraZIaXLaXLaZJaZKaVraZLaGaaZMaWEaZNaZOaZPaZQaYZaYZaZRaZSaVAaZTaZUaZVaZeaZWaZeaXXaZXaZYaZgaZZbaaaYeaYeaYebabbacaXbbadbaebafaGaaYmaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsbagbahaTsaTsbaibajaTsbagbakbalaTsaTsaYnbambanbanbanbanbanbanbaoaTsaZpaTsaYsaTsbapaTsbagaTsbaqaTsbaraTsaYnaYAaOpaOpaOpaOpbasaXwbataafaaaaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaYDaYDaYDaYDaYDaYDaYDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEavQarVavQatNbauaZvbavbawbaxbaxbaybazbaAbaBbaBbaBbaBbaCbaDbaEbaEbaFbaGbaEbaHbaHbaIbaHbaJbaKaRhbaLbaKbaMbaNbaObaPbaQbaQbaRbaSbaTbaUbaVbaWaXLaXLaZJbaXbaYaZLaGabaZaWEaYZbbabbbbbcbbdaYZbbeaVAaVAaVCbbfbbgbbhbbibbjbbgbbkaVCaZgbblbbmbbnbbobbpbbqbbrbbsbbtbbuaGabbvbbwbbxbbybbybbybbybbybbzbbwbbAbbAbbwbbBbbCbbBbbBbbDbbEbbFbbFbbFbbFbbGbbFbbFbbHbbIbbJbbKbbKbbIbbJbbLbanbbMbanbbNbanbbObbPbbQbbQbbQbanbbRbanbbSbbTbbUbbVbbVbbWaLKbbXbbYaafaafaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaYDaYDaYDaYDaYDaYDaYDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaZsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaUSaUTaShavRbbZaZvbcaaZvbcbbccaZvaZvaZvaMZbcdaSHaSHbceaTHaVcbcfaXCbcgaTHbchbciaRpaRpbcjbckbclbcmbcnbcobcpbcqbcrbcsbcrbctbcubcvbcwbcxbcyaXLaXLbczbcAbcBaZLaGabcCaWEbcDaYZbcEbcFaYZaYZbcGaVAaVAaVCbcHbcIbcJbcKbcLbcMbcNaVCaZgbcObcPbcQbcQbcRbcSaVHbcTbcTbcUaGaaGabcVbcWbcWbcXbcXbcXbcXbcXbbwbcWbcWbbwbcYbcZbdabbBbdbbdcbddbdebdfbdgbdgbdhbdibdjbdkbdlbdlbdlbdlbdmbbPbdnbdobdnbdpbdnbbPbbPbdqbdrbbQbdsbdtbdubbQbbQbdvbdwbdxbdvbdvbdybbYaafaaaaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaafaYDaYDaYDaYDaYDaYDaYDaafaafbdzbdzbdzbdzbdzbdzbdzbdzaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawSaqmaXxaxQaSharaaraaraaraaraaraaXyaXzaPNaPLaPLaPLaPLaPLaPLaPLaPLaPLaXAaMZaTFaTGaVcaXBaXCaXDaTHaXEaXFaXGaLRaVjaVkaXHaXIaLRaVnaVoaVpaWyaXJaXJaWyaXJaVraWAaXKaXLaXLaXMaXNaXOaVraXPaGaaUeaXQaXRaXSaXTaXTaXTaXTaXUaXVaVAaVCaXWaXXaXYaXZaWNaYaaYbaYcaYdaYeaWWaYfaYgaYhaYiaVHaYjaYkaFZaYlaGaaYmaYnaTsaTsaYoaTsaTsaTsaYoaTsaYpaTsaTsaYqaTsaYraTsaYsaTsaTsaTsaTsaTsaTsaYnaTsaTsaTsaTsaTsaTsaTsaTsaYtaYuaYvaYwaYxaYvaYvaYvaYyaYvaYvaYzaTsaYnaYAaOpaOpaOpaOpaOpaYBaQTaYCaQSaQTaGIaGIaGIaGIaGIaGIaGIaGIaGIaaadqLdqNdqOdqNdqOdqNdqMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaaaaafaYFawVauJaYGaYHaYIaYIaYIaYIaYIaYIaYJaYKaLOaSIaMZaTFaTGaTHaTHaYLaYMaTHaLRaLRaYNaLRaVjaYOaXHaYPaLRaVnaVoaVpaYQaYRaWyaXJaYSaVraYTaVraYUaXLaXLaYVaYWaVraGaaGaaYXaWEaYYaYZaXTaXTaZaaXTaXUaZbaVAaVCaZcaZdaZeaZeaZeaYaaZfaVCaZgaZhaWWaYfaZiaYeaZjaVHaXbaNNaZkaGaaGaaYmaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsaZlaZmaZmaZnaZoaTsaTsaTsaTsaTsaTsaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaZpaTsaYsaTsaTsaTsaTsaTsaTsaTsaZqaTsaYnaYAaOpaOpaOpaOpaOpaZraSdaMTaMTaPGaGIaGIaGIaGIaGIaGIaGIaGIaGIaaadqHdqKdqJdqIdqJdqIdqHaafaZsagQagQaZsaafaZsagQagQaZsaafaZsagQagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaSfaSgaShavRaZtaZuaZvaZvaZwaZvaZvaZvaZxaLOaLOaLOaLOaTFaTGaVcaZyaZzaZAaTHaZBaZCaZDaLRaLRaLRaLRaZEaLRaVnaVoaVpaZFaWyaXJaZGaZHaVraWAaVraZIaXLaXLaZJaZKaVraZLaGaaZMaWEaZNaZOaZPaZQaYZaYZaZRaZSaVAaZTaZUaZVaZeaZWaZeaXXaZXaZYaZgaZZbaaaYeaYeaYebabbacaXbbadbaebafaGaaYmaYnaTsaTsaTsaTsaTsaTsaTsaTsaTsaTsbagbahaTsaTsbaibajaTsbagbakbalaTsaTsaYnbambanbanbanbanbanbanbaoaTsaZpaTsaYsaTsbapaTsbagaTsbaqaTsbaraTsaYnaYAaOpaOpaOpaOpbasaXwbataafaaaaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaaadqUdqWdqJdqIdqJdqVdqOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEavQarVavQatNbauaZvbavbawbaxbaxbaybazbaAbaBbaBbaBbaBbaCbaDbaEbaEbaFbaGbaEbaHbaHbaIbaHbaJbaKaRhbaLbaKbaMbaNbaObaPbaQbaQbaRbaSbaTbaUbaVbaWaXLaXLaZJbaXbaYaZLaGabaZaWEaYZbbabbbbbcbbdaYZbbeaVAaVAaVCbbfbbgbbhbbibbjbbgbbkaVCaZgbblbbmbbnbbobbpbbqbbrbbsbbtbbuaGabbvbbwbbxbbybbybbybbybbybbzbbwbbAbbAbbwbbBbbCbbBbbBbbDbbEbbFbbFbbFbbFbbGbbFbbFbbHbbIbbJbbKbbKbbIbbJbbLbanbbMbanbbNbanbbObbPbbQbbQbbQbanbbRbanbbSbbTbbUbbVbbVbbWaLKbbXbbYaafaafaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaaadqHdqTdqJdqIdqIdqIdqHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaZsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaUSaUTaShavRbbZaZvbcaaZvbcbbccaZvaZvaZvaMZbcdaSHaSHbceaTHaVcbcfaXCbcgaTHbchbciaRpaRpbcjbckbclbcmbcnbcobcpbcqbcrbcsbcrbctbcubcvbcwbcxbcyaXLaXLbczbcAbcBaZLaGabcCaWEbcDaYZbcEbcFaYZaYZbcGaVAaVAaVCbcHbcIbcJbcKbcLbcMbcNaVCaZgbcObcPbcQbcQbcRbcSaVHbcTbcTbcUaGaaGabcVbcWbcWbcXbcXbcXbcXbcXbbwbcWbcWbbwbcYbcZbdabbBbdbbdcbddbdebdfbdgbdgbdhbdibdjbdkbdlbdlbdlbdlbdmbbPbdnbdobdnbdpbdnbbPbbPbdqbdrbbQbdsbdtbdubbQbbQbdvbdwbdxbdvbdvbdybbYaafaaaaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaaadqQdqNdqOdqRdqOdqNdqSaafaafbdzbdzbdzbdzbdzbdzbdzbdzaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYEaYEaYEaYEaYEaYEaYEaYEaYEaYEaaaaaaawUaWgatKbdAaZvbcaaZvbdBbdCbdDbdEaZvbdFaMZbdGaMZbdHaTHaTHaTHaTHaTHaTHbdIbdJbdKaMZbdLaVpbdMaVpbdNaVpaVpaVpaVpaVpbdObdNaVpbdPbdQbdRbdSaXLaXLaZJbdTbaYaZLaGaaUeaWEbdUbdVbdWbdXbbdbdYaZRaVAbdZbeabebbecaWNbedaWNbeebefbegbehbeibejbekbelbembenaVHbeobcTbepaMtaMtbeqberberbcXbesbcXbetbetbbwbcWbeubbwbevbewbexbbBbeybezbbFbeAbdgbeAbdgbeAbeBbdjbeCbdlbeDbdlbdlbeEbbPbeFbeGbeHbeIbeFbeJbbPbeKbeLbeMbeNbeObeNbePbbQbeQbeRbeSbeTbdvbdybbYaafaaaaafaGIaGIaGIaGIaGIaGIaGIaGIaGIaafbeUbeVbeWbeXbeYbeZbdzbdzbdzbdzbfabfbbfcbfdbfebfcbdzaafaaaaaaaZsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawSaqmaXxaxQaUTaPIaPIaPIaPIbffavRatNatNaZvbfgbfhbfibdDbfjbfkbflbfmbfmbfmbfmbfnbfobfobfobcobcobcobfpbfqbfqbfqbfraVpbfsbftbfubfvbfwbfxbfybfxbfxbfzbfAbfBbfCbfDbfEbfFbfGbfHbaTbaTbfIbfJbfKbfLbfMbfMbfMbfMbfMbfNbfObfPbfLbegbegbegbegbfQbegbegbegbegbfRaYdbfSaVHaZgbfTaVHaVHbcTbcTbfUaGaaGabfVbfWbfWbfXbcXbcXbcXbfYbbwbcWbcWbbwbfZbewbgabbBbgbbezbbFbeAbdgbeAbdgbeAbgcbdjbgdbgebgfbgfbgfbgfbggbghbgibgjbgkbglbgmbggbgnbgobgpbgqbgrbeNbgsbbQbgtbeRbgubgvbdvbdybbYbbYaafaafajmaGIaGIaGIaGIaGIaGIaGIajmaafbgwbgxbgxbgybgxbeZbgzbgAbgzbdzbgBbgCbgDbgDbgDbgDbdzaafaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgEbgFarVavQatIatIatKatNatNaZvbgGbgHbdDbgIaZvaZvaZvaLObgJbgKbgLbgMbgLbgLbgLbgMbgLaLOaLOaVpaVpaVpbgNaVpbgObfxbgPbfxbfxbfxbgQbgRbgSbgSbgTbgUbgVbgWbgWbgWbgXbgYbgZbhabhbbhcbhdbhebhfbhfbhgbhhbhibhjbhkbhjbhlbhmbhnbhobhpbhqbhrbhobhsbhmbhtbhubhvbhwbhxbhybhzbhAbhAbhBbfUaGaaGabhCbhDbhDbcXbhEbcWbhFbcXbhGbcXbhHbbwbhIbhJbhKbbBbhLbezbbFbeAbdgbeAbdgbeAbeBbdjbhMbhNbhObhPbdlbhQbhRbhSbhTbhTbhUbhVbhWbhXbhYbhZbiabibbicbeNbidbbQbiebifbgubigbihbdybiibbYaaaaafajmajmajmajmajmajmajmajmajmaafbijbgxbikbilbgxbeZbimbgzbinbdzbiobgCbipbiqbgDbirbdzaafaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10523,3 +10539,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + From 71b8045ee4f5562b50d6461eab3f7dbb9bd7884e Mon Sep 17 00:00:00 2001 From: Whitellama Date: Wed, 21 Nov 2012 04:00:52 -0800 Subject: [PATCH 007/163] Added banging against windows with harm intent --- code/game/objects/structures/window.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index a6af06a6a67..2979fe328be 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -119,13 +119,17 @@ if(reinf) new /obj/item/stack/rods( src.loc) src.density = 0 del(src) - return + else if (usr.a_intent == "hurt") + playsound(src.loc, 'Glassknock.ogg', 80, 1) + usr.visible_message("\red [usr.name] bangs against the [src.name]!", \ + "\red You bang against the [src.name]!", \ + "You hear a banging sound.") else playsound(src.loc, 'Glassknock.ogg', 80, 1) usr.visible_message("[usr.name] knocks on the [src.name].", \ "You knock on the [src.name].", \ "You hear a knocking sound.") - return + return /obj/structure/window/attack_paw() if ((HULK in usr.mutations)) From 3257a529ba622d3016aaaf7b9a519db811005c02 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 5 Dec 2012 04:44:42 +1000 Subject: [PATCH 008/163] fixed up the core sampler + gave it a placeholder sprite, made geo data actually persist across turfs and ores, cleaned up some new xenoarch stuff Signed-off-by: Cael_Aislinn --- code/modules/mining/mine_turfs.dm | 35 +++-- code/modules/mining/ores_materials_coins.dm | 10 +- .../research/xenoarchaeology/core_sampler.dm | 120 +++++++++++------- .../modules/research/xenoarchaeology/finds.dm | 23 +--- .../research/xenoarchaeology/geosample.dm | 17 ++- icons/obj/device.dmi | Bin 16615 -> 17186 bytes 6 files changed, 128 insertions(+), 77 deletions(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 7285b4628b0..192446d262b 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -16,6 +16,7 @@ var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles var/artifactChance = 0.3 //percent chance to spawn a xenoarchaelogical artifact var/last_act = 0 + var/datum/geosample/geological_data /turf/simulated/mineral/Del() return @@ -54,6 +55,9 @@ if (T) T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6) + src.geological_data = new /datum/geosample + src.geological_data.UpdateTurf(src) + if (mineralName && mineralAmt && spread && spreadChance) if(prob(spreadChance)) if(istype(get_step(src, SOUTH), /turf/simulated/mineral/random)) @@ -102,6 +106,9 @@ if(M) src = M M.levelupdate() + if(!geological_data) + src.geological_data = new /datum/geosample + src.geological_data.UpdateTurf(src) else if (prob(artifactChance)) //spawn a rare, xeno-arch artifact here new/obj/machinery/artifact(src) @@ -220,6 +227,11 @@ usr << "\red You don't have the dexterity to do this!" return + if (istype(W, /obj/item/device/core_sampler)) + var/obj/item/device/core_sampler/C = W + C.sample_item(src, user) + return + if (istype(W, /obj/item/weapon/pickaxe)) var/turf/T = user.loc if (!( istype(T, /turf) )) @@ -250,27 +262,34 @@ if ((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11)) var/i for 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 Date: Wed, 5 Dec 2012 04:46:45 +1000 Subject: [PATCH 009/163] added functional bunsen burner (with placeholder sprite), added capability for heated chem recipes, added preservation of data across chemical reactions for xenoarch (not sure if it actually works, seemed a bit buggy), added tungsten as a dispensable reagent for xenoarch Signed-off-by: Cael_Aislinn --- baystation12.dme | 1 + code/modules/reagents/Chemistry-Holder.dm | 37 +++++++++++- code/modules/reagents/Chemistry-Machinery.dm | 21 ++++++- code/modules/reagents/Chemistry-Recipes.dm | 2 + .../reagents/reagent_containers/glass.dm | 4 ++ .../research/xenoarchaeology/archaeo_chem.dm | 11 ++-- .../research/xenoarchaeology/bunsen_burner.dm | 58 +++++++++++++++++++ 7 files changed, 125 insertions(+), 9 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/bunsen_burner.dm diff --git a/baystation12.dme b/baystation12.dme index 5ab7609868a..70310f66450 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1301,6 +1301,7 @@ #include "code\modules\research\xenoarchaeology\artifact_harvester.dm" #include "code\modules\research\xenoarchaeology\artifact_misc.dm" #include "code\modules\research\xenoarchaeology\artifact_synthetic.dm" +#include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" #include "code\modules\research\xenoarchaeology\finds.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index f73c1797fa4..9065c68d7fb 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -204,6 +204,14 @@ datum do reaction_occured = 0 for(var/datum/chemical_reaction/C in chemical_reactions_list) + //check if this recipe needs to be heated to mix + if(C.requires_heating) + if(istype(my_atom.loc, /obj/machinery/bunsen_burner)) + if(!my_atom.loc:heated) + continue + else + continue + var/total_required_reagents = C.required_reagents.len var/total_matching_reagents = 0 var/total_required_catalysts = C.required_catalysts.len @@ -242,7 +250,14 @@ datum if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other) var/multiplier = min(multipliers) - for(var/B in C.required_reagents) + //try and grab any data so we can preserve it across reactions + //added for xenoarchaeology, might be used for other things but this is a bit dodge + var/preserved_data = null + for(var/B in src.reagent_list) + if(!preserved_data) + var/temp_data = get_data(B) + if(temp_data) + preserved_data = temp_data remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1) var/created_volume = C.result_amount*multiplier @@ -250,6 +265,11 @@ datum feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]") multiplier = max(multiplier, 1) //this shouldnt happen ... add_reagent(C.result, C.result_amount*multiplier) + set_data(C.result, preserved_data) + + //add secondary products + for(var/S in C.secondary_results) + add_reagent(S, C.result_amount * C.secondary_results[S] * multiplier) if(!isliving(my_atom)) for(var/mob/M in viewers(4, get_turf(my_atom)) ) @@ -442,6 +462,21 @@ datum return res + //two slightly dodge helper functions to preserve data across reactions (needed for xenoarch) + get_data(var/reagent_id) + for(var/R in reagent_list) + var/datum/reagent/D = reagent_list[R] + if(D.id == reagent_id) + world << "proffering a data-carrying reagent ([reagent_id])" + return D.data + + set_data(var/reagent_id, var/new_data) + for(var/R in reagent_list) + var/datum/reagent/D = reagent_list[R] + if(D.id == reagent_id) + world << "reagent data set ([reagent_id])" + D.data = new_data + /////////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index f8d22288bd5..01eef07caf0 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -17,7 +17,7 @@ var/recharged = 0 var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine", "sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron", - "copper","mercury","radium","water","ethanol","sugar","sacid","milk") + "copper","mercury","radium","water","ethanol","sugar","sacid","tungsten","milk") /obj/machinery/chem_dispenser/proc/recharge() if(stat & (BROKEN|NOPOWER)) return @@ -734,6 +734,8 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), + //archaeology! + /obj/item/weapon/rocksliver = list("ground_rock" = 50), //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! @@ -995,7 +997,8 @@ inuse = 1 spawn(60) inuse = 0 - interact(usr) + if(get_dist(usr,src) < 2) + interact(usr) //Snacks and Plants for (var/obj/item/weapon/reagent_containers/food/snacks/O in holdingitems) if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) @@ -1061,6 +1064,20 @@ break remove_object(O) + //xenoarch + for(var/obj/item/weapon/rocksliver/O in holdingitems) + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + var/allowed = get_allowed_by_id(O) + for (var/r_id in allowed) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = allowed[r_id] + beaker.reagents.add_reagent(r_id,min(amount, space), O.geological_data) + + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + remove_object(O) + //Everything else - Transfers reagents from it into beaker for (var/obj/item/weapon/reagent_containers/O in holdingitems) if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index b1e972b502d..0c849879d05 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -13,6 +13,8 @@ datum var/result_amount = 0 var/secondary = 0 // set to nonzero if secondary reaction + var/list/secondary_results = list() //additional reagents produced by the reaction + var/requires_heating = 0 proc on_reaction(var/datum/reagents/holder, var/created_volume) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 3a89cef6dd4..5f2db222668 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -83,6 +83,10 @@ else if(istype(target, /obj/item/clothing/suit/space/space_ninja)) return + //bunsen burner handles all of this as well + else if(istype(target, /obj/machinery/bunsen_burner)) + return + else if(reagents.total_volume) user << "\blue You splash the solution onto [target]." src.reagents.reaction(target, TOUCH) diff --git a/code/modules/research/xenoarchaeology/archaeo_chem.dm b/code/modules/research/xenoarchaeology/archaeo_chem.dm index 4b81fd774b1..a39120e7864 100644 --- a/code/modules/research/xenoarchaeology/archaeo_chem.dm +++ b/code/modules/research/xenoarchaeology/archaeo_chem.dm @@ -1,6 +1,5 @@ //chemistry stuff here so that it can be easily viewed/modified -/* datum reagent tungsten //used purely to make lith-sodi-tungs @@ -20,18 +19,18 @@ datum ground_rock name = "Ground Rock" id = "ground_rock" - description = "A fine dust made of ground up geological samples." + description = "A fine dust made of ground up rock." reagent_state = SOLID color = "#C81040" //rgb: 200, 16, 64 //todo: make this brown density_separated_sample - name = "Density separated sample" + name = "Analysis sample" id = "density_separated_sample" - description = "A watery paste which has had density separation applied to its contents." + description = "A watery paste used in chemical analysis." reagent_state = LIQUID color = "#C81040" //rgb: 200, 16, 64 - //todo: make this white + //todo: make this browny-white analysis_sample name = "Analysis sample" @@ -57,6 +56,7 @@ datum result = "lithiumsodiumtungstate" required_reagents = list("lithium" = 1, "sodium" = 2, "tungsten" = 1, "oxygen" = 4) result_amount = 8 + requires_heating = 1 density_separated_liquid name = "Density separated sample" @@ -74,4 +74,3 @@ datum required_reagents = list("density_separated_sample" = 5) result_amount = 4 requires_heating = 1 -*/ \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/bunsen_burner.dm b/code/modules/research/xenoarchaeology/bunsen_burner.dm new file mode 100644 index 00000000000..bbb3d0c9c94 --- /dev/null +++ b/code/modules/research/xenoarchaeology/bunsen_burner.dm @@ -0,0 +1,58 @@ + +/obj/machinery/bunsen_burner + name = "bunsen burner" + desc = "A flat, self-heating device designed for bringing chemical mixtures to boil." + icon = 'icons/obj/device.dmi' + icon_state = "bunsen0" + var/heating = 0 //whether the bunsen is turned on + var/heated = 0 //whether the bunsen has been on long enough to let stuff react + var/obj/item/weapon/reagent_containers/held_container + var/heat_time = 50 + +/obj/machinery/bunsen_burner/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/reagent_containers)) + if(held_container) + user << "\red You must remove the [held_container] first." + else + user.drop_item(src) + held_container = W + held_container.loc = src + user << "\blue You put the [held_container] onto the [src]." + var/image/I = image("icon"=W, "layer"=FLOAT_LAYER) + underlays += I + if(heating) + spawn(heat_time) + try_heating() + else + user << "\red You can't put the [W] onto the [src]." + + + +/obj/machinery/bunsen_burner/attack_hand(mob/user as mob) + if(held_container) + underlays = null + user << "\blue You remove the [held_container] from the [src]." + held_container.loc = src.loc + held_container.attack_hand(user) + held_container = null + else + user << "\red There is nothing on the [src]." + +/obj/machinery/bunsen_burner/proc/try_heating() + if(held_container && heating) + heated = 1 + held_container.reagents.handle_reactions() + heated = 0 + spawn(heat_time) + try_heating() + +/obj/machinery/bunsen_burner/verb/toggle() + set src in oview(1) + set name = "Toggle bunsen burner" + set category = "IC" + + heating = !heating + icon_state = "bunsen[heating]" + if(heating) + spawn(heat_time) + try_heating() From 21e00aa5dc4b2932dce1a305bc48ddb2b3f99be2 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 5 Dec 2012 04:55:50 +1000 Subject: [PATCH 010/163] some tweaks --- code/modules/reagents/Chemistry-Holder.dm | 4 +++- code/modules/research/xenoarchaeology/archaeo_chem.dm | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 9065c68d7fb..84a2ca14529 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -253,7 +253,7 @@ datum //try and grab any data so we can preserve it across reactions //added for xenoarchaeology, might be used for other things but this is a bit dodge var/preserved_data = null - for(var/B in src.reagent_list) + for(var/B in C.required_reagents) if(!preserved_data) var/temp_data = get_data(B) if(temp_data) @@ -464,6 +464,7 @@ datum //two slightly dodge helper functions to preserve data across reactions (needed for xenoarch) get_data(var/reagent_id) + world << "attempting to get data ([reagent_id])" for(var/R in reagent_list) var/datum/reagent/D = reagent_list[R] if(D.id == reagent_id) @@ -471,6 +472,7 @@ datum return D.data set_data(var/reagent_id, var/new_data) + world << "attempting to set data ([reagent_id])" for(var/R in reagent_list) var/datum/reagent/D = reagent_list[R] if(D.id == reagent_id) diff --git a/code/modules/research/xenoarchaeology/archaeo_chem.dm b/code/modules/research/xenoarchaeology/archaeo_chem.dm index a39120e7864..1ebbe66111e 100644 --- a/code/modules/research/xenoarchaeology/archaeo_chem.dm +++ b/code/modules/research/xenoarchaeology/archaeo_chem.dm @@ -56,7 +56,6 @@ datum result = "lithiumsodiumtungstate" required_reagents = list("lithium" = 1, "sodium" = 2, "tungsten" = 1, "oxygen" = 4) result_amount = 8 - requires_heating = 1 density_separated_liquid name = "Density separated sample" From 8ae901e49d7e0a164aa76bba370cf939ccf7b5ff Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 5 Dec 2012 11:52:19 +1000 Subject: [PATCH 011/163] fixed data preservation, removed debugging Signed-off-by: Cael_Aislinn --- code/modules/reagents/Chemistry-Holder.dm | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 84a2ca14529..07919599335 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -464,20 +464,14 @@ datum //two slightly dodge helper functions to preserve data across reactions (needed for xenoarch) get_data(var/reagent_id) - world << "attempting to get data ([reagent_id])" - for(var/R in reagent_list) - var/datum/reagent/D = reagent_list[R] - if(D.id == reagent_id) - world << "proffering a data-carrying reagent ([reagent_id])" - return D.data + for(var/datum/reagent/R in reagent_list) + if(R.id == reagent_id) + return R.data set_data(var/reagent_id, var/new_data) - world << "attempting to set data ([reagent_id])" - for(var/R in reagent_list) - var/datum/reagent/D = reagent_list[R] - if(D.id == reagent_id) - world << "reagent data set ([reagent_id])" - D.data = new_data + for(var/datum/reagent/R in reagent_list) + if(R.id == reagent_id) + R.data = new_data /////////////////////////////////////////////////////////////////////////////////// From 90235adbc1b698efb15b7b696ece6e7b5395c955 Mon Sep 17 00:00:00 2001 From: Whitellama Date: Sun, 9 Dec 2012 17:12:59 -0800 Subject: [PATCH 012/163] WIP Guncode --- code/game/atoms.dm | 2 + code/game/hud.dm | 6 +- .../carbon/alien/humanoid/update_icons.dm | 15 +- .../mob/living/carbon/human/update_icons.dm | 32 +-- .../mob/living/carbon/monkey/update_icons.dm | 16 +- .../modules/mob/living/silicon/robot/robot.dm | 10 +- .../living/simple_animal/friendly/corgi.dm | 17 +- .../mob/living/simple_animal/simple_animal.dm | 10 +- code/modules/mob/mob_movement.dm | 2 +- code/modules/mob/update_icons.dm | 1 - code/modules/projectiles/gun.dm | 231 +++++++++++------- .../projectiles/guns/projectile/automatic.dm | 3 +- icons/effects/Targeted.dmi | Bin 613 -> 648 bytes icons/mob/screen1.dmi | Bin 158885 -> 158871 bytes 14 files changed, 213 insertions(+), 132 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 313a9106f48..47e77e1bccb 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -574,6 +574,8 @@ its easier to just keep the beam vertical. /atom/Click(location,control,params) //world << "atom.Click() on [src] by [usr] : src.type is [src.type]" + if(!istype(src,/obj/item/weapon/gun)) + usr.last_target_click = world.time if(usr.client.buildmode) build_click(usr, usr.client.buildmode, location, control, params, src) return diff --git a/code/game/hud.dm b/code/game/hud.dm index 9a29adc082b..a3022719807 100644 --- a/code/game/hud.dm +++ b/code/game/hud.dm @@ -46,9 +46,9 @@ #define ui_borg_panel "14:28,2:7" //Gun buttons -#define ui_gun1 "13:26,2:5" -#define ui_gun2 "12:24,2:5" -#define ui_gun3 "11:22,2:5" +#define ui_gun1 "13:26,3:7" +#define ui_gun2 "14:28, 4:7" +#define ui_gun3 "13:26,4:7" #define ui_gun_select "14:28,3:7" //Upper-middle right (damage indicators) diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 0e2c6bed099..f1d65d271db 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -3,7 +3,8 @@ #define X_SUIT_LAYER 2 #define X_L_HAND_LAYER 3 #define X_R_HAND_LAYER 4 -#define X_TOTAL_LAYERS 4 +#define TARGETED_LAYER 5 +#define X_TOTAL_LAYERS 5 ///////////////////////////////// /mob/living/carbon/alien/humanoid @@ -120,10 +121,22 @@ overlays_standing[X_L_HAND_LAYER] = null if(update_icons) update_icons() +//Call when target overlay should be added/removed +/mob/living/carbon/alien/humanoid/update_targeted(var/update_icons=1) + if (targeted_by && target_locked) + overlays_lying[TARGETED_LAYER] = target_locked + overlays_standing[TARGETED_LAYER] = target_locked + else if (!targeted_by && target_locked) + del(target_locked) + if (!targeted_by) + overlays_lying[TARGETED_LAYER] = null + overlays_standing[TARGETED_LAYER] = null + if(update_icons) update_icons() //Xeno Overlays Indexes////////// #undef X_HEAD_LAYER #undef X_SUIT_LAYER #undef X_L_HAND_LAYER #undef X_R_HAND_LAYER +#undef TARGETED_LAYER #undef X_TOTAL_LAYERS diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 07d1541f929..c0a9d4128d5 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -132,7 +132,6 @@ Please contact me on #coderbus IRC. ~Carn x //this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers //I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date. /mob/living/carbon/human/update_icons() - world << "[src] CALLED THE HUMAN VERSION OF UPDATE_ICONS" lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this overlays = null @@ -471,29 +470,17 @@ proc/get_damage_icon_part(damage_state, body_part) update_hair(0) if(update_icons) update_icons() +//Call when target overlay should be added/removed /mob/living/carbon/human/update_targeted(var/update_icons=1) - // If someone's targeting you - if (targeted_by.len) - - //If the target is already there and finished locking (after two seconds), put in locked state and be done - if (overlays_standing[TARGETED_LAYER]||overlays_lying[TARGETED_LAYER]) - var/target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locked") - overlays_lying[TARGETED_LAYER] = target_locked - overlays_standing[TARGETED_LAYER] = target_locked - return - - var/target_locking = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locking") - world << "TARGET_LOCKING IS [target_locking]" - - //Put in our overlay, since it isn't already there - overlays_lying[TARGETED_LAYER] = target_locking - overlays_standing[TARGETED_LAYER] = target_locking - - else + if (targeted_by && target_locked) + overlays_lying[TARGETED_LAYER] = target_locked + overlays_standing[TARGETED_LAYER] = target_locked + else if (!targeted_by && target_locked) + del(target_locked) + if (!targeted_by) overlays_lying[TARGETED_LAYER] = null overlays_standing[TARGETED_LAYER] = null - - if(update_icons) update_icons() + if(update_icons) update_icons() /* --------------------------------------- */ @@ -877,4 +864,5 @@ proc/get_damage_icon_part(damage_state, body_part) #undef L_HAND_LAYER #undef R_HAND_LAYER #undef TAIL_LAYER -#undef TOTAL_LAYERS +#undef TARGETED_LAYER +#undef TOTAL_LAYERS diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 4df4f6623b4..08d0c58cdfc 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -4,7 +4,8 @@ #define M_HANDCUFF_LAYER 3 #define M_L_HAND_LAYER 4 #define M_R_HAND_LAYER 5 -#define M_TOTAL_LAYERS 5 +#define TARGETED_LAYER 6 +#define M_TOTAL_LAYERS 6 ///////////////////////////////// /mob/living/carbon/monkey @@ -101,11 +102,24 @@ if (client) client.screen |= contents +//Call when target overlay should be added/removed +/mob/living/carbon/monkey/update_targeted(var/update_icons=1) + if (targeted_by && target_locked) + overlays_lying[TARGETED_LAYER] = target_locked + overlays_standing[TARGETED_LAYER] = target_locked + else if (!targeted_by && target_locked) + del(target_locked) + if (!targeted_by) + overlays_lying[TARGETED_LAYER] = null + overlays_standing[TARGETED_LAYER] = null + if(update_icons) update_icons() + //Monkey Overlays Indexes//////// #undef M_MASK_LAYER #undef M_BACK_LAYER #undef M_HANDCUFF_LAYER #undef M_L_HAND_LAYER #undef M_R_HAND_LAYER +#undef TARGETED_LAYER #undef M_TOTAL_LAYERS diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 203e1c029f2..e373bd3f5ff 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1,7 +1,7 @@ /mob/living/silicon/robot name = "Cyborg" real_name = "Cyborg" - icon = 'icons/mob/robots.dmi'// + icon = 'icons/mob/robots.dmi' icon_state = "robot" maxHealth = 300 health = 300 @@ -790,7 +790,13 @@ overlays += "ov-openpanel -c" return - +//Call when target overlay should be added/removed +/mob/living/silicon/robot/update_targeted() + if(!targeted_by && target_locked) + del(target_locked) + updateicon() + if (targeted_by && target_locked) + overlays += target_locked /mob/living/silicon/robot/proc/installed_modules() if(weapon_lock) diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 5b9b46edf81..416bb6fea7c 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -23,10 +23,12 @@ /mob/living/simple_animal/corgi/Life() ..() - regenerate_icons() + //regenerate_icons() //Don't call this every life tick. + //I'm serious. If you're going to enable dressing up Ian, + //Find a GOOD place to call regenerate_icons(). /mob/living/simple_animal/corgi/show_inv(mob/user as mob) - /* + /* If you're turning this back on, scroll down and uncomment target_updated user.machine = src if(user.stat) return @@ -391,7 +393,14 @@ overlays += back_icon return - +//UNCOMMENT THIS WHEN YOU UNCOMMENT CODE FOR DRESSING UP IAN +/*//Call when target overlay should be added/removed +/mob/living/simple_animal/friendly/corgi/update_targeted() + if(!targeted_by && target_locked) + del(target_locked) + regenerate_icons() + if (targeted_by && target_locked) + overlays += target_locked*/ /mob/living/simple_animal/corgi/puppy name = "\improper corgi puppy" @@ -406,4 +415,4 @@ if(href_list["remove_inv"] || href_list["add_inv"]) usr << "\red You can't fit this on [src]" return - ..() + ..() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index b2f2f33287f..d9ed6512a12 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -432,4 +432,12 @@ var/obj/mecha/M = target_mob if (M.occupant) return (0) - return (1) \ No newline at end of file + return (1) + +//Call when target overlay should be added/removed +/mob/living/simple_animal/update_targeted() + if(!targeted_by && target_locked) + del(target_locked) + overlays = null + if (targeted_by && target_locked) + overlays += target_locked \ No newline at end of file diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index a6c3ebe5877..e208c04638f 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -282,7 +282,7 @@ return 0 move_delay = world.time//set move delay - + mob.last_move_intent = world.time + 10 switch(mob.m_intent) if("run") if(mob.drowsyness > 0) diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 32ea610cd10..a6ae6dc4a09 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -5,7 +5,6 @@ return /mob/proc/update_icons() - world << "[src] CALLED THE MOB VERSION OF UPDATE_ICONS" return /mob/proc/update_hud() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index a44abf2a9ff..bf6bc3032c7 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -28,6 +28,8 @@ var/automatic = 0 //Used to determine if you can target multiple people. var/tmp/mob/living/last_moved_mob //Used to fire faster at more than one person. var/tmp/told_cant_shoot = 0 //So that it doesn't spam them with the fact they cannot hit them. + var/firerate = 1 // 0 for one bullet after tarrget moves and aim is lowered, + //1 for keep shooting until aim is lowered proc/load_into_chamber() return @@ -39,7 +41,7 @@ load_into_chamber() return 0 -//Removing the lock and the buttons. + //Removing the lock and the buttons. dropped(mob/user as mob) if(target) for(var/mob/living/M in target) @@ -59,19 +61,32 @@ for(var/obj/O in contents) O.emp_act(severity) -//Handling lowering yer gun. - attack_self() + verb/lower_aim() + set name = "Lower Aim" + set category = "Object" if(target) for(var/mob/living/M in target) if(M) M.NotTargeted(src) del(target) usr.visible_message("\blue \The [usr] lowers \the [src]...") - return 0 - return 1 + + //Clicking gun will still lower aim for guns that don't overwrite this + attack_self() + lower_aim() + + verb/toggle_firerate() + set name = "Toggle Firerate" + set category = "Object" + firerate = !firerate + if (firerate == 0) + loc << "You will now continue firing when your target moves." + else + loc << "You will now only fire once, then lower your aim, when your target moves." //Suiciding. attack(mob/living/M as mob, mob/living/user as mob, def_zone) + world << "[user] USED ATTACK()" if (M == user && user.zone_sel.selecting == "mouth" && load_into_chamber() && !mouthshoot) //Suicide handling. mouthshoot = 1 M.visible_message("\red \The [user] sticks their gun in their mouth, ready to pull the trigger...") @@ -117,11 +132,11 @@ update_icon() return else if(user.a_intent != "hurt" && load_into_chamber() && istype(in_chamber,/obj/item/projectile/energy/electrode)) //Point blank tasering. - /*if (M.canstun == 0 || M.canweaken == 0) + if (!(M.status_flags & CANSTUN) || !(M.status_flags & CANWEAKEN)) user.visible_message("\red \The [M] has been stunned with the taser gun by \the [user] to no effect!") del(in_chamber) update_icon() - return*/ + return if (prob(50)) if (M.paralysis < 60 && (!(HULK in M.mutations)) ) M.paralysis = 60 @@ -146,11 +161,57 @@ if(!load_into_chamber()) //No ammo, hit them! return ..() else + world << "\red PREFIRE IS CALLED TO SHOOT AT [M] BY [user]" PreFire(M,user) ///Otherwise, shoot! return else return ..() //Pistolwhippin' +//Compute how to fire..... + proc/PreFire(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, params) + //GraphicTrace(usr.x,usr.y,A.x,A.y,usr.z) + if(lock_time > world.time - 2) return //Lets not spam it. + if(!ismob(A)) //Didn't click someone, check if there is anyone along that guntrace +// var/mob/M = locate() in range(0,A) +// if(M && !ismob(A)) +// if(M.type == /mob) +// return FindTarget(M,user,params) + var/mob/M = GunTrace(usr.x,usr.y,A.x,A.y,usr.z,usr) //Find dat mob. + if(M && ismob(M) && isliving(M) && M in view(user)) + //if(!(M.client && M.client.admin_invis)) TODO: Look into admin invisibility in post-merge code + Aim(M) //Aha! Aim at them! + return + else if(!ismob(M) || (ismob(M) && !(M in view(user)))) //Nope! They weren't there! + world << "\red CLICKED BUT COULDN'T FIND MOB, FIRED" + Fire(A,user,params) //Fire like normal, then. + if(ismob(A) && isliving(A) && !(A in target)) + Aim(A) //Clicked a mob, aim at them. + else if(lock_time < world.time + 10) + world << "\red LOCK TIME IS > WORLD TIME, FIRED" + Fire(A,user,params) //Bang! + else if(!target) + world << "\red DIDN'T HAVE A TARGET, FIRED" + Fire(A,user,params) //Boom! + //else + //var/item/gun/G = usr.OHand + //if(!G) + //Fire(A,0) + //else if(istype(G)) + //G.Fire(A,3) + //Fire(A,2) + //else + //Fire(A) + // Stolen from sd_get_approx_dir, didn't want to reinclude + var/d=get_dir(usr,A) + var/dir_to_fire = d //Turn them to face their target. + if(d&d-1) // diagonal + var/ax=abs(usr.x-A.x) + var/ay=abs(usr.y-A.y) + if(ax>=ay<<1) dir_to_fire = d&12 // keep east/west (4 and 8) + else if(ay>=ax<<1) dir_to_fire = d&3 // keep north/south (1 and 2) + if(dir_to_fire != usr.dir) + usr.dir = dir_to_fire + proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)//TODO: go over this //Exclude lasertag guns from the CLUMSY check. @@ -158,7 +219,7 @@ if(istype(user, /mob/living)) var/mob/living/M = user if ((CLUMSY in M.mutations) && prob(50)) - M << "\red The [src.name] blows up in your face." + M << "\red The [src.name] blows up in your face!" M.take_organ_damage(0,20) M.drop_item() del(src) @@ -251,8 +312,6 @@ usr.visible_message("\red [usr] turns \the [src] on [M]!") else usr.visible_message("\red [usr] aims \a [src] at [M]!") - for(var/mob/K in viewers(usr)) - K << 'TargetOn.ogg' M.Targeted(src) @@ -291,6 +350,8 @@ else if(ay>=ax<<1) dir_to_fire = d&3 // keep north/south (1 and 2) if(dir_to_fire != M.dir) M.dir = dir_to_fire + if (!firerate) // If firerate is set to lower aim after one shot, untarget the target + T.NotTargeted(src) afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) if(flag) return //we're placing gun on a table or in backpack @@ -300,50 +361,6 @@ else Fire(A,user,params) //Otherwise, fire normally. -//Compute how to fire..... - proc/PreFire(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, params) - //GraphicTrace(usr.x,usr.y,A.x,A.y,usr.z) - if(lock_time > world.time - 2) return //Lets not spam it. - if(!ismob(A)) //Didn't click someone, check if there is anyone along that guntrace -// var/mob/M = locate() in range(0,A) -// if(M && !ismob(A)) -// if(M.type == /mob) -// return FindTarget(M,user,params) - var/mob/M = GunTrace(usr.x,usr.y,A.x,A.y,usr.z,usr) //Find dat mob. - if(M && ismob(M) && isliving(M) && M in view(user)) - //if(!(M.client && M.client.admin_invis)) TODO: Look into admin invisibility in post-merge code - Aim(M) //Aha! Aim at them! - return - else if(!ismob(M) || (ismob(M) && !(M in view(user)))) //Nope! They weren't there! - Fire(A,user,params) //Fire like normal, then. - if(ismob(A) && isliving(A) && !(A in target)) - Aim(A) //Clicked a mob, aim at them. - else if(lock_time < world.time + 10) - Fire(A,user,params) //Bang! - else if(!target) - Fire(A,user,params) //Boom! - //else - //var/item/gun/G = usr.OHand - //if(!G) - //Fire(A,0) - //else if(istype(G)) - //G.Fire(A,3) - //Fire(A,2) - //else - //Fire(A) - // Stolen from sd_get_approx_dir, didn't want to reinclude - var/d=get_dir(usr,A) - var/dir_to_fire = d //Turn them to face their target. - if(d&d-1) // diagonal - var/ax=abs(usr.x-A.x) - var/ay=abs(usr.y-A.y) - if(ax>=ay<<1) dir_to_fire = d&12 // keep east/west (4 and 8) - else if(ay>=ax<<1) dir_to_fire = d&3 // keep north/south (1 and 2) - if(dir_to_fire != usr.dir) - usr.dir = dir_to_fire - - - //Yay, math! #define SIGN(X) ((X<0)?-1:1) @@ -391,7 +408,7 @@ mob/var target_time = -100 last_move_intent = -100 last_target_click = -5 - obj/effect/target_locked/target_locked = null + target_locked = null mob/proc Targeted(var/obj/item/weapon/gun/I) //Self explanitory. @@ -399,12 +416,14 @@ mob/proc I.target = list(src) else if(I.automatic && I.target.len < 5) //Automatic weapon, they can hold down a room. I.target += src - else if(I.target.len >= 5) //Otherwise, they can just aim at one person. + else if(I.target.len >= 5) if(ismob(I.loc)) I.loc << "You can only target 5 people at once!" return else return + for(var/mob/K in viewers(usr)) + K << 'TargetOn.ogg' if(!targeted_by) targeted_by = list() targeted_by += I I.lock_time = world.time + 20 //Target has 2 second to realize they're targeted and stop (or target the opponent). @@ -414,20 +433,13 @@ mob/proc so try not to get on their bad side.\black ))" if(targeted_by.len == 1) spawn(0) - //target_locked = new /obj/effect/target_locked(src) //Add the overlay - //overlays += target_locked - spawn(0) //Make it show the 2 states properly - //if(target_locked) - // target_locked.icon_state = "locking" - //update_icons() - update_targeted() - //overlays += target_locked + target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locking") + overlays += target_locked + spawn(0) sleep(20) - //if(target_locked) - // target_locked.icon_state = "locked" - //update_icons() - update_targeted() - //overlays += target_locked + if(target_locked) + target_locked = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "locked") + update_targeted() var/mob/T = I.loc //Adding the buttons to the controler person if(T) @@ -436,12 +448,15 @@ mob/proc if(T.client) T.client.screen += T.item_use_icon T.client.screen += T.gun_move_icon - if(m_intent == "run" && T.client && T.client.target_can_move == 1 && T.client.target_can_run == 0) + else //If the client's gone, stop aiming + I.lower_aim() + return + if(m_intent == "run" && T.client.target_can_move == 1 && T.client.target_can_run == 0) src << "\red Your move intent is now set to walk, as your targeter permits it." //Self explanitory. m_intent = "walk" hud_used.move_intent.icon_state = "walking" while(targeted_by && T.client) - if(last_move_intent > I.lock_time + 10 && !T.client.target_can_move) //If the target moved while targeted + if(last_move_intent > I.lock_time + 10 && !T.client.target_can_move) //If target moved when not allowed to I.TargetActed(src) if(I.last_moved_mob == src) //If they were the last ones to move, give them more of a grace period, so that an automatic weapon can hold down a room better. I.lock_time = world.time + 5 @@ -465,7 +480,7 @@ mob/proc if(!I.silenced) for(var/mob/M in viewers(src)) M << 'TargetOff.ogg' - //del(target_locked) //Remove the overlay + del(target_locked) //Remove the overlay targeted_by -= I I.target.Remove(src) //De-target them if(!I.target.len) @@ -475,8 +490,8 @@ mob/proc del(T.item_use_icon) del(T.gun_move_icon) del(T.gun_run_icon) - //if(!targeted_by.len) del targeted_by - spawn(1) /*update_icons()*/ update_targeted() + if(!targeted_by.len) del targeted_by + spawn(1) update_targeted() /* Captive(var/obj/item/weapon/gun/I) Sound(src,'CounterAttack.ogg') @@ -505,15 +520,15 @@ mob/proc //Used to overlay the awesome stuff -/obj/effect +///obj/effect // target_locking // icon = 'icons/effects/Targeted.dmi' // icon_state = "locking" // layer = 99 - target_locked - icon = 'icons/effects/Targeted.dmi' - icon_state = "locked" - layer = 17.9 +// target_locked +// icon = 'icons/effects/Targeted.dmi' +// icon_state = "locking" +// layer = 17.9 // captured // icon = 'Captured.dmi' // layer = 99 @@ -521,9 +536,13 @@ mob/proc //If you move out of range, it isn't going to still stay locked on you any more. client/var target_can_move = 0 + move_dir = 2 target_can_run = 0 + run_dir = 2 target_can_click = 0 + click_dir = 2 gun_mode = 0 + mode_dir = 1 mob/Move() . = ..() for(var/obj/item/weapon/gun/G in targeted_by) //Handle moving out of the gunner's view. @@ -541,14 +560,18 @@ client/verb //These are called by the on-screen buttons, adjusting what the victim can and cannot do. AllowTargetMove() set hidden=1 - spawn(1) target_can_move = !target_can_move + target_can_move = !target_can_move + if (move_dir == 2) + move_dir = 1 + else + move_dir = 2 if(!target_can_move) // winset(usr,"default.target_can_move","is-flat=true;border=sunken") usr << "Target may now walk." usr.gun_run_icon = new /obj/screen/gun/run(null) screen += usr.gun_run_icon if(usr.gun_move_icon) - usr.gun_move_icon.dir = 1 + usr.gun_move_icon.dir = move_dir usr.gun_move_icon.name = "Disallow Walking" else // winset(usr,"default.target_can_move","is-flat=false;border=none") @@ -556,7 +579,7 @@ client/verb target_can_run = 0 del(usr.gun_run_icon) if(usr.gun_move_icon) - usr.gun_move_icon.dir = 2 + usr.gun_move_icon.dir = move_dir usr.gun_move_icon.name = "Allow Walking" for(var/obj/item/weapon/gun/G in usr) G.lock_time = world.time + 5 @@ -573,18 +596,22 @@ client/verb M << "\red Your character will now be shot if they move." AllowTargetRun() set hidden=1 - spawn(1) target_can_run = !target_can_run + target_can_run = !target_can_run + if (run_dir == 2) + run_dir = 1 + else + run_dir = 2 if(!target_can_run) // winset(usr,"default.target_can_move","is-flat=true;border=sunken") usr << "Target may now run." if(usr.gun_run_icon) - usr.gun_run_icon.dir = 1 + usr.gun_run_con.dir = run_dir usr.gun_run_icon.name = "Disallow Running" else // winset(usr,"default.target_can_move","is-flat=false;border=none") usr << "Target may no longer run." if(usr.gun_run_icon) - usr.gun_run_icon.dir = 2 + usr.gun_run_icon.dir = run_dir usr.gun_run_icon.name = "Allow Running" for(var/obj/item/weapon/gun/G in src) G.lock_time = world.time + 5 @@ -596,18 +623,22 @@ client/verb M << "\red Your character will now be shot if they run." AllowTargetClick() set hidden=1 - spawn(1) target_can_click = !target_can_click + target_can_click = !target_can_click + if (click_dir == 2) + click_dir = 1 + else + click_dir = 2 if(!target_can_click) // winset(usr,"default.target_can_click","is-flat=true;border=sunken") usr << "Target may now use items." if(usr.item_use_icon) - usr.item_use_icon.dir = 1 + usr.item_use_icon.dir = click_dir usr.item_use_icon.name = "Disallow Item Use" else // winset(usr,"default.target_can_click","is-flat=false;border=none") usr << "Target may no longer use items." if(usr.item_use_icon) - usr.item_use_icon.dir = 2 + usr.item_use_icon.dir = click_dir usr.item_use_icon.name = "Allow Item Use" for(var/obj/item/weapon/gun/G in src) G.lock_time = world.time + 5 @@ -619,18 +650,28 @@ client/verb M << "\red Your character will now be shot if they use items." ToggleGunMode() + world << "\red [usr] called ToggleGuMode BEFORE:" + world << "gun_mode = [gun_mode]" + world << "mode_dir = [mode_dir]" + world << "[usr].gun_setting_icon.dir = [usr.gun_setting_icon.dir]" set hidden = 1 - spawn(1) gun_mode = !gun_mode - if(!gun_mode) + gun_mode = !gun_mode + if (mode_dir == 1) + mode_dir = 2 + else if (mode_dir == 2) + mode_dir = 1 + if(gun_mode) // winset(usr,"default.target_can_click","is-flat=true;border=sunken") usr << "You will now take people captive." - if(usr.gun_setting_icon) - usr.gun_setting_icon.dir = 2 else // winset(usr,"default.target_can_click","is-flat=false;border=none") usr << "You will now shoot where you target." - if(usr.gun_setting_icon) - usr.gun_setting_icon.dir = 1 + if(usr.gun_setting_icon) + usr.gun_setting_icon.dir = mode_dir + world << "\red AFTER:" + world << "gun_mode = [gun_mode]" + world << "mode_dir = [mode_dir]" + world << "[usr].gun_setting_icon.dir = [usr.gun_setting_icon.dir]" /obj/item/weapon/gun/proc/isHandgun() - return 1 \ No newline at end of file + return 1 diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 70a21307644..aca91221415 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -7,6 +7,7 @@ caliber = "9mm" origin_tech = "combat=4;materials=2" ammo_type = "/obj/item/ammo_casing/c9mm" + automatic = 1 isHandgun() return 0 @@ -18,7 +19,7 @@ icon_state = "mini-uzi" w_class = 3.0 max_shells = 20 - caliber = ".45" + caliber = " .45" origin_tech = "combat=5;materials=2;syndicate=8" ammo_type = "/obj/item/ammo_casing/c45" diff --git a/icons/effects/Targeted.dmi b/icons/effects/Targeted.dmi index f0d4b95f64f9e147b6f549d70ff39674898bfb51..6d61505e6c5afdda88fc99f79fd81068bf350a11 100644 GIT binary patch delta 488 zcmaFL(!r|O8Q|y6%O%Cdz`(%k>ERLtqz?e`0v2W9b^rqdW4)(~V@O8h+v&b}hYSQ-=TBaiJ^SAp zZuN|*G73|R8p<56zij(0zmU&q({aW$!yQQ<_q85fzA@>HFc{^-nvd2v&1FZ@CA74wrnd1C*VYSi1yGmfYF0EG>P_TN^U|7eEwHM^(#*uPDG zuG~^_P_yO9X>%Q!o!?vK8xBAHxqP>JHACU~=m)mnGi~E5*lSX4EiOM<)VW$se6~a8 zrh{r-$~OHICOZ(Z0GAa(XTlroQ4kY_m=XiS^~P%O({>y`bR8Sgn2TLgeM!ik^Z Z{}}Y1MY?x|?E^&~gQu&X%Q~loCIA8b?G*q3 delta 453 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 Ef-H}7-~a#s delta 20930 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

ZCWn_ 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 From e3d326a199543214bac8fe70819a558cdf1de074 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 11 Dec 2012 12:34:39 +1000 Subject: [PATCH 013/163] new analysis machines, fleshed out some existing ones to be functional, new chemical reagents, Signed-off-by: Cael_Aislinn --- baystation12.dme | 235 +--------------- code/modules/mining/mine_turfs.dm | 8 +- .../research/xenoarchaeology/analysis.dm | 140 ++++++++++ .../xenoarchaeology/analysis_accelerator.dm | 6 + .../analysis_fourier_transform.dm | 36 +++ .../analysis_gas_chromatography.dm | 80 ++++++ .../xenoarchaeology/analysis_hyperspectral.dm | 6 + .../xenoarchaeology/analysis_ion_mobility.dm | 6 + .../xenoarchaeology/analysis_radiometric.dm | 6 + .../xenoarchaeology/analysis_scanner.dm | 8 + .../research/xenoarchaeology/archaeo_chem.dm | 48 +++- .../xenoarchaeology/archaeo_machinery.dm | 119 -------- .../research/xenoarchaeology/crystal.dm | 213 ++++++++++++++ .../modules/research/xenoarchaeology/finds.dm | 262 ------------------ .../research/xenoarchaeology/fossils.dm | 84 ++++++ .../research/xenoarchaeology/geosample.dm | 19 +- .../xenoarchaeology/global_placeholder.dm | 13 + icons/obj/device.dmi | Bin 17186 -> 17214 bytes 18 files changed, 667 insertions(+), 622 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/analysis.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_accelerator.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_fourier_transform.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_hyperspectral.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_ion_mobility.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_radiometric.dm create mode 100644 code/modules/research/xenoarchaeology/analysis_scanner.dm delete mode 100644 code/modules/research/xenoarchaeology/archaeo_machinery.dm create mode 100644 code/modules/research/xenoarchaeology/crystal.dm create mode 100644 code/modules/research/xenoarchaeology/fossils.dm create mode 100644 code/modules/research/xenoarchaeology/global_placeholder.dm diff --git a/baystation12.dme b/baystation12.dme index 9063b0fda61..8a293d2f4e6 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -7,229 +7,11 @@ // BEGIN_FILE_DIR #define FILE_DIR . #define FILE_DIR "code" -#define FILE_DIR "code/ATMOSPHERICS" -#define FILE_DIR "code/ATMOSPHERICS/components" -#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/unary" -#define FILE_DIR "code/controllers" -#define FILE_DIR "code/datums" -#define FILE_DIR "code/datums/diseases" -#define FILE_DIR "code/datums/helper_datums" -#define FILE_DIR "code/datums/organs" -#define FILE_DIR "code/datums/spells" -#define FILE_DIR "code/defines" -#define FILE_DIR "code/defines/obj" -#define FILE_DIR "code/defines/obj/clothing" -#define FILE_DIR "code/defines/procs" -#define FILE_DIR "code/defines/sd_procs" -#define FILE_DIR "code/FEA" -#define FILE_DIR "code/game" -#define FILE_DIR "code/game/area" -#define FILE_DIR "code/game/events" -#define FILE_DIR "code/game/events/EventProcs" -#define FILE_DIR "code/game/events/Events" -#define FILE_DIR "code/game/gamemodes" -#define FILE_DIR "code/game/gamemodes/autotraitor" -#define FILE_DIR "code/game/gamemodes/blob" -#define FILE_DIR "code/game/gamemodes/blob/blobs" -#define FILE_DIR "code/game/gamemodes/changeling" -#define FILE_DIR "code/game/gamemodes/cult" -#define FILE_DIR "code/game/gamemodes/epidemic" -#define FILE_DIR "code/game/gamemodes/events" -#define FILE_DIR "code/game/gamemodes/events/holidays" -#define FILE_DIR "code/game/gamemodes/extended" -#define FILE_DIR "code/game/gamemodes/malfunction" -#define FILE_DIR "code/game/gamemodes/meme" -#define FILE_DIR "code/game/gamemodes/meteor" -#define FILE_DIR "code/game/gamemodes/nuclear" -#define FILE_DIR "code/game/gamemodes/revolution" -#define FILE_DIR "code/game/gamemodes/sandbox" -#define FILE_DIR "code/game/gamemodes/traitor" -#define FILE_DIR "code/game/gamemodes/wizard" -#define FILE_DIR "code/game/jobs" -#define FILE_DIR "code/game/jobs/job" -#define FILE_DIR "code/game/machinery" -#define FILE_DIR "code/game/machinery/atmoalter" -#define FILE_DIR "code/game/machinery/bots" -#define FILE_DIR "code/game/machinery/camera" -#define FILE_DIR "code/game/machinery/computer" -#define FILE_DIR "code/game/machinery/doors" -#define FILE_DIR "code/game/machinery/embedded_controller" -#define FILE_DIR "code/game/machinery/kitchen" -#define FILE_DIR "code/game/machinery/pipe" -#define FILE_DIR "code/game/machinery/telecomms" -#define FILE_DIR "code/game/magic" -#define FILE_DIR "code/game/mecha" -#define FILE_DIR "code/game/mecha/combat" -#define FILE_DIR "code/game/mecha/equipment" -#define FILE_DIR "code/game/mecha/equipment/tools" -#define FILE_DIR "code/game/mecha/equipment/weapons" -#define FILE_DIR "code/game/mecha/medical" -#define FILE_DIR "code/game/mecha/working" -#define FILE_DIR "code/game/objects" -#define FILE_DIR "code/game/objects/closets" -#define FILE_DIR "code/game/objects/closets/secure" -#define FILE_DIR "code/game/objects/effects" -#define FILE_DIR "code/game/objects/effects/decals" -#define FILE_DIR "code/game/objects/effects/decals/Cleanable" -#define FILE_DIR "code/game/objects/effects/spawners" -#define FILE_DIR "code/game/objects/items" -#define FILE_DIR "code/game/objects/items/devices" -#define FILE_DIR "code/game/objects/items/devices/PDA" -#define FILE_DIR "code/game/objects/items/devices/radio" -#define FILE_DIR "code/game/objects/items/robot" -#define FILE_DIR "code/game/objects/items/stacks" -#define FILE_DIR "code/game/objects/items/stacks/sheets" -#define FILE_DIR "code/game/objects/items/stacks/tiles" -#define FILE_DIR "code/game/objects/items/weapons" -#define FILE_DIR "code/game/objects/items/weapons/grenades" -#define FILE_DIR "code/game/objects/items/weapons/implants" -#define FILE_DIR "code/game/objects/items/weapons/secstorage" -#define FILE_DIR "code/game/objects/items/weapons/storage" -#define FILE_DIR "code/game/objects/items/weapons/tanks" -#define FILE_DIR "code/game/objects/storage" -#define FILE_DIR "code/game/objects/structures" -#define FILE_DIR "code/game/objects/structures/crates_lockers" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" -#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" -#define FILE_DIR "code/game/player" -#define FILE_DIR "code/game/structure" -#define FILE_DIR "code/game/turfs" -#define FILE_DIR "code/game/turfs/simulated" -#define FILE_DIR "code/game/turfs/space" -#define FILE_DIR "code/game/turfs/unsimulated" -#define FILE_DIR "code/game/vehicles" -#define FILE_DIR "code/game/vehicles/airtight" -#define FILE_DIR "code/game/verbs" -#define FILE_DIR "code/js" -#define FILE_DIR "code/modules" -#define FILE_DIR "code/modules/admin" -#define FILE_DIR "code/modules/admin/DB ban" -#define FILE_DIR "code/modules/admin/permissionverbs" -#define FILE_DIR "code/modules/admin/verbs" -#define FILE_DIR "code/modules/assembly" -#define FILE_DIR "code/modules/awaymissions" -#define FILE_DIR "code/modules/awaymissions/maploader" -#define FILE_DIR "code/modules/chemical" -#define FILE_DIR "code/modules/client" -#define FILE_DIR "code/modules/clothing" -#define FILE_DIR "code/modules/clothing/glasses" -#define FILE_DIR "code/modules/clothing/gloves" -#define FILE_DIR "code/modules/clothing/head" -#define FILE_DIR "code/modules/clothing/masks" -#define FILE_DIR "code/modules/clothing/shoes" -#define FILE_DIR "code/modules/clothing/spacesuits" -#define FILE_DIR "code/modules/clothing/suits" -#define FILE_DIR "code/modules/clothing/under" -#define FILE_DIR "code/modules/clothing/under/jobs" -#define FILE_DIR "code/modules/clothing/uniforms" -#define FILE_DIR "code/modules/critters" -#define FILE_DIR "code/modules/critters/hivebots" -#define FILE_DIR "code/modules/customitems" -#define FILE_DIR "code/modules/DetectiveWork" -#define FILE_DIR "code/modules/flufftext" -#define FILE_DIR "code/modules/food" -#define FILE_DIR "code/modules/genetics" -#define FILE_DIR "code/modules/icon generation" -#define FILE_DIR "code/modules/library" -#define FILE_DIR "code/modules/liquid" -#define FILE_DIR "code/modules/maps" -#define FILE_DIR "code/modules/mining" -#define FILE_DIR "code/modules/mob" -#define FILE_DIR "code/modules/mob/dead" -#define FILE_DIR "code/modules/mob/dead/observer" -#define FILE_DIR "code/modules/mob/living" -#define FILE_DIR "code/modules/mob/living/blob" -#define FILE_DIR "code/modules/mob/living/carbon" -#define FILE_DIR "code/modules/mob/living/carbon/alien" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" -#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" -#define FILE_DIR "code/modules/mob/living/carbon/alien/special" -#define FILE_DIR "code/modules/mob/living/carbon/amorph" -#define FILE_DIR "code/modules/mob/living/carbon/brain" -#define FILE_DIR "code/modules/mob/living/carbon/human" -#define FILE_DIR "code/modules/mob/living/carbon/metroid" -#define FILE_DIR "code/modules/mob/living/carbon/monkey" -#define FILE_DIR "code/modules/mob/living/parasite" -#define FILE_DIR "code/modules/mob/living/silicon" -#define FILE_DIR "code/modules/mob/living/silicon/ai" -#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" -#define FILE_DIR "code/modules/mob/living/silicon/decoy" -#define FILE_DIR "code/modules/mob/living/silicon/pai" -#define FILE_DIR "code/modules/mob/living/silicon/robot" -#define FILE_DIR "code/modules/mob/living/simple_animal" -#define FILE_DIR "code/modules/mob/living/simple_animal/friendly" -#define FILE_DIR "code/modules/mob/living/simple_animal/hostile" -#define FILE_DIR "code/modules/mob/new_player" -#define FILE_DIR "code/modules/mob/simple_animal" -#define FILE_DIR "code/modules/paperwork" -#define FILE_DIR "code/modules/power" -#define FILE_DIR "code/modules/power/antimatter" -#define FILE_DIR "code/modules/power/singularity" -#define FILE_DIR "code/modules/power/singularity/particle_accelerator" -#define FILE_DIR "code/modules/projectiles" -#define FILE_DIR "code/modules/projectiles/ammunition" -#define FILE_DIR "code/modules/projectiles/guns" -#define FILE_DIR "code/modules/projectiles/guns/energy" -#define FILE_DIR "code/modules/projectiles/guns/projectile" -#define FILE_DIR "code/modules/projectiles/projectile" -#define FILE_DIR "code/modules/reagents" -#define FILE_DIR "code/modules/reagents/reagent_containers" -#define FILE_DIR "code/modules/reagents/reagent_containers/food" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" -#define FILE_DIR "code/modules/recycling" -#define FILE_DIR "code/modules/research" -#define FILE_DIR "code/modules/research/xenoarchaeology" -#define FILE_DIR "code/modules/scripting" -#define FILE_DIR "code/modules/scripting/AST" -#define FILE_DIR "code/modules/scripting/AST/Operators" -#define FILE_DIR "code/modules/scripting/Implementations" -#define FILE_DIR "code/modules/scripting/Interpreter" -#define FILE_DIR "code/modules/scripting/Parser" -#define FILE_DIR "code/modules/scripting/Scanner" -#define FILE_DIR "code/modules/security levels" #define FILE_DIR "code/TriDimension" -#define FILE_DIR "code/unused" -#define FILE_DIR "code/unused/beast" -#define FILE_DIR "code/unused/computer2" -#define FILE_DIR "code/unused/disease2" -#define FILE_DIR "code/unused/gamemodes" -#define FILE_DIR "code/unused/hivebot" -#define FILE_DIR "code/unused/mining" -#define FILE_DIR "code/unused/optics" -#define FILE_DIR "code/unused/pda2" -#define FILE_DIR "code/unused/powerarmor" -#define FILE_DIR "code/unused/spacecraft" #define FILE_DIR "code/WorkInProgress" -#define FILE_DIR "code/WorkInProgress/AI_Visibility" -#define FILE_DIR "code/WorkInProgress/animusstation" -#define FILE_DIR "code/WorkInProgress/Apples" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" -#define FILE_DIR "code/WorkInProgress/carn" -#define FILE_DIR "code/WorkInProgress/Chinsky" -#define FILE_DIR "code/WorkInProgress/mapload" -#define FILE_DIR "code/WorkInProgress/Mini" -#define FILE_DIR "code/WorkInProgress/Mloc" -#define FILE_DIR "code/WorkInProgress/organs" -#define FILE_DIR "code/WorkInProgress/Ported" -#define FILE_DIR "code/WorkInProgress/Ported/Abi79" -#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy" -#define FILE_DIR "code/WorkInProgress/Ported/Spawners" -#define FILE_DIR "code/WorkInProgress/SkyMarshal" -#define FILE_DIR "code/WorkInProgress/Tastyfish" -#define FILE_DIR "code/WorkInProgress/virus2" -#define FILE_DIR "code/WorkInProgress/virus2/Disease2" -#define FILE_DIR "code/WorkInProgress/Wrongnumber" -#define FILE_DIR "code/ZAS" #define FILE_DIR "html" #define FILE_DIR "icons" #define FILE_DIR "icons/48x48" @@ -238,6 +20,7 @@ #define FILE_DIR "icons/misc" #define FILE_DIR "icons/mob" #define FILE_DIR "icons/mob/human_races" +#define FILE_DIR "icons/mob/skin" #define FILE_DIR "icons/obj" #define FILE_DIR "icons/obj/assemblies" #define FILE_DIR "icons/obj/atmospherics" @@ -251,9 +34,7 @@ #define FILE_DIR "icons/turf" #define FILE_DIR "icons/vehicles" #define FILE_DIR "icons/vending_icons" -#define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" #define FILE_DIR "sound/ambience" @@ -268,8 +49,6 @@ #define FILE_DIR "sound/violin" #define FILE_DIR "sound/voice" #define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES @@ -1293,9 +1072,16 @@ #include "code\modules\research\research.dm" #include "code\modules\research\research_shuttle.dm" #include "code\modules\research\server.dm" +#include "code\modules\research\xenoarchaeology\analysis.dm" +#include "code\modules\research\xenoarchaeology\analysis_accelerator.dm" +#include "code\modules\research\xenoarchaeology\analysis_fourier_transform.dm" +#include "code\modules\research\xenoarchaeology\analysis_gas_chromatography.dm" +#include "code\modules\research\xenoarchaeology\analysis_hyperspectral.dm" +#include "code\modules\research\xenoarchaeology\analysis_ion_mobility.dm" +#include "code\modules\research\xenoarchaeology\analysis_radiometric.dm" +#include "code\modules\research\xenoarchaeology\analysis_scanner.dm" #include "code\modules\research\xenoarchaeology\archaeo_chem.dm" #include "code\modules\research\xenoarchaeology\archaeo_excavate.dm" -#include "code\modules\research\xenoarchaeology\archaeo_machinery.dm" #include "code\modules\research\xenoarchaeology\archaeo_tools.dm" #include "code\modules\research\xenoarchaeology\artifact.dm" #include "code\modules\research\xenoarchaeology\artifact_analysis.dm" @@ -1306,8 +1092,11 @@ #include "code\modules\research\xenoarchaeology\artifact_synthetic.dm" #include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" +#include "code\modules\research\xenoarchaeology\crystal.dm" #include "code\modules\research\xenoarchaeology\finds.dm" +#include "code\modules\research\xenoarchaeology\fossils.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" +#include "code\modules\research\xenoarchaeology\global_placeholder.dm" #include "code\modules\research\xenoarchaeology\readme.dm" #include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 192446d262b..39a7add1dba 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -36,6 +36,8 @@ /turf/simulated/mineral/New() + src.geological_data = new /datum/geosample(src) + spawn(1) var/turf/T if((istype(get_step(src, NORTH), /turf/simulated/floor)) || (istype(get_step(src, NORTH), /turf/space)) || (istype(get_step(src, NORTH), /turf/simulated/shuttle/floor))) @@ -55,9 +57,6 @@ if (T) T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6) - src.geological_data = new /datum/geosample - src.geological_data.UpdateTurf(src) - if (mineralName && mineralAmt && spread && spreadChance) if(prob(spreadChance)) if(istype(get_step(src, SOUTH), /turf/simulated/mineral/random)) @@ -286,8 +285,7 @@ O = new /obj/item/weapon/ore/clown(src) if(O) if(!src.geological_data) - src.geological_data = new /datum/geosample - src.geological_data.UpdateTurf(src) + src.geological_data = new /datum/geosample(src) O.geological_data = src.geological_data if (prob(src.artifactChance)) diff --git a/code/modules/research/xenoarchaeology/analysis.dm b/code/modules/research/xenoarchaeology/analysis.dm new file mode 100644 index 00000000000..0dc309a3d39 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis.dm @@ -0,0 +1,140 @@ + +/obj/machinery/anomaly + anchored = 1 + density = 1 + // + var/obj/item/weapon/reagent_containers/glass/held_container + var/obj/item/weapon/tank/fuel_container + var/scan_time = 30 //change to 300 later + var/report_num = 0 + var/scanning = 0 + var/safety_enabled = 1 + var/warning_given = 0 + var/heat_accumulation_rate = 0 + var/temperature = 273 //measured in kelvin, if this exceeds 1200, the machine is damaged and requires repairs + //if this exceeds 600 and safety is enabled it will shutdown + //temp greater than 600 also requires a safety prompt to initiate scanning + var/scanner_dir = 0 + var/obj/machinery/anomaly/scanner/owned_scanner = null + +/obj/machinery/anomaly/New() + //connect to a nearby scanner pad + if(scanner_dir) + scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, scanner_dir) + if(!scanner) + scanner = locate(/obj/machinery/anomaly/scanner) in orange(1) + +//this proc should be overriden by each individual machine +/obj/machinery/anomaly/attack_hand(var/mob/user as mob) + if(stat & (NOPOWER|BROKEN)) + return + user.machine = src + var/dat = "[src.name]
" + dat += "[scanner ? "Scanner connected." : "Scanner disconnected."]" + dat += "Module heat level:[temperature] kelvin
" + dat += "Safeties set at 600k, shielding failure at 1200k. Failure to maintain safe heat levels may result in equipment damage.
" + dat += "


" + dat += "[held_container ? "Eject beaker" : "No beaker inserted."]
" + dat += "[held_container ? "Eject fuel tank" : "No fuel tank inserted."]
" + dat += "Begin scanning" + dat += "
" + dat += "Refresh
" + dat += "Close
" + user << browse(dat, "window=anomaly;size=450x500") + onclose(user, "anomaly") + +obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) + if(istype(W, /obj/item/weapon/reagent_containers/glass)) + //var/obj/item/weapon/reagent_containers/glass/G = W + if(held_container) + user << "\red You must remove the [held_container] first." + else + user << "\blue You put the [held_container] into the [src]." + user.drop_item(W) + held_container.loc = src + held_container = W + updateDialog() + + else if(istype(W, /obj/item/weapon/tank)) + //var/obj/item/weapon/reagent_containers/glass/G = W + if(fuel_container) + user << "\red You must remove the [fuel_container] first." + else + user << "\blue You put the [fuel_container] into the [src]." + user.drop_item(W) + fuel_container.loc = src + fuel_container = W + updateDialog() + else + return ..() + +/obj/machinery/anomaly/process() + //not sure if everything needs to heat up, or just the GLPC + var/environmental_temp = loc.return_air().temperature + if(scanning) + //heat up as we go, but if the air is freezing then heat up much slower + var/new_heat = heat_accumulation_rate + heat_accumulation_rate * rand(-0.5,0.5) + if(environmental_temp < 273) + new_heat /= 2 + temperature += new_heat + if(temperature >= 600) + if(!warning_given || temperature >= 1200) + src.visible_message("The [src] bleets.", 2) + warning_given = 1 + if(safety_enabled) + scanning = 0 + else if(temperature > environmental_temp) + //cool down to match the air + temperature -= 10 + rand(-5,5) + if(temperature < environmental_temp + temperature = environmental_temp + else if(temperature < environmental_temp) + //heat up to match the air + temperature += 10 + rand(-5,5) + if(temperature > environmental_temp + temperature = environmental_temp + +obj/machinery/anomaly/proc/ScanResults() + //instantiate in children to produce unique scan behaviour + return "Error initialising scanning components." + +obj/machinery/anomaly/proc/BeginScan() + var/total_scan_time = scan_time + scan_time * rand(-0.5, 0.5) + + scanning = 1 + spawn(total_scan_time) + if(scanning) + scanning = 0 + + //determine the results and print a report + if(held_container) + src.visible_message("The [src] chimes.", 2) + var/obj/item/weapon/paper/P = new(src.loc) + P.name = "[src] analysis report #[++report_num]" + P.info = "[src] analysis report #[report_num]

" + ScanResults() + P.stamped = list(/obj/item/weapon/stamp) + P.overlays = list("paper_stamped") + else + src.visible_message("The [src] buzzes.", 2) + +obj/machinery/anomaly/Topic(href, href_list) + if(href_list["close"]) + usr << browse(null, "window=anomaly") + usr.machine = null + if(href_list["eject_beaker"]) + held_container.loc = src.loc + held_container = null + if(href_list["eject_fuel"]) + fuel_container.loc = src.loc + fuel_container = null + if(href_list["begin"]) + if(temperature >= 600) + var/proceed = input("Unsafe internal temperature detected, do you wish to continue?","Warning") + if(proceed) + safety_enabled = 0 + BeginScan() + else + BeginScan() + + ..() + updateDialog() diff --git a/code/modules/research/xenoarchaeology/analysis_accelerator.dm b/code/modules/research/xenoarchaeology/analysis_accelerator.dm new file mode 100644 index 00000000000..1e15854e847 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_accelerator.dm @@ -0,0 +1,6 @@ + +obj/machinery/anomaly/accelerator + name = "Accelerator Spectrometer" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" diff --git a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm new file mode 100644 index 00000000000..597ee1817be --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm @@ -0,0 +1,36 @@ + +obj/machinery/anomaly/fourier_transform + name = "Fourier Transform spectroscope" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" + +obj/machinery/anomaly/fourier_transform/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R,datum/reagent/density_separated_liquid)) + scanned_sample = R.data + else if(istype(R,datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.type + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + //all necessary components are present + var/specifity = GetResultSpecifity(scanned_sample, carrier) + var/distance = scanned_sample.artifact_distance + if(specifity > 0.6) + artifact_distance += rand(-0.1, 0.1) * artifact_distance + else + var/offset = 1 - specifity + artifact_distance += rand(-offset, offset) * artifact_distance + results = "Anomalous energy absorption through carrier ([carrier.id]) indicates emission radius: [artifact_distance]" + + return results diff --git a/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm b/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm new file mode 100644 index 00000000000..fbbb7fe47e4 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm @@ -0,0 +1,80 @@ + +obj/machinery/anomaly/gas_chromatography + name = "Gas Chromatography Spectrometer" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" + +obj/machinery/anomaly/gas_chromatography/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R,datum/reagent/density_separated_liquid)) + scanned_sample = R.data + else if(istype(R,datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.type + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + //all necessary components are present + results = "Carrier ([carrier.id]) specifity: [GetResultSpecifity(scanned_sample, carrier)]" + + return results + +obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/datum/reagent/carrier) + var/specifity = 0 + if(scanned_sample && carrier) + var/threshold = 0.6 + + if(scanned_sample.main_find == carrier.id) + specifity += threshold + rand(0, 1 - threshold) + if(scanned_sample.secondary_find == carrier.id) + specifity += threshold + rand(0, 1 - threshold) + + /* + //check the main turf + if(scanned_sample.main_find == FIND_NOTHING) + //nothing? + else if(scanned_sample.main_find == FIND_PLANT || scanned_sample.main_find == FIND_BIO || scanned_sample.main_find == FIND_SKULL) + //preserved plant or animal + if(carrier.id == "carbon") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_METEORIC) + //deep space + if(carrier.id == "neon") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_ICE) + //solid h20 + if(carrier.id == "beryllium") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_IGNEOUS || scanned_sample.main_find == FIND_METAMORPHIC || scanned_sample.main_find == FIND_CARBONATE) + //rock + if(carrier.id == "calcium" || carrier.id == "chlorine") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_CRYSTALLINE) + //some kind of refractive, crystalline matter + if(carrier.id == "helium") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_METALLIC) + //something metal (could be just ores, not necessarily a synthetic artifact) + if(carrier.id == "silicon") + specifity += threshold + rand(0,1 - threshold) + else if(scanned_sample.main_find == FIND_SEDIMENTARY) + //sandy rock + if(carrier.id == "aluminium") + specifity += threshold + rand(0,1 - threshold) + */ + + if(specifity > 1) + specifity = 0.9 + rand(0,0.1) + else if(specifity <= 0) + specifity += rand(0, threshold) + + return specifity diff --git a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm new file mode 100644 index 00000000000..08f1d85cded --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm @@ -0,0 +1,6 @@ + +obj/machinery/anomaly/hyperspectral + name = "Hypospectral Imager" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" diff --git a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm new file mode 100644 index 00000000000..21dc0ad52fc --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm @@ -0,0 +1,6 @@ + +obj/machinery/anomaly/ion_mobility + name = "Ion Mobility Spectrometer" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" diff --git a/code/modules/research/xenoarchaeology/analysis_radiometric.dm b/code/modules/research/xenoarchaeology/analysis_radiometric.dm new file mode 100644 index 00000000000..9b9b280b2c4 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_radiometric.dm @@ -0,0 +1,6 @@ + +obj/machinery/anomaly/radiometric + name = "Isotope ratio spectrometre" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" diff --git a/code/modules/research/xenoarchaeology/analysis_scanner.dm b/code/modules/research/xenoarchaeology/analysis_scanner.dm new file mode 100644 index 00000000000..9c5bfa0fa47 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_scanner.dm @@ -0,0 +1,8 @@ + +/obj/machinery/anomaly/scanner + name = "scanner pad" + desc = "Place larger objects here for scanning." + icon = 'stationobjs.dmi' + icon_state = "tele0" + anchored = 1 + density = 0 diff --git a/code/modules/research/xenoarchaeology/archaeo_chem.dm b/code/modules/research/xenoarchaeology/archaeo_chem.dm index 1ebbe66111e..c12a530a7ff 100644 --- a/code/modules/research/xenoarchaeology/archaeo_chem.dm +++ b/code/modules/research/xenoarchaeology/archaeo_chem.dm @@ -2,19 +2,45 @@ //chemistry stuff here so that it can be easily viewed/modified datum reagent - tungsten //used purely to make lith-sodi-tungs + tungsten //purely used to make lith-sodi-tungs name = "Tungsten" id = "tungsten" description = "A chemical element, and a strong oxidising agent." reagent_state = SOLID - color = "#808080" // rgb: 128, 128, 128, meant to be a silvery grey but idrc + color = "#808080" // rgb: 128, 128, 128 + //todo: make this silvery grey + + neon //purely used as a carrier + name = "Neon" + id = "neon" + description = "A chemical element, commonly used in lighting." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this fluro/bright purple + + beryllium //purely used as a carrier + name = "Beryllium" + id = "beryllium" + description = "A chemical element, prized for it's rigidity, thermal stability and low density when used in alloys." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this dark grey + + calcium //purely used as a carrier + name = "Calcium" + id = "calcium" + description = "An extremely common chemical element found throughout living organisms." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this bone-white colour lithiumsodiumtungstate name = "Lithium Sodium Tungstate" id = "lithiumsodiumtungstate" description = "A reducing agent for geological compounds." reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128, again, silvery grey + color = "#808080" // rgb: 128, 128, 128 + //todo: make this silvery grey ground_rock name = "Ground Rock" @@ -25,7 +51,7 @@ datum //todo: make this brown density_separated_sample - name = "Analysis sample" + name = "Analysis liquid" id = "density_separated_sample" description = "A watery paste used in chemical analysis." reagent_state = LIQUID @@ -33,7 +59,7 @@ datum //todo: make this browny-white analysis_sample - name = "Analysis sample" + name = "Analysis liquid" id = "analysis_sample" description = "A watery paste used in chemical analysis." reagent_state = LIQUID @@ -73,3 +99,15 @@ datum required_reagents = list("density_separated_sample" = 5) result_amount = 4 requires_heating = 1 + +/obj/item/weapon/reagent_containers/glass/solution_tray + icon = 'icons/obj/device.dmi' + icon_state = "solution_tray" + desc = "A small, open-topped glass container for delicate research samples." + m_amt = 0 + g_amt = 5 + w_class = 1.0 + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1) + volume = 2 + flags = FPRINT | OPENCONTAINER diff --git a/code/modules/research/xenoarchaeology/archaeo_machinery.dm b/code/modules/research/xenoarchaeology/archaeo_machinery.dm deleted file mode 100644 index c0534a43a65..00000000000 --- a/code/modules/research/xenoarchaeology/archaeo_machinery.dm +++ /dev/null @@ -1,119 +0,0 @@ -obj/machinery/gas_chromatography - name = "Gas Chromatography Spectrometer" - desc = "A specialised mass spectrometer." - icon = 'virology.dmi' - icon_state = "analyser" - -obj/machinery/gas_chromatography/Topic(href, href_list) - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - updateDialog() - -obj/machinery/gas_chromatography/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Gas Chromatography Spectrometer
" - dat += "
" - dat += "Refresh
" - dat += "
Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") - -obj/machinery/accelerator - name = "Accelerator Spectrometer" - desc = "A specialised mass spectrometer." - icon = 'virology.dmi' - icon_state = "analyser" - -obj/machinery/accelerator/Topic(href, href_list) - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - updateDialog() - -obj/machinery/accelerator/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Accelerator Spectrometer
" - dat += "
" - dat += "
Refresh
" - dat += "
Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") - -obj/machinery/fourier_transform - name = "Fourier Transform Spectroscope" - desc = "A specialised geochemical analysis device." - icon = 'virology.dmi' - icon_state = "analyser" - -obj/machinery/fourier_transform/Topic(href, href_list) - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - updateDialog() - -obj/machinery/fourier_transform/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Fourier Transform Spectroscope
" - dat += "
" - dat += "
Refresh
" - dat += "
Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") - -obj/machinery/radiometric - name = "Radiometric Exposure Spectrometer" - desc = "A specialised mass spectrometer, able to radiometrically date inserted materials." - icon = 'virology.dmi' - icon_state = "analyser" - -obj/machinery/radiometric/Topic(href, href_list) - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - updateDialog() - -obj/machinery/radiometric/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Radiometric Exposure Spectrometer
" - dat += "
" - dat += "
Refresh
" - dat += "
Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") - -obj/machinery/ion_mobility - name = "Ion Mobility Spectrometer" - desc = "A specialised mass spectrometer." - icon = 'virology.dmi' - icon_state = "analyser" - -obj/machinery/ion_mobility/Topic(href, href_list) - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - updateDialog() - -obj/machinery/ion_mobility/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Ion Mobility Spectrometer
" - dat += "
" - dat += "
Refresh
" - dat += "
Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") diff --git a/code/modules/research/xenoarchaeology/crystal.dm b/code/modules/research/xenoarchaeology/crystal.dm new file mode 100644 index 00000000000..ec2aaff7761 --- /dev/null +++ b/code/modules/research/xenoarchaeology/crystal.dm @@ -0,0 +1,213 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// crystals + +/obj/item/weapon/crystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal" + +//needs to be solid to have collision, but shouldn't block movement +/*/obj/item/weapon/crystal/bullet_act(var/obj/item/projectile/P) + if(istype(P,/obj/item/projectile/beam/emitter)) + switch(rand(0,3)) + if(0) + var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) + A.dir = 1 + A.yo = 20 + A.xo = 0 + if(0) + var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) + A.dir = 2 + A.yo = -20 + A.xo = 0 + if(0) + var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) + A.dir = 4 + A.yo = 0 + A.xo = 20 + if(0) + var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) + A.dir = 8 + A.yo = 0 + A.xo = -20 + else + ..()*/ + +/obj/item/weapon/talkingcrystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal2" + var/list/list/words = list() + var/lastsaid + +/obj/item/weapon/talkingcrystal/New() + spawn(100) + process() + +//needs to be solid to have collision, but shouldn't block movement +/*/obj/item/weapon/talkingcrystal/bullet_act(var/obj/item/projectile/P) + if(istype(P,/obj/item/projectile/beam)) + switch(rand(0,3)) + if(0) + var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) + A.dir = pick(alldirs) + A.yo = 20 + A.xo = 0 + if(0) + var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) + A.dir = pick(alldirs) + A.yo = -20 + A.xo = 0 + if(0) + var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) + A.dir = pick(alldirs) + A.yo = 0 + A.xo = 20 + if(0) + var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) + A.dir = pick(alldirs) + A.yo = 0 + A.xo = -20 + var/word = pick("pain","hurt","masochism","sadist","rage","repressed","ouch","evil","void","kill","destroy") + SaySomething(word) + else + ..()*/ + +/obj/item/weapon/talkingcrystal/proc/catchMessage(var/msg, var/mob/source) + var/list/seperate = list() + if(findtext(msg,"((")) + return + else if(findtext(msg,"))")) + return + else if(findtext(msg," ")==0) + return + else + /*var/l = lentext(msg) + if(findtext(msg," ",l,l+1)==0) + msg+=" "*/ + seperate = stringsplit(msg, " ") + + var/addressing_crystal = 0 + if("crystal" in seperate || "gem" in seperate) + addressing_crystal = 1 + + for(var/Xa = 1,Xa 20 + rand(10,20)) + words.Remove(words[1]) + if(!words["[lowertext(seperate[Xa])]"]) + words["[lowertext(seperate[Xa])]"] = list() + var/list/w = words["[lowertext(seperate[Xa])]"] + if(w) + w.Add("[lowertext(seperate[next])]") + //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" + + for(var/mob/O in viewers(src)) + O.show_message("\blue The crystal hums for bit then stops...", 1) + if(!rand(0, 5 - addressing_crystal * 3)) + spawn(2) SaySomething(pick(seperate)) + +/obj/item/weapon/talkingcrystal/proc/debug() + //set src in view() + for(var/v in words) + world << "[uppertext(v)]" + var/list/d = words["[v]"] + for(var/X in d) + world << "[X]" + +/obj/item/weapon/talkingcrystal/proc/SaySomething(var/word = null) + + var/msg + var/limit = rand(max(5,words.len/2))+3 + var/text + if(!word) + text = "[pick(words)]" + else + text = pick(stringsplit(word, " ")) + if(lentext(text)==1) + text=uppertext(text) + else + var/cap = copytext(text,1,2) + cap = uppertext(cap) + cap += copytext(text,2,lentext(text)+1) + text=cap + var/q = 0 + msg+=text + if(msg=="What" | msg == "Who" | msg == "How" | msg == "Why" | msg == "Are") + q=1 + + text=lowertext(text) + for(var/ya,ya <= limit,ya++) + + if(words.Find("[text]")) + var/list/w = words["[text]"] + text=pick(w) + else + text = "[pick(words)]" + msg+=" [text]" + if(q) + msg+="?" + else + if(rand(0,10)) + msg+="." + else + msg+="!" + + var/list/listening = viewers(src) + for(var/mob/M in world) + if (!M.client) + continue //skip monkeys and leavers + if (istype(M, /mob/new_player)) + continue + if(M.stat == 2 && M.client.ghost_ears) + listening|=M + + for(var/mob/M in listening) + M << "The crystal reverberates, \blue\"[msg]\"" + lastsaid = world.timeofday + rand(300,800) + +/obj/item/weapon/talkingcrystal/process() + if(prob(25) && world.timeofday >= lastsaid && words.len >= 1) + SaySomething() + spawn(100) + process() + + + + +//sentient crystals +/mob/sentient_crystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal2" + var/list/list/words = list() + var/lastsaid + +/mob/sentient_crystal/proc/catchMessage(var/msg, var/mob/source) + var/list/seperate = list() + if(findtext(msg,"((")) + return + else if(findtext(msg,"))")) + return + else + /*var/l = lentext(msg) + if(findtext(msg," ",l,l+1)==0) + msg+=" "*/ + seperate = stringsplit(msg, " ") + + for(var/Xa = 1,Xa 20 + rand(10,20)) + words.Remove(words[1]) + if(!words["[lowertext(seperate[Xa])]"]) + words["[lowertext(seperate[Xa])]"] = list() + var/list/w = words["[lowertext(seperate[Xa])]"] + if(w) + w.Add("[lowertext(seperate[next])]") + //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" + + for(var/mob/O in viewers(src)) + O.show_message("\blue The crystal hums for bit then stops...", 1) + +/mob/sentient_crystal/Life() \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index 082f20ebb32..2521f8bcf4f 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -83,265 +83,3 @@ M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) return 1 */ - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// crystals - -/obj/item/weapon/crystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal" - -/obj/item/weapon/crystal/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/beam/emitter)) - switch(rand(0,3)) - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 1 - A.yo = 20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 2 - A.yo = -20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 4 - A.yo = 0 - A.xo = 20 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 8 - A.yo = 0 - A.xo = -20 - else - ..() - -/obj/item/weapon/talkingcrystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal2" - var/list/list/words = list() - var/lastsaid - -/obj/item/weapon/talkingcrystal/New() - spawn(100) - process() - -/obj/item/weapon/talkingcrystal/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/beam)) - switch(rand(0,3)) - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = -20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 0 - A.xo = 20 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 0 - A.xo = -20 - var/word = pick("pain","hurt","masochism","sadist","rage","repressed","ouch","evil","void","kill","destroy") - SaySomething(word) - else - ..() - -/obj/item/weapon/talkingcrystal/proc/catchMessage(var/msg, var/mob/source) - var/list/seperate = list() - if(findtext(msg,"((")) - return - else if(findtext(msg,"))")) - return - else if(findtext(msg," ")==0) - return - else - /*var/l = lentext(msg) - if(findtext(msg," ",l,l+1)==0) - msg+=" "*/ - seperate = stringsplit(msg, " ") - - var/addressing_crystal = 0 - if("crystal" in seperate || "gem" in seperate) - addressing_crystal = 1 - - for(var/Xa = 1,Xa 20 + rand(10,20)) - words.Remove(words[1]) - if(!words["[lowertext(seperate[Xa])]"]) - words["[lowertext(seperate[Xa])]"] = list() - var/list/w = words["[lowertext(seperate[Xa])]"] - if(w) - w.Add("[lowertext(seperate[next])]") - //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" - - for(var/mob/O in viewers(src)) - O.show_message("\blue The crystal hums for bit then stops...", 1) - if(!rand(0, 5 - addressing_crystal * 3)) - spawn(2) SaySomething(pick(seperate)) - -/obj/item/weapon/talkingcrystal/proc/debug() - //set src in view() - for(var/v in words) - world << "[uppertext(v)]" - var/list/d = words["[v]"] - for(var/X in d) - world << "[X]" - -/obj/item/weapon/talkingcrystal/proc/SaySomething(var/word = null) - - var/msg - var/limit = rand(max(5,words.len/2))+3 - var/text - if(!word) - text = "[pick(words)]" - else - text = pick(stringsplit(word, " ")) - if(lentext(text)==1) - text=uppertext(text) - else - var/cap = copytext(text,1,2) - cap = uppertext(cap) - cap += copytext(text,2,lentext(text)+1) - text=cap - var/q = 0 - msg+=text - if(msg=="What" | msg == "Who" | msg == "How" | msg == "Why" | msg == "Are") - q=1 - - text=lowertext(text) - for(var/ya,ya <= limit,ya++) - - if(words.Find("[text]")) - var/list/w = words["[text]"] - text=pick(w) - else - text = "[pick(words)]" - msg+=" [text]" - if(q) - msg+="?" - else - if(rand(0,10)) - msg+="." - else - msg+="!" - - var/list/listening = viewers(src) - for(var/mob/M in world) - if (!M.client) - continue //skip monkeys and leavers - if (istype(M, /mob/new_player)) - continue - if(M.stat == 2 && M.client.ghost_ears) - listening|=M - - for(var/mob/M in listening) - M << "The crystal reverberates, \blue\"[msg]\"" - lastsaid = world.timeofday + rand(300,800) - -/obj/item/weapon/talkingcrystal/process() - if(prob(25) && world.timeofday >= lastsaid && words.len >= 1) - SaySomething() - spawn(100) - process() - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// fossils - -/obj/item/weapon/fossil - name = "Fossil" - icon = 'fossil.dmi' - icon_state = "bone" - desc = "It's a fossil." - -/obj/item/weapon/fossil/base/New() - spawn(0) - var/list/l = list("/obj/item/weapon/fossil/bone"=8,"/obj/item/weapon/fossil/skull"=2, - "/obj/item/weapon/fossil/skull/horned"=2,"/obj/item/weapon/fossil/shell"=1) - var/t = pickweight(l) - new t(src.loc) - del src - -/obj/item/weapon/fossil/bone - name = "Fossilised bone" - icon_state = "bone" - desc = "It's a fossilised bone." - -/obj/item/weapon/fossil/shell - name = "Fossilised shell" - icon_state = "shell" - desc = "It's a fossilised shell." - -/obj/item/weapon/fossil/skull/horned - icon_state = "hskull" - desc = "It's a fossilised, horned skull." - -/obj/item/weapon/fossil/skull - name = "Fossilised skull" - icon_state = "skull" - desc = "It's a fossilised skull." - -/obj/item/weapon/fossil/skull/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/fossil/bone)) - var/obj/o = new /obj/skeleton(get_turf(src)) - var/a = new /obj/item/weapon/fossil/bone - var/b = new src.type - o.contents.Add(a) - o.contents.Add(b) - del W - del src - -/obj/skeleton - name = "Incomplete skeleton" - icon = 'fossil.dmi' - icon_state = "uskel" - desc = "Incomplete skeleton." - var/bnum = 1 - var/breq - var/bstate = 0 - -/obj/skeleton/New() - src.breq = rand(6)+3 - src.desc = "An incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." - -/obj/skeleton/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/fossil/bone)) - if(!bstate) - bnum++ - src.contents.Add(new/obj/item/weapon/fossil/bone) - del W - if(bnum==breq) - usr = user - icon_state = "skel" - var/creaturename = input("Input a name for your discovery:","Name your discovery","Spaceosaurus") - src.bstate = 1 - src.density = 1 - src.name = "[creaturename] skeleton" - if(src.contents.Find(/obj/item/weapon/fossil/skull/horned)) - src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull, the plaque reads [creaturename]." - else - src.desc = "A creature made of [src.contents.len-1] assorted bones and a skull, the plaque reads [creaturename]." - else - src.desc = "Incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." - user << "Looks like it could use [src.breq-src.bnum] more bones." - else - ..() - else - ..() diff --git a/code/modules/research/xenoarchaeology/fossils.dm b/code/modules/research/xenoarchaeology/fossils.dm new file mode 100644 index 00000000000..cb8f88b6661 --- /dev/null +++ b/code/modules/research/xenoarchaeology/fossils.dm @@ -0,0 +1,84 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// fossils + +/obj/item/weapon/fossil + name = "Fossil" + icon = 'fossil.dmi' + icon_state = "bone" + desc = "It's a fossil." + +/obj/item/weapon/fossil/base/New() + spawn(0) + var/list/l = list("/obj/item/weapon/fossil/bone"=8,"/obj/item/weapon/fossil/skull"=2, + "/obj/item/weapon/fossil/skull/horned"=2,"/obj/item/weapon/fossil/shell"=1) + var/t = pickweight(l) + new t(src.loc) + del src + +/obj/item/weapon/fossil/bone + name = "Fossilised bone" + icon_state = "bone" + desc = "It's a fossilised bone." + +/obj/item/weapon/fossil/shell + name = "Fossilised shell" + icon_state = "shell" + desc = "It's a fossilised shell." + +/obj/item/weapon/fossil/skull/horned + icon_state = "hskull" + desc = "It's a fossilised, horned skull." + +/obj/item/weapon/fossil/skull + name = "Fossilised skull" + icon_state = "skull" + desc = "It's a fossilised skull." + +/obj/item/weapon/fossil/skull/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/fossil/bone)) + var/obj/o = new /obj/skeleton(get_turf(src)) + var/a = new /obj/item/weapon/fossil/bone + var/b = new src.type + o.contents.Add(a) + o.contents.Add(b) + del W + del src + +/obj/skeleton + name = "Incomplete skeleton" + icon = 'fossil.dmi' + icon_state = "uskel" + desc = "Incomplete skeleton." + var/bnum = 1 + var/breq + var/bstate = 0 + +/obj/skeleton/New() + src.breq = rand(6)+3 + src.desc = "An incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." + +/obj/skeleton/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/fossil/bone)) + if(!bstate) + bnum++ + src.contents.Add(new/obj/item/weapon/fossil/bone) + del W + if(bnum==breq) + usr = user + icon_state = "skel" + var/creaturename = input("Input a name for your discovery:","Name your discovery","Spaceosaurus") + src.bstate = 1 + src.density = 1 + src.name = "[creaturename] skeleton" + if(src.contents.Find(/obj/item/weapon/fossil/skull/horned)) + src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull, the plaque reads [creaturename]." + else + src.desc = "A creature made of [src.contents.len-1] assorted bones and a skull, the plaque reads [creaturename]." + else + src.desc = "Incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." + user << "Looks like it could use [src.breq-src.bnum] more bones." + else + ..() + else + ..() diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index a3d64309464..43da9ccb142 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -1,22 +1,25 @@ + datum/geosample - var/scrambled = 0 //if this sample has been mixed with other samples + var/scrambled = 0 //if this sample has been mixed with other samples // - var/age = 0 - var/age_thousand = 0 //age can correspond to different artifacts + var/age = 0 //age can correspond to different archaeological finds + var/age_thousand = 0 var/age_million = 0 var/age_billion = 0 var/artifact_id = "" //id of a nearby artifact, if there is one - var/artifact_strength = 0 //proportional to distance - var/responsive_reagent = "" ///each reagent corresponds to a different type of find - var/reagent_response = "" //likelihood of there being finds there + var/artifact_distance = 0 //proportional to distance + var/main_find = "" //carrier reagent that the main body of the tile responds to + var/secondary_find = "" //carrier reagent that the floor of the turf responds to // var/source_mineral + var/list/specifity_offsets = list() datum/geosample/New(var/turf/simulated/mineral/container) UpdateTurf(container) + artifact_distance = rand(500,999999) -//this function should only be called once. it's here just in case +//this should only need to be called once datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) source_mineral = container.mineralName age = rand(1,999) @@ -42,7 +45,7 @@ datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) age_million = rand(1,999) age_billion = rand(10, 13) if("Clown") - age = rand(-1,-999) + age = rand(-1,-999) //thats_the_joke.mp4 age_thousand = rand(-1,-999) /*if("Archaeo") //snowflake diff --git a/code/modules/research/xenoarchaeology/global_placeholder.dm b/code/modules/research/xenoarchaeology/global_placeholder.dm new file mode 100644 index 00000000000..c1291abc016 --- /dev/null +++ b/code/modules/research/xenoarchaeology/global_placeholder.dm @@ -0,0 +1,13 @@ +//todo: move these into global.dm + +var/FIND_NOTHING = 0 +var/FIND_PLANT = 1 +var/FIND_BIO = 2 +var/FIND_METEORIC = 3 +var/FIND_ICE = 4 +var/FIND_CRYSTALLINE = 6 +var/FIND_METALLIC = 7 +var/FIND_IGNEOUS = 8 +var/FIND_METAMORPHIC = 9 +var/FIND_CARBONATE = 10 +var/FIND_SEDIMENTARY = 11 diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 1104878db8eb2dad919372af91df2a915f8a8b4d..4cbc91d9f8fca6a33b923e6d2b4f2f2def648cbd 100644 GIT binary patch literal 17214 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 literal 17186 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 Date: Mon, 24 Dec 2012 00:09:09 +1000 Subject: [PATCH 014/163] renamed/reworked some xenoarch files, working xenoarch chemical analysis Signed-off-by: Cael_Aislinn --- baystation12.dme | 5 +- code/modules/mining/mine_turfs.dm | 5 +- .../reagents/reagent_containers/glass.dm | 4 +- .../research/xenoarchaeology/analysis.dm | 72 ++++++++--- .../xenoarchaeology/analysis_accelerator.dm | 42 ++++++- .../analysis_fourier_transform.dm | 25 ++-- .../analysis_gas_chromatography.dm | 83 ++++--------- .../xenoarchaeology/analysis_hyperspectral.dm | 31 ++++- .../xenoarchaeology/analysis_ion_mobility.dm | 30 +++++ .../xenoarchaeology/analysis_radiometric.dm | 6 - .../research/xenoarchaeology/archaeo_chem.dm | 113 ------------------ .../research/xenoarchaeology/geosample.dm | 69 +++++++++-- .../xenoarchaeology/global_placeholder.dm | 13 -- 13 files changed, 257 insertions(+), 241 deletions(-) delete mode 100644 code/modules/research/xenoarchaeology/analysis_radiometric.dm delete mode 100644 code/modules/research/xenoarchaeology/archaeo_chem.dm delete mode 100644 code/modules/research/xenoarchaeology/global_placeholder.dm diff --git a/baystation12.dme b/baystation12.dme index 8a293d2f4e6..38201fe54ba 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1078,9 +1078,8 @@ #include "code\modules\research\xenoarchaeology\analysis_gas_chromatography.dm" #include "code\modules\research\xenoarchaeology\analysis_hyperspectral.dm" #include "code\modules\research\xenoarchaeology\analysis_ion_mobility.dm" -#include "code\modules\research\xenoarchaeology\analysis_radiometric.dm" +#include "code\modules\research\xenoarchaeology\analysis_isotope_ratio.dm" #include "code\modules\research\xenoarchaeology\analysis_scanner.dm" -#include "code\modules\research\xenoarchaeology\archaeo_chem.dm" #include "code\modules\research\xenoarchaeology\archaeo_excavate.dm" #include "code\modules\research\xenoarchaeology\archaeo_tools.dm" #include "code\modules\research\xenoarchaeology\artifact.dm" @@ -1091,12 +1090,12 @@ #include "code\modules\research\xenoarchaeology\artifact_misc.dm" #include "code\modules\research\xenoarchaeology\artifact_synthetic.dm" #include "code\modules\research\xenoarchaeology\bunsen_burner.dm" +#include "code\modules\research\xenoarchaeology\chemistry.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" #include "code\modules\research\xenoarchaeology\crystal.dm" #include "code\modules\research\xenoarchaeology\finds.dm" #include "code\modules\research\xenoarchaeology\fossils.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" -#include "code\modules\research\xenoarchaeology\global_placeholder.dm" #include "code\modules\research\xenoarchaeology\readme.dm" #include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 39a7add1dba..a3d832dcc9a 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -36,8 +36,6 @@ /turf/simulated/mineral/New() - src.geological_data = new /datum/geosample(src) - spawn(1) var/turf/T if((istype(get_step(src, NORTH), /turf/simulated/floor)) || (istype(get_step(src, NORTH), /turf/space)) || (istype(get_step(src, NORTH), /turf/simulated/shuttle/floor))) @@ -70,6 +68,9 @@ if(prob(spreadChance)) if(istype(get_step(src, EAST), /turf/simulated/mineral/random)) new src.type(get_step(src, EAST)) + + src.geological_data = new /datum/geosample(src) + return /turf/simulated/mineral/random diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 5f2db222668..2da3e786a07 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -83,10 +83,12 @@ else if(istype(target, /obj/item/clothing/suit/space/space_ninja)) return - //bunsen burner handles all of this as well else if(istype(target, /obj/machinery/bunsen_burner)) return + else if(istype(target, /obj/machinery/anomaly)) + return + else if(reagents.total_volume) user << "\blue You splash the solution onto [target]." src.reagents.reaction(target, TOUCH) diff --git a/code/modules/research/xenoarchaeology/analysis.dm b/code/modules/research/xenoarchaeology/analysis.dm index 0dc309a3d39..c864915d3a4 100644 --- a/code/modules/research/xenoarchaeology/analysis.dm +++ b/code/modules/research/xenoarchaeology/analysis.dm @@ -20,9 +20,17 @@ /obj/machinery/anomaly/New() //connect to a nearby scanner pad if(scanner_dir) - scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, scanner_dir) - if(!scanner) - scanner = locate(/obj/machinery/anomaly/scanner) in orange(1) + owned_scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, scanner_dir) + if(!owned_scanner) + owned_scanner = locate(/obj/machinery/anomaly/scanner) in orange(1) + + var/obj/item/weapon/reagent_containers/glass/solution_tray/S = new(src.loc) + var/turf/simulated/mineral/diamond/D + for(var/turf/simulated/mineral/diamond/M in world) + D = M + break + S.reagents.add_reagent("analysis_sample", 1, D.geological_data) + S.reagents.add_reagent("chlorine", 1, D.geological_data) //this proc should be overriden by each individual machine /obj/machinery/anomaly/attack_hand(var/mob/user as mob) @@ -30,13 +38,16 @@ return user.machine = src var/dat = "[src.name]
" - dat += "[scanner ? "Scanner connected." : "Scanner disconnected."]" - dat += "Module heat level:[temperature] kelvin
" + dat += "[owned_scanner ? "Scanner connected." : "Scanner disconnected."]
" + dat += "Module heat level: [temperature] kelvin
" dat += "Safeties set at 600k, shielding failure at 1200k. Failure to maintain safe heat levels may result in equipment damage.
" dat += "
" - dat += "[held_container ? "
Eject beaker" : "No beaker inserted."]
" - dat += "[held_container ? "Eject fuel tank" : "No fuel tank inserted."]
" - dat += "Begin scanning" + if(scanning) + dat += "Scan in progress


" + else + dat += "[held_container ? "Eject beaker" : "No beaker inserted."]
" + dat += "[fuel_container ? "Eject fuel tank" : "No fuel tank inserted."]
" + dat += "[held_container ? "Begin scanning" : ""]" dat += "
" dat += "Refresh
" dat += "Close
" @@ -49,10 +60,10 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) if(held_container) user << "\red You must remove the [held_container] first." else - user << "\blue You put the [held_container] into the [src]." + user << "\blue You put the [W] into the [src]." user.drop_item(W) - held_container.loc = src held_container = W + held_container.loc = src updateDialog() else if(istype(W, /obj/item/weapon/tank)) @@ -70,7 +81,8 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) /obj/machinery/anomaly/process() //not sure if everything needs to heat up, or just the GLPC - var/environmental_temp = loc.return_air().temperature + var/datum/gas_mixture/env = loc.return_air() + var/environmental_temp = env.temperature if(scanning) //heat up as we go, but if the air is freezing then heat up much slower var/new_heat = heat_accumulation_rate + heat_accumulation_rate * rand(-0.5,0.5) @@ -86,17 +98,17 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) else if(temperature > environmental_temp) //cool down to match the air temperature -= 10 + rand(-5,5) - if(temperature < environmental_temp + if(temperature < environmental_temp) temperature = environmental_temp else if(temperature < environmental_temp) //heat up to match the air temperature += 10 + rand(-5,5) - if(temperature > environmental_temp + if(temperature > environmental_temp) temperature = environmental_temp obj/machinery/anomaly/proc/ScanResults() //instantiate in children to produce unique scan behaviour - return "Error initialising scanning components." + return "\red Error initialising scanning components." obj/machinery/anomaly/proc/BeginScan() var/total_scan_time = scan_time + scan_time * rand(-0.5, 0.5) @@ -105,17 +117,18 @@ obj/machinery/anomaly/proc/BeginScan() spawn(total_scan_time) if(scanning) scanning = 0 + updateDialog() //determine the results and print a report if(held_container) - src.visible_message("The [src] chimes.", 2) + src.visible_message("\icon[src] makes an insistent chime.", 2) var/obj/item/weapon/paper/P = new(src.loc) - P.name = "[src] analysis report #[++report_num]" + P.name = "[src] report #[++report_num]" P.info = "[src] analysis report #[report_num]

" + ScanResults() P.stamped = list(/obj/item/weapon/stamp) P.overlays = list("paper_stamped") else - src.visible_message("The [src] buzzes.", 2) + src.visible_message("\icon[src] makes a low buzzing noise.", 2) obj/machinery/anomaly/Topic(href, href_list) if(href_list["close"]) @@ -131,10 +144,31 @@ obj/machinery/anomaly/Topic(href, href_list) if(temperature >= 600) var/proceed = input("Unsafe internal temperature detected, do you wish to continue?","Warning") if(proceed) - safety_enabled = 0 - BeginScan() + if(get_dist(src, usr) <= 1) + safety_enabled = 0 + BeginScan() + else + usr << "\red You must be closer to the [src]!" else BeginScan() ..() updateDialog() + +//whether the carrier sample matches the possible finds +//results greater than a threshold of 0.6 means a positive result +obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/datum/reagent/carrier) + var/specifity = 0 + var/remaining = 1 + if(scanned_sample && carrier) + + for(var/index=1,index <= scanned_sample.find_presence.len, index++) + var/find = scanned_sample.find_presence[index] + if(find && responsive_carriers[index] == carrier) + specifity += 0.5 * remaining + rand(0, 0.25 * remaining) + remaining = 1 - specifity + + if(!specifity) + specifity += rand(0, 0.5) + + return specifity diff --git a/code/modules/research/xenoarchaeology/analysis_accelerator.dm b/code/modules/research/xenoarchaeology/analysis_accelerator.dm index 1e15854e847..0315220f99d 100644 --- a/code/modules/research/xenoarchaeology/analysis_accelerator.dm +++ b/code/modules/research/xenoarchaeology/analysis_accelerator.dm @@ -1,6 +1,46 @@ obj/machinery/anomaly/accelerator - name = "Accelerator Spectrometer" + name = "Accelerator spectrometer" desc = "A specialised, complex analysis machine." icon = 'virology.dmi' icon_state = "analyser" + +obj/machinery/anomaly/accelerator/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/datum/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R, /datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.id + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + var/specifity = GetResultSpecifity(scanned_sample, carrier) + var/accuracy = (specifity / (specifity + 0.2)) + results = "Kinetic acceleration of carrier ([carrier]) indicates age ([100 * accuracy]% accuracy):

" + + if(scanned_sample.age_billion) + var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) + var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - accuracy) * (2 * rand() - 1)), 0) + results += "[displayed_age_billions + displayed_age_millions / 1000] billion years.
" + else if(scanned_sample.age_million) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - accuracy) * (4 * rand() - 2)), 0) + var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) + results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.
" + else if(scanned_sample.age_thousand) + var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - accuracy) * (4 * rand() - 2)), 0) + results += "[displayed_age_thousands + displayed_age / 1000] thousand years.
" + else + var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) + results += "[displayed_age] years.
" + + results += "
Warning, results only valid for ages on the scale of billions of years." + + return results diff --git a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm index 597ee1817be..7a402fdcd99 100644 --- a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm +++ b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm @@ -12,25 +12,30 @@ obj/machinery/anomaly/fourier_transform/ScanResults() var/carrier var/num_reagents = 0 - for(var/reagent/A in held_container.reagents.reagent_list) + for(var/datum/reagent/A in held_container.reagents.reagent_list) var/datum/reagent/R = A - if(istype(R,datum/reagent/density_separated_liquid)) - scanned_sample = R.data - else if(istype(R,datum/reagent/analysis_sample)) + if(istype(R, /datum/reagent/analysis_sample)) scanned_sample = R.data else - carrier = R.type + carrier = R.id num_reagents++ if(num_reagents == 2 && scanned_sample && carrier) //all necessary components are present var/specifity = GetResultSpecifity(scanned_sample, carrier) var/distance = scanned_sample.artifact_distance - if(specifity > 0.6) - artifact_distance += rand(-0.1, 0.1) * artifact_distance + if(distance > 0) + var/accuracy = 0.9 + if(specifity > 0.6) + distance += (0.2 * rand() - 0.1) * distance + else + var/offset = 1 - specifity + distance += distance * rand(-100 * offset, 100 * offset) / 100 + accuracy = specifity + results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([100 * accuracy]% accuracy): [distance]." + if(carrier == scanned_sample.source_mineral) + results += "
Warning, analysis may be contaminated by high quantities of molecular carrier present throughout sample." else - var/offset = 1 - specifity - artifact_distance += rand(-offset, offset) * artifact_distance - results = "Anomalous energy absorption through carrier ([carrier.id]) indicates emission radius: [artifact_distance]" + results = "Standard energy dispersion detected throughout sample." return results diff --git a/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm b/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm index fbbb7fe47e4..69116ca117b 100644 --- a/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm +++ b/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm @@ -1,6 +1,6 @@ obj/machinery/anomaly/gas_chromatography - name = "Gas Chromatography Spectrometer" + name = "Gas Chromatography spectrometer" desc = "A specialised, complex analysis machine." icon = 'virology.dmi' icon_state = "analyser" @@ -12,69 +12,32 @@ obj/machinery/anomaly/gas_chromatography/ScanResults() var/carrier var/num_reagents = 0 - for(var/reagent/A in held_container.reagents.reagent_list) + for(var/datum/reagent/A in held_container.reagents.reagent_list) var/datum/reagent/R = A - if(istype(R,datum/reagent/density_separated_liquid)) - scanned_sample = R.data - else if(istype(R,datum/reagent/analysis_sample)) + if(istype(R, /datum/reagent/analysis_sample)) scanned_sample = R.data else - carrier = R.type + carrier = R.id num_reagents++ - if(num_reagents == 2 && scanned_sample && carrier) - //all necessary components are present - results = "Carrier ([carrier.id]) specifity: [GetResultSpecifity(scanned_sample, carrier)]" + if(num_reagents == 2 && scanned_sample) + + var/specifity = 0.15 + if(carrier) + specifity = GetResultSpecifity(scanned_sample, carrier) + results = "Chromatography partitioning analysis over carrier ([carrier]) indicates the following elements present ([110 * (specifity / (specifity + 0.1))]% accuracy):

" + + var/num_found = 0 + for(var/index=1,index <= scanned_sample.find_presence.len, index++) + var/find = scanned_sample.find_presence[index] + if(find && prob( 110 * (specifity / (specifity + 0.1)) )) + results += " - " + finds_as_strings[index] + "
" + num_found++ + + if(!num_found) + results = "Chromatography partitioning results over carrier ([carrier]) to determine elemental makeup were inconclusive.
" + + if(!carrier) + results += "
No carrier detected, scan accuracy affected.
" return results - -obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/datum/reagent/carrier) - var/specifity = 0 - if(scanned_sample && carrier) - var/threshold = 0.6 - - if(scanned_sample.main_find == carrier.id) - specifity += threshold + rand(0, 1 - threshold) - if(scanned_sample.secondary_find == carrier.id) - specifity += threshold + rand(0, 1 - threshold) - - /* - //check the main turf - if(scanned_sample.main_find == FIND_NOTHING) - //nothing? - else if(scanned_sample.main_find == FIND_PLANT || scanned_sample.main_find == FIND_BIO || scanned_sample.main_find == FIND_SKULL) - //preserved plant or animal - if(carrier.id == "carbon") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_METEORIC) - //deep space - if(carrier.id == "neon") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_ICE) - //solid h20 - if(carrier.id == "beryllium") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_IGNEOUS || scanned_sample.main_find == FIND_METAMORPHIC || scanned_sample.main_find == FIND_CARBONATE) - //rock - if(carrier.id == "calcium" || carrier.id == "chlorine") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_CRYSTALLINE) - //some kind of refractive, crystalline matter - if(carrier.id == "helium") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_METALLIC) - //something metal (could be just ores, not necessarily a synthetic artifact) - if(carrier.id == "silicon") - specifity += threshold + rand(0,1 - threshold) - else if(scanned_sample.main_find == FIND_SEDIMENTARY) - //sandy rock - if(carrier.id == "aluminium") - specifity += threshold + rand(0,1 - threshold) - */ - - if(specifity > 1) - specifity = 0.9 + rand(0,0.1) - else if(specifity <= 0) - specifity += rand(0, threshold) - - return specifity diff --git a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm index 08f1d85cded..d6bc7c74041 100644 --- a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm +++ b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm @@ -1,6 +1,31 @@ obj/machinery/anomaly/hyperspectral - name = "Hypospectral Imager" + name = "Hyperspectral Imager" desc = "A specialised, complex analysis machine." - icon = 'virology.dmi' - icon_state = "analyser" + icon = 'icons/obj/computer.dmi' + icon_state = "rdcomp" + +obj/machinery/anomaly/hyperspectral/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/datum/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R, /datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.id + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + //all necessary components are present + var/specifity = GetResultSpecifity(scanned_sample, carrier) + results = "Spectral signature over carrier ([carrier], [specifity]):
" + results += "
" + if(scanned_sample.artifact_id && prob(specifity * 100)) + results += "Anomalous exotic energy signature detected: [scanned_sample.artifact_id]." + + return results diff --git a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm index 21dc0ad52fc..221b4417b51 100644 --- a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm +++ b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm @@ -4,3 +4,33 @@ obj/machinery/anomaly/ion_mobility desc = "A specialised, complex analysis machine." icon = 'virology.dmi' icon_state = "analyser" + +obj/machinery/anomaly/ion_mobility/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/datum/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R, /datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.id + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + //all necessary components are present + results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) indicates the following composition:

" + var/found = 0 + for(var/index=1,index <= scanned_sample.find_presence.len, index++) + var/find = scanned_sample.find_presence[index] + //world << "index: [index], find: [find], response: [responsive_carriers[index]], carrier: [carrier]" + if(find && responsive_carriers[index] == carrier) + results += " - [finds_as_strings[index]] [find * 100]%
" + found++ + if(!found) + results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) to determine composition were inconclusive." + + return results diff --git a/code/modules/research/xenoarchaeology/analysis_radiometric.dm b/code/modules/research/xenoarchaeology/analysis_radiometric.dm deleted file mode 100644 index 9b9b280b2c4..00000000000 --- a/code/modules/research/xenoarchaeology/analysis_radiometric.dm +++ /dev/null @@ -1,6 +0,0 @@ - -obj/machinery/anomaly/radiometric - name = "Isotope ratio spectrometre" - desc = "A specialised, complex analysis machine." - icon = 'virology.dmi' - icon_state = "analyser" diff --git a/code/modules/research/xenoarchaeology/archaeo_chem.dm b/code/modules/research/xenoarchaeology/archaeo_chem.dm deleted file mode 100644 index c12a530a7ff..00000000000 --- a/code/modules/research/xenoarchaeology/archaeo_chem.dm +++ /dev/null @@ -1,113 +0,0 @@ - -//chemistry stuff here so that it can be easily viewed/modified -datum - reagent - tungsten //purely used to make lith-sodi-tungs - name = "Tungsten" - id = "tungsten" - description = "A chemical element, and a strong oxidising agent." - reagent_state = SOLID - color = "#808080" // rgb: 128, 128, 128 - //todo: make this silvery grey - - neon //purely used as a carrier - name = "Neon" - id = "neon" - description = "A chemical element, commonly used in lighting." - reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128, - //todo: make this fluro/bright purple - - beryllium //purely used as a carrier - name = "Beryllium" - id = "beryllium" - description = "A chemical element, prized for it's rigidity, thermal stability and low density when used in alloys." - reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128, - //todo: make this dark grey - - calcium //purely used as a carrier - name = "Calcium" - id = "calcium" - description = "An extremely common chemical element found throughout living organisms." - reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128, - //todo: make this bone-white colour - - lithiumsodiumtungstate - name = "Lithium Sodium Tungstate" - id = "lithiumsodiumtungstate" - description = "A reducing agent for geological compounds." - reagent_state = LIQUID - color = "#808080" // rgb: 128, 128, 128 - //todo: make this silvery grey - - ground_rock - name = "Ground Rock" - id = "ground_rock" - description = "A fine dust made of ground up rock." - reagent_state = SOLID - color = "#C81040" //rgb: 200, 16, 64 - //todo: make this brown - - density_separated_sample - name = "Analysis liquid" - id = "density_separated_sample" - description = "A watery paste used in chemical analysis." - reagent_state = LIQUID - color = "#C81040" //rgb: 200, 16, 64 - //todo: make this browny-white - - analysis_sample - name = "Analysis liquid" - id = "analysis_sample" - description = "A watery paste used in chemical analysis." - reagent_state = LIQUID - color = "#C81040" //rgb: 200, 16, 64 - //todo: make this white - - chemical_waste - name = "Chemical Waste" - id = "chemical_waste" - description = "A viscous, toxic liquid left over from many chemical processes." - reagent_state = LIQUID - color = "#C81040" //rgb: 200, 16, 64 - //todo: make this fluoro/bright green - -datum - chemical_reaction - lithiumsodiumtungstate //LiNa2WO4, not the easiest chem to mix - name = "Lithium Sodium Tungstate" - id = "lithiumsodiumtungstate" - result = "lithiumsodiumtungstate" - required_reagents = list("lithium" = 1, "sodium" = 2, "tungsten" = 1, "oxygen" = 4) - result_amount = 8 - - density_separated_liquid - name = "Density separated sample" - id = "density_separated_sample" - result = "density_separated_sample" - secondary_results = list("chemical_waste" = 1) - required_reagents = list("ground_rock" = 1, "lithiumsodiumtungstate" = 2) - result_amount = 2 - - analysis_liquid - name = "Analysis sample" - id = "analysis_sample" - result = "analysis_sample" - secondary_results = list("chemical_waste" = 1) - required_reagents = list("density_separated_sample" = 5) - result_amount = 4 - requires_heating = 1 - -/obj/item/weapon/reagent_containers/glass/solution_tray - icon = 'icons/obj/device.dmi' - icon_state = "solution_tray" - desc = "A small, open-topped glass container for delicate research samples." - m_amt = 0 - g_amt = 5 - w_class = 1.0 - amount_per_transfer_from_this = 1 - possible_transfer_amounts = list(1) - volume = 2 - flags = FPRINT | OPENCONTAINER diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index 43da9ccb142..98064c676f2 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -1,54 +1,103 @@ +#define FIND_PLANT 1 +#define FIND_BIO 2 +#define FIND_METEORIC 3 +#define FIND_ICE 4 +#define FIND_CRYSTALLINE 5 +#define FIND_METALLIC 6 +#define FIND_IGNEOUS 7 +#define FIND_METAMORPHIC 8 +#define FIND_SEDIMENTARY 9 +#define FIND_NOTHING 10 + +var/list/responsive_carriers = list( \ + "carbon", \ + "carbon", \ + "neon", \ + "beryllium", \ + "helium", \ + "silicon", \ + "calcium", \ + "chlorine", \ + "aluminium", \ + "plasma" ) + +var/list/finds_as_strings = list( \ + "Dead plant cells", \ + "Dead organism cells", \ + "Long exposure particles", \ + "Trace water particles", \ + "Crystalline structures", \ + "Metals", \ + "Igneous rock", \ + "Metamorphic rock", \ + "Sedimentary rock", \ + "Anomalous material" ) + datum/geosample - var/scrambled = 0 //if this sample has been mixed with other samples - // var/age = 0 //age can correspond to different archaeological finds var/age_thousand = 0 var/age_million = 0 var/age_billion = 0 var/artifact_id = "" //id of a nearby artifact, if there is one - var/artifact_distance = 0 //proportional to distance - var/main_find = "" //carrier reagent that the main body of the tile responds to - var/secondary_find = "" //carrier reagent that the floor of the turf responds to + var/artifact_distance = -1 //proportional to distance // var/source_mineral - var/list/specifity_offsets = list() + //all potential finds are initialised to null, so nullcheck before you access them + var/list/find_presence[10] datum/geosample/New(var/turf/simulated/mineral/container) + UpdateTurf(container) - artifact_distance = rand(500,999999) //this should only need to be called once datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) source_mineral = container.mineralName age = rand(1,999) + + find_presence[FIND_METEORIC] = rand(1,10) / 10 + + var/comp_remaining = 1 - find_presence[FIND_METEORIC] switch(container.mineralName) if("Uranium") age_million = rand(1, 704) age_thousand = rand(1,999) + find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_METALLIC] if("Iron") age_thousand = rand(1, 999) age_million = rand(1, 999) + find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_METALLIC] if("Diamond") age_thousand = rand(1,999) age_million = rand(1,999) + find_presence[FIND_CRYSTALLINE] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_CRYSTALLINE] if("Gold") age_thousand = rand(1,999) age_million = rand(1,999) age_billion = rand(3,4) + find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_METALLIC] if("Silver") age_thousand = rand(1,999) age_million = rand(1,999) + find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_METALLIC] if("Plasma") age_thousand = rand(1,999) age_million = rand(1,999) age_billion = rand(10, 13) + find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_METALLIC] if("Clown") age = rand(-1,-999) //thats_the_joke.mp4 age_thousand = rand(-1,-999) - /*if("Archaeo") - //snowflake - age_thousand = rand(1,999)*/ else source_mineral = "Rock" + find_presence[FIND_IGNEOUS] = comp_remaining * (rand(25, 75) / 100) + comp_remaining -= find_presence[FIND_IGNEOUS] + + find_presence[FIND_METAMORPHIC] = comp_remaining diff --git a/code/modules/research/xenoarchaeology/global_placeholder.dm b/code/modules/research/xenoarchaeology/global_placeholder.dm deleted file mode 100644 index c1291abc016..00000000000 --- a/code/modules/research/xenoarchaeology/global_placeholder.dm +++ /dev/null @@ -1,13 +0,0 @@ -//todo: move these into global.dm - -var/FIND_NOTHING = 0 -var/FIND_PLANT = 1 -var/FIND_BIO = 2 -var/FIND_METEORIC = 3 -var/FIND_ICE = 4 -var/FIND_CRYSTALLINE = 6 -var/FIND_METALLIC = 7 -var/FIND_IGNEOUS = 8 -var/FIND_METAMORPHIC = 9 -var/FIND_CARBONATE = 10 -var/FIND_SEDIMENTARY = 11 From 6dd5b43bd25da46846c4c62786f9e1baa8ae491b Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:30:50 +1000 Subject: [PATCH 015/163] merged some extraneous icon files, added new icons Signed-off-by: Cael_Aislinn --- icons/obj/anomaly.dmi | Bin 19969 -> 0 bytes icons/obj/fossil.dmi | Bin 715 -> 0 bytes icons/obj/xenoarchaeology.dmi | Bin 0 -> 24472 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/obj/anomaly.dmi delete mode 100644 icons/obj/fossil.dmi create mode 100644 icons/obj/xenoarchaeology.dmi diff --git a/icons/obj/anomaly.dmi b/icons/obj/anomaly.dmi deleted file mode 100644 index efaf040e02164cb4f9dc68ffcd92c4d8f6b473dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19969 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%0A*<+8@wftd;>?W%iP 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

+b4LxUjI$-w|Sh&Vg+blWRfZlf-WFE6Fs&k- z(8B@W$hokHr#1NVqjWdmFOS>!jC{mdh0ms*p1Y?zDGiO{Sfu%^bPU>2+qfEkcUY&I>(ePw1}T zsmU|_&)&bIu~N?WAi|Xff&K~!tp^{zI2kR6K>Bx1cj=gv$95l9H{xzxXga1&ReY54 zAKCI+$-pjN>R#A+TxqBv_GY|ig_pu7J?gC%!9yz1Ss8z!1kB=V@(imNz%<- z6wYp-(D&$%v(14!cK=TJvMCE)uimzVLM*KM{Fr%lorNG0!;+o7zp_edB~x8opio#+ z=gh=AA_#U?6|J;0^SlZV+rfc$)D^=WD4GzIANeCGp zDzan`SKQPQ0t+g>O5D;hq9GULeKGmqx5>btoRP2oei=Wasc+y*O;N^z(e3RDo1Twy z{{DIV*!i^Bs-)6YM6d146A%Z_s_;F@Di_AY883c~_fI@EB~Zav%B$mxGQlc_O^(47 z0oGCzzHTZnMC_R-tqWV64XD%CVU7$%8*f0St>mkt?V*P~sZ(sn_?oQ}i-#$(?5m1N zRhv{tdStHgW$m{=i4AbuM2-VCy8YUT8@*Gg7yhK53-!1G;=}R~15t%TmgPnAv@7>I z8-^Nq?}32~#U(z~N~YfZpPQy#m>zO0R%)JvUvil4L-?3l&py@R*@gmsg?>oN^BE!+ znT!-fhX?MBEZ3{BzlNdl-*6}qjp?Kisi9r|Hkf>t=OPc$!_#9N#Cc;7is2C z6Yo6avI5B4H$!C-3XbCE#WC0hNU>NUSrFy_!4wg#?yO@FKD@fuMd8^$lu+Xp!{FUJ e$bUF<0+pfwxut4E837shL8?zRV3kVd5&s9zUVW(m literal 0 HcmV?d00001 From 133eb9e9d0fef284e80da43ddafdb30c1dddfdfa Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:31:32 +1000 Subject: [PATCH 016/163] removed talking crystals, added code to allow all item/weapons talkative Signed-off-by: Cael_Aislinn --- code/modules/mob/living/say.dm | 7 +- .../research/xenoarchaeology/crystal.dm | 213 ------------------ .../research/xenoarchaeology/talking_item.dm | 108 +++++++++ 3 files changed, 112 insertions(+), 216 deletions(-) delete mode 100644 code/modules/research/xenoarchaeology/crystal.dm create mode 100644 code/modules/research/xenoarchaeology/talking_item.dm diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index f56c672da84..09de584c845 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -425,9 +425,10 @@ var/list/department_radio_keys = list( del(B) */ - //talking crystals - for(var/obj/item/weapon/talkingcrystal/O in view(3,src)) - O.catchMessage(message,src) + //talking items + for(var/obj/item/weapon/O in view(3,src)) + if(O.listening_to_players) + O.catchMessage(message, src) log_say("[name]/[key] : [message]") diff --git a/code/modules/research/xenoarchaeology/crystal.dm b/code/modules/research/xenoarchaeology/crystal.dm deleted file mode 100644 index ec2aaff7761..00000000000 --- a/code/modules/research/xenoarchaeology/crystal.dm +++ /dev/null @@ -1,213 +0,0 @@ - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// crystals - -/obj/item/weapon/crystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal" - -//needs to be solid to have collision, but shouldn't block movement -/*/obj/item/weapon/crystal/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/beam/emitter)) - switch(rand(0,3)) - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 1 - A.yo = 20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 2 - A.yo = -20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 4 - A.yo = 0 - A.xo = 20 - if(0) - var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc ) - A.dir = 8 - A.yo = 0 - A.xo = -20 - else - ..()*/ - -/obj/item/weapon/talkingcrystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal2" - var/list/list/words = list() - var/lastsaid - -/obj/item/weapon/talkingcrystal/New() - spawn(100) - process() - -//needs to be solid to have collision, but shouldn't block movement -/*/obj/item/weapon/talkingcrystal/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/beam)) - switch(rand(0,3)) - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = -20 - A.xo = 0 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 0 - A.xo = 20 - if(0) - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam( src.loc ) - A.dir = pick(alldirs) - A.yo = 0 - A.xo = -20 - var/word = pick("pain","hurt","masochism","sadist","rage","repressed","ouch","evil","void","kill","destroy") - SaySomething(word) - else - ..()*/ - -/obj/item/weapon/talkingcrystal/proc/catchMessage(var/msg, var/mob/source) - var/list/seperate = list() - if(findtext(msg,"((")) - return - else if(findtext(msg,"))")) - return - else if(findtext(msg," ")==0) - return - else - /*var/l = lentext(msg) - if(findtext(msg," ",l,l+1)==0) - msg+=" "*/ - seperate = stringsplit(msg, " ") - - var/addressing_crystal = 0 - if("crystal" in seperate || "gem" in seperate) - addressing_crystal = 1 - - for(var/Xa = 1,Xa 20 + rand(10,20)) - words.Remove(words[1]) - if(!words["[lowertext(seperate[Xa])]"]) - words["[lowertext(seperate[Xa])]"] = list() - var/list/w = words["[lowertext(seperate[Xa])]"] - if(w) - w.Add("[lowertext(seperate[next])]") - //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" - - for(var/mob/O in viewers(src)) - O.show_message("\blue The crystal hums for bit then stops...", 1) - if(!rand(0, 5 - addressing_crystal * 3)) - spawn(2) SaySomething(pick(seperate)) - -/obj/item/weapon/talkingcrystal/proc/debug() - //set src in view() - for(var/v in words) - world << "[uppertext(v)]" - var/list/d = words["[v]"] - for(var/X in d) - world << "[X]" - -/obj/item/weapon/talkingcrystal/proc/SaySomething(var/word = null) - - var/msg - var/limit = rand(max(5,words.len/2))+3 - var/text - if(!word) - text = "[pick(words)]" - else - text = pick(stringsplit(word, " ")) - if(lentext(text)==1) - text=uppertext(text) - else - var/cap = copytext(text,1,2) - cap = uppertext(cap) - cap += copytext(text,2,lentext(text)+1) - text=cap - var/q = 0 - msg+=text - if(msg=="What" | msg == "Who" | msg == "How" | msg == "Why" | msg == "Are") - q=1 - - text=lowertext(text) - for(var/ya,ya <= limit,ya++) - - if(words.Find("[text]")) - var/list/w = words["[text]"] - text=pick(w) - else - text = "[pick(words)]" - msg+=" [text]" - if(q) - msg+="?" - else - if(rand(0,10)) - msg+="." - else - msg+="!" - - var/list/listening = viewers(src) - for(var/mob/M in world) - if (!M.client) - continue //skip monkeys and leavers - if (istype(M, /mob/new_player)) - continue - if(M.stat == 2 && M.client.ghost_ears) - listening|=M - - for(var/mob/M in listening) - M << "The crystal reverberates, \blue\"[msg]\"" - lastsaid = world.timeofday + rand(300,800) - -/obj/item/weapon/talkingcrystal/process() - if(prob(25) && world.timeofday >= lastsaid && words.len >= 1) - SaySomething() - spawn(100) - process() - - - - -//sentient crystals -/mob/sentient_crystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal2" - var/list/list/words = list() - var/lastsaid - -/mob/sentient_crystal/proc/catchMessage(var/msg, var/mob/source) - var/list/seperate = list() - if(findtext(msg,"((")) - return - else if(findtext(msg,"))")) - return - else - /*var/l = lentext(msg) - if(findtext(msg," ",l,l+1)==0) - msg+=" "*/ - seperate = stringsplit(msg, " ") - - for(var/Xa = 1,Xa 20 + rand(10,20)) - words.Remove(words[1]) - if(!words["[lowertext(seperate[Xa])]"]) - words["[lowertext(seperate[Xa])]"] = list() - var/list/w = words["[lowertext(seperate[Xa])]"] - if(w) - w.Add("[lowertext(seperate[next])]") - //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" - - for(var/mob/O in viewers(src)) - O.show_message("\blue The crystal hums for bit then stops...", 1) - -/mob/sentient_crystal/Life() \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/talking_item.dm b/code/modules/research/xenoarchaeology/talking_item.dm new file mode 100644 index 00000000000..75532f98c89 --- /dev/null +++ b/code/modules/research/xenoarchaeology/talking_item.dm @@ -0,0 +1,108 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Formerly talking crystals - these procs are now modular so that you can make any /obj/item/weapon 'parrot' player speech back to them +// This could be extended to atoms, but it's bad enough as is +// I genuinely tried to Add and Remove them from var and proc lists, but just couldn't get it working + +/obj/item/weapon + var/list/heard_words = list() + var/lastsaid + var/listening_to_players = 0 + var/speaking_to_players = 0 + +/obj/item/weapon/proc/process_talking(var/word = null) + if(prob(25) && world.timeofday >= lastsaid && heard_words.len >= 1) + SaySomething(word) + spawn(100) + process_talking() + +/obj/item/weapon/proc/catchMessage(var/msg, var/mob/source) + if(speaking_to_players) + var/list/seperate = list() + if(findtext(msg,"((")) + return + else if(findtext(msg,"))")) + return + else if(findtext(msg," ")==0) + return + else + /*var/l = lentext(msg) + if(findtext(msg," ",l,l+1)==0) + msg+=" "*/ + seperate = stringsplit(msg, " ") + + for(var/Xa = 1,Xa 20 + rand(10,20)) + heard_words.Remove(heard_words[1]) + if(!heard_words["[lowertext(seperate[Xa])]"]) + heard_words["[lowertext(seperate[Xa])]"] = list() + var/list/w = heard_words["[lowertext(seperate[Xa])]"] + if(w) + w.Add("[lowertext(seperate[next])]") + //world << "Adding [lowertext(seperate[next])] to [lowertext(seperate[Xa])]" + + if(!rand(0, 5)) + spawn(2) SaySomething(pick(seperate)) + if(prob(30)) + for(var/mob/O in viewers(src)) + O.show_message("\blue [src] hums for bit then stops...", 1) + +/*/obj/item/weapon/talkingcrystal/proc/debug() + //set src in view() + for(var/v in heard_words) + world << "[uppertext(v)]" + var/list/d = heard_words["[v]"] + for(var/X in d) + world << "[X]"*/ + +/obj/item/weapon/proc/SaySomething(var/word = null) + + var/msg + var/limit = rand(max(5,heard_words.len/2))+3 + var/text + if(!word) + text = "[pick(heard_words)]" + else + text = pick(stringsplit(word, " ")) + if(lentext(text)==1) + text=uppertext(text) + else + var/cap = copytext(text,1,2) + cap = uppertext(cap) + cap += copytext(text,2,lentext(text)+1) + text=cap + var/q = 0 + msg+=text + if(msg=="What" | msg == "Who" | msg == "How" | msg == "Why" | msg == "Are") + q=1 + + text=lowertext(text) + for(var/ya,ya <= limit,ya++) + + if(heard_words.Find("[text]")) + var/list/w = heard_words["[text]"] + text=pick(w) + else + text = "[pick(heard_words)]" + msg+=" [text]" + if(q) + msg+="?" + else + if(rand(0,10)) + msg+="." + else + msg+="!" + + var/list/listening = viewers(src) + for(var/mob/M in world) + if (!M.client) + continue //skip monkeys and leavers + if (istype(M, /mob/new_player)) + continue + if(M.stat == 2 && M.client.ghost_ears) + listening|=M + + for(var/mob/M in listening) + M << "[src] reverberates, \blue\"[msg]\"" + lastsaid = world.timeofday + rand(300,800) From 282c07cc2a4909435b01709df52464f4573b4bda Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:34:38 +1000 Subject: [PATCH 017/163] xenoarch chemistry, tweaks to mine turfs and fossils Signed-off-by: Cael_Aislinn --- code/modules/mining/mine_turfs.dm | 5 +- .../research/xenoarchaeology/chemistry.dm | 123 ++++++++++++++++++ .../research/xenoarchaeology/fossils.dm | 4 +- 3 files changed, 128 insertions(+), 4 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/chemistry.dm diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index a3d832dcc9a..52382341831 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -277,11 +277,12 @@ O = new /obj/item/weapon/ore/diamond(src) if (src.mineralName == "Archaeo") //spawn strange rocks here + new /obj/item/weapon/archaeological_find(src) //if(prob(10) || delicate) - if(prob(50)) //Don't have delicate tools (hand pick/excavation tool) yet, temporarily change to 50% instead of 10% -Mij + /*if(prob(50)) //Don't have delicate tools (hand pick/excavation tool) yet, temporarily change to 50% instead of 10% -Mij O = new /obj/item/weapon/ore/strangerock(src) else - destroyed = 1 + destroyed = 1*/ if (src.mineralName == "Clown") O = new /obj/item/weapon/ore/clown(src) if(O) diff --git a/code/modules/research/xenoarchaeology/chemistry.dm b/code/modules/research/xenoarchaeology/chemistry.dm new file mode 100644 index 00000000000..b8387470c34 --- /dev/null +++ b/code/modules/research/xenoarchaeology/chemistry.dm @@ -0,0 +1,123 @@ + +//chemistry stuff here so that it can be easily viewed/modified +datum + reagent + tungsten //purely used to make lith-sodi-tungs + name = "Tungsten" + id = "tungsten" + description = "A chemical element, and a strong oxidising agent." + reagent_state = SOLID + color = "#808080" // rgb: 128, 128, 128 + //todo: make this silvery grey + + neon //purely used as a carrier + name = "Neon" + id = "neon" + description = "A chemical element, commonly used in lighting." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this fluro/bright purple + + beryllium //purely used as a carrier + name = "Beryllium" + id = "beryllium" + description = "A chemical element, prized for it's rigidity, thermal stability and low density when used in alloys." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this dark grey + + calcium //purely used as a carrier + name = "Calcium" + id = "calcium" + description = "An extremely common chemical element found throughout living organisms." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128, + //todo: make this bone-white colour + + lithiumsodiumtungstate + name = "Lithium Sodium Tungstate" + id = "lithiumsodiumtungstate" + description = "A reducing agent for geological compounds." + reagent_state = LIQUID + color = "#808080" // rgb: 128, 128, 128 + //todo: make this silvery grey + + ground_rock + name = "Ground Rock" + id = "ground_rock" + description = "A fine dust made of ground up rock." + reagent_state = SOLID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this brown + + density_separated_sample + name = "Analysis liquid" + id = "density_separated_sample" + description = "A watery paste used in chemical analysis." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this browny-white + + analysis_sample + name = "Analysis liquid" + id = "analysis_sample" + description = "A watery paste used in chemical analysis." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this white + + chemical_waste + name = "Chemical Waste" + id = "chemical_waste" + description = "A viscous, toxic liquid left over from many chemical processes." + reagent_state = LIQUID + color = "#C81040" //rgb: 200, 16, 64 + //todo: make this fluoro/bright green + +datum + chemical_reaction + lithiumsodiumtungstate //LiNa2WO4, not the easiest chem to mix + name = "Lithium Sodium Tungstate" + id = "lithiumsodiumtungstate" + result = "lithiumsodiumtungstate" + required_reagents = list("lithium" = 1, "sodium" = 2, "tungsten" = 1, "oxygen" = 4) + result_amount = 8 + + density_separated_liquid + name = "Density separated sample" + id = "density_separated_sample" + result = "density_separated_sample" + secondary_results = list("chemical_waste" = 1) + required_reagents = list("ground_rock" = 1, "lithiumsodiumtungstate" = 2) + result_amount = 2 + + analysis_liquid + name = "Analysis sample" + id = "analysis_sample" + result = "analysis_sample" + secondary_results = list("chemical_waste" = 1) + required_reagents = list("density_separated_sample" = 5) + result_amount = 4 + requires_heating = 1 + +/obj/item/weapon/reagent_containers/glass/solution_tray + name = "solution tray" + desc = "A small, open-topped glass container for delicate research samples. It sports a re-useable strip for labelling with a pen." + icon = 'icons/obj/device.dmi' + icon_state = "solution_tray" + m_amt = 0 + g_amt = 5 + w_class = 1.0 + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1, 2) + volume = 2 + flags = FPRINT | OPENCONTAINER + +obj/item/weapon/reagent_containers/glass/solution_tray/attackby(obj/item/weapon/W as obj, mob/living/user as mob) + if(istype(W, /obj/item/weapon/pen)) + var/new_label = input("What should the new label be?","Label solution tray") + if(new_label) + name = "solution tray ([new_label])" + user << "\blue You write on the label of the solution tray." + else + ..(W, user) diff --git a/code/modules/research/xenoarchaeology/fossils.dm b/code/modules/research/xenoarchaeology/fossils.dm index cb8f88b6661..746a0beba3e 100644 --- a/code/modules/research/xenoarchaeology/fossils.dm +++ b/code/modules/research/xenoarchaeology/fossils.dm @@ -4,7 +4,7 @@ /obj/item/weapon/fossil name = "Fossil" - icon = 'fossil.dmi' + icon = 'xenoarchaeology.dmi' icon_state = "bone" desc = "It's a fossil." @@ -47,7 +47,7 @@ /obj/skeleton name = "Incomplete skeleton" - icon = 'fossil.dmi' + icon = 'xenoarchaeology.dmi' icon_state = "uskel" desc = "Incomplete skeleton." var/bnum = 1 From f4c1cb325abf76307a8935df2a5b796564277bc2 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:35:13 +1000 Subject: [PATCH 018/163] some tweaks to artifacts, new xenoarch analysis machines, made empulse give a cool whoosh to everyone in range Signed-off-by: Cael_Aislinn --- code/game/objects/empulse.dm | 3 + .../xenoarchaeology/analysis_hyperspectral.dm | 11 +- .../xenoarchaeology/analysis_isotope_ratio.dm | 51 ++++++++ .../research/xenoarchaeology/artifact.dm | 122 ++++++++---------- .../xenoarchaeology/artifact_effect.dm | 114 ++++++++++++---- .../xenoarchaeology/artifact_synthetic.dm | 4 +- 6 files changed, 209 insertions(+), 96 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index 4c02dd38fff..68cb8f2df3a 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -20,6 +20,9 @@ proc/empulse(turf/epicenter, heavy_range, light_range, log=0) if(heavy_range > light_range) light_range = heavy_range + for(var/mob/M in range(heavy_range, epicenter)) + M << 'sound/effects/EMPulse.ogg' + for(var/atom/T in range(light_range, epicenter)) var/distance = get_dist(epicenter, T) if(distance < 0) diff --git a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm index d6bc7c74041..0b745ce0993 100644 --- a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm +++ b/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm @@ -23,8 +23,15 @@ obj/machinery/anomaly/hyperspectral/ScanResults() if(num_reagents == 2 && scanned_sample && carrier) //all necessary components are present var/specifity = GetResultSpecifity(scanned_sample, carrier) - results = "Spectral signature over carrier ([carrier], [specifity]):
" - results += "
" + results = "Spectral signature over carrier ([carrier]):
" + if(specifity <= 0.25) + results += "
" + else if(specifity <= 0.5) + results += "
" + else if(specifity <= 0.75) + results += "
" + else + results += "
" if(scanned_sample.artifact_id && prob(specifity * 100)) results += "Anomalous exotic energy signature detected: [scanned_sample.artifact_id]." diff --git a/code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm b/code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm new file mode 100644 index 00000000000..717339a4a79 --- /dev/null +++ b/code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm @@ -0,0 +1,51 @@ + +obj/machinery/anomaly/isotope_ratio + name = "Isotope ratio spectrometer" + desc = "A specialised, complex analysis machine." + icon = 'virology.dmi' + icon_state = "analyser" + +obj/machinery/anomaly/isotope_ratio/ScanResults() + var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." + + var/datum/geosample/scanned_sample + var/carrier + var/num_reagents = 0 + + for(var/datum/reagent/A in held_container.reagents.reagent_list) + var/datum/reagent/R = A + if(istype(R, /datum/reagent/analysis_sample)) + scanned_sample = R.data + else + carrier = R.id + num_reagents++ + + if(num_reagents == 2 && scanned_sample && carrier) + var/specifity = GetResultSpecifity(scanned_sample, carrier) + var/accuracy = 0 + if(specifity) + accuracy = (specifity / (specifity + 0.2)) + else + accuracy = rand(0.01, 0.75) + results = "Isotope decay analysis in carrier ([carrier]) indicates age ([100 * accuracy]% accuracy):

" + + if(scanned_sample.age_billion) + //scramble the results + var/displayed_age_thousands = rand(0, 999) + var/displayed_age_millions = rand(0, 999) + results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.
" + else if(scanned_sample.age_million) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - accuracy) * (2 * rand() - 1)), 0) + var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (4 * rand() - 2)), 0) + results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.
" + else if(scanned_sample.age_thousand) + var/displayed_age = scanned_sample.age + scanned_sample.age * ((1 - accuracy) * (2 * rand() - 1)) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - accuracy) * (2 * rand() - 1)), 0) + results += "[displayed_age_thousands + displayed_age / 1000] thousand years.
" + else + var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (2 * rand() - 1)), 0) + results += "[displayed_age] years.
" + + results += "
Warning, results only valid up to ages of one billion years." + + return results diff --git a/code/modules/research/xenoarchaeology/artifact.dm b/code/modules/research/xenoarchaeology/artifact.dm index 53edfb54a07..96107f8ebdc 100644 --- a/code/modules/research/xenoarchaeology/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact.dm @@ -1,10 +1,18 @@ //Part of ISaidNo's public release around July 2011(ish), multiple changes //many thanks +#define PLASMA_SPAWN 1 +#define N2_SPAWN 2 +#define CO2_SPAWN 3 +#define RADIATE 4 +#define VIRUS 5 +#define HEAT 6 +#define COLD 7 + /obj/machinery/artifact name = "alien artifact" desc = "A large alien device." - icon = 'anomaly.dmi' + icon = 'xenoarchaeology.dmi' icon_state = "ano00" var/icon_num = 0 anchored = 0 @@ -21,55 +29,51 @@ /obj/machinery/artifact/New() ..() // Origin and appearance randomisation - // cael - need some more icons my_effect = new() - src.origin = pick("ancient","martian","wizard","eldritch","precursor") - switch(src.origin) - if("ancient") icon_num = pick(2)//src.icon_state = pick("ano2") - if("martian") icon_num = pick(4)//src.icon_state = pick("ano4") - if("wizard") icon_num = pick(0,1)//src.icon_state = pick("ano0","ano1") - if("eldritch") icon_num = pick(3)//src.icon_state = pick("ano3") - if("precursor") icon_num = pick(5)//src.icon_state = pick("ano5") + + icon_num = rand(0,5) icon_state = "ano[icon_num]0" - // Low-ish random chance to not look like it's origin - if(prob(20)) src.icon_state = pick("ano00","ano10","ano20","ano30","ano40","ano50") - // Power randomisation - my_effect.trigger = pick("force","energy","chemical","heat","touch") - if (my_effect.trigger == "chemical") my_effect.triggerX = pick("hydrogen","corrosive","volatile","toxic") + my_effect.trigger = pick("force","energy","chemical","heat","touch","presence") + if (my_effect.trigger == "chemical") + my_effect.triggerX = pick("hydrogen","corrosive","volatile","toxic") - // Ancient Artifacts focus on robotic/technological effects - // Martian Artifacts focus on biological effects - // Wizard Artifacts focus on weird shit - // Eldritch Artifacts are 100% bad news - // Precursor Artifacts do everything - switch(src.origin) - if("ancient") my_effect.effecttype = pick("roboheal","robohurt","cellcharge","celldrain") - if("martian") my_effect.effecttype = pick("healing","injure"/*,"stun"*/,"planthelper") - if("wizard") my_effect.effecttype = pick(/*"stun",*/"forcefield","teleport") - if("eldritch") my_effect.effecttype = pick("injure",/*"stun",*/"robohurt","celldrain") - if("precursor") my_effect.effecttype = pick("healing","injure",/*"stun",*/"roboheal","robohurt","cellcharge","celldrain","planthelper","forcefield","teleport") + my_effect.effecttype = pick("healing","injure","stun","roboheal","robohurt","cellcharge","celldrain","planthelper","forcefield","teleport","dnaswitch","emp","sleepy") // Select range based on the power var/canworldpulse = 1 switch(my_effect.effecttype) - if("healing") my_effect.effectmode = pick("aura","pulse","contact") - if("injure") my_effect.effectmode = pick("aura","pulse","contact") - // if("stun") my_effect.effectmode = pick("aura","pulse","contact") - if("roboheal") my_effect.effectmode = pick("aura","pulse","contact") - if("robohurt") my_effect.effectmode = pick("aura","pulse","contact") - if("cellcharge") my_effect.effectmode = pick("aura","pulse") - if("celldrain") my_effect.effectmode = pick("aura","pulse") + if("healing") + my_effect.effectmode = pick("aura","pulse","contact") + if("injure") + my_effect.effectmode = pick("aura","pulse","contact") + if("stun") + my_effect.effectmode = pick("aura","pulse","contact") + if("roboheal") + my_effect.effectmode = pick("aura","pulse","contact") + if("robohurt") + my_effect.effectmode = pick("aura","pulse","contact") + if("sleepy") + my_effect.effectmode = pick("aura","pulse","contact") + if("cellcharge") + my_effect.effectmode = pick("aura","pulse") + if("celldrain") + my_effect.effectmode = pick("aura","pulse") if("planthelper") my_effect.effectmode = pick("aura","pulse") canworldpulse = 0 if("forcefield") my_effect.effectmode = "contact" canworldpulse = 0 - if("teleport") my_effect.effectmode = pick("pulse","contact") + if("teleport") + my_effect.effectmode = pick("pulse","contact") + if("genderswitch") + my_effect.effectmode = pick("pulse","contact") + if("emp") + my_effect.effectmode = pick("pulse","contact") // Recharge timer & range setup if (my_effect.effectmode == "aura") @@ -191,26 +195,28 @@ src.activated = !src.activated var/display_msg = "" if(activated) - switch(rand(4)) - if(0) - display_msg = "momentarily glows brightly!" - if(1) - display_msg = "distorts slightly for a moment!" - if(2) - display_msg = "makes a slightly clicking noise!" - if(3) - display_msg = "flickers slightly!" - if(4) - display_msg = "vibrates!" + if(prob(30)) + switch(rand(4)) + if(0) + display_msg = "momentarily glows brightly!" + if(1) + display_msg = "distorts slightly for a moment!" + if(2) + display_msg = "makes a slightly clicking noise!" + if(3) + display_msg = "flickers slightly!" + if(4) + display_msg = "vibrates!" else my_effect.HaltEffect() - switch(rand(2)) - if(0) - display_msg = "grows dull!" - if(1) - display_msg = "fades in intensity!" - if(2) - display_msg = "suddenly becomes very quiet!" + if(prob(30)) + switch(rand(2)) + if(0) + display_msg = "grows dull!" + if(1) + display_msg = "fades in intensity!" + if(2) + display_msg = "suddenly becomes very quiet!" icon_state = "ano[icon_num][activated]" for(var/mob/O in viewers(src, null)) @@ -232,17 +238,3 @@ /obj/machinery/artifact/Move() ..() my_effect.update_move(src, src.loc) - - -/proc/artifact_checkgood(var/datum/artifact_effect/A) - switch(A.effecttype) - if("healing") return 1 - if("injure") return 0 - // if("stun") return 0 - if("roboheal") return 1 - if("robohurt") return 0 - if("cellcharge") return 1 - if("celldrain") return 1 - if("planthelper") return 1 - if("forcefield") return 1 - if("teleport") return 0 \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/artifact_effect.dm b/code/modules/research/xenoarchaeology/artifact_effect.dm index 9bee8176db3..d3e5480294e 100644 --- a/code/modules/research/xenoarchaeology/artifact_effect.dm +++ b/code/modules/research/xenoarchaeology/artifact_effect.dm @@ -93,38 +93,38 @@ if("injure") if (istype(user, /mob/living/carbon/)) user << "\red A painful discharge of energy strikes you!" - user.adjustOxyLoss(25) - user.adjustToxLoss(25) - user.adjustBruteLoss(25) - user.adjustFireLoss(25) - user.adjustBrainLoss(25) + user.adjustOxyLoss(rand(5,25)) + user.adjustToxLoss(rand(5,25)) + user.adjustBruteLoss(rand(5,25)) + user.adjustFireLoss(rand(5,25)) + user.adjustBrainLoss(rand(5,25)) user.radiation += 25 user.nutrition -= min(50, user.nutrition) - user.stunned += 6 + user.make_dizzy(6) user.weakened += 6 return 1 else user << "Nothing happens." if("stun") if (istype(user, /mob/living/carbon/)) user << "\red A powerful force overwhelms your consciousness." - user.paralysis += 30 - user.stunned += 45 user.weakened += 45 user.stuttering += 45 + if(prob(50)) + user.stunned += rand(1,10) return 1 else user << "Nothing happens." if("roboheal") if (istype(user, /mob/living/silicon/robot)) user << "\blue Your systems report damaged components mending by themselves!" - user.adjustBruteLoss(-30) - user.adjustFireLoss(-30) + user.adjustBruteLoss(rand(-10,-30)) + user.adjustFireLoss(rand(-10,-30)) return 1 else user << "Nothing happens." if("robohurt") if (istype(user, /mob/living/silicon/robot)) user << "\red Your systems report severe damage has been inflicted!" - user.adjustBruteLoss(40) - user.adjustFireLoss(40) + user.adjustBruteLoss(rand(10,50)) + user.adjustFireLoss(rand(10,50)) return 1 else user << "Nothing happens." if("forcefield") @@ -133,6 +133,7 @@ created_field.Add(E) E.strength = 1 E.density = 1 + E.anchored = 1 E.invisibility = 0 return 1 if("teleport") @@ -150,6 +151,11 @@ sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is sparks.start() return 1 + if("sleepy") + user << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + user.drowsyness = min(user.drowsyness + rand(5,25), 50) + user.eye_blurry = min(user.eye_blurry + rand(1,3), 50) + return 1 else if (src.effectmode == "aura") switch(src.effecttype) //caeltodo @@ -237,6 +243,13 @@ H.weedlevel -= 1 H.lastcycle += 5 return 1 + if("sleepy") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(prob(10)) + M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + M.drowsyness = min(M.drowsyness + 1, 25) + M.eye_blurry = min(M.eye_blurry + 1, 25) + return 1 else if (src.effectmode == "pulse") for(var/mob/O in viewers(originator, null)) O.show_message(text("[] emits a pulse of energy!", originator), 1) @@ -264,7 +277,7 @@ M.adjustToxLoss(5) M.adjustOxyLoss(5) M.adjustBrainLoss(5) - M.stunned += 3 + M.make_dizzy(6) M.weakened += 3 M.updatehealth() return 1 @@ -274,7 +287,6 @@ continue M << "\red A wave of energy overwhelms your senses!" M.paralysis += 3 - M.stunned += 4 M.weakened += 4 M.stuttering += 4 return 1 @@ -309,7 +321,7 @@ for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge -= 400 for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) for (var/obj/item/weapon/cell/D in M.contents) - D.charge -= 500 + D.charge -= min(D.charge, 500) M << "\red SYSTEM ALERT: Severe energy drain detected!" return 1 if("planthelper") @@ -343,13 +355,40 @@ sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is sparks.start() return 1 + if("dnaswitch") + for(var/mob/living/H in range(src.aurarange,originator)) + if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(30)) + H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") + //todo + if (H.gender == FEMALE) + H.gender = MALE + else + H.gender = FEMALE + /*H.dna.ready_dna(H) + H.update_body() + H.update_face()*/ + return 1 + if("emp") + empulse(get_turf(originator), aurarange/2, aurarange) + return 1 + if("sleepy") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(prob(30)) + M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + if(prob(50)) + M.drowsyness = min(M.drowsyness + rand(1,5), 25) + if(prob(50)) + M.eye_blurry = min(M.eye_blurry + rand(1,5), 25) + return 1 else if (src.effectmode == "worldpulse") for(var/mob/O in viewers(originator, null)) O.show_message(text("[] emits a powerful burst of energy!", originator), 1) switch(src.effecttype) - //caeltodo if("healing") - for (var/mob/living/carbon/M in world) + for (var/mob/living/carbon/M in range(200, originator)) if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) continue M << "\blue Waves of soothing energy wash over you." @@ -361,7 +400,7 @@ M.updatehealth() return 1 if("injure") - for (var/mob/living/carbon/human/M in world) + for (var/mob/living/carbon/human/M in range(200, originator)) M << "\red A wave of painful energy strikes you!" M.adjustBruteLoss(3) M.adjustFireLoss(3) @@ -371,31 +410,30 @@ M.updatehealth() return 1 if("stun") - for (var/mob/living/carbon/M in world) + for (var/mob/living/carbon/M in range(200, originator)) if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) continue M << "\red A powerful force causes you to black out momentarily." M.paralysis += 5 - M.stunned += 8 M.weakened += 8 M.stuttering += 8 return 1 if("roboheal") - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in range(200, originator)) M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" M.adjustBruteLoss(-5) M.adjustFireLoss(-5) M.updatehealth() return 1 if("robohurt") - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in range(200, originator)) M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" M.adjustBruteLoss(5) M.adjustFireLoss(5) M.updatehealth() return 1 if("cellcharge") - for (var/obj/machinery/power/apc/C in world) + for (var/obj/machinery/power/apc/C in range(200, originator)) for (var/obj/item/weapon/cell/B in C.contents) B.charge += 100 for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 250 @@ -405,17 +443,17 @@ M << "\blue SYSTEM ALERT: Energy boost detected!" return 1 if("celldrain") - for (var/obj/machinery/power/apc/C in world) + for (var/obj/machinery/power/apc/C in range(200, originator)) for (var/obj/item/weapon/cell/B in C.contents) - B.charge -= 250 + B.charge -= min(B.charge,250) for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge -= 250 for (var/mob/living/silicon/robot/M in world) for (var/obj/item/weapon/cell/D in M.contents) - D.charge -= 250 + D.charge -= min(D.charge,250) M << "\red SYSTEM ALERT: Energy drain detected!" return 1 if("teleport") - for (var/mob/living/M in world) + for (var/mob/living/M in range(200, originator)) if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) continue var/list/randomturfs = new/list() @@ -432,6 +470,27 @@ sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is sparks.start() return 1 + if("dnaswitch") + for(var/mob/living/H in range(200, originator)) + if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(30)) + H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") + //todo + if (H.gender == FEMALE) + H.gender = MALE + else + H.gender = FEMALE + /*H.dna.ready_dna(H) + H.update_body() + H.update_face()*/ + return 1 + if("sleepy") + for(var/mob/living/H in range(200, originator)) + H.drowsyness = min(H.drowsyness + rand(5,15), 50) + H.eye_blurry = min(H.eye_blurry + rand(5,15), 50) + return 1 //initially for the force field artifact /datum/artifact_effect/proc/update_move(var/atom/originator) @@ -443,6 +502,7 @@ created_field.Add(E) E.strength = 1 E.density = 1 + E.anchored = 1 E.invisibility = 0 var/obj/effect/energy_field/E = created_field[1] diff --git a/code/modules/research/xenoarchaeology/artifact_synthetic.dm b/code/modules/research/xenoarchaeology/artifact_synthetic.dm index fc6743e5762..75d2bf8a49a 100644 --- a/code/modules/research/xenoarchaeology/artifact_synthetic.dm +++ b/code/modules/research/xenoarchaeology/artifact_synthetic.dm @@ -1,7 +1,7 @@ /obj/item/weapon/anobattery name = "Anomaly power battery" - icon = 'anomaly.dmi' + icon = 'xenoarchaeology.dmi' icon_state = "anobattery0" var/datum/artifact_effect/battery_effect var/capacity = 200 @@ -16,7 +16,7 @@ /obj/item/weapon/anodevice name = "Anomaly power utilizer" - icon = 'anomaly.dmi' + icon = 'xenoarchaeology.dmi' icon_state = "anodev" var/cooldown = 0 var/activated = 0 From ae109b459130e5fbc579a72b3b688b8088c07429 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 27 Dec 2012 01:35:54 +1000 Subject: [PATCH 019/163] xenoarch finds, updated dme Signed-off-by: Cael_Aislinn --- baystation12.dme | 2 +- .../modules/research/xenoarchaeology/finds.dm | 335 ++++++++++++++++++ 2 files changed, 336 insertions(+), 1 deletion(-) diff --git a/baystation12.dme b/baystation12.dme index 38201fe54ba..a0326d8c6e2 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1092,11 +1092,11 @@ #include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\chemistry.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" -#include "code\modules\research\xenoarchaeology\crystal.dm" #include "code\modules\research\xenoarchaeology\finds.dm" #include "code\modules\research\xenoarchaeology\fossils.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" #include "code\modules\research\xenoarchaeology\readme.dm" +#include "code\modules\research\xenoarchaeology\talking_item.dm" #include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index 2521f8bcf4f..4298057d10a 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -83,3 +83,338 @@ M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) return 1 */ + +/obj/item/weapon/archaeological_find + name = "object" + icon = 'xenoarchaeology.dmi' + icon_state = "ano01" + var/find_type = 0 + +/obj/item/weapon/archaeological_find/New() + if(find_type < 1 || find_type > 25) + find_type = 0 + if(!find_type) + find_type = rand(1, 25) + + var/item_type = "object" + icon_state = "unknown[rand(1,4)]" + var/additional_desc = "" + var/obj/item/weapon/new_item + var/source_material = "" + var/apply_material_decorations = 1 + var/apply_image_decorations = 0 + var/material_descriptor = "" + if(prob(40)) + material_descriptor = pick("rusted ","dusty ","archaic ","fragile ") + source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") + + var/talkative = 0 + if(prob(5)) + talkative = 1 + + //for all items here: + //icon_state + //item_state + if(prob(90)) + switch(find_type) + if(1) + item_type = "bowl" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "bowl" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains inside." + if(2) + item_type = "urn" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "urn" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "It [pick("whispers faintly","makes a quiet roaring sound","whistles softly","thrums quietly"<"throbs")] if you put it to your ear." + if(3) + item_type = "[pick("fork","spoon","knife")]" + if(prob(25)) + new_item = new /obj/item/weapon/kitchen/utensil/fork(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/kitchen/utensil/knife(src.loc) + else + new_item = new /obj/item/weapon/kitchen/utensil/spoon(src.loc) + additional_desc = "[pick("It's like no [item_type] you've ever seen before",\ + "It's a mystery how anyone is supposed to eat with this",\ + "You wonder what the creator's mouth was shaped like")]." + if(4) + item_type = "statuette" + icon_state = "statuette" + additional_desc = "It depicts a [pick("small","ferocious","wild","pleasing","hulking")] \ + [pick("alien humanoid figure","rodent-like creature","reptilian alien","primate","unidentifiable object")] \ + [pick("performing unspeakable acts","posing heroically","in a feotal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]." + if(5) + item_type = "instrument" + icon_state = "instrument" + additional_desc = "[pick("You're not sure how anyone could have played this",\ + "You wonder how many mouths the creator had",\ + "You wonder what it sounds like",\ + "You wonder what kind of music was made with it")]." + if(prob(30)) + apply_image_decorations = 1 + if(6) + item_type = "[pick("bladed knife","serrated blade","sharp cutting implement")]" + new_item = new /obj/item/weapon/kitchenknife(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "It looks wickedly jagged",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along the edges")]." + if(7) + //assuming there are 10 types of coins + var/chance = 10 + for(var/type in typesof(/obj/item/weapon/coin)) + if(prob(chance)) + new_item = new type(src.loc) + break + chance += 10 + + item_type = new_item.name + apply_material_decorations = 0 + apply_image_decorations = 1 + if(8) + item_type = "chained loops" + new_item = new /obj/item/weapon/handcuffs(src.loc) + additional_desc = "[pick("They appear to be for securing two things together","Looks kinky","Doesn't seem like a children's toy")]." + if(9) + item_type = "[pick("wicked","evil","byzantine","dangerous")] looking [pick("device","contraption","thing","trap")]" + new_item = new /obj/item/weapon/legcuffs/beartrap(src.loc) + additional_desc = "[pick("It looks like it could take a limb off",\ + "Could be some kind of animal trap",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along part of it")]." + if(10) + item_type = "small [pick("cylinder","tank","chamber")]" + new_item = new /obj/item/weapon/lighter(src.loc) + additional_desc = "There is a tiny device attached." + if(prob(30)) + apply_image_decorations = 1 + if(11) + item_type = "box" + new_item = new /obj/item/weapon/storage/box(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "box" + if(prob(30)) + apply_image_decorations = 1 + if(12) + item_type = "[pick("cylinder","tank","chamber")]" + if(prob(25)) + new_item = new /obj/item/weapon/tank/air(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/tank/anesthetic(src.loc) + else + new_item = new /obj/item/weapon/tank/plasma(src.loc) + icon_state = pick("oxygen","oxygen_fr","oxygen_f","plasma","anesthetic") + additional_desc = "It [pick("gloops","sloshes")] slightly when you shake it." + if(13) + item_type = "strange tool" + if(prob(25)) + new_item = new /obj/item/weapon/wrench(src.loc) + else if(prob(25)) + new_item = new /obj/item/weapon/crowbar(src.loc) + else + new_item = new /obj/item/weapon/screwdriver(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "You wonder what it was used for",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains on it")]." + if(14) + apply_material_decorations = 0 + var/list/possible_spawns = list() + possible_spawns += /obj/item/stack/sheet/metal + possible_spawns += /obj/item/stack/sheet/plasma + possible_spawns += /obj/item/stack/sheet/plasteel + possible_spawns += /obj/item/stack/sheet/mythril + possible_spawns += /obj/item/stack/sheet/gold + possible_spawns += /obj/item/stack/sheet/silver + possible_spawns += /obj/item/stack/sheet/glass + possible_spawns += /obj/item/stack/sheet/rglass + possible_spawns += /obj/item/stack/sheet/enruranium + possible_spawns += /obj/item/stack/sheet/sandstone + possible_spawns += /obj/item/stack/sheet/silver + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + new_item:amount = rand(5,45) + del(src) + return //nothing fancy here + if(15) + if(prob(75)) + new_item = new /obj/item/weapon/pen(src.loc) + else + new_item = new /obj/item/weapon/pen/sleepypen(src.loc) + if(prob(30)) + apply_image_decorations = 1 + if(16) + item_type = "smooth green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "Green lump" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(17) + item_type = "irregular purple crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "Phazon" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(18) + new_item = new /obj/item/device/radio/beacon(src.loc) + talkative = 0 + new_item.icon_state = "unknown[rand(1,4)]" + new_item.icon = 'xenoarchaeology.dmi' + new_item.desc = "" + if(19) + new_item = new /obj/item/weapon/claymore(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + if(20) + //arcane clothing + var/list/possible_spawns = list(/obj/item/clothing/head/culthood, + /obj/item/clothing/head/magus, + /obj/item/clothing/head/culthood/alt, + /obj/item/clothing/head/helmet/space/cult) + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(21) + //the dangerous stuff: low chance of turning up + var/list/possible_spawns = list(/obj/item/weapon/veilrender, + /obj/item/device/soulstone, + /obj/item/weapon/melee/cultblade) + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(22) + new_item = new /obj/item/weapon/shard(src.loc) + del(src) + return + if(23) + new_item = new /obj/item/stack/rods(src.loc) + del(src) + return + if(24) + var/list/possible_spawns = list() + possible_spawns += typesof(/obj/item/weapon/stock_parts) + possible_spawns -= /obj/item/weapon/stock_parts + possible_spawns -= /obj/item/weapon/stock_parts/subspace + + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(25) + new_item = new /obj/item/weapon/katana(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + + else if(prob(40)) + apply_image_decorations = 1 + + var/decorations = "" + source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") + if(apply_material_decorations) + desc = "A [material_descriptor ? "[material_descriptor] " : ""][item_type] made of [source_material], all craftsmanship is of [pick("the lowest","low","average","high","the highest")] quality." + + var/list/descriptors = list() + if(prob(30)) + descriptors.Add("is encrusted with [pick("","synthetic ","multi-faceted ","uncut ","sparkling ") + pick("rubies","emeralds","diamonds","crystals","lapiz lazuli")]") + if(prob(30)) + descriptors.Add("is studded with [pick("gold","silver","aluminium","titanium")]") + if(prob(30)) + descriptors.Add("is encircled with bands of [pick("quadrinium","cordite","ferritic-alloy","plasteel","duranium")]") + if(prob(30)) + descriptors.Add("menaces with spikes of [pick("solid plasma","uranium","white pearl","black steel")]") + if(descriptors.len > 0) + decorations = "It " + for(var/index=1, index <= descriptors.len, index++) + if(index > 1) + if(index == descriptors.len) + decorations += " and " + else + decorations += ", " + decorations += descriptors[index] + decorations += "." + if(decorations) + desc += " " + decorations + + var/engravings = "" + if(apply_image_decorations) + engravings = "[pick("Engraved","Carved","Etched")] on the item is [pick("an image of","a frieze of","a depiction of")] \ + [pick("an alien humanoid","an amorphic blob","a short, hairy being","a rodent-like creature","a robot","a primate","a reptilian alien","an unidentifiable object","a statue","a starship","unusual devices","a structure")] \ + [pick("surrounded by","being held aloft by","being struck by","being examined by","communicating with")] \ + [pick("alien humanoids","amorphic blobs","short, hairy beings","rodent-like creatures","robots","primates","reptilian aliens")]" + if(prob(50)) + engravings += ", [pick("they seem to be enjoying themselves","they seem extremely angry","they look pensive","they are making gestures of supplication","the scene is one of subtle horror","the scene conveys a sense of desperation","the scene is completely bizarre")]" + engravings += "." + + if(desc) + desc += " " + desc += engravings + + name = "[item_type]" + if(desc) + desc += " " + desc += additional_desc + if(!desc) + desc = "This item is completely [pick("alien","bizarre")]." + + //icon and icon_state should have already been set + if(new_item) + new_item.name = src.name + new_item.desc = src.desc + + if(talkative) + new_item.listening_to_players = 1 + if(prob(25)) + new_item.speaking_to_players = 1 + spawn(100) + new_item.process_talking() + del(src) + + else if(talkative) + listening_to_players = 1 + if(prob(25)) + speaking_to_players = 1 + spawn(100) + process_talking() + +//legacy crystal +/obj/item/weapon/crystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal" + +//large finds + /* + /obj/item/clothing/suit/cultrobes + /obj/item/clothing/suit/cultrobes/alt + /obj/item/clothing/suit/magusred + /obj/item/clothing/suit/space/cult + /obj/machinery/syndicate_beacon + /obj/machinery/wish_granter + if(18) + item_type = "jagged green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(19) + item_type = "jagged pink crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal2" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + */ \ No newline at end of file From 84ebfea65a22b2d6d8a2bb875b3cb41587eb5ecb Mon Sep 17 00:00:00 2001 From: Asanadas Date: Tue, 22 Jan 2013 15:25:37 -0500 Subject: [PATCH 020/163] ' --- code/modules/mob/living/simple_animal/friendly/farm_animals.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 4db364cb5a6..6eb789d6efd 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -140,7 +140,7 @@ var/list/responses = list( "[src] looks at you imploringly.", "[src] looks at you pleadingly", "[src] looks at you with a resigned expression.", - "[src] seems resigned to it's fate.") + "[src] seems resigned to its fate.") M << pick(responses) else ..() From 10127c4f340592b8b451626b66a8e1c0cae7b642 Mon Sep 17 00:00:00 2001 From: Whitellama Date: Sun, 27 Jan 2013 17:34:12 -0800 Subject: [PATCH 021/163] Fixed gun aiming HUD buttons, other WIP junk --- .../mob/living/carbon/amorph/amorph_hud.dm | 18 +++++++++++++ code/modules/mob/living/carbon/human/hud.dm | 19 +++++++++++++ code/modules/mob/living/carbon/monkey/hud.dm | 18 +++++++++++++ code/modules/mob/living/silicon/robot/hud.dm | 18 +++++++++++++ .../living/simple_animal/friendly/corgi.dm | 4 +-- code/modules/projectiles/gun.dm | 27 +++++++------------ 6 files changed, 83 insertions(+), 21 deletions(-) diff --git a/code/modules/mob/living/carbon/amorph/amorph_hud.dm b/code/modules/mob/living/carbon/amorph/amorph_hud.dm index 7236790bb79..efd9ad65a65 100644 --- a/code/modules/mob/living/carbon/amorph/amorph_hud.dm +++ b/code/modules/mob/living/carbon/amorph/amorph_hud.dm @@ -287,7 +287,25 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image("icon" = 'zone_sel.dmi', "icon_state" = text("[]", mymob.zone_sel.selecting)) + //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + if (mymob.client) + if (mymob.client.gun_mode) // If in aim mode, correct the sprite + mymob.gun_setting_icon.dir = 2 + for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons + if (G.target) + mymob.item_use_icon = new /obj/screen/gun/item(null) + if (mymob.client.target_can_click) + mymob.item_use_icon.dir = 1 + src.adding += mymob.item_use_icon + mymob.gun_move_icon = new /obj/screen/gun/move(null) + if (mymob.client.target_can_move) + mymob.gun_move_icon.dir = 1 + mymob.gun_run_icon = new /obj/screen/gun/run(null) + if (mymob.client.target_can_run) + mymob.gun_run_icon.dir = 1 + src.adding += mymob.gun_run_icon + src.adding += mymob.gun_move_icon mymob.client.screen = null diff --git a/code/modules/mob/living/carbon/human/hud.dm b/code/modules/mob/living/carbon/human/hud.dm index 86c08fbddc0..d7543ca0fc4 100644 --- a/code/modules/mob/living/carbon/human/hud.dm +++ b/code/modules/mob/living/carbon/human/hud.dm @@ -485,7 +485,26 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + if (mymob.client) + if (mymob.client.gun_mode) // If in aim mode, correct the sprite + mymob.gun_setting_icon.dir = 2 + for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons + if (G.target) + mymob.item_use_icon = new /obj/screen/gun/item(null) + if (mymob.client.target_can_click) + mymob.item_use_icon.dir = 1 + src.adding += mymob.item_use_icon + mymob.gun_move_icon = new /obj/screen/gun/move(null) + if (mymob.client.target_can_move) + mymob.gun_move_icon.dir = 1 + mymob.gun_run_icon = new /obj/screen/gun/run(null) + if (mymob.client.target_can_run) + mymob.gun_run_icon.dir = 1 + src.adding += mymob.gun_run_icon + src.adding += mymob.gun_move_icon + mymob.client.screen = null diff --git a/code/modules/mob/living/carbon/monkey/hud.dm b/code/modules/mob/living/carbon/monkey/hud.dm index 54b487ca680..29240cbaf94 100644 --- a/code/modules/mob/living/carbon/monkey/hud.dm +++ b/code/modules/mob/living/carbon/monkey/hud.dm @@ -220,7 +220,25 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + if (mymob.client) + if (mymob.client.gun_mode) // If in aim mode, correct the sprite + mymob.gun_setting_icon.dir = 2 + for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons + if (G.target) + mymob.item_use_icon = new /obj/screen/gun/item(null) + if (mymob.client.target_can_click) + mymob.item_use_icon.dir = 1 + src.adding += mymob.item_use_icon + mymob.gun_move_icon = new /obj/screen/gun/move(null) + if (mymob.client.target_can_move) + mymob.gun_move_icon.dir = 1 + mymob.gun_run_icon = new /obj/screen/gun/run(null) + if (mymob.client.target_can_run) + mymob.gun_run_icon.dir = 1 + src.adding += mymob.gun_run_icon + src.adding += mymob.gun_move_icon mymob.client.screen = null diff --git a/code/modules/mob/living/silicon/robot/hud.dm b/code/modules/mob/living/silicon/robot/hud.dm index 0087c13e969..c49a7bd7430 100644 --- a/code/modules/mob/living/silicon/robot/hud.dm +++ b/code/modules/mob/living/silicon/robot/hud.dm @@ -143,7 +143,25 @@ mymob.zone_sel.overlays = null mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]") + //Handle the gun settings buttons mymob.gun_setting_icon = new /obj/screen/gun/mode(null) + if (mymob.client) + if (mymob.client.gun_mode) // If in aim mode, correct the sprite + mymob.gun_setting_icon.dir = 2 + for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons + if (G.target) + mymob.item_use_icon = new /obj/screen/gun/item(null) + if (mymob.client.target_can_click) + mymob.item_use_icon.dir = 1 + src.adding += mymob.item_use_icon + mymob.gun_move_icon = new /obj/screen/gun/move(null) + if (mymob.client.target_can_move) + mymob.gun_move_icon.dir = 1 + mymob.gun_run_icon = new /obj/screen/gun/run(null) + if (mymob.client.target_can_run) + mymob.gun_run_icon.dir = 1 + src.adding += mymob.gun_run_icon + src.adding += mymob.gun_move_icon mymob.client.screen = null diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 416bb6fea7c..a438e62287c 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -23,9 +23,7 @@ /mob/living/simple_animal/corgi/Life() ..() - //regenerate_icons() //Don't call this every life tick. - //I'm serious. If you're going to enable dressing up Ian, - //Find a GOOD place to call regenerate_icons(). + regenerate_icons() /mob/living/simple_animal/corgi/show_inv(mob/user as mob) /* If you're turning this back on, scroll down and uncomment target_updated diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bf6bc3032c7..413662c6bd8 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -178,7 +178,6 @@ // return FindTarget(M,user,params) var/mob/M = GunTrace(usr.x,usr.y,A.x,A.y,usr.z,usr) //Find dat mob. if(M && ismob(M) && isliving(M) && M in view(user)) - //if(!(M.client && M.client.admin_invis)) TODO: Look into admin invisibility in post-merge code Aim(M) //Aha! Aim at them! return else if(!ismob(M) || (ismob(M) && !(M in view(user)))) //Nope! They weren't there! @@ -186,9 +185,6 @@ Fire(A,user,params) //Fire like normal, then. if(ismob(A) && isliving(A) && !(A in target)) Aim(A) //Clicked a mob, aim at them. - else if(lock_time < world.time + 10) - world << "\red LOCK TIME IS > WORLD TIME, FIRED" - Fire(A,user,params) //Bang! else if(!target) world << "\red DIDN'T HAVE A TARGET, FIRED" Fire(A,user,params) //Boom! @@ -560,7 +556,6 @@ client/verb //These are called by the on-screen buttons, adjusting what the victim can and cannot do. AllowTargetMove() set hidden=1 - target_can_move = !target_can_move if (move_dir == 2) move_dir = 1 else @@ -590,13 +585,15 @@ client/verb if(!target_can_run) M << "\red Your move intent is now set to walk, as your targeter permits it." M.m_intent = "walk" - if(M.hud_used.move_intent) - M.hud_used.move_intent.icon_state = "walking" + if(M.hud_used) + if (M.hud_used.move_intent) + M.hud_used.move_intent.icon_state = "walking" else M << "\red Your character will now be shot if they move." + target_can_move = !target_can_move + AllowTargetRun() set hidden=1 - target_can_run = !target_can_run if (run_dir == 2) run_dir = 1 else @@ -605,7 +602,7 @@ client/verb // winset(usr,"default.target_can_move","is-flat=true;border=sunken") usr << "Target may now run." if(usr.gun_run_icon) - usr.gun_run_con.dir = run_dir + usr.gun_run_icon.dir = run_dir usr.gun_run_icon.name = "Disallow Running" else // winset(usr,"default.target_can_move","is-flat=false;border=none") @@ -621,9 +618,10 @@ client/verb M << "Your character may now run at the discretion of their targeter." else M << "\red Your character will now be shot if they run." + target_can_run = !target_can_run + AllowTargetClick() set hidden=1 - target_can_click = !target_can_click if (click_dir == 2) click_dir = 1 else @@ -648,12 +646,9 @@ client/verb M << "Your character may now use items at the discretion of their targeter." else M << "\red Your character will now be shot if they use items." + target_can_click = !target_can_click ToggleGunMode() - world << "\red [usr] called ToggleGuMode BEFORE:" - world << "gun_mode = [gun_mode]" - world << "mode_dir = [mode_dir]" - world << "[usr].gun_setting_icon.dir = [usr.gun_setting_icon.dir]" set hidden = 1 gun_mode = !gun_mode if (mode_dir == 1) @@ -668,10 +663,6 @@ client/verb usr << "You will now shoot where you target." if(usr.gun_setting_icon) usr.gun_setting_icon.dir = mode_dir - world << "\red AFTER:" - world << "gun_mode = [gun_mode]" - world << "mode_dir = [mode_dir]" - world << "[usr].gun_setting_icon.dir = [usr.gun_setting_icon.dir]" /obj/item/weapon/gun/proc/isHandgun() return 1 From 0efb0311e33f4d51eefd0ab2b5aa35d5891b7604 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Mon, 4 Feb 2013 23:37:50 +1000 Subject: [PATCH 022/163] removed misc file, added some extra sprites, added/tweaked list helpers Signed-off-by: Cael_Aislinn --- baystation12.dme | 1 - code/__HELPERS/lists.dm | 36 +++++++++++++++--- .../modules/research/xenoarchaeology/tools.dm | 36 ------------------ icons/obj/mining.dmi | Bin 43840 -> 50436 bytes icons/obj/xenoarchaeology.dmi | Bin 24472 -> 32769 bytes icons/turf/walls.dmi | Bin 140392 -> 141275 bytes 6 files changed, 30 insertions(+), 43 deletions(-) delete mode 100644 code/modules/research/xenoarchaeology/tools.dm diff --git a/baystation12.dme b/baystation12.dme index e0489fa5008..e9266408f8a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1143,7 +1143,6 @@ #include "code\modules\research\xenoarchaeology\geosample.dm" #include "code\modules\research\xenoarchaeology\readme.dm" #include "code\modules\research\xenoarchaeology\talking_item.dm" -#include "code\modules\research\xenoarchaeology\tools.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" #include "code\modules\scripting\Options.dm" diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 7076565f541..690025ab735 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -146,11 +146,11 @@ proc/listclearnulls(list/list) * Sorting */ -//Reverses the order of items in the list (Turning a stack into a queue) -/proc/reverselist(var/list/input) - var/list/output = new/list() - for(var/A in input) - output += A +//Reverses the order of items in the list +/proc/reverselist(list/L) + var/list/output = list() + for(var/i = L.len; i >= 1; i--) + output += L[i] return output //Randomize: Return the list in a random order @@ -320,4 +320,28 @@ proc/listclearnulls(list/list) for(var/T in L) if(istype(T, type)) i++ - return i \ No newline at end of file + return i + +//Don't use this on lists larger than half a dozen or so +/proc/insertion_sort_numeric_list_ascending(var/list/L) + //world.log << "ascending len input: [L.len]" + var/list/out = list(pop(L)) + for(var/entry in L) + if(isnum(entry)) + var/success = 0 + for(var/i=1, i<=out.len, i++) + if(entry <= out[i]) + success = 1 + out.Insert(i, entry) + break + if(!success) + out.Add(entry) + + //world.log << " output: [out.len]" + return out + +/proc/insertion_sort_numeric_list_descending(var/list/L) + //world.log << "descending len input: [L.len]" + var/list/out = insertion_sort_numeric_list_ascending(L) + //world.log << " output: [out.len]" + return reverselist(out) diff --git a/code/modules/research/xenoarchaeology/tools.dm b/code/modules/research/xenoarchaeology/tools.dm deleted file mode 100644 index 9dd475dc9fa..00000000000 --- a/code/modules/research/xenoarchaeology/tools.dm +++ /dev/null @@ -1,36 +0,0 @@ -/obj/item/device/depth_scanner - name = "depth analysis scanner" - desc = "Used to check mass spatial depth and density." - icon = 'pda.dmi' - icon_state = "crap" - item_state = "analyzer" - w_class = 1.0 - flags = FPRINT | TABLEPASS - //slot_flags = SLOT_BELT - -/obj/item/weapon/pickaxe/hand_pick - name = "hand pick" - icon_state = "excavation" - item_state = "minipick" - digspeed = 50 - desc = "A smaller, more precise version of the pickaxe." - flags = FPRINT | TABLEPASS - w_class = 2.0 - -/obj/item/weapon/pickaxe/mini_pick - name = "mini pick" - icon_state = "excavation" - item_state = "minipick" - digspeed = 60 - desc = "A miniature excavation tool for precise digging around delicate finds." - flags = FPRINT | TABLEPASS - w_class = 1.0 - -//todo: this -/obj/item/device/beacon_locator - name = "locater device" - desc = "Used to triangulate position signal emitters." - icon = 'device.dmi' - icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull - item_state = "electronic" - w_class = 1.0 diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index c6293f649269ac776fe41cd8f30078ac8847a30d..0bcfd99256222dbd131b9256000a36a27d7ab83a 100644 GIT binary patch literal 50436 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

a0c)&d$S#qJw)q>Dp)ZFN*`HzCAsv%#VBX zxW-J^i`5^kkzzLw$5)n?IZ+YeIZovi0e=TeEoDWfoxU-$vrGQdzBwQG`D6Lc35q^k zvde?_QI^<1?Lg8=gh7Ly#q34L%=C0&AnSY;)V5?BqUjAh)q8boe0?Lu^DRC>c+?5$?wo;=Qzu!s$ z1PwU_#S?4vyC%$}>z2Z5EOTI@8!m2i^n)}l6ADUl@3bkm3fChoAcUAHaVmarX}r25 z0t}ae5)~OvSYN2Xb4fbsA<^yXt-Jl|fnAUFOW)7$zC=ey#|(2{#}oM)doOz`Q4l-; z_@wg-M;uqpeH+kWEo|zY?7H8&DK+r863>D+;Rv%>-(2T5!O-s+kQIPa|Gk-5wh z6;Zd@?)l&kLj+3$BK;02YUc=XY-dmHyO9}e^fT;}@17omaQQ2yN)?wFXUI18DxJlZ zoL`cs@!c5T-oWdT{e)a?4kblX@jV1a+})Si+nIZqNuKt6D+|&8*m~s!XJ>E!nE~8o zbg!49fB;@Ji_uN*kd!R%oxB2kpCAPm3Ru%8;12dfua^+O(Q!T>Bc#o0%mg!A&a(Ur z8Xdm)2GZbZ7PiYKr-O76U9lcO;SZcgsO-<(009LU3BW|va_IG~XQ8FzwV4C2@|8t8 zb2_@A3|+H8^qoOJ!7;@oRG%Ya^;qL9%@m{udO7aZ>p!h(O3PRez5HJ1?qF2T+3){L zFsbsCf;)?%_C;fFc)?VlQtm6y8aAX46L#J2YhMTYCK-zSCsEjSK}W2JYUM$ zMVBnEb7$=s$>+7tZDF%|kT|d!GXF521##YDtRw6HSr{t2;mvh6i9wfE`RPk2>*weB zg%%5;icW}fIF;ju5ckoBzg(VfD-5*7C*zrCj;1EpH7{=Jkw?!|*u`u8vT}c`WTIM} ztmlxa#;e1^N?d`v+YkILTeQzP*T`pc^I^}2Y5e2$vEEMS!&6w3mzP`K{ODNrQN5R$ zRC_=G#;Gp-)8&v5q_Wge4G~U!JM0WQ{P8ftrxx|=7EIVVyQc6kwG4g4azbnGIB)g! zhIuPyV^*p24AV@f;$S*ED|(s+fU9!k`slEc8||~?x$|mqwr_8?V)yu1!CqP|G7Vzd z_ov0ky~?}gEuIVUk6n+ic#@8ej#9gD4VeZQvUER71Ug7w+uo)`c==JlKarDs&kxy~ zgV*2vonRoW=K4wzREf?+jf4=AjH=goO1jxrQW0w;D%zq`c)EwKmrmn=Nm|=n81~BK zWSBjMRobS**Ez~g&Qm-_dmL^*qZiZ6Qrmi>0nHLtM@ed0C+>;0d~+r^ZGe(8*jlV#wRVPF_wabE2dWA8XW z6l~?)E61fxaiV)C$ivO^?Cmz+OFQY)ai=DuS4ZcSh<{V`G#malHumlmDqz}48<>HG zro}`1%D`1)SZOC%?hmrJoPyEc4%;{EUcS=*Spb4)7SRVgl6=7QNHL|GI0qR;f4H}i zE+qUxF&pEt(FK@sWrjZt_yN8jdfp1aDbOt4MEd$M8Yx67|CEd=lk)c(2qKkjcQ27{ ztZpx$oc9yYs`F$wF88lu!bRgz#nTB_WYBprQ!MifRlVfJp}kq-{LoVbotoubz4P++ z9^t-*Nk)^aT8t^p56p(vdtxGWTWxGXsW%T_WIG4NNXB;FK>QxKXO=25sK6rs77_X0 zH;UgFk0a>8KHt>DoaACek#!ew_Bivh{FDEWiQo#18nO>Pe1_OR)?7+6UvDGE_9ePy zGbkAxwxpy&Y>~o#G%qmxcmXIfxui@iK<3rV&9Z(DQQ8_I`a7v72o^o#*$cqc_^9W6 z5F=@v;{3VI2bCs7(XVr3gv)Gld^3FT4~}U1!_py&*^c_lUi9WlPN`aHM5p)qw2)P* zmidk>9<=5d%{LZ$rrrV=B~KL%qn$7_p7g6$GtIAWzKP$a$n%i>aMGx%>oXs+b=SzJ zI`X|V(kx_P_U2a1xx|S?ub3@&$TkgEdCY0B`GZdku=N{4 z;G~y7@{v+6+TqHf{Ckk@xx3zI9;5Tql$rT!q_Zo8#CCIRzzIy~4! zJsqisCu^~k4%~p={N_%5uq{2e<(?ReYOhv2Nuk=f1w1`D+H%)k#Raprl z5}*Wc9u$t&V<8W8AkVaWoeoS{UJ2nj8VkCsG%Z>8*dWF&7Xcl-IA?AuGKm#5BlKXB6(3A4$~ke;TrD*0l6Q z5`p{6e5#&A_6!T|1xl!hx8!6xcYYb54$5M$YDNH|)Hh5V=wKEKQT+`=% z9n;!p&WjKN*LBm!{Z#Z?JH7vXIrl1ko!s&9o56waxziKh3xYTe8CI?RJl7K_acFo# z;&g#sZn$4mX-4pH>Hu*AKu^lze3B#359*{SJPyiN+UzI7T)m(yn{C5P0MZELC^UU<_xtXu& zbn@~u7as*P)f%uxGc!OvOi9V!sdbkrA|e8gk;6#r0Pt=<%o2d2=BIR4?8k*VYj#1? zPpECn@#8xxi&36H#g^&Rims2#q7)&GgF5CD!4IO&@4yvHI(~6=wKqv;-~Xq&2mIFL zq!u_I@c(@pB2@LyCK^{+i)_GzSGHbJp=O$Dulf0|&-1rMp>IQ3>Kr=!dyq~+!b}vi zYZl7F=%#j3=U!qo_Vv}i8%}cWIA1erd%H*HZ3GYhUksVdxbg;dCXytT zL{62qE!EaD5RzU`SR;l_&1gK8diS2&_HlG+YL7g=e3r^}__@)^B=hXMiwHMkj@K7t zOajC2SMIIH3h|rt9UkC>d?RB_T{D>^+jXqgj6f0b-C(;-S98#Fb_#0uJGqXiHdYG? zrhLD9duQwD_|D8Mcy3NN#S9np_p*Fo7srgUkj6Bvvr_A$4n=|22z4U}4$;nve}u3i zxwAk5w{||dbWm7UJmEwzJmMGHL3be2uhkb4FQ{X+yf@|C z#1uh*@`zDklkvFt=4C|HYiehsICOXK;#AUEw!;TDYi0B1qhNt|$!Toy$G|yIu##~j zz(>F#ai~=H(|ek`lIXD)WA z_KWqBr0U}m2hY;tj}Hg{Z=?z8jNGKv!CnkGPak|K?!s-jEWJ9_m`}TF)Y-U6tAM$u zVyJD#`bueG|J+7nY$CNfV9zFre}DhmYJo4CXyGZtp3G1Y5OflzheR;f}hQ|xP9?#H^dzt3yJYw%d%`GCy!3R-|OO`J5_u{c0I z`~qrNFshdWGMA+J{Ya9!Dy_Q~5ZN2S@J9wO4&wB^X-$cAzt&bb{SIG&5)v+?znk$N zqM*=&YP#Fbh)s6Lr?O#g)Y`ZpLC$9K0m!Geg;>aBs(ovFI#H{iE% zNgN%cPn|ze`_)%eaBM)vpxm3#5&56Kw@TzL;+vSmjT7K1LJcnYi>KgVM!DEtQhdU+ zg45g8ni*WzQbSMA+}=(tpn)o{8ce%c)7~nXZY`nf`ZFlsxx1+AxB)qU&W|{w0`L75 z_uZNOR;-@-VMR%&>FqH0OWEZqTesas=Ke0+B8jI@P$>&S50jfA`dTDyN~P&@_HNSJVCOBci-*Dh#BsSm zLxi!pQ$sY|n8rpy@OTQm#29k4Z&iC$vFGO>C#$M_cCKF-@a6wE=B#^ZNpLIaMkOM0 zLM4){+u3=1_8G!Ck?GpYt0)e&@m~kD5aX+;5QaE?e{PS5e6hz|$MxgMKkl(2A~RQ9 zhRq4tqDdo@SF0YBLGX_h3D6w-Uds!jFY*$G$y&fUF+{oSA! zEc)e%@s_pmhY|Ts0E@_0HnPh*L&X6k4p}kvkHk4G-A<8$*(Dw|$S%1&dVccqTod(( z0;k+F%Q0-mGg3f}6%}=DnJaU04d-hACu+*xMU}V-7~R`lQ&DlOiAMJ2n`^15nqBNbIr&<;>Oa2!D*EY%w&d;4ng4b#6 zMa44x6$38^<)9vtt@pIcH}>cT4^;mS)yS7rH*iySVXD^ip^Wrqowv z!N;5H&z)UJXW6hX!|Yx#`(p{t-NyaRZ8zA~h(uCr{;mXO@%8Q8h{}joiyfj7q`ECnvT868=Y>vZ*`n%)`A7dms-qTIr*lUeJHJGWh9S%Qas&=M- zI6R#8et6NLvOg>MUh-wK^e4{ER)sVFPyvchz`6 zV)^&L_|W@@{D()#uY2d#_@Lsy5xau0SOKV^4RQ3)X3yqB(j2DrcMm_mz4F@Bgr-&2 z8V_6CJdZJuMv)9asNm;%582i)=}2D^IWojG2f9D_PM*9vo%Id|@oFNwG_$m=)O)07 zn8t=8x8gx9<1RL3zLQ|28pURSI~`gMuF@3dMLX59+A3+{XWCurSoscx7d zOMQdew1^q=bd(<^MO$q?1`{8ihV5?JkJ1~uFNUnFd^>x4cCRrT>|SOZ@JJEO{MX1O zQbV}2KvbBH$)xW*E^1OdT5vb2nLE%}NXpseM_sO}SV;Ys$XeP=ltguChJd{`0ZYS! zTS59pP+n8oXy!}AK5CfTRhMaJ^Yz>}EOL7?U;|H=ZDZ+Pe?qEK=0_mmWWc^7_QqGs9f{2q>H+F@=jcd1a zuhKqD&(d^JvRFP`AL&4QW%>J8$%1(LB_OvXl8648qw@Cl>~M&Ph;Rm-OQqEkgDV}R z)AMN)5fbNLEI0gX@*LYu_b+|MtXA5M_g^J=TkC{9y#7fB+e?Ee|JV1>{Ot#Nq2W06 z6O3CtRskxb#}*s^m|ryYdaHW`+?8&eJQzrxXaEi z2F_9-%Kru=uD!I!Z_-*}?w@njaykQNMW6{CD?^9hs!rz%(;suIABK(;Xd!VQ2vxDc zK$*4r+=lR2`>ZjQQ=hT^4dG0%5{wP@m4*#k|MwAR!~+9@pxF~*+>)7duz7-vW_cbwXuqG}BpXs# zFhHMXdD8#=LTK42#s6pl{y%U2*9)a?9?j0&gR3)=mpwFQh$!V~C<{5JifxQqMR{so zpTVy@6{+}@(-qk4s9%3glFzhn_9(xqdKoApzY66of1KAiLn%-PHcJfhfEIo zF2UP6MO4&iC83mG_qWpQDyp3ho->8%L(L6m4HLs&j-@Nuw8*t_5|&PoBBkcvkKAZ_ zD%}f%`VUrSz6Is{X6gP$4u_|moxMo<${LfkC!h@FUpZIE4AD|>Rc+HzVtPGB+A5Pbvn*}Wyla0^d-8P=rK3m;YGmw^A|h;yp;|BOAfX1$07}J&9^33 z%EWLQRa`EDXqjeDl{X`$QhyhauN>}ihAjK)?mk5cHySpLyeRl}U+?iIjUwd$hI4&b zoB9n~8|MgmM^xo{JwLJ=Um~M}=Tbbc@rX2ImjYK;_1R#Ovkq`LS00`ZB5~xuNIozon7h{RrLpHM1*;q1rAhwT2>jzsNth2F;=xJ)ulu(DXDBpK zx7u_R49c4cbZc9dV=Q&M=t|Z0^Al9^C6sAMIHH&ERTpoE?PNWc*$dt5Q*j9GD0c=f z&AzM5T*_{L8XZdC7yS|g10VcS+LyGeb-MhLQTmqacKYl3_g}wSXtc8iaYEnM@|DK~ zUruCD^m-q1{W52F2nI2dZ5KgFHmllEi0agC1n2UqwzMz|kcYw(6%JaJ%iPM&_lNr< zamG_pGAv+nYiW|i>B8t-rM(WpL_rs|Y2bTe_Z=rrRUcxD>!VnZ?9&70(qW+%xoN2~ z(WSjQM!FX~agfCyURPH?qI`1rP@HNt2AvW3<2J%6R(txkMVoZ5d-8!jNKn|a_-cYJ)S5c63ow(EvVa|{EUjxS4kIA{YVglaoLK73Vw|mh( zd;}z$70fGORL>ta#pXi9)qI&f*_n9*qj_oOy!4wgLh;Kw)2qm5i+*`vRztW?L+-|= zF&@6gHIzFw?xv!`IU(p_8fJC$tWs%!m_Qe6>63#$K)l503h*Ry#Fcs)ouYopuo@Pu zEHkNnhj?|ld(S7URn!*X#zL92?^N1J5JlGu#}*>Icv*J?9cC{rMg>R}WF%j4!+mfs zuG|1OdMGJcx{WT`fL~IF9lK$;Zt{&)VbaU*DYS|Io%tCK_&dONM~^hb0{{Zq@y~B~ zx6OB}S8YlaM6BMRfMD#q8~Nrw`^8S|&#Q_I8oq#t&A`zJ}byZ*BiOx=$xyb$FELjBnlkm z4_|%_!wQ+xjY_|Hc$tLc2!84%bUtf%b^Mi4-<1>6$-{iltzCnXHB_k(`-EiKOKBFx zM}-eF#@DX_^mTi}lBU?F7Hqp1HY2s39^V1k{Pa25U)tlH;_0H^>yU;;Urf1j#}0|YtBS{OlM%ClbIvMn)E*&@jjK|ysPe--q5&TMLgiN z+Q>QdoO16l<>_c&;81cTUxw|rb=k?2?#_Qdaj)2PDJS#rfDip9IGChH^y=tY-WF)gW4*mJQ5E~I$A zf7I}QCA`Ec5|6uo1ft+vxsNv;ZG4Wybw7A~sqYQDj$wVSN%AMPZ91tscp^~EO8-dR zOa2A)~1h>TrZh>8F_YUuOzu)(6O|4ArOr7e}b58fu{d7-JvR;*u;hF=X z3*ga}e@AEvcr%=C$y0Ea5&B1KGawrH#;@jPvdP2h6W7ICQ#S4>(`7MJl4W=CYRBVy^+_xQl?>D6x%t8km4hSmgjtb@iimmRa0-@L{Cq@UTodT*fEof;f@s0#aR zM7-P|bE+R9F|~rr>|A})=KYhq7n_(o^v)}8bZT^Ms`_Dmy`Ta;QKeiDk{x`B%}5x9 zjLnENqY1AzUAQEW)@2O^>{cq*H0`w=&eZDUc0Y@%y*OAbU1txli2eCg2dg?$mb^IB z(ReK6J~pnUIs)&@4YqE@hC)LQ{(GA`dQIj^86AiD>}9&1WB<6uzKwI^pV^r)cZUpMxi`Qz=_{zIwCPp@gqpk)bN;q(Dpu+cc9SzCE= zXV7Qq@Vh$^;#cMuEpdQ(qTsWb|Al(T96^|$-EpZZX^az~*lK0`j~KRZ&ZmCcj`aR6?_6YQHIrXkYC?pbd$pS#%3+s zJ5W_Z4^i*Wb6-0;f(*Zo-U9U5j_)GcmxUE1wv&aUM-^Hm1Vn-2TJ)LC@E_f6WjT5H ziOOL3rKQNgR%NU%_2h3<5?_k)@*<_~wtu|4i#%Qn;tL6JFDC)|_UMrB18^~i(~G7Z zPS&s4!L*Z0V|iK5otT%oRVdb%&YfJp0p?KlZ&;8-f6lfpd#@ zG%0Lx$A%YP<)1!O&~E@f!B}2dlpBw6YM{4M3JYRA0fOMCog7fb_5D5-_Jm8%d?)-M z&NFbJUJZ>v$9>{Ti(mW$(~SsNtpj?(`4XJLJ_y4-UVoQ+Q5yr-%3>IoInb#<7cFNL z5iH`MkqQ<)@NdKBn4qGh>^|rqP1$#mC}^OfG1Jzi-T-d!9T-A|MA_9$(zT|MpKE7X z$$zfXh*j!YEP;U)YD`pR%2bqBz-Lq-ZPkhDyUF8({{QtW2B1uya}FBTg-P!N|}ArvTan)kyXE`#cE+KfVC(iyZ8?(t+_aq*}I{tXxeh$6}v;QzBaTF z10JUEt>qtH>~2(eweuE_RH3`6c8wd=9|7yB$hMqxHQ`wpDkuY3dX>deyI~-|MXzJD zJcYJy^w-rL9wSyUnCnAF*Se;rqjt4CNaW{b^OY@L*G^P0ZKr|He-Y{}h@xx$?hwB< zyaN1`N>B2HLh* zGn>_@(z`u$HZ>hz-(xG6EOL<>Dl^I)utv~Za3A1QJ#<%t)`h{bRMifH@sx18!O5_h z)N=ybHZ3VnuehZKdq#NZRn7hA41(ey8Nmt%(abdn((PP5ClxN5nEwMaWEtjX_e1TMs&)nThHv}sW{!ZEpzxpvvs}qYzg6DHO_?yN zXPDtKVR`IuX2PA<{+Gr|TaS8221pM<{vs=T&~mVA9wc(%h+7;Pu~Brt<2{i(Ss$)9 z_RgO{nV@ros+#*a6dL*MDnWI)`KYl=eNms0m>9ZR%d>_WcIKDmF*#Ig7%Ke$q8mz~ zH2_oGOMPfx<1Z1YyUWWK^Jev}{8HZ;i54mQz^2t3Mggz-zCjvNbjRN?Py_VbFYbE4E)E;C~;g>9sBDC_~`)w)BH7+#2~ zO_z7)+-FOeZaJ~qiuACp1*-aVwh6s|!@2-$BJQYX&+w<68mxY;T%bn+vDEcvX!L}Z zvTC>p=q$&oTeDe`>Q^B##}T8{BR`RvSdGXB-*YG+#pXA?oYEdwYe!w!&P@f3zh zLK`+s%gWl=Hu2-}akN6t^~WqO1oo{m#agbHSw{d3f{v>Bo^IDV?R+;&(DQtQS62ap zDl=4bN%sv-64UF$*{enf!qb#aS7FfUQ_I6AR?zL;@Ha0nM$4kxWV!&!16a^~hEYLj zYoe}7%dfa^538lum%a1kNE5!2=-%**tQ&~|S;+PAIw&D>NE)MCvHCuN;T6-<^AUVy z)P>XiIu@cfEt*Ux`8&VWJ27zEd3t`fzdnr!;1h69v)|kW(%9IHp;vXgYkk@Jjmr}y z0?Gebr4fp-xsCW@c=HOsa;K8`%m)&q)e4(f4w}7c9zP2wAk~0vk0RpEBpy5aJK zQQ7-(aYk^)p+Mo%&H5o)CSj1^?!!6)lrC01uE@0cMt0Rt1l3~c79smZt~cwWAaXn= z_{KcH*%CA@Wa;4i8s3d{b4QLr8KsgDqczFW2*E5VL3;#c3*nxV>A9F(K7QQ0xw`+bOt7=f!7(`Sa!!u07G~xG zsK_lk(0nE-bJ+y6e|?$L>K(7Zh!-G{FXl|{UMQi8dw!Vb{u96wiX9muf}3!i>D=Mv zay43I1w1O*Wn=&@N(p;7y}A51 ztbC6?AZ3QbO}N3PhR~XMEHgp@g&fd6Y2%^!zSOCzk-|CFFd;(qEL{;7I1UjY?=bkGXt&OFj)|SpC;r7fmLzpC+-*>7XU7z3R zsR~0%1rm|~?j=n!Ypq@7Z9m9-8)^Ud0Y(HvG1pl1Cp z;S`XDO#9KxPy;`fjnxtP8J)B_X$~N!n|H})hM`8|cwY(KX(EC<&CfE1jnq0&EWo$o zgPkBZ#Ha;tn9e+p|LW|8Y?06efTX8Avj3g~#j@$o3ImZM zX%B{>(+~-q?zx%5vRj`(dM0FNA;<+&ZRIkLjG$;$0W{69>`gb4gLyDnUl}P1Z1^^d zd|b(lE~p@VC|oS`jT-91_`=QkOo5KMn0{b84>N1{O}6uj@%vtxq8hgm6vo6nc=vD z)BTRqek>cgziF+-_diKAuX?F%`P1;620YV_^P4SMlzM3eVvoM56!8o9njAOfEsQLz zifnORgvyo@<0xNs;9hKOzPlw%O4fxmhRF=aB3=;mTZ;mTrLl4w9^HjmrH_H*MufG+ zj}bY|0bTpOJb~g4G2S?5^HZsQv8Ax1=k`Coy&NMz zQC8{;lj{fHj;{z#NZ~?;t#(Dm1N0P!UQ7bjvP^g;9u{UE{=Y?!rTEjKK1Ri$`b>E-?_u+#`9AN6R$E+$tTrR79GRw?26h#y2p+DPrgYAn?q zJG0~)&npNp^vk4qfw^)KNgxe3Jvod2?gT*ahL_>G&Rw7XhH__inTczNQ0TWkeplLH zTNt$vh4eB_=I`iH2w%;gDZ?6A1lWXRAO6%Zyn1jX0fT~4!NyXFh*b(Jz$kkil88j7IsNK!VgU;k1XIBI}>Xur&Pfr_jQO>?F}dbQ`Vz zyn=GV|1smkaeAIY26&YJUnit3QOkr@-Tb~+T5br&6#cI|;n*!^4V2*LD2jIwQS|PD zZ^Vfm+%GpdUnMlQUJO#}?KF#fX$eaadN79|nnUkJnEWDvbeS00ZZS*XvP*Odv(yhR zKzkOmkP)h+TRFiNm!#W_6O)PD65E{@|DqggjC^%E9ae}M7lJy?h22)!_uur2toxS) zPl)X^zgPi>N*6vl3araSnZ%;I%cx?C`<0S}=~!edWqp$RSD&RkWiAbrb@?c=&Q8tj z(k)|WMR*RFs`vAiBO|*S009shcsS3AxSp`g)g1%6)@0$nYC!@Pdu>|PO7z>)5Xk^} z{h$y@o<}Kz`Mk4~QjUQh_~X6Ue!e%5C};UWa7_%5AG-)1%0$Eq#J}dtyU!=9*V{$` ze=GNSd7p1Y%1V=jvsY{QBIRzGu*x`>M21g?-C5Aw@9*EkLZu)Rk}EeeQ&Xu84^5$< zFTtbVz5V?cj)HAQP+~e6G?Or}ql(AM8<2euzr-`->p0siQtKiTZ6-TC^DB7@`fPa4 z%7B&)k&OqD*Q3%|*2%5=OBDF7>)nl!vfWg5+l6pLIAmYwYH||#V+U7zzY#b*-16jX zfeafUBZ7`*uff5@|KPDcU&a5V(1Ojv-<}D$w;78?*z@)r;JC?r9>)Ci-!qyE4|DGf zKa8O=Zfw6bj~u+IWiG2^AsrE>dU;tFM;TCXU&!j^R0EqAl@=Fn5_ClR6s3f3we3@o~uj7sL%;rfyq0f9elUzxz1AUk4iY%aKQ;KBI z!?qiGnzGuCx|}SK^svLkmmGzvYfUwr5tR2MP+(eHc6FnJl|vX}IyUonjHuBrUg_V+ z47^=Y(2y5MbZ?VB=xA-o@UHH$MPHgq#@FXeC`Jy=Rxw@-27?`Vj*Na)_PqML`z*CzwU zbz(ZKCLFzZJ!pVx5LcI9r{q$LWcJf@8XhT7kFr8F&HXd`jkWjUFb_|78#EXol88V$ zwh;aXGvcn)BtMtbXz$J0d)+rw7}(V1O6u`pYfa6g%agmTo5^fWb|?EkKGo4ffD&ye z2~fFLHTHoN0y6JBoE;rEzC(wQ1g=bNC)^VF+ovbur)RwY9fg4Dv^yxg7~TvFjFpLP z=~1j69v=ETc+l_)m}b8BLCbmTY{%|n+N?V5(`R?t+sbXzcz@`o6Gr)|eb}Kn>sLPkRDJi@`g%SC)L*%z#W$D&={#TC zlCX^gWPC(W^`ZR8oq1GW179blq*Oky8~D~zj^0q!GR3>ODpvN-#KYtgU3|64%Ux^J=5MwA?I0dBm_-u8J{3z3jDDnig-e?#qR*V!#|Q+TQ`e6>BGc24245Fo`rq^fiHQjoGnnP% z4zfBq2yVNEEe{id&ajjv5`wMTfOzzBstB^f3@Ckqg8}=$&m2Z<5kWy-Vc|gw^ZBuI zi{h?{k@z&EhCCV$gyc4eygkD$!`ccCkG9niB>qU0%pSGh$fCl(_#f!mkxsI>1m8uEnu$cS0R@<)2YfRV(6Ld!0kM&b1 z7A40w93WklMvTOxYsb`uTh!u`TLG8c9*xCPZkn*#myHK}{?g|a=A;{f1C^(9j5}|> z{<;e@;Bki@Fl(2!<6hIY;E!c~^Rgx(F&-0w$+vc1;tE6%^A=^}=LnE0cmTV|mA9X)l4oeogY`4XKY!i@@zRdJ_V~X6#Vr0cs6dz# z$BCoTUqzf5Pq}@@xjw*G8O6aRQ1aH=GWgJB-&ot8OEig1G--9U|0cA9qShz1O(5Dd z*Gp}zGE0>IMhdBEla&_YK_>!9n~FK|B9Ica{8}{}ABH;@oT%6v?bLOfdcLHgQ`1uS z*`h-%>@WFb3mv2z8NP*hB<`x0h1;JjIJ&;K_1~c6bVCTxAg(ct9?uf7(OI*x{289> zj0W64>S!h{doHUd`IC9~W%D#F70nTC{7JMwKMc2$na+q+mi*UwC7utNI zlE17er-ZI!NU^dj?qS8R6}Iibw|TvBl|+OCoAY``OYJah)#oO}cWOk-Y90!*$CTtE z;X4)}>!rSq5aX)+X6je!RaIkna2kHW5np^YLcwembc1HcRiuMbrbJbib~hM3mW(&O z@ghFG@#hoEjJnFV-gHH~ELZpo*-Rq)tf6wMpKmTxQ6R7@o^$!Y()ZP8FIzNcJLA!hC z1Ne_q@u1b_02EYRKzCi%<>Wk$-!$=~x)pf77$UO2>*x*}WpkiWk>g%pC^la38T*^# z0=sZw8Er?(1vK`3Tpq(<1b+cNSA~H(dBL=-6BBU|{94MbYa7n>otjr$Y)6{us_s71 zmf;mayL%UFT)cKgjAMd2AvTPP8h3yX8}`23TaH;ly*=ArO{wO7 z_p0&@U=i;pIr?a-B^cHymO>ti(9)EP`Gpg)^~~Th-8ulls%R5uTx6N?#}4&BmBYeL z^HM&jOJ2G)S2^rz!pYg%&>MFF5+W^a9?HYOyccTAAoNi~Mo!JGj`Kv~dv?^t$7GM= zwa9_WRAf{|1tok@hs#d(@p?u=pNX9y=Uf{-dZ$X3x8BrHWqrmfZxh%?hQ*`w7Vbs- zO$;gHO{}%*w3}gKe-DuWriDrtrzlk*L3F%j#`E^KkJ7x)^$|f2Ruct!d2;9Ayx`;8*c$-f*lTG|kM0qVlPCp2=mDEL%Y|Pei-tMkf_=Evmwm3d3 z#;uN40=(k|$tx6l&7jKV^E@QWGT3Cv^NEb*iwV@)o|~**9VgD*?G~oTJJ0C2uihgK z>{Vho_DAw0eD;%d28RIK;oKwxvk>q01wPc%)={BJGBMRQEI!-CR$f56X;`IOa$Vz7 z1-io@$58p7N&GFJ(Y-2E%2vO3^vZK+__i77vV!bB2kWS|>5Hw6Y^f* z)d=y1@U~)@*|)pnyzKDh-@-4;W>D&|$~F7N>@~lV_`;B+OSGtf68|U2&RRLCzP>(R zWS0i2tUE@y4ad6HbS4%%IvD_TG;|e@ZwKFd^!xZ>G9}RV8r}8xTWpQX%vjL3wvwC( z{$B!7UyM+cEI&lCW+=AB3l;%2Tb#ec{maDSg;%)a28aKgGeHMZI@ zeNQ8fgS*el2$A6nPeQlT{Gyxe_uSUmGPkD=dC1eFf2;>Vi#}G7`I5fTwCE8hsBRvf zr$2!k=|mL~oI-F(&Hy`{sRxgu?Qx-i;;B zx~K-iT?s--wPD^Q9?ZWK$OP77#WvR#(pQ1qk(ACb!$*-Xn&1o8x1C6s*mjs5mN&Ni z2ZK5&GH*^I^@0a3D~yAYGcm{VY_Cyh{@vh^k4@ydN+c5_m2Q!dz9IW20#zwLobq{W zrVED+rJ|D4kMaYJwvn<+<3C4Zo2@9~DH{{shjc~N`}e;n)Ml0)G7ji{(VLK^*9Cn%D<5{xa+fB$Ymj|zKW)Hq2Iv)(5+wxXhrtJ0nuC?cH` zD#zL&zoka_4gyOXeAvs;MLoN{^rjy)I**$e$Bm(F!b1czX+WI z`Mn7v=B^XrRjdeDfH+%s=r^l<0=;He>O_GOfA%_J8GWY*vp2R#MnkQ+0r|fD3v{KY zqR({om`*i@HhTsKP4!QQWN%vSX=D4d=-cv2QC!sBqfi#Yr*9u(NlGYj%rKRLt}T)s zQ(mblJ1c=b++I&K(`F{mC)IhpiszC2Afg`u`)W{sEXbURc7gE6{0Icg8N$$okbsw} MqNYNPoMpuS0fUht%K!iX diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi index 32282287f1ad1fac106b982d6a88c17b1dac2cc4..16914dbff2b6283c2ec89a589757d1de1e687915 100644 GIT binary patch literal 32769 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 MlaLp$6g3F^Uu!OXX#fBK literal 24472 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

+b4LxUjI$-w|Sh&Vg+blWRfZlf-WFE6Fs&k- z(8B@W$hokHr#1NVqjWdmFOS>!jC{mdh0ms*p1Y?zDGiO{Sfu%^bPU>2+qfEkcUY&I>(ePw1}T zsmU|_&)&bIu~N?WAi|Xff&K~!tp^{zI2kR6K>Bx1cj=gv$95l9H{xzxXga1&ReY54 zAKCI+$-pjN>R#A+TxqBv_GY|ig_pu7J?gC%!9yz1Ss8z!1kB=V@(imNz%<- z6wYp-(D&$%v(14!cK=TJvMCE)uimzVLM*KM{Fr%lorNG0!;+o7zp_edB~x8opio#+ z=gh=AA_#U?6|J;0^SlZV+rfc$)D^=WD4GzIANeCGp zDzan`SKQPQ0t+g>O5D;hq9GULeKGmqx5>btoRP2oei=Wasc+y*O;N^z(e3RDo1Twy z{{DIV*!i^Bs-)6YM6d146A%Z_s_;F@Di_AY883c~_fI@EB~Zav%B$mxGQlc_O^(47 z0oGCzzHTZnMC_R-tqWV64XD%CVU7$%8*f0St>mkt?V*P~sZ(sn_?oQ}i-#$(?5m1N zRhv{tdStHgW$m{=i4AbuM2-VCy8YUT8@*Gg7yhK53-!1G;=}R~15t%TmgPnAv@7>I z8-^Nq?}32~#U(z~N~YfZpPQy#m>zO0R%)JvUvil4L-?3l&py@R*@gmsg?>oN^BE!+ znT!-fhX?MBEZ3{BzlNdl-*6}qjp?Kisi9r|Hkf>t=OPc$!_#9N#Cc;7is2C z6Yo6avI5B4H$!C-3XbCE#WC0hNU>NUSrFy_!4wg#?yO@FKD@fuMd8^$lu+Xp!{FUJ e$bUF<0+pfwxut4E837shL8?zRV3kVd5&s9zUVW(m diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index aa4e63ee8b29c4df739aa27acb3b1d683252005d..10032cd8cab09e7947cb0b5a399698fbd71bfa52 100644 GIT binary patch delta 6297 zcmaKQXIN8B*Dk%Nh>8M&5D<_eNEZ@#KFHm@x%4uFrR<$FZo7e ze)VE@C;L2dc2u92?IM6DC)+5DOUy%`Xtxd}gb^2%7{r*H6LB1w`Dph<<$`75Z|>`@ z>Rrtur^9rb1+nfIq)+x2${U09mbY{lF~bbV!xANL!qV(gYSn{`t*j~s{oUHgFA0d&YL4jGjedkc}(3yq8p5#r2_C@7!#+%4R#;hJ#OMqhyzsy?#jX* zo4p=<9Vc8swDx27)MVNwztr*Ml|FsdTay~6bZiw-XK@Tk(a`P)lO##@Ar4GnnjqfK zr-o~(kX;NQt1s|+w=YyfNAV79uOK2M^bTekuo1O>ty+l?lH^qG?K-iezbKZo@;lI@ z2Y7xfNcHt+HhoJ1o!k4aE(?XASIv03&z3QvMWvCPoI0=m|1U2FFDgG~w|OJ-^0FKa zr%pO;HB}TmPAT7E-389}@$~>)If_lQKx*PwE;Qbu)BM&mVxrx;*sXRLCY6lfONh9~BoKSCTWdZ{3f{<<0MJP=35ZtN z4rRPjG;{vrQkPzjG8xV=Q+!dI_ibS2Q&nyrVqm7<*(ZwS5fAnLl-dLvUpPyHg(GWt z(>B9wCAUMBTVeJ0P|8PlC0gqKh=DCF`oaB?;ZGk!~+n2b*9@5a&g;ofwUE+2?Tzd(ZP^=U* zbAO@TG+hCA`Di3GBU7T&EjRluUaa51;)S;Fda=$|HjbCqlA9~wAq`K{>E1|G3i3G` z2~jJ?i!pEc49>}Ud}qJ@!0O_K+%NR>!_#3jmD-A`MSF|WJESCi zq*58HyI!b$KB)hd7f!?&nJQkumW0|k-0-e8%(2XSSjLdrlY zD3I{kSL0d)a;b*(dsXcef=qS9nPA_b0e%;rM;Dz(NBtp>j;5Q2kE;1KJ~9|1$pLl2?#?V1W;1LSZ9Ww%~kxSYEwx$9BQJYh){z^>{fe#PdI>MRj7up*pY z(RfM=t9fWx6;)Y~hsFp1X?PN>93(nXqm<}Vyg=@12b?yY8(&d<-QRaapCv^U-ObEc zAD5o)g4{(~s>d~h6!-DL) zu;6~%j?Px{3EP0A=^1{6WqqBT%cJBg1N}D=leByy5P%0>Zy7oe-$^p}Gm!Sa*~fSt zdGV`&Z{taTr<+7W+JNfFY2So|RwGA9XZ1;ZBq=L3k+8w8r#iMFWlV_z7T4##_8fi= zcHLp$?ODSv`Z)*-)Nl#m`t&h4Xw3gmg}nDnS9Q9nxTE?m{nb!=Ujc^*0xIdZ#7Q z=gpfgP@-`2`MRyrA8>mWiD@tEVr#(;)=WO7NqP|4Hi(*JQuO=ndMPVD58V`GO0t_dbQ1ONmv+AM7vgB9X){|W^=xXWCDeIuut@v*+7LS z!o4*z8NN}-U@Os1b9IY;Mhn{L&isD(i3Bm_zOd5}8!WicPhW!&_ww`NwHLQBGn)OR z6Edml6M4Oc##~>1Ee(93bGHHXu8wpi$#GBIGMFO-@w40^{iKO!5L?_>78h3hlD`+( za?5ntvm&OdA_FN(_9nz?#Vy4_$=hA4^( zLSk^pNb=(pZ-rD>Uq~F!{ z=jtfv?&A2f@VZjHlr!2ya@q+sTg8(Huuq!X7v@dz&v}rXA`2WOGLGrK36P3n6270# zWOr6VBtC!MK^)RPtgm-`f1t3KdGA-u&ev3IyN^3_)*M~X&iRu zD8KS<=-8OC{2zLnQ0sx)eAJ^D*3V0 zI;>`Hqkh;IXWz>@Iz7!KB}Udd0T%buwcruHi+PJJo_L?^>}<6RTLaK-CDQV72OK{~ z-jT1PVq>BU6V)=uf6fvQ_-%hEk9uut9)V8F^77))oQM_#u8{Cl1=xT&0;m1!*ZiMF z${NcC2<;UftHNZgBqzs0Z(_UeC0)qa(UCoc=sJS{nW5TbFwUo=jPP%P^x_Gd3yY?f z7IJ+Sr%@VF8na30b1fe#U0e7y+LNBCS5|RCj(x5#j_*Q#k)KQnu)jK)`u39Fd?L={ z#<#Nh%rOA=^E7&#tg~~GjuJnoYg6;{yT|-lWy|xVB?MGU!~ctVck~-^<&GBO5p_P# z9;fgFDybUr6&T?TyXsw*lq|*Qw;$psB~RYXMAF*~l3h!zOg|Ws4KLk8- zGS(EEz0T&?yyqAN%2Z|Yzqee01ddmnl`N3y=`q3v-VYZtiM36^a($|4B#5pR-xVgh z=WP1Ay0TQ&@-LP5|Aw2A&gzhtN!W~icUaI>AvK>y>^K#PKp>ABv+ z)0-_dOTPm;((}t0c%i$m4FH^|EQ=Rs!;!ik@MeD2SqSV!t->O|c}XK}m%JENl9mpI zQMyG}r=7dfq)@z-D>PJ%?~0zj+*2VtQ^TCLBT?4ss?LDf1n>eB5E3-D6kKiGDBVhN zUtBxnAnQWV)Nd^xo_8y&Y@0PzxBEx?U74Hp#lX(T=paJ$$%x&bD;r#DAJU&h8-RKYc8_&}?DSs-LLgo-31Ko=hWOsc+r_tULGwB{xeBzJJMi7;L?cV1 zt|_aR?~3YqLd1LYC@SYc%HSAyv+|FZ{@LcY#9K<1h7gFbK_8XhLZB)T;K$9OWG8cB zKucHNV`i(ctvWqR(a)o2v>(T`1>?p#JO#$|;seO`zvNR6#v2cLYBzrLvr(;GuU%Q& zbDcn$zj#Tm!V9orJD3guh-OtKoDKOT54Oa|BFW4mPZ!|VL{(L6j9w50D@FkG7Y>tEv%wAaf42L1j-z5j#g9HC4I zTp`I@&o#TV`UeRf9%R(6bz*o*CH@I*TS602CV|Q7P%fv9+KBd99OD?o=1lV^Dia7j z6zH0czj9>qy z7PSvlQF8>Vr#-dWvk{%UXgt@W+hNB^ZHiqpUkksh$M=R?c)M=Z^( z6V(clPY$7-#YZ@SRZCFi=^N5&`qb!978dGRHjBGkRO?F$Jxu2$*FAejq90?8mY);* zsKPz?XN}H}uu`~7tgj+o`d}AZ`X&a^=srzzj@Gk;La=o{SH?4F;m@j~n@Gl?=i#!8 zdnscD6|5!=zyUF^DEbQ#as@RUNm@A&1dDeMdFjv&7W z>p<>C(?`mxnQX!-MoIFLT|tFmIE_RI#Ud$Xq9BH1@c?3cZg33p?(ES5P9cM&?thN> zlB>BSt@6q2aR}u5BK~F8?l&J%_SZB3CF)8Q7}_#*Ggr`OHP=RH%fuus5?AzA>6WtL zLxTc4YxJPm3}FTD$?*c@Vj+noHVdz<(Z!y7&f;zoYX(0D?uo;;)8&-!75^e$Pcv3B z#$rw@+5l;(vad&Hqn}Ys2H^TX08M|_bj?f&`zGM` zK5R|k93(jKe#YSWOiK+%{~Eea$H@+NUP6mwUrHHq+@VNcU5^MzYW3FARLLpfmVOh@ zP_*b+010gkHr3gvZ8&G!0d@TGX_X53jxlW$1#G?I#07WP6$%X&(Mar>>Hd!s7x52D z3~y=6?C6tmS9Bjmqk3(q3wIuKOpd>W8^5J3 zfhL_fTXrWh9=y)p-GJRNoGACSKDits4gE4PWW@~qKSYEjR7sO*wxS<*=$6e*YC;G% z0|EkZJxVzqdVXg5tw&Wd-)z;&Y}M|V0m7c2$hS=9{4Pyb?*>6-DGm?VA`u)m9Twz> z3hMLf&H3mwgc&5YOj}kQEaKu{uQN+wIIlUZ1O1{Y6Vbr;4uPZ|5GAt7LmzoW1-OZ@?l;|fg@w!8e#SVMaTTs|gu@LKfnDwa#OwOpr9AfwrEL@A{iGR#Ov`3`)rXYjg!A z>*(mv@Pa5fOz*LwSW%3+TW9HG5GC?6N+QXVoRA$_xDZAB@@z71;0FW`j8Ict-nqC6 zUvk~)nE||_{+WJ%wxpWDi{C)Qe@dBMU#4sY9wkT(Fz!xo1VVk8)}7a^4vZ}PE zVoCZv(`U!ou9K1b+tN8!7(}V`eD|+{tpQ3PPD4ITU;gQgL`Vp(G+z8xq_CVIOJOC( zEY{g-aUfOFb$RqdlT1(Mu+X8Puoe?mk`l)l=*l_cjh?M9NbS<1m@BZU*JFJr&Dj)H zEp(Um0zjb3)V^jTh?f!SzXAoic<|(xFP~*#yWa4m_H^E}y#Ws*FezN?wof8*U4z(V zHA*7lca>Z|v__tuD@Tll1}+5GanYmIZ}t7(6U7TnfE1`~Z}B6CDDnS6_s7-La};JA ziSIe-i&H^9ps#JQO58FqUUwz;}3tEIicYt1N zP?tB^y_jFfT~zhntIptqn*m8cxU^FAPrN(T$o4qr7a!a$(-+1X7Qc$L`;g6z3GZ!g z+_*tq%O1goG;6;$g{q>6e^<}l{b|33*feKiLsMg@xEIPNz2WSJvUzJVv~g)Pa79G- z!#&$2O~mbDkVt;>Zaz@4QC*RI;SD}JRreJ0P09ZMWe5+{^-S*Zn&`= z{Ku|PN{-d?P)FqZ_m$iKQDe(NW@P$3WU<~v5HlT3mldn$htC|I^CMS2IKAmR&J!H6 z>b5o%j*Xfz&nqjcA#wiLa+q(+qqt2)sh^^+Afdl(vYySO7Jm$A=C4o=NQ=RQoDkvD z=HKD+>=gbDC4T#U!FJDSn6&rgnj4b#j%r7D7O=j3@8ywj7+FHYbI^#AbR_(U!~fne zELWydE*QkkvJIoaDbev9`zNX%OWAmI6ImSt)*Q3rMuHFIsy+ z+3_y-Yi1Z7t9g#aE5SAz1DVmZ(>RhFFU6}~nYxy$Hs-pE5Id zO-%M;tZCBNcH3%hkh9gxf}zt0XWzGBR|>xIRc_GsK$6l%DD!(93P=OzzW#Ubb$fyA z=lmv7JeENzRkX`Bh})`NF*>MNA3=6ssn*GsYj`Dv3Rf%!-KNJZ%@rARj>yY-H)t&wox#P=T=ZI*+xGxijbtxeVb3h zwAFkPIsDUka%Oj-LRWU>`|g|H@Ee>2(R+DaG2@F$Tc`epk2K&zyWbpGygW>!k^KMn z{F+x#ypfU0?Q^d75MWJF&6_g8o<~7gf}9QYd5PNoOZM3}kPBB9*`cC5+D{GCYaUyN F{SST#^O67n delta 5407 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 From 651fa7a9f0260352d8e67d748ecf2a8e6b035618 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Mon, 4 Feb 2013 23:40:53 +1000 Subject: [PATCH 023/163] restructured tools, restructured/added archaeo finds, restructured how finds spawn in the asteroid, tweaked some mining stuff Signed-off-by: Cael_Aislinn --- code/modules/mining/mine_items.dm | 4 + code/modules/mining/mine_turfs.dm | 246 ++++-- code/modules/mining/ores_coins.dm | 12 +- .../research/xenoarchaeology/archaeo_tools.dm | 84 ++- .../research/xenoarchaeology/artifact_misc.dm | 2 +- .../modules/research/xenoarchaeology/finds.dm | 711 +++++++++++------- .../research/xenoarchaeology/fossils.dm | 46 +- .../research/xenoarchaeology/talking_item.dm | 11 +- 8 files changed, 734 insertions(+), 382 deletions(-) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 6c5bb01e5c1..f2b92c08368 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -193,6 +193,10 @@ proc/move_mining_shuttle() var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO origin_tech = "materials=1;engineering=1" attack_verb = list("hit", "pierced", "sliced", "attacked") + var/drill_sound = 'sound/weapons/Genhit.ogg' + var/drill_verb = "picking" + + var/excavation_amount = 100 hammer name = "sledgehammer" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 163b1cc343d..cca0035846d 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -1,5 +1,8 @@ /**********************Mineral deposits**************************/ +#define XENOARCH_SPAWN_CHANCE 0.5 +#define XENOARCH_SPREAD_CHANCE 15 + /turf/simulated/mineral //wall piece name = "Rock" icon = 'icons/turf/walls.dmi' @@ -16,7 +19,16 @@ var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles var/artifactChance = 0.3 //percent chance to spawn a xenoarchaelogical artifact var/last_act = 0 + var/datum/geosample/geological_data + var/excavation_level = 0 + var/list/finds = list() + var/list/excavation_minerals = list() + var/list/excavation_minerals_ascending = list() + var/list/exca_first = list("A","B","C","D","E") + var/list/exca_second = list() + var/next_rock = 0 + var/overlay_num = 0 /turf/simulated/mineral/Del() return @@ -56,27 +68,82 @@ T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6) if (mineralName && mineralAmt && spread && spreadChance) - if(prob(spreadChance)) - if(istype(get_step(src, SOUTH), /turf/simulated/mineral/random)) - new src.type(get_step(src, SOUTH)) - if(prob(spreadChance)) - if(istype(get_step(src, NORTH), /turf/simulated/mineral/random)) - new src.type(get_step(src, NORTH)) - if(prob(spreadChance)) - if(istype(get_step(src, WEST), /turf/simulated/mineral/random)) - new src.type(get_step(src, WEST)) - if(prob(spreadChance)) - if(istype(get_step(src, EAST), /turf/simulated/mineral/random)) - new src.type(get_step(src, EAST)) + for(var/trydir in list(1,2,4,8)) + if(prob(spreadChance)) + if(istype(get_step(src, trydir), /turf/simulated/mineral/random)) + var/turf/simulated/mineral/T = get_step(src, trydir) + var/turf/simulated/mineral/M = new src.type(T) + //keep any digsite data as constant as possible + if(T.finds.len && !M.finds.len) + M.finds = T.finds + M.overlays += "overlay_archaeo1" - src.geological_data = new /datum/geosample(src) + //---- Xenoarchaeology BEGIN + + if(mineralAmt > 0 && !excavation_minerals.len) + for(var/i=0, i 0) + if(excavation_level < 25) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv1_[rand(1,3)]") + else if(excavation_level < 50) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv2_[rand(1,3)]") + else if(excavation_level < 75) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv3_[rand(1,3)]") + else + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv4_[rand(1,3)]") + desc = "It appears to be partially excavated."*/ return /turf/simulated/mineral/random name = "Mineral deposit" - var/mineralAmtList = list("Uranium" = 5, "Iron" = 5, "Diamond" = 5, "Gold" = 5, "Silver" = 5, "Plasma" = 5, "Archaeo" = 3/*, "Adamantine" = 5*/) - var/mineralSpawnChanceList = list("Uranium" = 5, "Iron" = 50, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Plasma" = 25, "Archaeo" = 5/*, "Adamantine" =5*/)//Currently, Adamantine won't spawn as it has no uses. -Durandan + var/mineralAmtList = list("Uranium" = 5, "Iron" = 5, "Diamond" = 5, "Gold" = 5, "Silver" = 5, "Plasma" = 5/*, "Adamantine" = 5*/) + var/mineralSpawnChanceList = list("Uranium" = 5, "Iron" = 50, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Plasma" = 25/*, "Adamantine" =5*/)//Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 10 //means 10% chance of this plot changing to a mineral deposit /turf/simulated/mineral/random/New() @@ -99,19 +166,14 @@ M = new/turf/simulated/mineral/silver(src) if("Plasma") M = new/turf/simulated/mineral/plasma(src) - if("Archaeo") - M = new/turf/simulated/mineral/archaeo(src) /*if("Adamantine") M = new/turf/simulated/mineral/adamantine(src)*/ if(M) src = M M.levelupdate() - if(!geological_data) - src.geological_data = new /datum/geosample - src.geological_data.UpdateTurf(src) - else if (prob(artifactChance)) - //spawn a rare, xeno-arch artifact here - new/obj/machinery/artifact(src) + + /*else if (prob(artifactChance)) + new/obj/machinery/artifact(src)*/ return /turf/simulated/mineral/random/high_chance @@ -176,15 +238,6 @@ spread = 1 -/turf/simulated/mineral/archaeo - name = "Strange rock formation" - icon_state = "rock_Archaeo" - mineralName = "Archaeo" - mineralAmt = 3 - spreadChance = 25 - spread = 1 - - /turf/simulated/mineral/clown name = "Bananium deposit" icon_state = "rock_Clown" @@ -245,61 +298,105 @@ commented out in r5061, I left it because of the shroom thingies return */ //Watch your tabbing, microwave. --NEO - if(last_act+W:digspeed > world.time)//prevents message spam + + var/obj/item/weapon/pickaxe/P = W + if(last_act+P.digspeed > world.time)//prevents message spam return last_act = world.time - user << "\red You start picking." - playsound(user, 'sound/weapons/Genhit.ogg', 20, 1) - if(do_after(user,W:digspeed)) - user << "\blue You finish cutting into the rock." - gets_drilled() + playsound(user, P.drill_sound, 20, 1) + + //Chance to destroy any archaeological finds if we carelessly pick away at the rock + var/fail_message = "" + if(src.finds.len) + var/datum/find/F = src.finds[1] + if(src.excavation_level + P.excavation_amount >= F.excavation_required + F.destruct_range) + fail_message = ", [pick("there is a crunching noise","[W] hits something","part of the rock face crumbles away","something breaks under [W]")]" + if(prob(50)) + src.finds.Remove(F) + user << "\red You start [P.drill_verb][fail_message]." + + if(do_after(user,P.digspeed)) + user << "\blue You finish [P.drill_verb] the rock." + if(src.excavation_level + P.excavation_amount >= 100) + gets_drilled() + else + src.excavation_level += P.excavation_amount + + //handle any archaeological finds we might uncover + + //extract pesky minerals while we're excavating + while(excavation_minerals.len && src.excavation_level > excavation_minerals[excavation_minerals.len]) + drop_mineral() + //have a 50% chance to extract bonus minerals this way + //if(prob(50)) + pop(excavation_minerals) + mineralAmt-- + + //drop some rocks + next_rock += P.excavation_amount * 10 + while(next_rock > 100) + next_rock -= 100 + var/obj/item/weapon/ore/O = new(src) + O.geological_data = src.geological_data else return attack_hand(user) return -/turf/simulated/mineral/proc/gets_drilled() - var/destroyed = 0 //used for breaking strange rocks - if ((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11)) - var/i - for (i=0;i 0) && (src.mineralAmt < 11)) + + //if the turf has already been excavated, some of it's ore has been removed + for (var/i=0;i 3)) - if(!src.method) //0 = fire, 1+ = acid + if(w.isOn()) + if(w.get_fuel() >= 4 && !src.method) if(inside) - var/obj/A = new src.inside(get_turf(src)) + inside.loc = src.loc for(var/mob/M in viewers(world.view, user)) - M.show_message("\blue The rock burns away revealing a [A.name].",1) + M.show_message("[src] burns away revealing [inside].",1) else for(var/mob/M in viewers(world.view, user)) - M.show_message("\blue The rock burns away into nothing.",1) - del src + M.show_message("[src] burns away into nothing.",1) + del(src) + w.remove_fuel(4) else for(var/mob/M in viewers(world.view, user)) - M.show_message("\blue A few sparks fly off the rock, but otherwise nothing else happens.",1) - w.remove_fuel(4) + M.show_message("A few sparks fly off [src], but nothing else happens.",1) + w.remove_fuel(1) + return else if(istype(W,/obj/item/device/core_sampler/)) var/obj/item/device/core_sampler/S = W S.sample_item(src, user) + return -/*Code does not work, likely due to removal/change of acid_act proc -//Strange rocks currently melt to gooey grey w/ acid application (see reactions) -//will fix when I get a chance to fiddle with it -Mij -/obj/item/weapon/ore/strangerock/acid_act(var/datum/reagent/R) - if(src.method) - if(inside) - var/obj/A = new src.inside(get_turf(src)) - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The rock fizzes away revealing a [A.name].",1) - else - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The rock fizzes away into nothing.",1) - del src - else - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) - return 1 -*/ + ..() + if(prob(33)) + src.visible_message("[src] crumbles away, leaving some dust and gravel behind.") + del(src) /obj/item/weapon/archaeological_find name = "object" @@ -90,11 +224,12 @@ icon_state = "ano01" var/find_type = 0 -/obj/item/weapon/archaeological_find/New() - if(find_type < 1 || find_type > 25) - find_type = 0 - if(!find_type) - find_type = rand(1, 25) +/obj/item/weapon/archaeological_find/New(var/new_item_type) + + if(new_item_type) + find_type = new_item_type + else + find_type = get_random_find_type(0) var/item_type = "object" icon_state = "unknown[rand(1,4)]" @@ -115,220 +250,291 @@ //for all items here: //icon_state //item_state - if(prob(90)) - switch(find_type) - if(1) - item_type = "bowl" - new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) - new_item.icon = 'xenoarchaeology.dmi' - new_item.icon_state = "bowl" + switch(find_type) + if(1) + item_type = "bowl" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "bowl" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "There appear to be [pick("dark","faintly glowing","pungent")] [pick("red","purple","green","blue")] stains inside." + if(2) + item_type = "urn" + new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "urn" + apply_image_decorations = 1 + if(prob(20)) + additional_desc = "It [pick("whispers faintly","makes a quiet roaring sound","whistles softly","thrums quietly","throbs")] if you put it to your ear." + if(3) + item_type = "[pick("fork","spoon","knife")]" + if(prob(25)) + new_item = new /obj/item/weapon/kitchen/utensil/fork(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/kitchen/utensil/knife(src.loc) + else + new_item = new /obj/item/weapon/kitchen/utensil/spoon(src.loc) + additional_desc = "[pick("It's like no [item_type] you've ever seen before",\ + "It's a mystery how anyone is supposed to eat with this",\ + "You wonder what the creator's mouth was shaped like")]." + if(4) + item_type = "statuette" + icon_state = "statuette" + additional_desc = "It depicts a [pick("small","ferocious","wild","pleasing","hulking")] \ + [pick("alien figure","rodent-like creature","reptilian alien","primate","unidentifiable object")] \ + [pick("performing unspeakable acts","posing heroically","in a feotal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]." + if(5) + item_type = "instrument" + icon_state = "instrument" + if(prob(30)) apply_image_decorations = 1 - if(prob(20)) - additional_desc = "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains inside." - if(2) - item_type = "urn" - new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) - new_item.icon = 'xenoarchaeology.dmi' - new_item.icon_state = "urn" - apply_image_decorations = 1 - if(prob(20)) - additional_desc = "It [pick("whispers faintly","makes a quiet roaring sound","whistles softly","thrums quietly"<"throbs")] if you put it to your ear." - if(3) - item_type = "[pick("fork","spoon","knife")]" - if(prob(25)) - new_item = new /obj/item/weapon/kitchen/utensil/fork(src.loc) - else if(prob(50)) - new_item = new /obj/item/weapon/kitchen/utensil/knife(src.loc) - else - new_item = new /obj/item/weapon/kitchen/utensil/spoon(src.loc) - additional_desc = "[pick("It's like no [item_type] you've ever seen before",\ - "It's a mystery how anyone is supposed to eat with this",\ - "You wonder what the creator's mouth was shaped like")]." - if(4) - item_type = "statuette" - icon_state = "statuette" - additional_desc = "It depicts a [pick("small","ferocious","wild","pleasing","hulking")] \ - [pick("alien humanoid figure","rodent-like creature","reptilian alien","primate","unidentifiable object")] \ - [pick("performing unspeakable acts","posing heroically","in a feotal position","cheering","sobbing","making a plaintive gesture","making a rude gesture")]." - if(5) - item_type = "instrument" - icon_state = "instrument" additional_desc = "[pick("You're not sure how anyone could have played this",\ "You wonder how many mouths the creator had",\ "You wonder what it sounds like",\ "You wonder what kind of music was made with it")]." - if(prob(30)) - apply_image_decorations = 1 - if(6) - item_type = "[pick("bladed knife","serrated blade","sharp cutting implement")]" - new_item = new /obj/item/weapon/kitchenknife(src.loc) - additional_desc = "[pick("It doesn't look safe.",\ - "It looks wickedly jagged",\ - "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along the edges")]." - if(7) - //assuming there are 10 types of coins - var/chance = 10 - for(var/type in typesof(/obj/item/weapon/coin)) - if(prob(chance)) - new_item = new type(src.loc) - break - chance += 10 + if(6) + item_type = "[pick("bladed knife","serrated blade","sharp cutting implement")]" + new_item = new /obj/item/weapon/kitchenknife(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "It looks wickedly jagged",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along the edges")]." + if(7) + //assuming there are 10 types of coins + var/chance = 10 + for(var/type in typesof(/obj/item/weapon/coin)) + if(prob(chance)) + new_item = new type(src.loc) + break + chance += 10 - item_type = new_item.name - apply_material_decorations = 0 + item_type = new_item.name + apply_material_decorations = 0 + apply_image_decorations = 1 + if(8) + item_type = "chained loops" + new_item = new /obj/item/weapon/handcuffs(src.loc) + additional_desc = "[pick("They appear to be for securing two things together","Looks kinky","Doesn't seem like a children's toy")]." + if(9) + item_type = "[pick("wicked","evil","byzantine","dangerous")] looking [pick("device","contraption","thing","trap")]" + new_item = new /obj/item/weapon/legcuffs/beartrap(src.loc) + additional_desc = "[pick("It looks like it could take a limb off",\ + "Could be some kind of animal trap",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along part of it")]." + if(10) + item_type = "small [pick("cylinder","tank","chamber")]" + new_item = new /obj/item/weapon/lighter(src.loc) + additional_desc = "There is a tiny device attached." + if(prob(30)) apply_image_decorations = 1 - if(8) - item_type = "chained loops" - new_item = new /obj/item/weapon/handcuffs(src.loc) - additional_desc = "[pick("They appear to be for securing two things together","Looks kinky","Doesn't seem like a children's toy")]." - if(9) - item_type = "[pick("wicked","evil","byzantine","dangerous")] looking [pick("device","contraption","thing","trap")]" - new_item = new /obj/item/weapon/legcuffs/beartrap(src.loc) - additional_desc = "[pick("It looks like it could take a limb off",\ - "Could be some kind of animal trap",\ - "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along part of it")]." - if(10) - item_type = "small [pick("cylinder","tank","chamber")]" - new_item = new /obj/item/weapon/lighter(src.loc) - additional_desc = "There is a tiny device attached." - if(prob(30)) - apply_image_decorations = 1 - if(11) - item_type = "box" - new_item = new /obj/item/weapon/storage/box(src.loc) - new_item.icon = 'xenoarchaeology.dmi' - new_item.icon_state = "box" - if(prob(30)) - apply_image_decorations = 1 - if(12) - item_type = "[pick("cylinder","tank","chamber")]" - if(prob(25)) - new_item = new /obj/item/weapon/tank/air(src.loc) - else if(prob(50)) - new_item = new /obj/item/weapon/tank/anesthetic(src.loc) - else - new_item = new /obj/item/weapon/tank/plasma(src.loc) - icon_state = pick("oxygen","oxygen_fr","oxygen_f","plasma","anesthetic") - additional_desc = "It [pick("gloops","sloshes")] slightly when you shake it." - if(13) - item_type = "strange tool" - if(prob(25)) - new_item = new /obj/item/weapon/wrench(src.loc) - else if(prob(25)) - new_item = new /obj/item/weapon/crowbar(src.loc) - else - new_item = new /obj/item/weapon/screwdriver(src.loc) - additional_desc = "[pick("It doesn't look safe.",\ - "You wonder what it was used for",\ - "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains on it")]." - if(14) - apply_material_decorations = 0 - var/list/possible_spawns = list() - possible_spawns += /obj/item/stack/sheet/metal - possible_spawns += /obj/item/stack/sheet/plasteel - possible_spawns += /obj/item/stack/sheet/glass - possible_spawns += /obj/item/stack/sheet/rglass - possible_spawns += /obj/item/stack/sheet/mineral/plasma - possible_spawns += /obj/item/stack/sheet/mineral/mythril - possible_spawns += /obj/item/stack/sheet/mineral/gold - possible_spawns += /obj/item/stack/sheet/mineral/silver - possible_spawns += /obj/item/stack/sheet/mineral/enruranium - possible_spawns += /obj/item/stack/sheet/mineral/sandstone - possible_spawns += /obj/item/stack/sheet/mineral/silver + if(11) + item_type = "box" + new_item = new /obj/item/weapon/storage/box(src.loc) + new_item.icon = 'xenoarchaeology.dmi' + new_item.icon_state = "box" + if(prob(30)) + apply_image_decorations = 1 + if(12) + item_type = "[pick("cylinder","tank","chamber")]" + if(prob(25)) + new_item = new /obj/item/weapon/tank/air(src.loc) + else if(prob(50)) + new_item = new /obj/item/weapon/tank/anesthetic(src.loc) + else + new_item = new /obj/item/weapon/tank/plasma(src.loc) + icon_state = pick("oxygen","oxygen_fr","oxygen_f","plasma","anesthetic") + additional_desc = "It [pick("gloops","sloshes")] slightly when you shake it." + if(13) + item_type = "strange tool" + if(prob(25)) + new_item = new /obj/item/weapon/wrench(src.loc) + else if(prob(25)) + new_item = new /obj/item/weapon/crowbar(src.loc) + else + new_item = new /obj/item/weapon/screwdriver(src.loc) + additional_desc = "[pick("It doesn't look safe.",\ + "You wonder what it was used for",\ + "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains on it")]." + if(14) + apply_material_decorations = 0 + var/list/possible_spawns = list() + possible_spawns += /obj/item/stack/sheet/metal + possible_spawns += /obj/item/stack/sheet/plasteel + possible_spawns += /obj/item/stack/sheet/glass + possible_spawns += /obj/item/stack/sheet/rglass + possible_spawns += /obj/item/stack/sheet/mineral/plasma + possible_spawns += /obj/item/stack/sheet/mineral/mythril + possible_spawns += /obj/item/stack/sheet/mineral/gold + possible_spawns += /obj/item/stack/sheet/mineral/silver + possible_spawns += /obj/item/stack/sheet/mineral/enruranium + possible_spawns += /obj/item/stack/sheet/mineral/sandstone + possible_spawns += /obj/item/stack/sheet/mineral/silver - var/new_type = pick(possible_spawns) - new_item = new new_type(src.loc) - new_item:amount = rand(5,45) - del(src) - return //nothing fancy here - if(15) - if(prob(75)) - new_item = new /obj/item/weapon/pen(src.loc) - else - new_item = new /obj/item/weapon/pen/sleepypen(src.loc) - if(prob(30)) - apply_image_decorations = 1 - if(16) + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + new_item:amount = rand(5,45) + del(src) + return //nothing fancy here + if(15) + if(prob(75)) + new_item = new /obj/item/weapon/pen(src.loc) + else + new_item = new /obj/item/weapon/pen/sleepypen(src.loc) + if(prob(30)) + apply_image_decorations = 1 + if(16) + if(prob(50)) item_type = "smooth green crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") icon_state = "Green lump" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - if(17) + else item_type = "irregular purple crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") icon_state = "Phazon" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - if(18) - new_item = new /obj/item/device/radio/beacon(src.loc) - talkative = 0 - new_item.icon_state = "unknown[rand(1,4)]" - new_item.icon = 'xenoarchaeology.dmi' - new_item.desc = "" - if(19) - new_item = new /obj/item/weapon/claymore(src.loc) - name = new_item.name - desc = new_item.desc - apply_material_decorations = 0 - if(20) - //arcane clothing - var/list/possible_spawns = list(/obj/item/clothing/head/culthood, - /obj/item/clothing/head/magus, - /obj/item/clothing/head/culthood/alt, - /obj/item/clothing/head/helmet/space/cult) + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") - var/new_type = pick(possible_spawns) - new_item = new new_type(src.loc) - del(src) - return - if(21) - //the dangerous stuff: low chance of turning up - var/list/possible_spawns = list(/obj/item/weapon/veilrender, - /obj/item/device/soulstone, - /obj/item/weapon/melee/cultblade) + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(17) + //cultblade + new /obj/item/weapon/melee/cultblade(src.loc) + del(src) + return + if(18) + new_item = new /obj/item/device/radio/beacon(src.loc) + talkative = 0 + new_item.icon_state = "unknown[rand(1,4)]" + new_item.icon = 'xenoarchaeology.dmi' + new_item.desc = "" + if(19) + new_item = new /obj/item/weapon/claymore(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + if(20) + //arcane clothing + var/list/possible_spawns = list(/obj/item/clothing/head/culthood, + /obj/item/clothing/head/magus, + /obj/item/clothing/head/culthood/alt, + /obj/item/clothing/head/helmet/space/cult) - var/new_type = pick(possible_spawns) - new_item = new new_type(src.loc) - del(src) - return - if(22) - new_item = new /obj/item/weapon/shard(src.loc) - del(src) - return - if(23) - new_item = new /obj/item/stack/rods(src.loc) - del(src) - return - if(24) - var/list/possible_spawns = list() - possible_spawns += typesof(/obj/item/weapon/stock_parts) - possible_spawns -= /obj/item/weapon/stock_parts - possible_spawns -= /obj/item/weapon/stock_parts/subspace + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(21) + //soulstone + new_item = new /obj/item/device/soulstone(src.loc) + del(src) + return + if(22) + new_item = new /obj/item/weapon/shard(src.loc) + del(src) + return + if(23) + new_item = new /obj/item/stack/rods(src.loc) + del(src) + return + if(24) + var/list/possible_spawns = typesof(/obj/item/weapon/stock_parts) + possible_spawns -= /obj/item/weapon/stock_parts + possible_spawns -= /obj/item/weapon/stock_parts/subspace - var/new_type = pick(possible_spawns) - new_item = new new_type(src.loc) - del(src) - return - if(25) - new_item = new /obj/item/weapon/katana(src.loc) - name = new_item.name - desc = new_item.desc - apply_material_decorations = 0 + var/new_type = pick(possible_spawns) + new_item = new new_type(src.loc) + del(src) + return + if(25) + new_item = new /obj/item/weapon/katana(src.loc) + name = new_item.name + desc = new_item.desc + apply_material_decorations = 0 + if(26) + //energy gun + var/spawn_type = pick(\ + /obj/item/weapon/gun/energy/laser/practice;100,\ + /obj/item/weapon/gun/energy/laser;75,\ + /obj/item/weapon/gun/energy/xray;50,\ + /obj/item/weapon/gun/energy/laser/captain;25,\ + ) + var/obj/item/weapon/gun/energy/new_gun = new spawn_type(src.loc) + new_item = new_gun + new_item.icon_state = "egun[rand(1,6)]" - else if(prob(40)) - apply_image_decorations = 1 + //5% chance to explode when first fired + //10% chance to have an unchargeable cell + //15% chance to gain a random amount of starting energy, otherwise start with an empty cell + if(prob(5)) + new_gun.power_supply.rigged = 1 + if(prob(10)) + new_gun.power_supply.maxcharge = 0 + if(prob(15)) + new_gun.power_supply.charge = rand(0, new_gun.power_supply.maxcharge) + else + new_gun.power_supply.charge = 0 + + name = new_item.name + desc = new_item.desc + if(27) + //revolver + var/obj/item/weapon/gun/projectile/new_gun = new (src.loc) + new_item = new_gun + new_item.icon_state = "gun[rand(1,4)]" + + //33% chance to be able to reload the gun with human ammunition + if(prob(66)) + new_gun.caliber = "999" + + //33% chance to fill it with a random amount of bullets + new_gun.max_shells = rand(1,12) + if(prob(33)) + var/num_bullets = rand(1,new_gun.max_shells) + if(num_bullets < new_gun.loaded.len) + for(var/i = num_bullets, i <= new_gun.loaded.len, i++) + new_gun.loaded += new new_gun.ammo_type(src) + else + for(var/obj/item/I in new_gun) + if(new_gun.loaded.len > num_bullets) + if(I in new_gun.loaded) + new_gun.loaded.Remove(I) + I.loc = null + else + break + else + for(var/obj/item/I in new_gun) + if(I in new_gun.loaded) + new_gun.loaded.Remove(I) + I.loc = null + + name = new_item.name + desc = new_item.desc + if(28) + //completely unknown alien device + if(prob(40)) + apply_image_decorations = 0 + if(29) + //fossil bone/skull + new/obj/item/weapon/fossil/base(src.loc) + del(src) + return + if(30) + //fossil shell + new/obj/item/weapon/fossil/base(src.loc) + del(src) + return + if(30) + //fossil plant + new/obj/item/weapon/fossil/base(src.loc) + del(src) + return var/decorations = "" - source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") if(apply_material_decorations) + source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") desc = "A [material_descriptor ? "[material_descriptor] " : ""][item_type] made of [source_material], all craftsmanship is of [pick("the lowest","low","average","high","the highest")] quality." var/list/descriptors = list() if(prob(30)) - descriptors.Add("is encrusted with [pick("","synthetic ","multi-faceted ","uncut ","sparkling ") + pick("rubies","emeralds","diamonds","crystals","lapiz lazuli")]") + descriptors.Add("is encrusted with [pick("","synthetic ","multi-faceted ","uncut ","sparkling ") + pick("rubies","emeralds","diamonds","opals","lapiz lazuli")]") if(prob(30)) descriptors.Add("is studded with [pick("gold","silver","aluminium","titanium")]") if(prob(30)) @@ -378,16 +584,14 @@ new_item.listening_to_players = 1 if(prob(25)) new_item.speaking_to_players = 1 - spawn(100) - new_item.process_talking() + processing_objects.Add(src) del(src) else if(talkative) listening_to_players = 1 if(prob(25)) speaking_to_players = 1 - spawn(100) - process_talking() + processing_objects.Add(src) //legacy crystal /obj/item/weapon/crystal @@ -397,10 +601,6 @@ //large finds /* - /obj/item/clothing/suit/cultrobes - /obj/item/clothing/suit/cultrobes/alt - /obj/item/clothing/suit/magusred - /obj/item/clothing/suit/space/cult /obj/machinery/syndicate_beacon /obj/machinery/wish_granter if(18) @@ -417,4 +617,5 @@ apply_material_decorations = 0 if(prob(10)) apply_image_decorations = 1 - */ \ No newline at end of file + */ + //machinery type artifacts? \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/fossils.dm b/code/modules/research/xenoarchaeology/fossils.dm index 746a0beba3e..9ee9ecba8b4 100644 --- a/code/modules/research/xenoarchaeology/fossils.dm +++ b/code/modules/research/xenoarchaeology/fossils.dm @@ -10,8 +10,8 @@ /obj/item/weapon/fossil/base/New() spawn(0) - var/list/l = list("/obj/item/weapon/fossil/bone"=8,"/obj/item/weapon/fossil/skull"=2, - "/obj/item/weapon/fossil/skull/horned"=2,"/obj/item/weapon/fossil/shell"=1) + var/list/l = list("/obj/item/weapon/fossil/bone"=9,"/obj/item/weapon/fossil/skull"=3, + "/obj/item/weapon/fossil/skull/horned"=2) var/t = pickweight(l) new t(src.loc) del src @@ -21,20 +21,15 @@ icon_state = "bone" desc = "It's a fossilised bone." -/obj/item/weapon/fossil/shell - name = "Fossilised shell" - icon_state = "shell" - desc = "It's a fossilised shell." - -/obj/item/weapon/fossil/skull/horned - icon_state = "hskull" - desc = "It's a fossilised, horned skull." - /obj/item/weapon/fossil/skull name = "Fossilised skull" icon_state = "skull" desc = "It's a fossilised skull." +/obj/item/weapon/fossil/skull/horned + icon_state = "hskull" + desc = "It's a fossilised, horned skull." + /obj/item/weapon/fossil/skull/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/fossil/bone)) var/obj/o = new /obj/skeleton(get_turf(src)) @@ -53,6 +48,7 @@ var/bnum = 1 var/breq var/bstate = 0 + var/plaque_contents = "Unnamed alien creature" /obj/skeleton/New() src.breq = rand(6)+3 @@ -67,18 +63,38 @@ if(bnum==breq) usr = user icon_state = "skel" - var/creaturename = input("Input a name for your discovery:","Name your discovery","Spaceosaurus") src.bstate = 1 src.density = 1 - src.name = "[creaturename] skeleton" + src.name = "alien skeleton display" if(src.contents.Find(/obj/item/weapon/fossil/skull/horned)) - src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull, the plaque reads [creaturename]." + src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull. The plaque reads \'[plaque_contents]\'." else - src.desc = "A creature made of [src.contents.len-1] assorted bones and a skull, the plaque reads [creaturename]." + src.desc = "A creature made of [src.contents.len-1] assorted bones and a skull. The plaque reads \'[plaque_contents]\'." else src.desc = "Incomplete skeleton, looks like it could use [src.breq-src.bnum] more bones." user << "Looks like it could use [src.breq-src.bnum] more bones." else ..() + else if(istype(W,/obj/item/weapon/pen)) + plaque_contents = input("What would you like to write on the plaque:","Skeleton plaque","") + user.visible_message("[user] writes something on the base of [src].","You relabel the plaque on the base of \icon[src] [src].") + if(src.contents.Find(/obj/item/weapon/fossil/skull/horned)) + src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull. The plaque reads \'[plaque_contents]\'." + else + src.desc = "A creature made of [src.contents.len-1] assorted bones and a skull. The plaque reads \'[plaque_contents]\'." else ..() + +//shells and plants do not make skeletons +/obj/item/weapon/fossil/shell + name = "Fossilised shell" + icon_state = "shell" + desc = "It's a fossilised shell." + +/obj/item/weapon/fossil/plant + name = "Fossilised plant" + icon_state = "plant1" + desc = "It's fossilised plant remains." + +/obj/item/weapon/fossil/plant/New() + icon_state = "plant[rand(1,4)]" diff --git a/code/modules/research/xenoarchaeology/talking_item.dm b/code/modules/research/xenoarchaeology/talking_item.dm index 8a0a7f168a2..81f9831ed56 100644 --- a/code/modules/research/xenoarchaeology/talking_item.dm +++ b/code/modules/research/xenoarchaeology/talking_item.dm @@ -10,11 +10,12 @@ var/listening_to_players = 0 var/speaking_to_players = 0 -/obj/item/weapon/proc/process_talking(var/word = null) - if(prob(25) && world.timeofday >= lastsaid && heard_words.len >= 1) - SaySomething(word) - spawn(100) - process_talking() +/obj/item/weapon/process() + if(!speaking_to_players) + processing_objects.Remove(src) + return + if(prob(10) && world.timeofday >= lastsaid && heard_words.len >= 1) + SaySomething() /obj/item/weapon/proc/catchMessage(var/msg, var/mob/source) if(speaking_to_players) From b5df09de188ebc8ccacae39b193c38d58c3b401f Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 8 Feb 2013 23:47:00 +1000 Subject: [PATCH 024/163] new xenoarchaeology icons/overlays Signed-off-by: Cael_Aislinn --- icons/obj/mining.dmi | Bin 50436 -> 42973 bytes icons/obj/xenoarchaeology.dmi | Bin 32769 -> 41852 bytes icons/turf/walls.dmi | Bin 141275 -> 147298 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 0bcfd99256222dbd131b9256000a36a27d7ab83a..a2ae3e00fd6da0678a2e5c5e3fa5e6c98fed268e 100644 GIT binary patch literal 42973 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
" + if(positive_locations.len) + for(var/index=1, index<=positive_locations.len, index++) + var/datum/depth_scan/D = positive_locations[index] + dat += "[D.time], coords: [D.coords]
" + else + dat += "No entries recorded." + dat += "
" + dat += "Refresh
" + dat += "Close
" + user << browse(dat,"window=depth_scanner;size=300x500") + onclose(user, "depth_scanner") + +/obj/item/device/depth_scanner/Topic(href, href_list) + ..() + usr.set_machine(src) + + if(href_list["select"]) + var/index = text2num(href_list["select"]) + if(index && index <= positive_locations.len) + current = positive_locations[index] + else if(href_list["clear"]) + var/index = text2num(href_list["clear"]) + if(index) + if(index <= positive_locations.len) + var/datum/depth_scan/D = positive_locations[index] + positive_locations.Remove(D) + del(D) + else + //GC will hopefully pick them up before too long + positive_locations = list() + del(current) + else if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=depth_scanner") + + updateSelfDialog() + +/obj/item/device/gps + name = "relay positioning device" + desc = "Triangulates the approximate co-ordinates using a nearby satellite network." + icon = 'device.dmi' + icon_state = "locator" + item_state = "locator" + +/obj/item/device/gps/attack_self(var/mob/user as mob) + var/turf/T = get_turf(src) + user << "\blue \icon[src] [src] flashes [10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]." + +/obj/item/device/beacon_locator + name = "locater device" + desc = "Used to scan and locate signals on a particular frequency according ." + icon = 'device.dmi' + icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull + item_state = "electronic" + +/obj/item/device/core_sampler + name = "core sampler" + desc = "Used to extract cores from geological samples." + icon = 'device.dmi' + icon_state = "core_sampler" + item_state = "screwdriver_brown" + w_class = 1.0 + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT + +/obj/item/device/measuring_tape + name = "measuring tape" + desc = "A coiled metallic tape used to check dimensions and lengths." + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "measuring" + +//todo: dig site tape + +//---- excavation devices devices ----// +//sorted in order of delicacy + +/obj/item/weapon/pickaxe/brush + name = "brush" + //icon_state = "brush" + //item_state = "minipick" + digspeed = 50 + desc = "Featuring thick metallic wires for clearing away dust and loose scree." + excavation_amount = 0.5 + drill_sound = 'sound/weapons/thudswoosh.ogg' + drill_verb = "brushing" + +/obj/item/weapon/pickaxe/one_pick + name = "1/6 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (1 centimetre excavation depth)." + excavation_amount = 1 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/two_pick + name = "1/3 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." + excavation_amount = 2 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/three_pick + name = "1/2 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (3 centimetre excavation depth)." + excavation_amount = 3 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/four_pick + name = "2/3 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." + excavation_amount = 4 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/five_pick + name = "5/6 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (5 centimetre excavation depth)." + excavation_amount = 5 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/six_pick + name = "1/1 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." + excavation_amount = 6 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/hand + name = "hand pickaxe" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A smaller, more precise version of the pickaxe (15 centimetre excavation depth)." + excavation_amount = 15 + drill_sound = 'sound/items/Crowbar.ogg' + drill_verb = "clearing" From 09a340235c8c0b84bce5dd77b4b20e5200be3530 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 8 Feb 2013 23:50:46 +1000 Subject: [PATCH 026/163] fixed processing + tweaked heat generation and function of analysis machinery, fixed up floodlight, added suspension (stasis) field generator Signed-off-by: Cael_Aislinn --- code/game/machinery/floodlight.dm | 63 ++-- .../research/xenoarchaeology/analysis.dm | 144 ++++---- .../analysis_fourier_transform.dm | 6 +- .../xenoarchaeology/analysis_ion_mobility.dm | 13 +- .../xenoarchaeology/suspension_generator.dm | 324 ++++++++++++++++++ 5 files changed, 435 insertions(+), 115 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/suspension_generator.dm diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm index 1e5740ed8e0..57f1bc4be6e 100644 --- a/code/game/machinery/floodlight.dm +++ b/code/game/machinery/floodlight.dm @@ -6,66 +6,58 @@ icon_state = "flood00" density = 1 var/on = 0 - var/obj/item/weapon/cell/cell = null - var/use = 1 + var/obj/item/weapon/cell/high/cell = null + var/use = 5 var/unlocked = 0 var/open = 0 + var/brightness_on = 999 //can't remember what the maxed out value is + +/obj/machinery/floodlight/New() + src.cell = new(src) + ..() /obj/machinery/floodlight/proc/updateicon() icon_state = "flood[open ? "o" : ""][open && cell ? "b" : ""]0[on]" /obj/machinery/floodlight/process() - if (!on) - if (luminosity) + if(on) + cell.charge -= use + if(cell.charge <= 0) + on = 0 updateicon() - //sd_SetLuminosity(0) - return - - if(!luminosity && cell && cell.charge > 0) - //sd_SetLuminosity(10) - updateicon() - - if(!cell && luminosity) - on = 0 - updateicon() - //sd_SetLuminosity(0) - return - - cell.charge -= use - - if(cell.charge <= 0 && luminosity) - on = 0 - updateicon() - //sd_SetLuminosity(0) - return + SetLuminosity(0) + src.visible_message("[src] shuts down due to lack of power!") + return /obj/machinery/floodlight/attack_hand(mob/user as mob) if(open && cell) - cell.loc = usr - cell.layer = 20 - if (user.hand ) - user.l_hand = cell + if(ishuman(user)) + if(!user.get_active_hand()) + user.put_in_hands(cell) + cell.loc = user.loc else - user.r_hand = cell + cell.loc = loc cell.add_fingerprint(user) - updateicon() cell.updateicon() src.cell = null user << "You remove the power cell" + updateicon() return if(on) on = 0 - user << "You turn off the light" + user << "\blue You turn off the light" + SetLuminosity(0) else if(!cell) return if(cell.charge <= 0) return on = 1 - user << "You turn on the light" + user << "\blue You turn on the light" + SetLuminosity(brightness_on) updateicon() @@ -101,10 +93,3 @@ cell = W user << "You insert the power cell." updateicon() - -/obj/machinery/floodlight/New() - src.cell = new/obj/item/weapon/cell(src) - cell.maxcharge = 1000 - cell.charge = 1000 - ..() - diff --git a/code/modules/research/xenoarchaeology/analysis.dm b/code/modules/research/xenoarchaeology/analysis.dm index c864915d3a4..0d2579191ec 100644 --- a/code/modules/research/xenoarchaeology/analysis.dm +++ b/code/modules/research/xenoarchaeology/analysis.dm @@ -5,12 +5,10 @@ // var/obj/item/weapon/reagent_containers/glass/held_container var/obj/item/weapon/tank/fuel_container - var/scan_time = 30 //change to 300 later + var/target_scan_ticks = 60 var/report_num = 0 - var/scanning = 0 - var/safety_enabled = 1 - var/warning_given = 0 - var/heat_accumulation_rate = 0 + var/scan_process = 0 + var/heat_accumulation_rate = 1 var/temperature = 273 //measured in kelvin, if this exceeds 1200, the machine is damaged and requires repairs //if this exceeds 600 and safety is enabled it will shutdown //temp greater than 600 also requires a safety prompt to initiate scanning @@ -18,6 +16,7 @@ var/obj/machinery/anomaly/scanner/owned_scanner = null /obj/machinery/anomaly/New() + ..() //connect to a nearby scanner pad if(scanner_dir) owned_scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, scanner_dir) @@ -32,6 +31,49 @@ S.reagents.add_reagent("analysis_sample", 1, D.geological_data) S.reagents.add_reagent("chlorine", 1, D.geological_data) +/obj/machinery/anomaly/process() + //not sure if everything needs to heat up, or just the GLPC + var/datum/gas_mixture/env = loc.return_air() + var/environmental_temp = env.temperature + if(scan_process) + if(scan_process++ > target_scan_ticks) + FinishScan() + + //heat up as we go, but if the air is freezing then heat up much slower + var/new_heat = heat_accumulation_rate + heat_accumulation_rate * rand(-5,5) / 10 + if(environmental_temp < temperature) + new_heat *= 0.75 + temperature += new_heat + if(temperature > 350 && prob(10)) + src.visible_message("\blue \icon[src] bleets plaintively.", 2) + if(temperature > 400) + scan_process = 0 + + //show we're busy + if(prob(10)) + src.visible_message("\blue \icon[src] [pick("whirrs","chuffs","clicks")][pick(" quietly"," softly"," sadly"," excitedly"," energetically"," angrily"," plaintively")].", 2) + + else if(temperature > environmental_temp) + //cool down to match the air + temperature -= heat_accumulation_rate + heat_accumulation_rate * rand(-5,5) / 10 + if(temperature < environmental_temp) + temperature = environmental_temp + if(prob(10)) + src.visible_message("\blue \icon[src] hisses softly.", 2) + + else if(temperature < environmental_temp) + //heat up to match the air + temperature += heat_accumulation_rate + rand(-5,5) / 10 + if(temperature > environmental_temp) + temperature = environmental_temp + else + if(prob(10)) + src.visible_message("\blue \icon[src] plinks quietly.", 2) + + //warm up the lab slightly + if(env.temperature < temperature) + env.temperature += (temperature - env.temperature) * 0.1 + //this proc should be overriden by each individual machine /obj/machinery/anomaly/attack_hand(var/mob/user as mob) if(stat & (NOPOWER|BROKEN)) @@ -42,7 +84,7 @@ dat += "Module heat level: [temperature] kelvin
" dat += "Safeties set at 600k, shielding failure at 1200k. Failure to maintain safe heat levels may result in equipment damage.
" dat += "
" - if(scanning) + if(scan_process) dat += "Scan in progress


" else dat += "[held_container ? "Eject beaker" : "No beaker inserted."]
" @@ -79,58 +121,28 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob) else return ..() -/obj/machinery/anomaly/process() - //not sure if everything needs to heat up, or just the GLPC - var/datum/gas_mixture/env = loc.return_air() - var/environmental_temp = env.temperature - if(scanning) - //heat up as we go, but if the air is freezing then heat up much slower - var/new_heat = heat_accumulation_rate + heat_accumulation_rate * rand(-0.5,0.5) - if(environmental_temp < 273) - new_heat /= 2 - temperature += new_heat - if(temperature >= 600) - if(!warning_given || temperature >= 1200) - src.visible_message("The [src] bleets.", 2) - warning_given = 1 - if(safety_enabled) - scanning = 0 - else if(temperature > environmental_temp) - //cool down to match the air - temperature -= 10 + rand(-5,5) - if(temperature < environmental_temp) - temperature = environmental_temp - else if(temperature < environmental_temp) - //heat up to match the air - temperature += 10 + rand(-5,5) - if(temperature > environmental_temp) - temperature = environmental_temp - obj/machinery/anomaly/proc/ScanResults() //instantiate in children to produce unique scan behaviour return "\red Error initialising scanning components." -obj/machinery/anomaly/proc/BeginScan() - var/total_scan_time = scan_time + scan_time * rand(-0.5, 0.5) +obj/machinery/anomaly/proc/FinishScan() + scan_process = 0 + updateDialog() - scanning = 1 - spawn(total_scan_time) - if(scanning) - scanning = 0 - updateDialog() - - //determine the results and print a report - if(held_container) - src.visible_message("\icon[src] makes an insistent chime.", 2) - var/obj/item/weapon/paper/P = new(src.loc) - P.name = "[src] report #[++report_num]" - P.info = "[src] analysis report #[report_num]

" + ScanResults() - P.stamped = list(/obj/item/weapon/stamp) - P.overlays = list("paper_stamped") - else - src.visible_message("\icon[src] makes a low buzzing noise.", 2) + //determine the results and print a report + if(held_container) + src.visible_message("\blue \icon[src] makes an insistent chime.", 2) + var/obj/item/weapon/paper/P = new(src.loc) + P.name = "[src] report #[++report_num]" + P.info = "[src] analysis report #[report_num]

" + ScanResults() + P.stamped = list(/obj/item/weapon/stamp) + P.overlays = list("paper_stamped") + else + src.visible_message("\blue \icon[src] makes a low buzzing noise.", 2) obj/machinery/anomaly/Topic(href, href_list) + ..() + usr.set_machine(src) if(href_list["close"]) usr << browse(null, "window=anomaly") usr.machine = null @@ -141,34 +153,24 @@ obj/machinery/anomaly/Topic(href, href_list) fuel_container.loc = src.loc fuel_container = null if(href_list["begin"]) - if(temperature >= 600) + if(temperature >= 300) var/proceed = input("Unsafe internal temperature detected, do you wish to continue?","Warning") - if(proceed) - if(get_dist(src, usr) <= 1) - safety_enabled = 0 - BeginScan() - else - usr << "\red You must be closer to the [src]!" + if(proceed && get_dist(src, usr) <= 1) + scan_process = 1 else - BeginScan() + scan_process = 1 - ..() - updateDialog() + updateUsrDialog() //whether the carrier sample matches the possible finds //results greater than a threshold of 0.6 means a positive result -obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/datum/reagent/carrier) +obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/carrier) var/specifity = 0 - var/remaining = 1 if(scanned_sample && carrier) - for(var/index=1,index <= scanned_sample.find_presence.len, index++) - var/find = scanned_sample.find_presence[index] - if(find && responsive_carriers[index] == carrier) - specifity += 0.5 * remaining + rand(0, 0.25 * remaining) - remaining = 1 - specifity - - if(!specifity) - specifity += rand(0, 0.5) + if(scanned_sample.find_presence.Find(carrier)) + specifity = 0.7 * (scanned_sample.find_presence[carrier] / scanned_sample.total_spread) + 0.3 + else + specifity = rand(0, 0.5) return specifity diff --git a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm index 7a402fdcd99..5e952c00bbd 100644 --- a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm +++ b/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm @@ -33,9 +33,9 @@ obj/machinery/anomaly/fourier_transform/ScanResults() distance += distance * rand(-100 * offset, 100 * offset) / 100 accuracy = specifity results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([100 * accuracy]% accuracy): [distance]." - if(carrier == scanned_sample.source_mineral) - results += "
Warning, analysis may be contaminated by high quantities of molecular carrier present throughout sample." else - results = "Standard energy dispersion detected throughout sample." + results = "Energy dispersion detected throughout sample consistent with background readings.
" + if(carrier == scanned_sample.source_mineral) + results += "Warning, analysis may be contaminated by high quantities of molecular carrier present throughout sample." return results diff --git a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm index 221b4417b51..cdc388d7c87 100644 --- a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm +++ b/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm @@ -22,15 +22,24 @@ obj/machinery/anomaly/ion_mobility/ScanResults() if(num_reagents == 2 && scanned_sample && carrier) //all necessary components are present - results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) indicates the following composition:

" + results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) indicates the dissonance spread:

" var/found = 0 + if(scanned_sample.find_presence.Find(carrier)) + var/dis_ratio = scanned_sample.find_presence[carrier] + var/desc_index = responsive_carriers.Find(carrier) + results += " - [finds_as_strings[desc_index]]: [dis_ratio]
" + found++ + /* for(var/index=1,index <= scanned_sample.find_presence.len, index++) var/find = scanned_sample.find_presence[index] //world << "index: [index], find: [find], response: [responsive_carriers[index]], carrier: [carrier]" if(find && responsive_carriers[index] == carrier) results += " - [finds_as_strings[index]] [find * 100]%
" found++ + */ if(!found) - results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) to determine composition were inconclusive." + results = "Kinetic analysis on sample's ionic residue in carrier ([carrier]) to determine composition were inconclusive.
" + if(carrier == scanned_sample.source_mineral) + results += "Warning, analysis may be contaminated by high quantities of molecular carrier present throughout sample." return results diff --git a/code/modules/research/xenoarchaeology/suspension_generator.dm b/code/modules/research/xenoarchaeology/suspension_generator.dm new file mode 100644 index 00000000000..3c1449f6b49 --- /dev/null +++ b/code/modules/research/xenoarchaeology/suspension_generator.dm @@ -0,0 +1,324 @@ +//these are probably broken + +/obj/machinery/suspension_gen + name = "suspension field generator" + desc = "It has stubby legs bolted up against it's body for stabilising." + icon = 'xenoarchaeology.dmi' + icon_state = "suspension2" + density = 1 + req_access = list(access_research) + var/obj/item/weapon/cell/cell + var/obj/item/weapon/card/id/auth_card + var/locked = 1 + var/open = 0 + var/screwed = 1 + var/field_type = "" + var/power_use = 25 + var/obj/effect/suspension_field/suspension_field + var/list/secured_mobs = list() + +/obj/machinery/suspension_gen/New() + src.cell = new/obj/item/weapon/cell/high(src) + ..() + +/obj/machinery/suspension_gen/process() + set background = 1 + + if (suspension_field) + cell.charge -= power_use + + var/turf/T = get_turf(suspension_field) + if(field_type == "carbon") + for(var/mob/living/carbon/M in T) + M.weakened = max(M.weakened, 3) + cell.charge -= power_use + if(prob(10)) + M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" + + if(field_type == "silicon") + for(var/mob/living/silicon/M in T) + M.weakened = max(M.weakened, 3) + cell.charge -= power_use + if(prob(10)) + M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" + + for(var/obj/item/I in T) + if(!suspension_field.contents.len) + suspension_field.icon_state = "energynet" + suspension_field.overlays += "shield2" + I.loc = suspension_field + + for(var/mob/living/simple_animal/M in T) + M.weakened = max(M.weakened, 3) + cell.charge -= power_use + if(prob(10)) + M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" + + if(cell.charge <= 0) + deactivate() + +/obj/machinery/suspension_gen/interact(mob/user as mob) + var/dat = "Multi-phase mobile suspension field generator MK II \"Steadfast\"
" + if(cell) + var/colour = "red" + if(cell.charge / cell.maxcharge > 0.66) + colour = "green" + else if(cell.charge / cell.maxcharge > 0.33) + colour = "orange" + dat += "Energy cell: [100 * cell.charge / cell.maxcharge]%
" + else + dat += "Energy cell: None
" + if(auth_card) + dat += "\[[auth_card]\]
" + if(!locked) + dat += "
[suspension_field ? "Disable" : "Enable"] field
" + else + dat += "
" + else + dat += "\[------\]
" + if(!locked) + dat += "
[suspension_field ? "Disable" : "Enable"] field
" + else + dat += "Enter your ID to begin.
" + + dat += "
" + if(!locked) + dat += "Select field mode
" + dat += "[field_type=="carbon"?"":"" ]Diffracted CO2 laser
" + dat += "[field_type=="helium"?"":"" ]Helium tracer field
" + dat += "[field_type=="beryllium"?"":"" ]Beryllium dispersion wave
" + dat += "[field_type=="neon"?"":"" ]Neon refrigerant cloud
" + dat += "[field_type=="aluminium"?"":"" ]Aluminium transmitted field
" + dat += "[field_type=="silicon"?"":"" ]Silicon wafer conduction
" + dat += "[field_type=="calcium"?"":"" ]Calcium binary deoxidiser
" + else + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "Always wear safety gear and consult a field manual before operation.
" + if(!locked) + dat += "Lock console
" + else + dat += "
" + dat += "Refresh console
" + dat += "Close console" + user << browse(dat, "window=suspension;size=500x400") + onclose(user, "suspension") + +/obj/machinery/suspension_gen/Topic(href, href_list) + ..() + usr.set_machine(src) + + if(href_list["toggle_field"]) + if(!suspension_field) + if(cell.charge > 0) + if(anchored) + activate() + else + usr << "You are unable to activate [src] until it is properly secured on the ground." + else + deactivate() + if(href_list["select_field"]) + field_type = href_list["select_field"] + else if(href_list["insertcard"]) + var/obj/item/I = usr.get_active_hand() + if (istype(I, /obj/item/weapon/card)) + usr.drop_item() + I.loc = src + auth_card = I + if(attempt_unlock(I)) + usr << "You insert [I], the console flashes \'Access granted.\'" + else + usr << "You insert [I], the console flashes \'Access denied.\'" + else if(href_list["ejectcard"]) + if(auth_card) + if(ishuman(usr)) + auth_card.loc = usr.loc + if(!usr.get_active_hand()) + usr.put_in_hands(auth_card) + auth_card = null + else + auth_card.loc = loc + auth_card = null + else if(href_list["lock"]) + locked = 1 + else if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=suspension") + + updateUsrDialog() + +/obj/machinery/suspension_gen/attack_hand(mob/user as mob) + if(!open) + interact(user) + else if(cell) + cell.loc = loc + cell.add_fingerprint(user) + cell.updateicon() + + icon_state = "suspension0" + cell = null + user << "You remove the power cell" + +/obj/machinery/suspension_gen/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/screwdriver)) + if(!open) + if(screwed) + screwed = 0 + else + screwed = 1 + user << "You [screwed ? "screw" : "unscrew"] the battery panel." + else if (istype(W, /obj/item/weapon/crowbar)) + if(!locked) + if(!screwed) + if(!suspension_field) + if(open) + open = 0 + else + open = 1 + user << "You crowbar the battery panel [open ? "open" : "in place"]." + icon_state = "suspension[open ? (cell ? "1" : "0") : "2"]" + else + user << "[src]'s safety locks are engaged, shut it down first." + else + user << "Unscrew [src]'s battery panel first." + else + user << "[src]'s security locks are engaged." + else if (istype(W, /obj/item/weapon/wrench)) + if(!suspension_field) + if(anchored) + anchored = 0 + else + anchored = 1 + user << "You wrench the stabilising legs [anchored ? "into place" : "up against the body"]." + if(anchored) + desc = "It is resting securely on four stubby legs." + else + desc = "It has stubby legs bolted up against it's body for stabilising." + else + user << "You are unable to secure [src] while it is active!" + else if (istype(W, /obj/item/weapon/cell)) + if(open) + if(cell) + user << "There is a power cell already installed." + else + user.drop_item() + W.loc = src + cell = W + user << "You insert the power cell." + icon_state = "suspension1" + else if(istype(W, /obj/item/weapon/card)) + var/obj/item/weapon/card/I = W + if(!auth_card) + if(attempt_unlock(I)) + user << "You swipe [I], the console flashes \'Access granted.\'" + else + user << "You swipe [I], console flashes \'Access denied.\'" + else + user << "Remove [auth_card] first." + +/obj/machinery/suspension_gen/proc/attempt_unlock(var/obj/item/weapon/card/C) + if(!open) + if(istype(C, /obj/item/weapon/card/emag) && cell.charge > 0) + //put sparks here + if(prob(95)) + locked = 0 + else if(istype(C, /obj/item/weapon/card/id) && check_access(C)) + locked = 0 + + if(!locked) + return 1 + +//checks for whether the machine can be activated or not should already have occurred by this point +/obj/machinery/suspension_gen/proc/activate() + //depending on the field type, we might pickup certain items + var/turf/T = get_turf(get_step(src,dir)) + var/success = 0 + var/collected = 0 + switch(field_type) + if("carbon") + success = 1 + for(var/mob/living/carbon/C in T) + C.weakened += 5 + C.visible_message("\blue \icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.") + if("helium") + success = 1 + // + if("beryllium") + success = 1 + // + if("neon") + success = 1 + // + if("aluminium") + success = 1 + // + if("silicon") + success = 1 + for(var/mob/living/silicon/R in T) + R.weakened += 5 + R.visible_message("\blue \icon[R] [R] begins to float in the air!","You feel tingly and light, but it is difficult to move.") + if("calcium") + success = 1 + // + //in case we have a bad field type + if(!success) + return + + for(var/mob/living/simple_animal/C in T) + C.visible_message("\blue \icon[C] [C] begins to float in the air!","You feel tingly and light, but it is difficult to move.") + C.weakened += 5 + + suspension_field = new(T) + suspension_field.field_type = field_type + src.visible_message("\blue \icon[src] [src] activates with a low hum.") + icon_state = "suspension3" + + for(var/obj/item/I in T) + I.loc = suspension_field + collected++ + + if(collected) + suspension_field.icon_state = "energynet" + suspension_field.overlays += "shield2" + src.visible_message("\blue \icon[suspension_field] [suspension_field] gently absconds [collected > 1 ? "something" : "several things"].") + else + if(istype(T,/turf/simulated/mineral) || istype(T,/turf/simulated/wall)) + suspension_field.icon_state = "shieldsparkles" + else + suspension_field.icon_state = "shield2" + +/obj/machinery/suspension_gen/proc/deactivate() + //drop anything we picked up + var/turf/T = get_turf(suspension_field) + + for(var/mob/M in T) + M << "You no longer feel like floating." + M.weakened = min(M.weakened, 3) + + src.visible_message("\blue \icon[src] [src] deactivates with a gentle shudder.") + del(suspension_field) + icon_state = "suspension2" + +/obj/machinery/suspension_gen/Del() + //safety checks: clear the field and drop anything it's holding + deactivate() + ..() + +/obj/effect/suspension_field + name = "energy field" + icon = 'icons/effects/effects.dmi' + anchored = 1 + density = 1 + var/field_type = "calcium" + +/obj/effect/suspension_field/Del() + for(var/obj/I in src) + I.loc = src.loc + ..() From 3c24a9088dd35661e014e8edc2ee1566d285099f Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 8 Feb 2013 23:52:11 +1000 Subject: [PATCH 027/163] tweaked fossils and arch. finds, added find -> reagent linking, added / tweaked linking between geosample + finds + reagents + analysis + turfs, Signed-off-by: Cael_Aislinn --- .../modules/research/xenoarchaeology/finds.dm | 233 ++++++++++++++---- .../research/xenoarchaeology/fossils.dm | 14 +- .../research/xenoarchaeology/geosample.dm | 83 ++++--- 3 files changed, 245 insertions(+), 85 deletions(-) diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index 480ce8bab0e..fbdb6f8ceef 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -31,8 +31,9 @@ #define ARCHAEO_FOSSIL 29 #define ARCHAEO_SHELL 30 #define ARCHAEO_PLANT 31 -//alien remains -//plant remains +#define ARCHAEO_REMAINS_HUMANOID 32 +#define ARCHAEO_REMAINS_ROBOT 33 +#define ARCHAEO_REMAINS_XENO 34 //eggs //droppings //footprints @@ -48,9 +49,77 @@ #define DIGSITE_TEMPLE 5 #define DIGSITE_WAR 6 +/proc/get_responsive_reagent(var/find_type) + switch(find_type) + if(ARCHAEO_BOWL) + return "aluminium" + if(ARCHAEO_URN) + return "aluminium" + if(ARCHAEO_CUTLERY) + return "aluminium" + if(ARCHAEO_STATUETTE) + return "aluminium" + if(ARCHAEO_INSTRUMENT) + return "aluminium" + if(ARCHAEO_COIN) + return "silicon" + if(ARCHAEO_HANDCUFFS) + return "aluminium" + if(ARCHAEO_BEARTRAP) + return "aluminium" + if(ARCHAEO_LIGHTER) + return "aluminium" + if(ARCHAEO_BOX) + return "aluminium" + if(ARCHAEO_GASTANK) + return "aluminium" + if(ARCHAEO_TOOL) + return "silicon" + if(ARCHAEO_METAL) + return "silicon" + if(ARCHAEO_PEN) + return "aluminium" + if(ARCHAEO_CRYSTAL) + return "helium" + if(ARCHAEO_CULTBLADE) + return "neon" + if(ARCHAEO_TELEBEACON) + return "neon" + if(ARCHAEO_CLAYMORE) + return "silicon" + if(ARCHAEO_CULTROBES) + return "neon" + if(ARCHAEO_SOULSTONE) + return "helium" + if(ARCHAEO_SHARD) + return "helium" + if(ARCHAEO_RODS) + return "silicon" + if(ARCHAEO_STOCKPARTS) + return "neon" + if(ARCHAEO_KATANA) + return "silicon" + if(ARCHAEO_LASER) + return "silicon" + if(ARCHAEO_GUN) + return "silicon" + if(ARCHAEO_UNKNOWN) + return "beryllium" + if(ARCHAEO_FOSSIL) + return "carbon" + if(ARCHAEO_PLANT) + return "carbon" + if(ARCHAEO_REMAINS_HUMANOID) + return "carbon" + if(ARCHAEO_REMAINS_ROBOT) + return "carbon" + if(ARCHAEO_REMAINS_XENO) + return "carbon" + return "chlorine" + //see /turf/simulated/mineral/New() in code/modules/mining/mine_turfs.dm /proc/get_random_digsite_type() - return pick(100;DIGSITE_GARDEN,90;DIGSITE_ANIMAL,80;DIGSITE_HOUSE,70;DIGSITE_TECHNICAL,60;DIGSITE_TEMPLE,50;DIGSITE_WAR) + return pick(100;DIGSITE_GARDEN,95;DIGSITE_ANIMAL,90;DIGSITE_HOUSE,85;DIGSITE_TECHNICAL,80;DIGSITE_TEMPLE,75;DIGSITE_WAR) /proc/get_random_find_type(var/digsite) @@ -61,18 +130,19 @@ 100;ARCHAEO_PLANT,\ 25;ARCHAEO_SHELL,\ 25;ARCHAEO_FOSSIL,\ + 10;ARCHAEO_REMAINS_XENO,\ 5;ARCHAEO_BEARTRAP\ ) if(DIGSITE_ANIMAL) find_type = pick(\ 100;ARCHAEO_FOSSIL,\ - 25;ARCHAEO_SHELL,\ - 25;ARCHAEO_PLANT,\ + 50;ARCHAEO_SHELL,\ + 50;ARCHAEO_PLANT,\ + 50;ARCHAEO_REMAINS_XENO,\ 25;ARCHAEO_BEARTRAP\ ) if(DIGSITE_HOUSE) find_type = pick(\ - 100;ARCHAEO_UNKNOWN,\ 100;ARCHAEO_BOWL,\ 100;ARCHAEO_URN,\ 100;ARCHAEO_CUTLERY,\ @@ -82,33 +152,42 @@ 100;ARCHAEO_LIGHTER,\ 100;ARCHAEO_BOX,\ 75;ARCHAEO_COIN,\ + 75;ARCHAEO_UNKNOWN,\ + 75;ARCHAEO_REMAINS_HUMANOID,\ + 75;ARCHAEO_REMAINS_ROBOT,\ + 75;ARCHAEO_REMAINS_XENO,\ 50;ARCHAEO_SHARD,\ 50;ARCHAEO_RODS,\ 25;ARCHAEO_METAL\ ) if(DIGSITE_TECHNICAL) find_type = pick(\ - 100;ARCHAEO_UNKNOWN,\ 100;ARCHAEO_METAL,\ 100;ARCHAEO_GASTANK,\ 100;ARCHAEO_TELEBEACON,\ 100;ARCHAEO_TOOL,\ 100;ARCHAEO_STOCKPARTS,\ + 100;ARCHAEO_REMAINS_ROBOT,\ 75;ARCHAEO_SHARD,\ 75;ARCHAEO_RODS,\ + 75;ARCHAEO_UNKNOWN,\ 50;ARCHAEO_HANDCUFFS,\ - 50;ARCHAEO_BEARTRAP\ + 50;ARCHAEO_BEARTRAP,\ + 25;ARCHAEO_REMAINS_HUMANOID,\ + 25;ARCHAEO_REMAINS_XENO\ ) if(DIGSITE_TEMPLE) find_type = pick(\ 200;ARCHAEO_CULTROBES,\ - 100;ARCHAEO_UNKNOWN,\ 100;ARCHAEO_URN,\ 100;ARCHAEO_BOWL,\ 100;ARCHAEO_KNIFE,\ 100;ARCHAEO_CRYSTAL,\ 75;ARCHAEO_CULTBLADE,\ + 75;ARCHAEO_REMAINS_HUMANOID,\ + 75;ARCHAEO_REMAINS_XENO,\ 50;ARCHAEO_SOULSTONE,\ + 50;ARCHAEO_UNKNOWN,\ 25;ARCHAEO_HANDCUFFS,\ 25;ARCHAEO_BEARTRAP,\ 10;ARCHAEO_KATANA,\ @@ -119,14 +198,17 @@ ) if(DIGSITE_WAR) find_type = pick(\ - 100;ARCHAEO_UNKNOWN,\ 100;ARCHAEO_GUN,\ 100;ARCHAEO_KNIFE,\ 75;ARCHAEO_LASER,\ 75;ARCHAEO_KATANA,\ 75;ARCHAEO_CLAYMORE,\ + 75;ARCHAEO_REMAINS_HUMANOID,\ + 75;ARCHAEO_REMAINS_XENO,\ + 50;ARCHAEO_UNKNOWN,\ 50;ARCHAEO_CULTROBES,\ 50;ARCHAEO_CULTBLADE,\ + 50;ARCHAEO_REMAINS_ROBOT,\ 25;ARCHAEO_HANDCUFFS,\ 25;ARCHAEO_BEARTRAP,\ 25;ARCHAEO_TOOL\ @@ -137,16 +219,20 @@ // Xenoarchaeological finds datum/find - var/find_type = 0 - var/excavation_required = 0 - var/view_range = 15 //how close excavation has to come to show an overlay on the turf - var/destruct_range = 2 //how much excavation has to overshoot by to destroy the item - var/clearance_range= 2 //how close excavation has to come to extract the whole ore instead of just the item inside - //if excavation hits var/excavation_required exactly, it's contained find is extracted cleanly without the ore + var/find_type = 0 //random according to the digsite type + var/excavation_required = 0 //random 5-95% + var/view_range = 20 //how close excavation has to come to show an overlay on the turf + var/clearance_range = 3 //how close excavation has to come to extract the item + //if excavation hits var/excavation_required exactly, it's contained find is extracted cleanly without the ore + var/prob_delicate = 75 //probability it requires an active suspension field to not insta-crumble + var/dissonance_spread = 1 //proportion of the tile that is affected by this find + //used in conjunction with analysis machines to determine correct suspension field type datum/find/New(var/digsite, var/exc_req) excavation_required = exc_req find_type = get_random_find_type(digsite) + clearance_range = rand(2,6) + dissonance_spread = rand(1500,2500) / 100 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Rock sliver @@ -178,11 +264,13 @@ datum/find/New(var/digsite, var/exc_req) var/method = 0// 0 = fire, 1 = brush, 2 = pick origin_tech = "materials=5" -/obj/item/weapon/ore/strangerock/New(var/item_type = 0) - ..() +/obj/item/weapon/ore/strangerock/New(loc, var/inside_item_type = 0) + ..(loc) method = rand(0,2) - if(item_type) - inside = new/obj/item/weapon/archaeological_find(src, item_type) + if(inside_item_type) + inside = new/obj/item/weapon/archaeological_find(src, new_item_type = inside_item_type) + if(!inside) + inside = locate() in contents /*/obj/item/weapon/ore/strangerock/ex_act(var/severity) if(severity && prob(30)) @@ -224,8 +312,7 @@ datum/find/New(var/digsite, var/exc_req) icon_state = "ano01" var/find_type = 0 -/obj/item/weapon/archaeological_find/New(var/new_item_type) - +/obj/item/weapon/archaeological_find/New(loc, var/new_item_type) if(new_item_type) find_type = new_item_type else @@ -373,8 +460,6 @@ datum/find/New(var/digsite, var/exc_req) var/new_type = pick(possible_spawns) new_item = new new_type(src.loc) new_item:amount = rand(5,45) - del(src) - return //nothing fancy here if(15) if(prob(75)) new_item = new /obj/item/weapon/pen(src.loc) @@ -408,8 +493,6 @@ datum/find/New(var/digsite, var/exc_req) if(19) new_item = new /obj/item/weapon/claymore(src.loc) name = new_item.name - desc = new_item.desc - apply_material_decorations = 0 if(20) //arcane clothing var/list/possible_spawns = list(/obj/item/clothing/head/culthood, @@ -419,21 +502,18 @@ datum/find/New(var/digsite, var/exc_req) var/new_type = pick(possible_spawns) new_item = new new_type(src.loc) - del(src) - return if(21) //soulstone new_item = new /obj/item/device/soulstone(src.loc) - del(src) - return + apply_material_decorations = 0 if(22) new_item = new /obj/item/weapon/shard(src.loc) - del(src) - return + apply_image_decorations = 0 + apply_material_decorations = 0 if(23) new_item = new /obj/item/stack/rods(src.loc) - del(src) - return + apply_image_decorations = 0 + apply_material_decorations = 0 if(24) var/list/possible_spawns = typesof(/obj/item/weapon/stock_parts) possible_spawns -= /obj/item/weapon/stock_parts @@ -441,13 +521,10 @@ datum/find/New(var/digsite, var/exc_req) var/new_type = pick(possible_spawns) new_item = new new_type(src.loc) - del(src) - return + apply_material_decorations = 0 if(25) new_item = new /obj/item/weapon/katana(src.loc) name = new_item.name - desc = new_item.desc - apply_material_decorations = 0 if(26) //energy gun var/spawn_type = pick(\ @@ -472,8 +549,7 @@ datum/find/New(var/digsite, var/exc_req) else new_gun.power_supply.charge = 0 - name = new_item.name - desc = new_item.desc + name = "unknown weapon" if(27) //revolver var/obj/item/weapon/gun/projectile/new_gun = new (src.loc) @@ -505,27 +581,79 @@ datum/find/New(var/digsite, var/exc_req) new_gun.loaded.Remove(I) I.loc = null - name = new_item.name - desc = new_item.desc + name = "unknown weapon" if(28) //completely unknown alien device - if(prob(40)) + if(prob(50)) apply_image_decorations = 0 if(29) //fossil bone/skull new/obj/item/weapon/fossil/base(src.loc) + + //this item replaces itself on spawn with another, doing anything else will cause runtimes del(src) return if(30) //fossil shell - new/obj/item/weapon/fossil/base(src.loc) - del(src) - return - if(30) + new/obj/item/weapon/fossil/shell(src.loc) + apply_image_decorations = 0 + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(31) //fossil plant - new/obj/item/weapon/fossil/base(src.loc) - del(src) - return + new/obj/item/weapon/fossil/plant(src.loc) + apply_image_decorations = 0 + apply_material_decorations = 0 + if(32) + //humanoid remains + name = "humanoid remains" + icon = 'blood.dmi' + icon_state = "remains" + apply_material_decorations = 0 + apply_image_decorations = 0 + additional_desc = pick("They appear almost human.",\ + "They are contorted in a most gruesome way.",\ + "They look almost peaceful.",\ + "The bones are yellowing and old, but remarkably well preserved.",\ + "The bones are scored by numerous burns and partially melted.",\ + "The are battered and broken, in some cases less than splinters are left.",\ + "The mouth is wide open in a death rictus, the victim would appear to have died screaming.") + apply_image_decorations = 0 + apply_material_decorations = 0 + if(33) + //robot remains + name = "robotic remains" + icon = 'blood.dmi' + icon_state = "remainsrobot" + apply_material_decorations = 0 + apply_image_decorations = 0 + additional_desc = pick("Almost mistakeable for the remains of a modern cyborg.",\ + "They are barely recognisable as anything other than a pile of waste metals.",\ + "It looks like the battered remains of an ancient robot chassis.",\ + "The chassis is rusting and old, but remarkably well preserved.",\ + "The chassis is scored by numerous burns and partially melted.",\ + "The chassis is battered and broken, in some cases only chunks of metal are left.",\ + "A pile of wires and crap metal that looks vaguely robotic.") + apply_image_decorations = 0 + apply_material_decorations = 0 + if(34) + //xenos remains + name = "alien remains" + icon = 'blood.dmi' + icon_state = "remainsxeno" + apply_material_decorations = 0 + apply_image_decorations = 0 + additional_desc = pick("It looks vaguely reptilian, but with more teeth.",\ + "They are faintly unsettling.",\ + "There is a faint aura of unease about them.",\ + "The bones are yellowing and old, but remarkably well preserved.",\ + "The bones are scored by numerous burns and partially melted.",\ + "The are battered and broken, in some cases less than splinters are left.",\ + "This creature would have been twisted and monstrous when it was alive.",\ + "It doesn't look human.") + apply_image_decorations = 0 + apply_material_decorations = 0 var/decorations = "" if(apply_material_decorations) @@ -577,7 +705,7 @@ datum/find/New(var/digsite, var/exc_req) //icon and icon_state should have already been set if(new_item) - new_item.name = src.name + new_item.name = "[pick("strange","ancient","alien","")] [new_item.name]" new_item.desc = src.desc if(talkative) @@ -585,6 +713,9 @@ datum/find/New(var/digsite, var/exc_req) if(prob(25)) new_item.speaking_to_players = 1 processing_objects.Add(src) + var/turf/T = get_turf(src) + if(istype(T, /turf/simulated/mineral)) + T:last_find = new_item del(src) else if(talkative) diff --git a/code/modules/research/xenoarchaeology/fossils.dm b/code/modules/research/xenoarchaeology/fossils.dm index 9ee9ecba8b4..bd2e87fe83c 100644 --- a/code/modules/research/xenoarchaeology/fossils.dm +++ b/code/modules/research/xenoarchaeology/fossils.dm @@ -9,12 +9,14 @@ desc = "It's a fossil." /obj/item/weapon/fossil/base/New() - spawn(0) - var/list/l = list("/obj/item/weapon/fossil/bone"=9,"/obj/item/weapon/fossil/skull"=3, - "/obj/item/weapon/fossil/skull/horned"=2) - var/t = pickweight(l) - new t(src.loc) - del src + var/list/l = list("/obj/item/weapon/fossil/bone"=9,"/obj/item/weapon/fossil/skull"=3, + "/obj/item/weapon/fossil/skull/horned"=2) + var/t = pickweight(l) + var/obj/item/weapon/W = new t(src.loc) + var/turf/T = get_turf(src) + if(istype(T, /turf/simulated/mineral)) + T:last_find = W + del src /obj/item/weapon/fossil/bone name = "Fossilised bone" diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index 98064c676f2..72c454148d1 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -28,13 +28,12 @@ var/list/finds_as_strings = list( \ "Long exposure particles", \ "Trace water particles", \ "Crystalline structures", \ - "Metals", \ - "Igneous rock", \ - "Metamorphic rock", \ - "Sedimentary rock", \ + "Metallics", \ + "Metamorphic/generic rock", \ + "Igneous/generic rock", \ + "Sedimentary/generic rock", \ "Anomalous material" ) - datum/geosample var/age = 0 //age can correspond to different archaeological finds var/age_thousand = 0 @@ -42,10 +41,12 @@ datum/geosample var/age_billion = 0 var/artifact_id = "" //id of a nearby artifact, if there is one var/artifact_distance = -1 //proportional to distance + var/source_mineral = "calcium" + var/total_spread = 0 // - var/source_mineral + //var/source_mineral //all potential finds are initialised to null, so nullcheck before you access them - var/list/find_presence[10] + var/list/find_presence = list() datum/geosample/New(var/turf/simulated/mineral/container) @@ -53,51 +54,77 @@ datum/geosample/New(var/turf/simulated/mineral/container) //this should only need to be called once datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) - source_mineral = container.mineralName + //source_mineral = container.mineralName age = rand(1,999) - find_presence[FIND_METEORIC] = rand(1,10) / 10 - - var/comp_remaining = 1 - find_presence[FIND_METEORIC] + //find_presence[FIND_METEORIC] = rand(1,10) / 10 + //var/comp_remaining = 1 - find_presence[FIND_METEORIC] switch(container.mineralName) if("Uranium") age_million = rand(1, 704) age_thousand = rand(1,999) - find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_METALLIC] + //find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_METALLIC] + find_presence["silicon"] = rand(1,1000) / 100 + source_mineral = "silicon" if("Iron") age_thousand = rand(1, 999) age_million = rand(1, 999) - find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_METALLIC] + //find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_METALLIC] + find_presence["silicon"] = rand(1,1000) / 100 + source_mineral = "silicon" if("Diamond") age_thousand = rand(1,999) age_million = rand(1,999) - find_presence[FIND_CRYSTALLINE] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_CRYSTALLINE] + //find_presence[FIND_CRYSTALLINE] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_CRYSTALLINE] + find_presence["helium"] = rand(1,1000) / 100 + source_mineral = "helium" if("Gold") age_thousand = rand(1,999) age_million = rand(1,999) age_billion = rand(3,4) - find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_METALLIC] + //find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_METALLIC] + find_presence["silicon"] = rand(1,1000) / 100 + source_mineral = "silicon" if("Silver") age_thousand = rand(1,999) age_million = rand(1,999) - find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_METALLIC] + //find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_METALLIC] + find_presence["silicon"] = rand(1,1000) / 100 + source_mineral = "silicon" if("Plasma") age_thousand = rand(1,999) age_million = rand(1,999) age_billion = rand(10, 13) - find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_METALLIC] + //find_presence[FIND_METALLIC] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_METALLIC] + find_presence["silicon"] = rand(1,1000) / 100 + source_mineral = "silicon" if("Clown") age = rand(-1,-999) //thats_the_joke.mp4 age_thousand = rand(-1,-999) - else - source_mineral = "Rock" - find_presence[FIND_IGNEOUS] = comp_remaining * (rand(25, 75) / 100) - comp_remaining -= find_presence[FIND_IGNEOUS] + find_presence["beryllium"] = rand(1,1000) / 100 + source_mineral = "beryllium" + //find_presence[FIND_IGNEOUS] = comp_remaining * (rand(25, 75) / 100) + //comp_remaining -= find_presence[FIND_IGNEOUS] + + find_presence["neon"] = rand(1,500) / 100 + if(prob(20)) + find_presence["carbon"] = rand(1,10) / 100 + + //find_presence[FIND_METAMORPHIC] = comp_remaining + //allocate the rest to ordinary rock + find_presence["calcium"] = rand(500,2500) / 100 + + //loop over finds, grab any relevant stuff + for(var/datum/find/F in container.finds) + var/responsive_reagent = get_responsive_reagent(F.find_type) + find_presence[responsive_reagent] = F.dissonance_spread + + for(var/entry in find_presence) + total_spread += find_presence[entry] - find_presence[FIND_METAMORPHIC] = comp_remaining From 5533ef494693ee95b86178d42b5cf61a7f9a60d5 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 8 Feb 2013 23:54:45 +1000 Subject: [PATCH 028/163] setup digsite creation + propogation on mining asteroid, setup most excavation and tool interaction with mining turfs + digsites, setup tweaked list operation, modified dme Signed-off-by: Cael_Aislinn --- baystation12.dme | 11 ++- code/__HELPERS/lists.dm | 5 +- code/modules/mining/mine_turfs.dm | 150 +++++++++++++++++++++++------- 3 files changed, 125 insertions(+), 41 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 3ebe66586a2..ecc43c2a84d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -774,10 +774,10 @@ #include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_spawning.dm" #include "code\modules\destilery\main.dm" -#include "code\modules\DetectiveWork\detective_work.dm" -#include "code\modules\DetectiveWork\evidence.dm" -#include "code\modules\DetectiveWork\footprints_and_rag.dm" -#include "code\modules\DetectiveWork\scanner.dm" +#include "code\modules\detectivework\detective_work.dm" +#include "code\modules\detectivework\evidence.dm" +#include "code\modules\detectivework\footprints_and_rag.dm" +#include "code\modules\detectivework\scanner.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" @@ -1127,7 +1127,6 @@ #include "code\modules\research\xenoarchaeology\analysis_isotope_ratio.dm" #include "code\modules\research\xenoarchaeology\analysis_scanner.dm" #include "code\modules\research\xenoarchaeology\archaeo_excavate.dm" -#include "code\modules\research\xenoarchaeology\archaeo_tools.dm" #include "code\modules\research\xenoarchaeology\artifact.dm" #include "code\modules\research\xenoarchaeology\artifact_analysis.dm" #include "code\modules\research\xenoarchaeology\artifact_db.dm" @@ -1141,7 +1140,9 @@ #include "code\modules\research\xenoarchaeology\finds.dm" #include "code\modules\research\xenoarchaeology\fossils.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" +#include "code\modules\research\xenoarchaeology\misc_tools.dm" #include "code\modules\research\xenoarchaeology\readme.dm" +#include "code\modules\research\xenoarchaeology\suspension_generator.dm" #include "code\modules\research\xenoarchaeology\talking_item.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 690025ab735..fd1bdb3465b 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -149,8 +149,9 @@ proc/listclearnulls(list/list) //Reverses the order of items in the list /proc/reverselist(list/L) var/list/output = list() - for(var/i = L.len; i >= 1; i--) - output += L[i] + if(L) + for(var/i = L.len; i >= 1; i--) + output += L[i] return output //Randomize: Return the list in a random order diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index cca0035846d..a7944ca8968 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -24,11 +24,10 @@ var/excavation_level = 0 var/list/finds = list() var/list/excavation_minerals = list() - var/list/excavation_minerals_ascending = list() - var/list/exca_first = list("A","B","C","D","E") - var/list/exca_second = list() var/next_rock = 0 - var/overlay_num = 0 + var/archaeo_overlay = "" + var/excav_overlay = "" + var/obj/item/weapon/last_find /turf/simulated/mineral/Del() return @@ -76,17 +75,16 @@ //keep any digsite data as constant as possible if(T.finds.len && !M.finds.len) M.finds = T.finds - M.overlays += "overlay_archaeo1" + if(T.archaeo_overlay) + M.overlays += archaeo_overlay + //---- Xenoarchaeology BEGIN if(mineralAmt > 0 && !excavation_minerals.len) for(var/i=0, i= F.excavation_required + F.destruct_range) - fail_message = ", [pick("there is a crunching noise","[W] hits something","part of the rock face crumbles away","something breaks under [W]")]" - if(prob(50)) - src.finds.Remove(F) - user << "\red You start [P.drill_verb][fail_message]." + if(src.excavation_level + P.excavation_amount > F.excavation_required) + //Chance to destroy / extract any finds here + fail_message = ", [pick("there is a crunching noise","[W] collides with some different rock","part of the rock face crumbles away","something breaks under [W]")]" + + user << "\red You start [P.drill_verb][fail_message ? fail_message : ""]." + + if(fail_message) + if(prob(50)) + if(prob(25)) + excavate_find(5, src.finds[1]) + else if(prob(50)) + src.finds.Remove(src.finds[1]) if(do_after(user,P.digspeed)) user << "\blue You finish [P.drill_verb] the rock." + + if(finds.len) + var/datum/find/F = src.finds[1] + if(round(src.excavation_level + P.excavation_amount) == F.excavation_required) + //Chance to extract any items here perfectly, otherwise just pull them out along with the rock surrounding them + if(src.excavation_level + P.excavation_amount > F.excavation_required) + //if you can get slightly over, perfect extraction + excavate_find(100, F) + else + excavate_find(80, F) + + else if(src.excavation_level + P.excavation_amount > F.excavation_required - F.clearance_range) + //just pull the surrounding rock out + excavate_find(5, F) + if(src.excavation_level + P.excavation_amount >= 100) gets_drilled() + return else src.excavation_level += P.excavation_amount - //handle any archaeological finds we might uncover + //archaeo overlays + if(!archaeo_overlay && finds.len) + var/datum/find/F = src.finds[1] + if(F.excavation_required <= src.excavation_level + F.view_range) + archaeo_overlay = "overlay_archaeo[rand(1,3)]" + overlays += archaeo_overlay - //extract pesky minerals while we're excavating - while(excavation_minerals.len && src.excavation_level > excavation_minerals[excavation_minerals.len]) - drop_mineral() - //have a 50% chance to extract bonus minerals this way - //if(prob(50)) - pop(excavation_minerals) - mineralAmt-- + //there's got to be a better way to do this + var/update_excav_overlay = 0 + if(src.excavation_level >= 75) + if(src.excavation_level - P.excavation_amount < 75) + update_excav_overlay = 1 + else if(src.excavation_level >= 50) + if(src.excavation_level - P.excavation_amount < 50) + update_excav_overlay = 1 + else if(src.excavation_level >= 25) + if(src.excavation_level - P.excavation_amount < 25) + update_excav_overlay = 1 - //drop some rocks - next_rock += P.excavation_amount * 10 - while(next_rock > 100) - next_rock -= 100 - var/obj/item/weapon/ore/O = new(src) - O.geological_data = src.geological_data + //update overlays displaying excavation level + if( !(excav_overlay && excavation_level > 0) || update_excav_overlay ) + var/excav_quadrant = round(excavation_level / 25) + 1 + excav_overlay = "overlay_excv[excav_quadrant]_[rand(1,3)]" + overlays += excav_overlay + + //extract pesky minerals while we're excavating + while(excavation_minerals.len && src.excavation_level > excavation_minerals[excavation_minerals.len]) + drop_mineral() + //have a 50% chance to extract bonus minerals this way + //if(prob(50)) + pop(excavation_minerals) + mineralAmt-- + + //drop some rocks + next_rock += P.excavation_amount * 10 + while(next_rock > 100) + next_rock -= 100 + var/obj/item/weapon/ore/O = new(src) + O.geological_data = src.geological_data else return attack_hand(user) @@ -399,6 +456,31 @@ commented out in r5061, I left it because of the shroom thingies usr << "\red You destroy some of the rocks!"*/ return +/turf/simulated/mineral/proc/excavate_find(var/prob_clean = 0, var/datum/find/F) + //with skill and luck, players can cleanly extract finds + //otherwise, they come out inside a chunk of rock + var/obj/item/weapon/X + if(prob_clean) + X = new/obj/item/weapon/archaeological_find(src, new_item_type = F.find_type) + else + X = new/obj/item/weapon/ore/strangerock(src, inside_item_type = F.find_type) + + //some find types delete the /obj/item/weapon/archaeological_find and replace it with something else, this handles when that happens + //yuck + if(!X) + X = last_find + if(!X) + X = "something" + + //many finds are ancient and thus very delicate - luckily there is a specialised energy suspension field which protects them when they're being extracted + if(prob(F.prob_delicate)) + var/obj/effect/suspension_field/S = locate() in src + if(!S || S.field_type != get_responsive_reagent(F.find_type)) + src.visible_message("\red[pick("[X] crumbles away into dust","[X] breaks apart","[X] collapses onto itself")].") + del(X) + + src.finds.Remove(F) + /* /turf/simulated/mineral/proc/setRandomMinerals() var/s = pickweight(list("uranium" = 5, "iron" = 50, "gold" = 5, "silver" = 5, "plasma" = 50, "diamond" = 1)) From b2e9c265c42316bfe1add4043e88cd0dde99cc73 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 9 Feb 2013 22:32:06 +1000 Subject: [PATCH 029/163] new icons, added some large artifacts, renamed/restructured a bunch of files Signed-off-by: Cael_Aislinn --- baystation12.dme | 28 +- .../game/objects/items/stacks/sheets/glass.dm | 2 +- code/modules/mining/mine_turfs.dm | 6 + code/modules/mining/ores_coins.dm | 1 - .../xenoarchaeology/archaeo_excavate.dm | 1 - .../xenoarchaeology/artifact_autocloner.dm | 87 ++ .../xenoarchaeology/artifact_gigadrill.dm | 35 + .../xenoarchaeology/artifact_hoverpod.dm | 52 + .../xenoarchaeology/artifact_replicator.dm | 120 ++ .../modules/research/xenoarchaeology/finds.dm | 279 +---- .../research/xenoarchaeology/finds_defines.dm | 258 ++++ .../{fossils.dm => finds_fossils.dm} | 0 .../research/xenoarchaeology/finds_misc.dm | 69 ++ ...{talking_item.dm => finds_talking_item.dm} | 0 .../research/xenoarchaeology/geosample.dm | 57 +- .../{artifact_misc.dm => misc.dm} | 121 +- .../research/xenoarchaeology/spacesuit.dm | 13 + .../xenoarchaeology/suspension_generator.dm | 8 +- .../{misc_tools.dm => tools.dm} | 0 .../{artifact.dm => unknown.dm} | 0 ...tifact_analysis.dm => unknown_analysis.dm} | 636 +++++----- .../{artifact_db.dm => unknown_db.dm} | 114 +- .../{artifact_effect.dm => unknown_effect.dm} | 1084 ++++++++--------- ...fact_harvester.dm => unknown_harvester.dm} | 300 ++--- ...fact_synthetic.dm => unknown_synthetic.dm} | 288 ++--- icons/obj/cryogenics.dmi | Bin 11432 -> 14976 bytes icons/obj/mining.dmi | Bin 42973 -> 43727 bytes icons/obj/vehicles.dmi | Bin 11038 -> 9127 bytes icons/obj/xenoarchaeology.dmi | Bin 41852 -> 48429 bytes 29 files changed, 1993 insertions(+), 1566 deletions(-) delete mode 100644 code/modules/research/xenoarchaeology/archaeo_excavate.dm create mode 100644 code/modules/research/xenoarchaeology/artifact_autocloner.dm create mode 100644 code/modules/research/xenoarchaeology/artifact_gigadrill.dm create mode 100644 code/modules/research/xenoarchaeology/artifact_hoverpod.dm create mode 100644 code/modules/research/xenoarchaeology/artifact_replicator.dm create mode 100644 code/modules/research/xenoarchaeology/finds_defines.dm rename code/modules/research/xenoarchaeology/{fossils.dm => finds_fossils.dm} (100%) create mode 100644 code/modules/research/xenoarchaeology/finds_misc.dm rename code/modules/research/xenoarchaeology/{talking_item.dm => finds_talking_item.dm} (100%) rename code/modules/research/xenoarchaeology/{artifact_misc.dm => misc.dm} (82%) create mode 100644 code/modules/research/xenoarchaeology/spacesuit.dm rename code/modules/research/xenoarchaeology/{misc_tools.dm => tools.dm} (100%) rename code/modules/research/xenoarchaeology/{artifact.dm => unknown.dm} (100%) rename code/modules/research/xenoarchaeology/{artifact_analysis.dm => unknown_analysis.dm} (97%) rename code/modules/research/xenoarchaeology/{artifact_db.dm => unknown_db.dm} (97%) rename code/modules/research/xenoarchaeology/{artifact_effect.dm => unknown_effect.dm} (97%) rename code/modules/research/xenoarchaeology/{artifact_harvester.dm => unknown_harvester.dm} (97%) rename code/modules/research/xenoarchaeology/{artifact_synthetic.dm => unknown_synthetic.dm} (96%) diff --git a/baystation12.dme b/baystation12.dme index ecc43c2a84d..a60303f0d05 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1126,24 +1126,30 @@ #include "code\modules\research\xenoarchaeology\analysis_ion_mobility.dm" #include "code\modules\research\xenoarchaeology\analysis_isotope_ratio.dm" #include "code\modules\research\xenoarchaeology\analysis_scanner.dm" -#include "code\modules\research\xenoarchaeology\archaeo_excavate.dm" -#include "code\modules\research\xenoarchaeology\artifact.dm" -#include "code\modules\research\xenoarchaeology\artifact_analysis.dm" -#include "code\modules\research\xenoarchaeology\artifact_db.dm" -#include "code\modules\research\xenoarchaeology\artifact_effect.dm" -#include "code\modules\research\xenoarchaeology\artifact_harvester.dm" -#include "code\modules\research\xenoarchaeology\artifact_misc.dm" -#include "code\modules\research\xenoarchaeology\artifact_synthetic.dm" +#include "code\modules\research\xenoarchaeology\artifact_autocloner.dm" +#include "code\modules\research\xenoarchaeology\artifact_gigadrill.dm" +#include "code\modules\research\xenoarchaeology\artifact_hoverpod.dm" +#include "code\modules\research\xenoarchaeology\artifact_replicator.dm" #include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\chemistry.dm" #include "code\modules\research\xenoarchaeology\core_sampler.dm" #include "code\modules\research\xenoarchaeology\finds.dm" -#include "code\modules\research\xenoarchaeology\fossils.dm" +#include "code\modules\research\xenoarchaeology\finds_defines.dm" +#include "code\modules\research\xenoarchaeology\finds_fossils.dm" +#include "code\modules\research\xenoarchaeology\finds_misc.dm" +#include "code\modules\research\xenoarchaeology\finds_talking_item.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" -#include "code\modules\research\xenoarchaeology\misc_tools.dm" +#include "code\modules\research\xenoarchaeology\misc.dm" #include "code\modules\research\xenoarchaeology\readme.dm" +#include "code\modules\research\xenoarchaeology\spacesuit.dm" #include "code\modules\research\xenoarchaeology\suspension_generator.dm" -#include "code\modules\research\xenoarchaeology\talking_item.dm" +#include "code\modules\research\xenoarchaeology\tools.dm" +#include "code\modules\research\xenoarchaeology\unknown.dm" +#include "code\modules\research\xenoarchaeology\unknown_analysis.dm" +#include "code\modules\research\xenoarchaeology\unknown_db.dm" +#include "code\modules\research\xenoarchaeology\unknown_effect.dm" +#include "code\modules\research\xenoarchaeology\unknown_harvester.dm" +#include "code\modules\research\xenoarchaeology\unknown_synthetic.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" #include "code\modules\scripting\Options.dm" diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 835666b7fe4..0169f5d894c 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -287,7 +287,7 @@ var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) if(affecting.status & ORGAN_ROBOT) return - + H.Weaken(3) if(affecting.take_damage(5, 0)) H.UpdateDamageIcon() diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index a7944ca8968..27222b680e4 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -28,6 +28,7 @@ var/archaeo_overlay = "" var/excav_overlay = "" var/obj/item/weapon/last_find + var/datum/find/artifact_find /turf/simulated/mineral/Del() return @@ -282,6 +283,7 @@ commented out in r5061, I left it because of the shroom thingies return if (istype(W, /obj/item/device/core_sampler)) + src.geological_data.UpdateNearbyArtifactInfo(src) var/obj/item/device/core_sampler/C = W C.sample_item(src, user) return @@ -395,6 +397,7 @@ commented out in r5061, I left it because of the shroom thingies while(next_rock > 100) next_rock -= 100 var/obj/item/weapon/ore/O = new(src) + src.geological_data.UpdateNearbyArtifactInfo(src) O.geological_data = src.geological_data else @@ -425,6 +428,7 @@ commented out in r5061, I left it because of the shroom thingies if (src.mineralName == "Clown") O = new /obj/item/weapon/ore/clown(src) if(O) + src.geological_data.UpdateNearbyArtifactInfo(src) O.geological_data = src.geological_data return O @@ -464,6 +468,8 @@ commented out in r5061, I left it because of the shroom thingies X = new/obj/item/weapon/archaeological_find(src, new_item_type = F.find_type) else X = new/obj/item/weapon/ore/strangerock(src, inside_item_type = F.find_type) + src.geological_data.UpdateNearbyArtifactInfo(src) + X:geological_data = src.geological_data //some find types delete the /obj/item/weapon/archaeological_find and replace it with something else, this handles when that happens //yuck diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 68457fa7fca..8232cfa3d0e 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -6,7 +6,6 @@ icon_state = "ore2" var/datum/geosample/geological_data - /obj/item/weapon/ore/uranium name = "Uranium ore" icon_state = "Uranium ore" diff --git a/code/modules/research/xenoarchaeology/archaeo_excavate.dm b/code/modules/research/xenoarchaeology/archaeo_excavate.dm deleted file mode 100644 index 51955b740d4..00000000000 --- a/code/modules/research/xenoarchaeology/archaeo_excavate.dm +++ /dev/null @@ -1 +0,0 @@ -//todo: tape, methods for excavation? \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/artifact_autocloner.dm b/code/modules/research/xenoarchaeology/artifact_autocloner.dm new file mode 100644 index 00000000000..e602e4363f6 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact_autocloner.dm @@ -0,0 +1,87 @@ + +/obj/machinery/auto_cloner + name = "mysterious pod" + desc = "It's full of a viscous liquid, but appears dark and silent." + icon = 'icons/obj/cryogenics.dmi' + icon_state = "cellold0" + var/spawn_type + var/current_ticks_spawning = 0 + var/ticks_required_to_spawn + density = 1 + var/previous_power_state = 0 + + use_power = 1 + active_power_usage = 2000 + idle_power_usage = 1000 + +/obj/machinery/auto_cloner/New() + ..() + + ticks_required_to_spawn = rand(240,1440) + + //33% chance to spawn nasties + if(prob(33)) + spawn_type = pick(\ + /mob/living/simple_animal/hostile/giant_spider/nurse,\ + /mob/living/simple_animal/hostile/alien,\ + /mob/living/simple_animal/hostile/bear,\ + /mob/living/simple_animal/hostile/creature,\ + /mob/living/simple_animal/hostile/panther,\ + /mob/living/simple_animal/hostile/snake\ + ) + else + spawn_type = pick(\ + /mob/living/simple_animal/cat,\ + /mob/living/simple_animal/corgi,\ + /mob/living/simple_animal/corgi/puppy,\ + /mob/living/simple_animal/chicken,\ + /mob/living/simple_animal/cow,\ + /mob/living/simple_animal/parrot,\ + /mob/living/simple_animal/slime,\ + /mob/living/simple_animal/crab,\ + /mob/living/simple_animal/mouse,\ + /mob/living/simple_animal/hostile/retaliate/goat,\ + /mob/living/carbon/monkey\ + ) + +//todo: how the hell is the asteroid permanently powered? +/obj/machinery/auto_cloner/process() + if(powered(power_channel)) + if(!previous_power_state) + previous_power_state = 1 + icon_state = "cellold1" + src.visible_message("\blue \icon[src] [src] suddenly comes to life!") + + //slowly grow a mob + current_ticks_spawning++ + if(prob(5)) + src.visible_message("\blue \icon[src] [src] [pick("gloops","glugs","whirrs","whooshes","hisses","purrs","hums","gushes")].") + + //if we've finished growing... + if(current_ticks_spawning >= ticks_required_to_spawn) + current_ticks_spawning = 0 + use_power = 1 + src.visible_message("\blue \icon[src] [src] pings!") + icon_state = "cellold1" + desc = "It's full of a bubbling viscous liquid, and is lit by a mysterious glow." + if(spawn_type) + new spawn_type(src.loc) + + //if we're getting close to finished, kick into overdrive power usage + if(current_ticks_spawning / ticks_required_to_spawn > 0.75) + use_power = 2 + icon_state = "cellold2" + desc = "It's full of a bubbling viscous liquid, and is lit by a mysterious glow. A dark shape appears to be forming inside..." + else + use_power = 1 + icon_state = "cellold1" + desc = "It's full of a bubbling viscous liquid, and is lit by a mysterious glow." + else + if(previous_power_state) + previous_power_state = 0 + icon_state = "cellold0" + src.visible_message("\blue \icon[src] [src] suddenly shuts down.") + + //cloned mob slowly breaks down + if(current_ticks_spawning > 0) + current_ticks_spawning-- diff --git a/code/modules/research/xenoarchaeology/artifact_gigadrill.dm b/code/modules/research/xenoarchaeology/artifact_gigadrill.dm new file mode 100644 index 00000000000..9d52c9c2dc0 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact_gigadrill.dm @@ -0,0 +1,35 @@ + +/obj/machinery/giga_drill + name = "alien drill" + desc = "A giant, alien drill mounted on long treads." + icon = 'icons/obj/mining.dmi' + icon_state = "gigadrill" + var/active = 0 + var/drill_time = 10 + var/turf/drilling_turf + density = 1 + layer = 3.1 //to go over ores + +/obj/machinery/giga_drill/attack_hand(mob/user as mob) + if(active) + active = 0 + icon_state = "gigadrill" + user << "\blue You press a button and [src] slowly spins down." + else + active = 1 + icon_state = "gigadrill_mov" + user << "\blue You press a button and [src] shudders to life." + +/obj/machinery/giga_drill/Bump(atom/A) + if(active && !drilling_turf) + if(istype(A,/turf/simulated/mineral)) + var/turf/simulated/mineral/M = A + drilling_turf = get_turf(src) + src.visible_message("\red [src] begins to drill into [M]!") + anchored = 1 + spawn(drill_time) + if(get_turf(src) == drilling_turf && active) + M.gets_drilled() + src.loc = M + drilling_turf = null + anchored = 0 diff --git a/code/modules/research/xenoarchaeology/artifact_hoverpod.dm b/code/modules/research/xenoarchaeology/artifact_hoverpod.dm new file mode 100644 index 00000000000..04b68a3dbd3 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact_hoverpod.dm @@ -0,0 +1,52 @@ + +/obj/mecha/working/hoverpod + name = "hover pod" + icon = 'icons/obj/vehicles.dmi' + icon_state = "engineering_pod" + desc = "Stubby and round, it has a human sized access hatch on the top." + +//duplicate of parent proc, but without space drifting +/obj/mecha/working/hoverpod/dyndomove(direction) + if(!can_move) + return 0 + if(src.pr_inertial_movement.active()) + return 0 + if(!has_charge(step_energy_drain)) + return 0 + var/move_result = 0 + if(hasInternalDamage(MECHA_INT_CONTROL_LOST)) + move_result = mechsteprand() + else if(src.dir!=direction) + move_result = mechturn(direction) + else + move_result = mechstep(direction) + if(move_result) + can_move = 0 + use_power(step_energy_drain) + /*if(istype(src.loc, /turf/space)) + if(!src.check_for_support()) + src.pr_inertial_movement.start(list(src,direction)) + src.log_message("Movement control lost. Inertial movement started.")*/ + if(do_after(step_in)) + can_move = 1 + return 1 + return 0 + +//these three procs overriden to play different sounds +/obj/mecha/mechturn(direction) + dir = direction + //playsound(src,'sound/machines/hiss.ogg',40,1) + return 1 + +/obj/mecha/mechstep(direction) + var/result = step(src,direction) + if(result) + playsound(src,'sound/machines/hiss.ogg',40,1) + return result + + +/obj/mecha/mechsteprand() + var/result = step_rand(src) + if(result) + playsound(src,'sound/machines/hiss.ogg',40,1) + return result diff --git a/code/modules/research/xenoarchaeology/artifact_replicator.dm b/code/modules/research/xenoarchaeology/artifact_replicator.dm new file mode 100644 index 00000000000..a52a12ebaf1 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact_replicator.dm @@ -0,0 +1,120 @@ + +/obj/machinery/replicator + name = "alien machine" + desc = "It's some kind of pod with strange wires and gadgets all over it." + icon = 'xenoarchaeology.dmi' + icon_state = "borgcharger0(old)" + density = 1 + + idle_power_usage = 100 + active_power_usage = 1000 + use_power = 1 + + var/spawn_progress = 0 + var/max_spawn_ticks = 5 + var/list/construction = list() + var/list/spawning_types = list() + +/obj/machinery/replicator/New() + ..() + + var/list/viables = list(\ + /obj/item/roller,\ + /obj/structure/cult/pylon,\ + /obj/structure/closet/crate,\ + /obj/structure/closet/acloset,\ + /mob/living/simple_animal/hostile/mimic,\ + /mob/living/simple_animal/hostile/viscerator,\ + /mob/living/simple_animal/hostile/hivebot,\ + /obj/item/device/analyzer,\ + /obj/item/device/camera,\ + /obj/item/device/flash,\ + /obj/item/device/flashlight,\ + /obj/item/device/healthanalyzer,\ + /obj/item/device/multitool,\ + /obj/item/device/paicard,\ + /obj/item/device/radio,\ + /obj/item/device/radio/headset,\ + /obj/item/device/radio/beacon,\ + /obj/item/weapon/autopsy_scanner,\ + /obj/item/weapon/bikehorn,\ + /obj/item/weapon/bonesetter,\ + /obj/item/weapon/butch,\ + /obj/item/weapon/caution,\ + /obj/item/weapon/caution/cone,\ + /obj/item/weapon/crowbar,\ + /obj/item/weapon/clipboard,\ + /obj/item/weapon/cell,\ + /obj/item/weapon/circular_saw,\ + /obj/item/weapon/hatchet,\ + /obj/item/weapon/handcuffs,\ + /obj/item/weapon/hemostat,\ + /obj/item/weapon/kitchenknife,\ + /obj/item/weapon/lighter,\ + /obj/item/weapon/lighter,\ + /obj/item/weapon/light/bulb,\ + /obj/item/weapon/light/tube,\ + /obj/item/weapon/pickaxe,\ + /obj/item/weapon/shovel,\ + /obj/item/weapon/table_parts,\ + /obj/item/weapon/weldingtool,\ + /obj/item/weapon/wirecutters,\ + /obj/item/weapon/wrench,\ + /obj/item/weapon/screwdriver,\ + /obj/item/weapon/grenade/chem_grenade/cleaner,\ + /obj/item/weapon/grenade/chem_grenade/metalfoam\ + ) + + var/quantity = rand(5,15) + for(var/i=0, i max_spawn_ticks) + src.visible_message("\blue \icon[src] [src] pings!") + var/spawn_type = spawning_types[1] + new spawn_type(src.loc) + + spawning_types.Remove(spawning_types[1]) + spawn_progress = 0 + max_spawn_ticks = rand(5,30) + + if(!spawning_types.len) + use_power = 1 + icon_state = "borgcharger0(old)" + + else if(prob(5)) + src.visible_message("\blue \icon[src] [src] [pick("clicks","whizzes","whirrs","whooshes","clanks","clongs","clonks","bangs")].") + +/obj/machinery/replicator/attack_hand(mob/user as mob) + interact(user) + +/obj/machinery/replicator/interact(mob/user) + var/dat = "The control panel displays an incomprehensible selection of controls, many with unusual markings or text around them.
" + dat += "
" + for(var/index=1, index<=construction.len, index++) + dat += "\[[construction[index]]\]
" + + user << browse(dat, "window=alien_replicator") + +/obj/machinery/replicator/Topic(href, href_list) + + if(href_list["activate"]) + var/index = text2num(href_list["activate"]) + if(index > 0 && index <= construction.len) + if(spawning_types.len) + src.visible_message("\blue \icon[src] a [pick("light","dial","display","meter","pad")] on [src]'s front [pick("blinks","flashes")] [pick("red","yellow","blue","orange","purple","green","white")].") + else + src.visible_message("\blue \icon[src] [src]'s front compartment slides shut.") + + spawning_types.Add(construction[construction[index]]) + spawn_progress = 0 + use_power = 2 + icon_state = "borgcharger1(old)" diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds.dm index fbdb6f8ceef..10c2af2a156 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds.dm @@ -1,224 +1,9 @@ //original code and idea from Alfie275 (luna era) and ISaidNo (goonservers) - with thanks -#define ARCHAEO_BOWL 1 -#define ARCHAEO_URN 2 -#define ARCHAEO_CUTLERY 3 -#define ARCHAEO_STATUETTE 4 -#define ARCHAEO_INSTRUMENT 5 -#define ARCHAEO_KNIFE 6 -#define ARCHAEO_COIN 7 -#define ARCHAEO_HANDCUFFS 8 -#define ARCHAEO_BEARTRAP 9 -#define ARCHAEO_LIGHTER 10 -#define ARCHAEO_BOX 11 -#define ARCHAEO_GASTANK 12 -#define ARCHAEO_TOOL 13 -#define ARCHAEO_METAL 14 -#define ARCHAEO_PEN 15 -#define ARCHAEO_CRYSTAL 16 -#define ARCHAEO_CULTBLADE 17 -#define ARCHAEO_TELEBEACON 18 -#define ARCHAEO_CLAYMORE 19 -#define ARCHAEO_CULTROBES 20 -#define ARCHAEO_SOULSTONE 21 -#define ARCHAEO_SHARD 22 -#define ARCHAEO_RODS 23 -#define ARCHAEO_STOCKPARTS 24 -#define ARCHAEO_KATANA 25 -#define ARCHAEO_LASER 26 -#define ARCHAEO_GUN 27 -#define ARCHAEO_UNKNOWN 28 -#define ARCHAEO_FOSSIL 29 -#define ARCHAEO_SHELL 30 -#define ARCHAEO_PLANT 31 -#define ARCHAEO_REMAINS_HUMANOID 32 -#define ARCHAEO_REMAINS_ROBOT 33 -#define ARCHAEO_REMAINS_XENO 34 -//eggs -//droppings -//footprints -//alien clothing - -//DNA sampling from fossils, or a new archaeo type specifically for it? - -//descending order of likeliness to spawn -#define DIGSITE_GARDEN 1 -#define DIGSITE_ANIMAL 2 -#define DIGSITE_HOUSE 3 -#define DIGSITE_TECHNICAL 4 -#define DIGSITE_TEMPLE 5 -#define DIGSITE_WAR 6 - -/proc/get_responsive_reagent(var/find_type) - switch(find_type) - if(ARCHAEO_BOWL) - return "aluminium" - if(ARCHAEO_URN) - return "aluminium" - if(ARCHAEO_CUTLERY) - return "aluminium" - if(ARCHAEO_STATUETTE) - return "aluminium" - if(ARCHAEO_INSTRUMENT) - return "aluminium" - if(ARCHAEO_COIN) - return "silicon" - if(ARCHAEO_HANDCUFFS) - return "aluminium" - if(ARCHAEO_BEARTRAP) - return "aluminium" - if(ARCHAEO_LIGHTER) - return "aluminium" - if(ARCHAEO_BOX) - return "aluminium" - if(ARCHAEO_GASTANK) - return "aluminium" - if(ARCHAEO_TOOL) - return "silicon" - if(ARCHAEO_METAL) - return "silicon" - if(ARCHAEO_PEN) - return "aluminium" - if(ARCHAEO_CRYSTAL) - return "helium" - if(ARCHAEO_CULTBLADE) - return "neon" - if(ARCHAEO_TELEBEACON) - return "neon" - if(ARCHAEO_CLAYMORE) - return "silicon" - if(ARCHAEO_CULTROBES) - return "neon" - if(ARCHAEO_SOULSTONE) - return "helium" - if(ARCHAEO_SHARD) - return "helium" - if(ARCHAEO_RODS) - return "silicon" - if(ARCHAEO_STOCKPARTS) - return "neon" - if(ARCHAEO_KATANA) - return "silicon" - if(ARCHAEO_LASER) - return "silicon" - if(ARCHAEO_GUN) - return "silicon" - if(ARCHAEO_UNKNOWN) - return "beryllium" - if(ARCHAEO_FOSSIL) - return "carbon" - if(ARCHAEO_PLANT) - return "carbon" - if(ARCHAEO_REMAINS_HUMANOID) - return "carbon" - if(ARCHAEO_REMAINS_ROBOT) - return "carbon" - if(ARCHAEO_REMAINS_XENO) - return "carbon" - return "chlorine" - -//see /turf/simulated/mineral/New() in code/modules/mining/mine_turfs.dm -/proc/get_random_digsite_type() - return pick(100;DIGSITE_GARDEN,95;DIGSITE_ANIMAL,90;DIGSITE_HOUSE,85;DIGSITE_TECHNICAL,80;DIGSITE_TEMPLE,75;DIGSITE_WAR) - -/proc/get_random_find_type(var/digsite) - - var/find_type = 0 - switch(digsite) - if(DIGSITE_GARDEN) - find_type = pick(\ - 100;ARCHAEO_PLANT,\ - 25;ARCHAEO_SHELL,\ - 25;ARCHAEO_FOSSIL,\ - 10;ARCHAEO_REMAINS_XENO,\ - 5;ARCHAEO_BEARTRAP\ - ) - if(DIGSITE_ANIMAL) - find_type = pick(\ - 100;ARCHAEO_FOSSIL,\ - 50;ARCHAEO_SHELL,\ - 50;ARCHAEO_PLANT,\ - 50;ARCHAEO_REMAINS_XENO,\ - 25;ARCHAEO_BEARTRAP\ - ) - if(DIGSITE_HOUSE) - find_type = pick(\ - 100;ARCHAEO_BOWL,\ - 100;ARCHAEO_URN,\ - 100;ARCHAEO_CUTLERY,\ - 100;ARCHAEO_STATUETTE,\ - 100;ARCHAEO_INSTRUMENT,\ - 100;ARCHAEO_PEN,\ - 100;ARCHAEO_LIGHTER,\ - 100;ARCHAEO_BOX,\ - 75;ARCHAEO_COIN,\ - 75;ARCHAEO_UNKNOWN,\ - 75;ARCHAEO_REMAINS_HUMANOID,\ - 75;ARCHAEO_REMAINS_ROBOT,\ - 75;ARCHAEO_REMAINS_XENO,\ - 50;ARCHAEO_SHARD,\ - 50;ARCHAEO_RODS,\ - 25;ARCHAEO_METAL\ - ) - if(DIGSITE_TECHNICAL) - find_type = pick(\ - 100;ARCHAEO_METAL,\ - 100;ARCHAEO_GASTANK,\ - 100;ARCHAEO_TELEBEACON,\ - 100;ARCHAEO_TOOL,\ - 100;ARCHAEO_STOCKPARTS,\ - 100;ARCHAEO_REMAINS_ROBOT,\ - 75;ARCHAEO_SHARD,\ - 75;ARCHAEO_RODS,\ - 75;ARCHAEO_UNKNOWN,\ - 50;ARCHAEO_HANDCUFFS,\ - 50;ARCHAEO_BEARTRAP,\ - 25;ARCHAEO_REMAINS_HUMANOID,\ - 25;ARCHAEO_REMAINS_XENO\ - ) - if(DIGSITE_TEMPLE) - find_type = pick(\ - 200;ARCHAEO_CULTROBES,\ - 100;ARCHAEO_URN,\ - 100;ARCHAEO_BOWL,\ - 100;ARCHAEO_KNIFE,\ - 100;ARCHAEO_CRYSTAL,\ - 75;ARCHAEO_CULTBLADE,\ - 75;ARCHAEO_REMAINS_HUMANOID,\ - 75;ARCHAEO_REMAINS_XENO,\ - 50;ARCHAEO_SOULSTONE,\ - 50;ARCHAEO_UNKNOWN,\ - 25;ARCHAEO_HANDCUFFS,\ - 25;ARCHAEO_BEARTRAP,\ - 10;ARCHAEO_KATANA,\ - 10;ARCHAEO_CLAYMORE,\ - 10;ARCHAEO_SHARD,\ - 10;ARCHAEO_RODS,\ - 10;ARCHAEO_METAL\ - ) - if(DIGSITE_WAR) - find_type = pick(\ - 100;ARCHAEO_GUN,\ - 100;ARCHAEO_KNIFE,\ - 75;ARCHAEO_LASER,\ - 75;ARCHAEO_KATANA,\ - 75;ARCHAEO_CLAYMORE,\ - 75;ARCHAEO_REMAINS_HUMANOID,\ - 75;ARCHAEO_REMAINS_XENO,\ - 50;ARCHAEO_UNKNOWN,\ - 50;ARCHAEO_CULTROBES,\ - 50;ARCHAEO_CULTBLADE,\ - 50;ARCHAEO_REMAINS_ROBOT,\ - 25;ARCHAEO_HANDCUFFS,\ - 25;ARCHAEO_BEARTRAP,\ - 25;ARCHAEO_TOOL\ - ) - return find_type - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Xenoarchaeological finds -datum/find +/datum/find var/find_type = 0 //random according to the digsite type var/excavation_required = 0 //random 5-95% var/view_range = 20 //how close excavation has to come to show an overlay on the turf @@ -228,30 +13,12 @@ datum/find var/dissonance_spread = 1 //proportion of the tile that is affected by this find //used in conjunction with analysis machines to determine correct suspension field type -datum/find/New(var/digsite, var/exc_req) +/datum/find/New(var/digsite, var/exc_req) excavation_required = exc_req find_type = get_random_find_type(digsite) clearance_range = rand(2,6) dissonance_spread = rand(1500,2500) / 100 -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Rock sliver - -/obj/item/weapon/rocksliver - name = "rock sliver" - desc = "It looks extremely delicate." - icon = 'xenoarchaeology.dmi' - icon_state = "sliver1" //0-4 - w_class = 1 - //item_state = "electronic" - var/source_rock = "/turf/simulated/mineral/" - var/datum/geosample/geological_data - -/obj/item/weapon/rocksliver/New() - icon_state = "sliver[rand(1,3)]" - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Strange rocks @@ -266,6 +33,7 @@ datum/find/New(var/digsite, var/exc_req) /obj/item/weapon/ore/strangerock/New(loc, var/inside_item_type = 0) ..(loc) + method = rand(0,2) if(inside_item_type) inside = new/obj/item/weapon/archaeological_find(src, new_item_type = inside_item_type) @@ -306,6 +74,9 @@ datum/find/New(var/digsite, var/exc_req) src.visible_message("[src] crumbles away, leaving some dust and gravel behind.") del(src) +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Archaeological finds + /obj/item/weapon/archaeological_find name = "object" icon = 'xenoarchaeology.dmi' @@ -468,12 +239,15 @@ datum/find/New(var/digsite, var/exc_req) if(prob(30)) apply_image_decorations = 1 if(16) - if(prob(50)) + if(prob(33)) item_type = "smooth green crystal" icon_state = "Green lump" - else + else if(prob(50)) item_type = "irregular purple crystal" icon_state = "Phazon" + else + item_type = "smooth red crystal" + icon_state = "ore" additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") apply_material_decorations = 0 @@ -507,7 +281,9 @@ datum/find/New(var/digsite, var/exc_req) new_item = new /obj/item/device/soulstone(src.loc) apply_material_decorations = 0 if(22) - new_item = new /obj/item/weapon/shard(src.loc) + if(prob(50)) + new_item = new /obj/item/weapon/shard(src.loc) + new_item = new /obj/item/weapon/shard/plasma(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 if(23) @@ -723,30 +499,3 @@ datum/find/New(var/digsite, var/exc_req) if(prob(25)) speaking_to_players = 1 processing_objects.Add(src) - -//legacy crystal -/obj/item/weapon/crystal - name = "Crystal" - icon = 'mining.dmi' - icon_state = "crystal" - -//large finds - /* - /obj/machinery/syndicate_beacon - /obj/machinery/wish_granter - if(18) - item_type = "jagged green crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") - icon_state = "crystal" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - if(19) - item_type = "jagged pink crystal" - additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") - icon_state = "crystal2" - apply_material_decorations = 0 - if(prob(10)) - apply_image_decorations = 1 - */ - //machinery type artifacts? \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/finds_defines.dm b/code/modules/research/xenoarchaeology/finds_defines.dm new file mode 100644 index 00000000000..b2aebc52fa2 --- /dev/null +++ b/code/modules/research/xenoarchaeology/finds_defines.dm @@ -0,0 +1,258 @@ + +#define ARCHAEO_BOWL 1 +#define ARCHAEO_URN 2 +#define ARCHAEO_CUTLERY 3 +#define ARCHAEO_STATUETTE 4 +#define ARCHAEO_INSTRUMENT 5 +#define ARCHAEO_KNIFE 6 +#define ARCHAEO_COIN 7 +#define ARCHAEO_HANDCUFFS 8 +#define ARCHAEO_BEARTRAP 9 +#define ARCHAEO_LIGHTER 10 +#define ARCHAEO_BOX 11 +#define ARCHAEO_GASTANK 12 +#define ARCHAEO_TOOL 13 +#define ARCHAEO_METAL 14 +#define ARCHAEO_PEN 15 +#define ARCHAEO_CRYSTAL 16 +#define ARCHAEO_CULTBLADE 17 +#define ARCHAEO_TELEBEACON 18 +#define ARCHAEO_CLAYMORE 19 +#define ARCHAEO_CULTROBES 20 +#define ARCHAEO_SOULSTONE 21 +#define ARCHAEO_SHARD 22 +#define ARCHAEO_RODS 23 +#define ARCHAEO_STOCKPARTS 24 +#define ARCHAEO_KATANA 25 +#define ARCHAEO_LASER 26 +#define ARCHAEO_GUN 27 +#define ARCHAEO_UNKNOWN 28 +#define ARCHAEO_FOSSIL 29 +#define ARCHAEO_SHELL 30 +#define ARCHAEO_PLANT 31 +//eggs +//droppings +//footprints +//alien clothing + +//DNA sampling from fossils, or a new archaeo type specifically for it? + +#define ARTIFACT_REMAINS_HUMANOID 1 +#define ARTIFACT_REMAINS_ROBOT 2 +#define ARTIFACT_REMAINS_XENO 3 +#define ARTIFACT_MACHINERY 4 +#define ARTIFACT_OCCULT 5 +#define ARTIFACT_SYNDBEACON 6 + +//? +#define ARTIFACT_HEAL 4 +#define ARTIFACT_BIODAM 5 +#define ARTIFACT_POWERCHARGE 6 +#define ARTIFACT_POWERDRAIN 7 +#define ARTIFACT_EMP 8 +#define ARTIFACT_PLANTGROW 9 +#define ARTIFACT_WEAKEN 10 +#define ARTIFACT_SLEEPY 11 +#define ARTIFACT_TELEPORT 12 +#define ARTIFACT_ROBOHURT 13 +#define ARTIFACT_ROBOHEAL 14 +#define ARTIFACT_DNASWITCH 15 +#define ARTIFACT_ +#define ARTIFACT_ + +//descending order of likeliness to spawn +#define DIGSITE_GARDEN 1 +#define DIGSITE_ANIMAL 2 +#define DIGSITE_HOUSE 3 +#define DIGSITE_TECHNICAL 4 +#define DIGSITE_TEMPLE 5 +#define DIGSITE_WAR 6 + +/proc/get_responsive_reagent(var/find_type) + switch(find_type) + if(ARCHAEO_BOWL) + return "aluminium" + if(ARCHAEO_URN) + return "aluminium" + if(ARCHAEO_CUTLERY) + return "aluminium" + if(ARCHAEO_STATUETTE) + return "aluminium" + if(ARCHAEO_INSTRUMENT) + return "aluminium" + if(ARCHAEO_COIN) + return "silicon" + if(ARCHAEO_HANDCUFFS) + return "aluminium" + if(ARCHAEO_BEARTRAP) + return "aluminium" + if(ARCHAEO_LIGHTER) + return "aluminium" + if(ARCHAEO_BOX) + return "aluminium" + if(ARCHAEO_GASTANK) + return "aluminium" + if(ARCHAEO_TOOL) + return "silicon" + if(ARCHAEO_METAL) + return "silicon" + if(ARCHAEO_PEN) + return "aluminium" + if(ARCHAEO_CRYSTAL) + return "helium" + if(ARCHAEO_CULTBLADE) + return "neon" + if(ARCHAEO_TELEBEACON) + return "neon" + if(ARCHAEO_CLAYMORE) + return "silicon" + if(ARCHAEO_CULTROBES) + return "neon" + if(ARCHAEO_SOULSTONE) + return "helium" + if(ARCHAEO_SHARD) + return "helium" + if(ARCHAEO_RODS) + return "silicon" + if(ARCHAEO_STOCKPARTS) + return "neon" + if(ARCHAEO_KATANA) + return "silicon" + if(ARCHAEO_LASER) + return "silicon" + if(ARCHAEO_GUN) + return "silicon" + if(ARCHAEO_UNKNOWN) + return "beryllium" + if(ARCHAEO_FOSSIL) + return "carbon" + if(ARCHAEO_PLANT) + return "carbon" + return "chlorine" + +//see /turf/simulated/mineral/New() in code/modules/mining/mine_turfs.dm +/proc/get_random_digsite_type() + return pick(100;DIGSITE_GARDEN,95;DIGSITE_ANIMAL,90;DIGSITE_HOUSE,85;DIGSITE_TECHNICAL,80;DIGSITE_TEMPLE,75;DIGSITE_WAR) + +/proc/get_random_find_type(var/digsite) + + var/find_type = 0 + switch(digsite) + if(DIGSITE_GARDEN) + find_type = pick(\ + 100;ARCHAEO_PLANT,\ + 25;ARCHAEO_SHELL,\ + 25;ARCHAEO_FOSSIL,\ + 5;ARCHAEO_BEARTRAP\ + ) + if(DIGSITE_ANIMAL) + find_type = pick(\ + 100;ARCHAEO_FOSSIL,\ + 50;ARCHAEO_SHELL,\ + 50;ARCHAEO_PLANT,\ + 25;ARCHAEO_BEARTRAP\ + ) + if(DIGSITE_HOUSE) + find_type = pick(\ + 100;ARCHAEO_BOWL,\ + 100;ARCHAEO_URN,\ + 100;ARCHAEO_CUTLERY,\ + 100;ARCHAEO_STATUETTE,\ + 100;ARCHAEO_INSTRUMENT,\ + 100;ARCHAEO_PEN,\ + 100;ARCHAEO_LIGHTER,\ + 100;ARCHAEO_BOX,\ + 75;ARCHAEO_COIN,\ + 75;ARCHAEO_UNKNOWN,\ + 50;ARCHAEO_SHARD,\ + 50;ARCHAEO_RODS,\ + 25;ARCHAEO_METAL\ + ) + if(DIGSITE_TECHNICAL) + find_type = pick(\ + 100;ARCHAEO_METAL,\ + 100;ARCHAEO_GASTANK,\ + 100;ARCHAEO_TELEBEACON,\ + 100;ARCHAEO_TOOL,\ + 100;ARCHAEO_STOCKPARTS,\ + 75;ARCHAEO_SHARD,\ + 75;ARCHAEO_RODS,\ + 75;ARCHAEO_UNKNOWN,\ + 50;ARCHAEO_HANDCUFFS,\ + 50;ARCHAEO_BEARTRAP,\ + ) + if(DIGSITE_TEMPLE) + find_type = pick(\ + 200;ARCHAEO_CULTROBES,\ + 100;ARCHAEO_URN,\ + 100;ARCHAEO_BOWL,\ + 100;ARCHAEO_KNIFE,\ + 100;ARCHAEO_CRYSTAL,\ + 75;ARCHAEO_CULTBLADE,\ + 50;ARCHAEO_SOULSTONE,\ + 50;ARCHAEO_UNKNOWN,\ + 25;ARCHAEO_HANDCUFFS,\ + 25;ARCHAEO_BEARTRAP,\ + 10;ARCHAEO_KATANA,\ + 10;ARCHAEO_CLAYMORE,\ + 10;ARCHAEO_SHARD,\ + 10;ARCHAEO_RODS,\ + 10;ARCHAEO_METAL\ + ) + if(DIGSITE_WAR) + find_type = pick(\ + 100;ARCHAEO_GUN,\ + 100;ARCHAEO_KNIFE,\ + 75;ARCHAEO_LASER,\ + 75;ARCHAEO_KATANA,\ + 75;ARCHAEO_CLAYMORE,\ + 50;ARCHAEO_UNKNOWN,\ + 50;ARCHAEO_CULTROBES,\ + 50;ARCHAEO_CULTBLADE,\ + 25;ARCHAEO_HANDCUFFS,\ + 25;ARCHAEO_BEARTRAP,\ + 25;ARCHAEO_TOOL\ + ) + return find_type + +#undef ARCHAEO_BOWL +#undef ARCHAEO_URN +#undef ARCHAEO_CUTLERY +#undef ARCHAEO_STATUETTE +#undef ARCHAEO_INSTRUMENT +#undef ARCHAEO_KNIFE +#undef ARCHAEO_COIN +#undef ARCHAEO_HANDCUFFS +#undef ARCHAEO_BEARTRAP +#undef ARCHAEO_LIGHTER +#undef ARCHAEO_BOX +#undef ARCHAEO_GASTANK +#undef ARCHAEO_TOOL +#undef ARCHAEO_METAL +#undef ARCHAEO_PEN +#undef ARCHAEO_CRYSTAL +#undef ARCHAEO_CULTBLADE +#undef ARCHAEO_TELEBEACON +#undef ARCHAEO_CLAYMORE +#undef ARCHAEO_CULTROBES +#undef ARCHAEO_SOULSTONE +#undef ARCHAEO_SHARD +#undef ARCHAEO_RODS +#undef ARCHAEO_STOCKPARTS +#undef ARCHAEO_KATANA +#undef ARCHAEO_LASER +#undef ARCHAEO_GUN +#undef ARCHAEO_UNKNOWN +#undef ARCHAEO_FOSSIL +#undef ARCHAEO_SHELL +#undef ARCHAEO_PLANT +#undef ARCHAEO_REMAINS_HUMANOID +#undef ARCHAEO_REMAINS_ROBOT +#undef ARCHAEO_REMAINS_XENO + +#undef DIGSITE_GARDEN +#undef DIGSITE_ANIMAL +#undef DIGSITE_HOUSE +#undef DIGSITE_TECHNICAL +#undef DIGSITE_TEMPLE +#undef DIGSITE_WAR diff --git a/code/modules/research/xenoarchaeology/fossils.dm b/code/modules/research/xenoarchaeology/finds_fossils.dm similarity index 100% rename from code/modules/research/xenoarchaeology/fossils.dm rename to code/modules/research/xenoarchaeology/finds_fossils.dm diff --git a/code/modules/research/xenoarchaeology/finds_misc.dm b/code/modules/research/xenoarchaeology/finds_misc.dm new file mode 100644 index 00000000000..6b995deff42 --- /dev/null +++ b/code/modules/research/xenoarchaeology/finds_misc.dm @@ -0,0 +1,69 @@ + +/obj/item/weapon/shard/plasma + name = "plasma shard" + icon_state = "plasmalarge" + +/obj/item/weapon/shard/plasma/New() + + src.icon_state = pick("plasmalarge", "plasmamedium", "plasmasmall") + switch(src.icon_state) + if("plasmasmall") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("plasmamedium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("plasmalarge") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + +/obj/item/weapon/shard/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if ( istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/mineral/plasma/NG = new (user.loc) + for (var/obj/item/stack/sheet/mineral/plasma/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed plasma to the stack. It now contains [NG.amount] sheets." + //SN src = null + del(src) + return + return ..() + +//legacy crystal +/obj/machinery/crystal + name = "Crystal" + icon = 'mining.dmi' + icon_state = "crystal" + +/obj/machinery/crystal/New() + if(prob(50)) + icon_state = "crystal2" + +//large finds + /* + /obj/machinery/syndicate_beacon + /obj/machinery/wish_granter + if(18) + item_type = "jagged green crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + if(19) + item_type = "jagged pink crystal" + additional_desc = pick("It shines faintly as it catches the light.","It appears to have a faint inner glow.","It seems to draw you inward as you look it at.","Something twinkles faintly as you look at it.","It's mesmerizing to behold.") + icon_state = "crystal2" + apply_material_decorations = 0 + if(prob(10)) + apply_image_decorations = 1 + */ + //machinery type artifacts? diff --git a/code/modules/research/xenoarchaeology/talking_item.dm b/code/modules/research/xenoarchaeology/finds_talking_item.dm similarity index 100% rename from code/modules/research/xenoarchaeology/talking_item.dm rename to code/modules/research/xenoarchaeology/finds_talking_item.dm diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index 72c454148d1..1ecc347f6da 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -1,4 +1,4 @@ - +/* #define FIND_PLANT 1 #define FIND_BIO 2 #define FIND_METEORIC 3 @@ -9,6 +9,25 @@ #define FIND_METAMORPHIC 8 #define FIND_SEDIMENTARY 9 #define FIND_NOTHING 10 +*/ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Rock sliver + +/obj/item/weapon/rocksliver + name = "rock sliver" + desc = "It looks extremely delicate." + icon = 'xenoarchaeology.dmi' + icon_state = "sliver1" //0-4 + w_class = 1 + //item_state = "electronic" + var/source_rock = "/turf/simulated/mineral/" + var/datum/geosample/geological_data + +/obj/item/weapon/rocksliver/New() + icon_state = "sliver[rand(1,3)]" + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 var/list/responsive_carriers = list( \ "carbon", \ @@ -34,7 +53,12 @@ var/list/finds_as_strings = list( \ "Sedimentary/generic rock", \ "Anomalous material" ) -datum/geosample +var/list/artifact_spawning_turfs = list() + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Geosample datum + +/datum/geosample var/age = 0 //age can correspond to different archaeological finds var/age_thousand = 0 var/age_million = 0 @@ -48,12 +72,15 @@ datum/geosample //all potential finds are initialised to null, so nullcheck before you access them var/list/find_presence = list() -datum/geosample/New(var/turf/simulated/mineral/container) +/datum/geosample/New(var/turf/simulated/mineral/container) UpdateTurf(container) //this should only need to be called once -datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) +/datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) + if(!container || !istype(container)) + return + //source_mineral = container.mineralName age = rand(1,999) @@ -128,3 +155,25 @@ datum/geosample/proc/UpdateTurf(var/turf/simulated/mineral/container) for(var/entry in find_presence) total_spread += find_presence[entry] +//have this separate from UpdateTurf() so that we dont have a billion turfs being updated (redundantly) every time an artifact spawns +/datum/geosample/proc/UpdateNearbyArtifactInfo(var/turf/simulated/mineral/container) + if(!container || !istype(container)) + return + + for(var/turf/simulated/mineral/holder in artifact_spawning_turfs) + var/dist = get_dist(container, holder) + if(dist < artifact_distance) + artifact_distance = dist + //artifact_id = A.display_id +/* +#undef FIND_PLANT +#undef FIND_BIO +#undef FIND_METEORIC +#undef FIND_ICE +#undef FIND_CRYSTALLINE +#undef FIND_METALLIC +#undef FIND_IGNEOUS +#undef FIND_METAMORPHIC +#undef FIND_SEDIMENTARY +#undef FIND_NOTHING +*/ \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/artifact_misc.dm b/code/modules/research/xenoarchaeology/misc.dm similarity index 82% rename from code/modules/research/xenoarchaeology/artifact_misc.dm rename to code/modules/research/xenoarchaeology/misc.dm index e30bba2f890..7d72b417c8e 100644 --- a/code/modules/research/xenoarchaeology/artifact_misc.dm +++ b/code/modules/research/xenoarchaeology/misc.dm @@ -1,67 +1,54 @@ - -/obj/item/clothing/suit/bio_suit/anomaly - name = "Anomaly Suit" - desc = "A sealed bio suit capable of resisting exotic alien energies and low pressure environments." - icon_state = "engspace_suit" - item_state = "engspace_suit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) - -/obj/item/clothing/head/bio_hood/anomaly - name = "Anomaly Hood" - desc = "A sealed bio hood capable of resisting exotic alien energies and low pressure environments." - icon_state = "engspace_helmet" - item_state = "engspace_helmet" - -/obj/structure/noticeboard/anomaly/New() - notices = 5 - icon_state = "nboard05" - - //add some memos - var/obj/item/weapon/paper/P = new() - P.name = "Memo RE: proper analysis procedure" - P.info = "Rose,
activate then analyse the anomalies, your results will come so much quicker. Remember to employ basic quasi-elemental forces such as heat, energy, force and various chemical mixes - who knows why those ancient aliens made such obscure activation indices.

And don't forget your suit this time, I can't afford to have any researchers out of commision for as long as that again!.
Ward" - P.stamped = list(/obj/item/weapon/stamp/rd) - P.overlays = list("paper_stamped_rd") - src.contents += P - - P = new() - P.name = "Memo RE: materials gathering" - P.info = "Corasang,
the hands-on approach to gathering our samples may very well be slow at times, but it's safer than allowing the blundering miners to roll willy-nilly over our dig sites in their mechs, destroying everything in the process. And don't forget the escavation tools on your way out there!
- R.W" - P.stamped = list(/obj/item/weapon/stamp/rd) - P.overlays = list("paper_stamped_rd") - src.contents += P - - P = new() - P.name = "Memo RE: ethical quandaries" - P.info = "Darion-

I don't care what his rank is, our business is that of science and knowledge - questions of moral application do not come into this. Sure, so there are those who would employ the energy-wave particles my modified device has managed to abscond for their own personal gain, but I can hardly see the practical benefits of some of those things our benefactors left behind. Ward--" - P.stamped = list(/obj/item/weapon/stamp/rd) - P.overlays = list("paper_stamped_rd") - src.contents += P - - P = new() - P.name = "READ ME! Before you people destroy any more samples" - P.info = "how many times do i have to tell you people, these xeno-arch samples are del-i-cate, and should be handled so! careful application of a focussed, ceoncentrated heat or some corrosive liquids should clear away the extraneous carbon matter, while application of an energy beam will most decidedly destroy it entirely! W, the one who signs your paychecks" - P.stamped = list(/obj/item/weapon/stamp/rd) - P.overlays = list("paper_stamped_rd") - src.contents += P - - P = new() - P.name = "Reminder regarding the anomalous material suits" - P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around the station in them unless you're field testing something, R" - P.stamped = list(/obj/item/weapon/stamp/rd) - P.overlays = list("paper_stamped_rd") - src.contents += P - -//Anomaly - -/area/anomaly - icon_state = "anomaly" - -/area/anomaly/hallway - name = "Anomaly Hallway" - -/area/anomaly/lab - name = "Anomaly Lab" - -/area/anomaly/outpost - name = "Research Outpost" + +/obj/structure/noticeboard/anomaly/New() + notices = 5 + icon_state = "nboard05" + + //add some memos + var/obj/item/weapon/paper/P = new() + P.name = "Memo RE: proper analysis procedure" + P.info = "Rose,
activate then analyse the anomalies, your results will come so much quicker. Remember to employ basic quasi-elemental forces such as heat, energy, force and various chemical mixes - who knows why those ancient aliens made such obscure activation indices.

And don't forget your suit this time, I can't afford to have any researchers out of commision for as long as that again!.
Ward" + P.stamped = list(/obj/item/weapon/stamp/rd) + P.overlays = list("paper_stamped_rd") + src.contents += P + + P = new() + P.name = "Memo RE: materials gathering" + P.info = "Corasang,
the hands-on approach to gathering our samples may very well be slow at times, but it's safer than allowing the blundering miners to roll willy-nilly over our dig sites in their mechs, destroying everything in the process. And don't forget the escavation tools on your way out there!
- R.W" + P.stamped = list(/obj/item/weapon/stamp/rd) + P.overlays = list("paper_stamped_rd") + src.contents += P + + P = new() + P.name = "Memo RE: ethical quandaries" + P.info = "Darion-

I don't care what his rank is, our business is that of science and knowledge - questions of moral application do not come into this. Sure, so there are those who would employ the energy-wave particles my modified device has managed to abscond for their own personal gain, but I can hardly see the practical benefits of some of those things our benefactors left behind. Ward--" + P.stamped = list(/obj/item/weapon/stamp/rd) + P.overlays = list("paper_stamped_rd") + src.contents += P + + P = new() + P.name = "READ ME! Before you people destroy any more samples" + P.info = "how many times do i have to tell you people, these xeno-arch samples are del-i-cate, and should be handled so! careful application of a focussed, ceoncentrated heat or some corrosive liquids should clear away the extraneous carbon matter, while application of an energy beam will most decidedly destroy it entirely! W, the one who signs your paychecks" + P.stamped = list(/obj/item/weapon/stamp/rd) + P.overlays = list("paper_stamped_rd") + src.contents += P + + P = new() + P.name = "Reminder regarding the anomalous material suits" + P.info = "Do you people think the anomaly suits are cheap to come by? I'm about a hair trigger away from instituting a log book for the damn things. Only wear them if you're going out for a dig, and for god's sake don't go tramping around the station in them unless you're field testing something, R" + P.stamped = list(/obj/item/weapon/stamp/rd) + P.overlays = list("paper_stamped_rd") + src.contents += P + +//Anomaly + +/area/anomaly + icon_state = "anomaly" + +/area/anomaly/hallway + name = "Anomaly Hallway" + +/area/anomaly/lab + name = "Anomaly Lab" + +/area/anomaly/outpost + name = "Research Outpost" diff --git a/code/modules/research/xenoarchaeology/spacesuit.dm b/code/modules/research/xenoarchaeology/spacesuit.dm new file mode 100644 index 00000000000..66c9dedb22d --- /dev/null +++ b/code/modules/research/xenoarchaeology/spacesuit.dm @@ -0,0 +1,13 @@ + +/obj/item/clothing/suit/space/anomaly + name = "Anomaly Suit" + desc = "A sealed bio suit capable of resisting exotic alien energies and low pressure environments." + icon_state = "engspace_suit" + item_state = "engspace_suit" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) + +/obj/item/clothing/head/helmet/space/anomaly + name = "Anomaly Hood" + desc = "A sealed bio hood capable of resisting exotic alien energies and low pressure environments." + icon_state = "engspace_helmet" + item_state = "engspace_helmet" diff --git a/code/modules/research/xenoarchaeology/suspension_generator.dm b/code/modules/research/xenoarchaeology/suspension_generator.dm index 3c1449f6b49..b24080df2ff 100644 --- a/code/modules/research/xenoarchaeology/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/suspension_generator.dm @@ -1,5 +1,3 @@ -//these are probably broken - /obj/machinery/suspension_gen name = "suspension field generator" desc = "It has stubby legs bolted up against it's body for stabilising." @@ -32,14 +30,14 @@ for(var/mob/living/carbon/M in T) M.weakened = max(M.weakened, 3) cell.charge -= power_use - if(prob(10)) + if(prob(5)) M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" if(field_type == "silicon") for(var/mob/living/silicon/M in T) M.weakened = max(M.weakened, 3) cell.charge -= power_use - if(prob(10)) + if(prob(5)) M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" for(var/obj/item/I in T) @@ -51,7 +49,7 @@ for(var/mob/living/simple_animal/M in T) M.weakened = max(M.weakened, 3) cell.charge -= power_use - if(prob(10)) + if(prob(5)) M << "\blue [pick("You feel tingly.","You feel like floating.","It is hard to speak.","You can barely move.")]" if(cell.charge <= 0) diff --git a/code/modules/research/xenoarchaeology/misc_tools.dm b/code/modules/research/xenoarchaeology/tools.dm similarity index 100% rename from code/modules/research/xenoarchaeology/misc_tools.dm rename to code/modules/research/xenoarchaeology/tools.dm diff --git a/code/modules/research/xenoarchaeology/artifact.dm b/code/modules/research/xenoarchaeology/unknown.dm similarity index 100% rename from code/modules/research/xenoarchaeology/artifact.dm rename to code/modules/research/xenoarchaeology/unknown.dm diff --git a/code/modules/research/xenoarchaeology/artifact_analysis.dm b/code/modules/research/xenoarchaeology/unknown_analysis.dm similarity index 97% rename from code/modules/research/xenoarchaeology/artifact_analysis.dm rename to code/modules/research/xenoarchaeology/unknown_analysis.dm index 5225b650e7f..706343e8f62 100644 --- a/code/modules/research/xenoarchaeology/artifact_analysis.dm +++ b/code/modules/research/xenoarchaeology/unknown_analysis.dm @@ -1,318 +1,318 @@ - -//cael - some changes here. the analysis pad is entirely new - -/obj/machinery/artifact_analyser - name = "Artifact Analyser" - desc = "Studies the structure of artifacts to discover their uses." - icon = 'virology.dmi' - icon_state = "analyser" - anchored = 1 - density = 1 - var/working = 0 - var/accuO = 0 - var/accuT = 0 - var/accuE1 = 0 - var/accuE2 = 0 - var/aorigin = "None" - var/atrigger = "None" - var/aeffect1 = "None" - var/aeffect2 = "None" - var/list/origin_bonuses - var/list/trigger_bonuses - var/list/function_bonuses - var/list/range_bonuses - var/cur_id = "" - var/scan_num = 0 - var/obj/machinery/artifact/cur_artifact = null - var/obj/machinery/analyser_pad/owned_pad = null - var/list/allorigins = list("Ancient Robots","Martian","Wizard Federation","Extradimensional","Precursor") - var/list/alltriggers = list("Contact with Living Organism","Heavy Impact","Contact with Energy Source","Contact with Hydrogen","Contact with Corrosive Substance","Contact with Volatile Substance","Contact with Toxins","Exposure to Heat") - var/list/alleffects = list("Healing Device","Anti-biological Weapon","Non-lethal Stunning Trap","Mechanoid Repair Module","Mechanoid Deconstruction Device","Power Generator","Power Drain","Stellar Mineral Attractor","Agriculture Regulator","Shield Generator","Space-Time Displacer") - var/list/allranges = list("Constant Short-Range Energy Field","Medium Range Energy Pulses","Long Range Energy Pulses","Extreme Range Energy Pulses","Requires contact with subject") - -/obj/machinery/artifact_analyser/New() - ..() - origin_bonuses = new/list() - origin_bonuses["ancient"] = 0 - origin_bonuses["martian"] = 0 - origin_bonuses["wizard"] = 0 - origin_bonuses["eldritch"] = 0 - origin_bonuses["precursor"] = 0 - trigger_bonuses = new/list() - trigger_bonuses["ancient"] = 0 - trigger_bonuses["martian"] = 0 - trigger_bonuses["wizard"] = 0 - trigger_bonuses["eldritch"] = 0 - trigger_bonuses["precursor"] = 0 - function_bonuses = new/list() - function_bonuses["ancient"] = 0 - function_bonuses["martian"] = 0 - function_bonuses["wizard"] = 0 - function_bonuses["eldritch"] = 0 - function_bonuses["precursor"] = 0 - range_bonuses = new/list() - range_bonuses["ancient"] = 0 - range_bonuses["martian"] = 0 - range_bonuses["wizard"] = 0 - range_bonuses["eldritch"] = 0 - range_bonuses["precursor"] = 0 - // - spawn(10) - owned_pad = locate() in orange(1, src) - -/obj/machinery/artifact_analyser/attack_hand(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Artifact Analyser
" - dat += "

" - if(!owned_pad) - dat += "Unable to locate analysis pad.
" - dat += "

" - else if (!src.working) - dat += "Artifact ID: [cur_id]
" - dat += "Artifact Origin: [aorigin] ([accuO]%)
" - dat += "Activation Trigger: [atrigger] ([accuT]%)
" - dat += "Artifact Function: [aeffect1] ([accuE1]%)
" - dat += "Artifact Range: [aeffect2] ([accuE2]%)

" - dat += "

" - dat += "Artifact ID is determined from unique energy emission signatures.
" - dat += "Analyse Artifact (Scan number #[scan_num+1])
" - dat += "Upload/update artifact scan
" - dat += "Print Page
" - else - dat += "Please wait. Analysis in progress.
" - dat += "

" - // - dat += "Close
" - user << browse(dat, "window=artanalyser;size=450x500") - onclose(user, "artanalyser") - -/obj/machinery/artifact_analyser/process() - if(stat & (NOPOWER|BROKEN)) - return - use_power(350) - // - if(!owned_pad) - for(var/obj/machinery/analyser_pad/pad in range(1)) - owned_pad = pad - break - -/obj/machinery/artifact_analyser/proc/AA_FailedAnalysis(var/failtype) - switch(failtype) - if(1) - src.aorigin = "Failed to Identify" - if (prob(20)) src.aorigin = pick(src.allorigins) - if(2) - src.atrigger = "Failed to Identify" - if (prob(20)) src.atrigger = pick(src.alltriggers) - if(3) - src.aeffect1 = "Failed to Identify" - if (prob(20)) src.aeffect1 = pick(src.alleffects) - if(4) - src.aeffect2 = "Failed to Identify" - if (prob(20)) src.aeffect2 = pick(src.allranges) - -/obj/machinery/artifact_analyser/proc/AA_Analyse() - if(!cur_artifact) - return - src.accuO = 5 + rand(0,10) + origin_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 - src.accuT = 5 + rand(0,10) + trigger_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 - src.accuE1 = 5 + rand(0,10) + function_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 - src.accuE2 = 5 + rand(0,10) + range_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 - - //keep any correctly determined properties the same - var/origin_correct = 0 - var/trigger_correct = 0 - var/function_correct = 0 - var/range_correct = 0 - if(cur_id == cur_artifact.display_id) - if(src.aorigin == cur_artifact.origin) - origin_correct = 1 - - if(src.atrigger == cur_artifact.my_effect.trigger) - trigger_correct = 1 - else if(src.atrigger == cur_artifact.my_effect.triggerX) - trigger_correct = 1 - - if(src.aeffect1 == cur_artifact.my_effect.effecttype) - function_correct = 1 - - if(src.aeffect2 == cur_artifact.my_effect.effectmode) - range_correct = 1 - - if (src.accuO > 100) src.accuO = 100 - if (src.accuT > 100) src.accuT = 100 - if (src.accuE1 > 100) src.accuE1 = 100 - if (src.accuE2 > 100) src.accuE2 = 100 - // Roll to generate report - if (prob(accuO) || origin_correct) - switch(cur_artifact.origin) - if("ancient") src.aorigin = "Ancient Robots" - if("martian") src.aorigin = "Martian" - if("wizard") src.aorigin = "Wizard Federation" - if("eldritch") src.aorigin = "Extradimensional" - if("precursor") src.aorigin = "Precursor" - else src.aorigin = "Unknown Origin" - origin_bonuses[cur_artifact.origin] += 10 - else - AA_FailedAnalysis(1) - origin_bonuses[cur_artifact.origin] += 5 - if (prob(accuT) || trigger_correct) - switch(cur_artifact.my_effect.trigger) - if("touch") src.atrigger = "Contact with Living Organism" - if("force") src.atrigger = "Heavy Impact" - if("energy") src.atrigger = "Contact with Energy Source" - if("chemical") - switch(cur_artifact.my_effect.triggerX) - if("hydrogen") src.atrigger = "Contact with Hydrogen" - if("corrosive") src.atrigger = "Contact with Corrosive Substance" - if("volatile") src.atrigger = "Contact with Volatile Substance" - if("toxin") src.atrigger = "Contact with Toxins" - if("heat") src.atrigger = "Exposure to Heat" - else src.atrigger = "Unknown Trigger" - trigger_bonuses[cur_artifact.origin] += 5 - else - AA_FailedAnalysis(2) - trigger_bonuses[cur_artifact.origin] += 1 - if (prob(accuE1) || function_correct) - switch(cur_artifact.my_effect.effecttype) - if("healing") src.aeffect1 = "Healing Device" - if("injure") src.aeffect1 = "Anti-biological Weapon" - // if("stun") src.aeffect1 = "Non-lethal Stunning Trap" - if("roboheal") src.aeffect1 = "Mechanoid Repair Module" - if("robohurt") src.aeffect1 = "Mechanoid Deconstruction Device" - if("cellcharge") src.aeffect1 = "Power Generator" - if("celldrain") src.aeffect1 = "Power Drain" - if("planthelper") src.aeffect1 = "Agriculture Regulator" - if("forcefield") src.aeffect1 = "Shield Generator" - if("teleport") src.aeffect1 = "Space-Time Displacer" - else src.aeffect1 = "Unknown Effect" - function_bonuses[cur_artifact.origin] += 5 - else - AA_FailedAnalysis(3) - function_bonuses[cur_artifact.origin] += 1 - if (prob(accuE2) || range_correct) - switch(cur_artifact.my_effect.effectmode) - if("aura") src.aeffect2 = "Constant Short-Range Energy Field" - if("pulse") - if(cur_artifact.my_effect.aurarange > 7) src.aeffect2 = "Long Range Energy Pulses" - else src.aeffect2 = "Medium Range Energy Pulses" - if("worldpulse") src.aeffect2 = "Extreme Range Energy Pulses" - if("contact") src.aeffect2 = "Requires contact with subject" - else src.aeffect2 = "Unknown Range" - range_bonuses[cur_artifact.origin] += 5 - else - AA_FailedAnalysis(4) - range_bonuses[cur_artifact.origin] += 1 - - cur_artifact.name = "alien artifact ([cur_artifact.display_id])" - cur_artifact.desc = "A large alien device. It has a small tag near the bottom that reads \"[cur_artifact.display_id]\"." - cur_id = cur_artifact.display_id - cur_artifact.my_effect.artifact_id = cur_artifact.display_id - -/obj/machinery/artifact_analyser/Topic(href, href_list) - - if(href_list["analyse"]) - if(owned_pad) - var/turf/pad_turf = get_turf(owned_pad) - var/findarti = 0 - for(var/obj/machinery/artifact/A in pad_turf.contents) - findarti++ - cur_artifact = A - if (findarti == 1) - if(cur_artifact && cur_artifact.being_used) - var/message = "[src] states, \"Cannot analyse. Excess energy drain is disrupting signal.\"" - src.visible_message(message, message) - else - cur_artifact.anchored = 1 - cur_artifact.being_used = 1 - src.working = 1 - src.icon_state = "analyser_processing" - var/time = rand(30,50) + max(0, 300 - scan_num * 10) - /*for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++) - for(var/datum/artiresearch/R in artifact_research.researched_items[i]) - if (R.bonustype == "analyser") time -= R.bonusTime*/ - time *= 10 - var/message = "[src] states, \"Commencing analysis.\"" - src.visible_message(message, message) - use_power(500) - spawn(time) - src.working = 0 - icon_state = "analyser" - cur_artifact.anchored = 0 - cur_artifact.being_used = 0 - if(cur_artifact.loc == pad_turf) - AA_Analyse() - scan_num++ - message = "[src] states, \"Analysis complete.\"" - src.visible_message(message, message) - use_power(500) - else if (findarti > 1) - var/message = "[src] states, \"Cannot analyse. Error isolating energy signature.\"" - src.visible_message(message, message) - else - var/message = "[src] states, \"Cannot analyse. No noteworthy energy signature isolated.\"" - src.visible_message(message, message) - - if(href_list["upload"] && cur_id != "") - //add new datum to every DB in the world - for(var/obj/machinery/computer/artifact_database/DB in world) - var/update = 0 - for(var/datum/catalogued_artifact/CA in DB.catalogued_artifacts) - if(CA.display_id == cur_id) - //already there, so update it - update = 1 - CA.origin = aorigin + " ([accuO]%)" - CA.trigger = atrigger + " ([accuT]%)" - CA.effecttype = aeffect1 + " ([accuE1]%)" - CA.effectmode = aeffect2 + " ([accuE2]%)" - if(!update) - //not there, so add it - var/datum/catalogued_artifact/CA = new() - CA.display_id = cur_id - CA.origin = aorigin + " ([accuO]%)" - CA.trigger = atrigger + " ([accuT]%)" - CA.effecttype = aeffect1 + " ([accuE1]%)" - CA.effectmode = aeffect2 + " ([accuE2]%)" - DB.catalogued_artifacts.Add(CA) - use_power(100) - - if(href_list["print"]) - var/r = "Artifact Analysis Report (Scan #[scan_num])
" - r += "Artifact ID: [cur_id] (determined from unique energy emission signatures)
" - r += "Artifact Origin: [aorigin] ([accuO]%)
" - r += "Activation Trigger: [atrigger] ([accuT]%)
" - r += "Artifact Function: [aeffect1] ([accuE1]%)
" - r += "Artifact Range: [aeffect2] ([accuE2]%)

" - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src.loc) - P.name = "Artifact Analysis Report #[scan_num]" - P.info = r - for(var/mob/O in hearers(src, null)) - O.show_message("\icon[src] \blue The [src.name] prints a sheet of paper", 3) - use_power(10) - - if(href_list["close"]) - usr << browse(null, "window=artanalyser") - usr.machine = null - - src.updateDialog() - -//stick artifacts onto this then switch the analyser on -/obj/machinery/analyser_pad - name = "artifact analysis pad" - desc = "Studies the structure of artifacts to discover their uses." - icon = 'stationobjs.dmi' - icon_state = "tele0" - anchored = 1 - density = 0 - -/obj/machinery/analyser_pad/New() - ..() - /*spawn(10) - for(var/obj/machinery/artifact_analyser/analyser in orange(1)) - world << "pad found analyser" - if(!analyser.owned_pad) - analyser.owned_pad = src - world << "pad set analyser to self" - break*/ + +//cael - some changes here. the analysis pad is entirely new + +/obj/machinery/artifact_analyser + name = "Artifact Analyser" + desc = "Studies the structure of artifacts to discover their uses." + icon = 'virology.dmi' + icon_state = "analyser" + anchored = 1 + density = 1 + var/working = 0 + var/accuO = 0 + var/accuT = 0 + var/accuE1 = 0 + var/accuE2 = 0 + var/aorigin = "None" + var/atrigger = "None" + var/aeffect1 = "None" + var/aeffect2 = "None" + var/list/origin_bonuses + var/list/trigger_bonuses + var/list/function_bonuses + var/list/range_bonuses + var/cur_id = "" + var/scan_num = 0 + var/obj/machinery/artifact/cur_artifact = null + var/obj/machinery/analyser_pad/owned_pad = null + var/list/allorigins = list("Ancient Robots","Martian","Wizard Federation","Extradimensional","Precursor") + var/list/alltriggers = list("Contact with Living Organism","Heavy Impact","Contact with Energy Source","Contact with Hydrogen","Contact with Corrosive Substance","Contact with Volatile Substance","Contact with Toxins","Exposure to Heat") + var/list/alleffects = list("Healing Device","Anti-biological Weapon","Non-lethal Stunning Trap","Mechanoid Repair Module","Mechanoid Deconstruction Device","Power Generator","Power Drain","Stellar Mineral Attractor","Agriculture Regulator","Shield Generator","Space-Time Displacer") + var/list/allranges = list("Constant Short-Range Energy Field","Medium Range Energy Pulses","Long Range Energy Pulses","Extreme Range Energy Pulses","Requires contact with subject") + +/obj/machinery/artifact_analyser/New() + ..() + origin_bonuses = new/list() + origin_bonuses["ancient"] = 0 + origin_bonuses["martian"] = 0 + origin_bonuses["wizard"] = 0 + origin_bonuses["eldritch"] = 0 + origin_bonuses["precursor"] = 0 + trigger_bonuses = new/list() + trigger_bonuses["ancient"] = 0 + trigger_bonuses["martian"] = 0 + trigger_bonuses["wizard"] = 0 + trigger_bonuses["eldritch"] = 0 + trigger_bonuses["precursor"] = 0 + function_bonuses = new/list() + function_bonuses["ancient"] = 0 + function_bonuses["martian"] = 0 + function_bonuses["wizard"] = 0 + function_bonuses["eldritch"] = 0 + function_bonuses["precursor"] = 0 + range_bonuses = new/list() + range_bonuses["ancient"] = 0 + range_bonuses["martian"] = 0 + range_bonuses["wizard"] = 0 + range_bonuses["eldritch"] = 0 + range_bonuses["precursor"] = 0 + // + spawn(10) + owned_pad = locate() in orange(1, src) + +/obj/machinery/artifact_analyser/attack_hand(var/mob/user as mob) + if(stat & (NOPOWER|BROKEN)) + return + user.machine = src + var/dat = "Artifact Analyser
" + dat += "

" + if(!owned_pad) + dat += "Unable to locate analysis pad.
" + dat += "

" + else if (!src.working) + dat += "Artifact ID: [cur_id]
" + dat += "Artifact Origin: [aorigin] ([accuO]%)
" + dat += "Activation Trigger: [atrigger] ([accuT]%)
" + dat += "Artifact Function: [aeffect1] ([accuE1]%)
" + dat += "Artifact Range: [aeffect2] ([accuE2]%)

" + dat += "

" + dat += "Artifact ID is determined from unique energy emission signatures.
" + dat += "
Analyse Artifact (Scan number #[scan_num+1])
" + dat += "Upload/update artifact scan
" + dat += "Print Page
" + else + dat += "Please wait. Analysis in progress.
" + dat += "

" + // + dat += "Close
" + user << browse(dat, "window=artanalyser;size=450x500") + onclose(user, "artanalyser") + +/obj/machinery/artifact_analyser/process() + if(stat & (NOPOWER|BROKEN)) + return + use_power(350) + // + if(!owned_pad) + for(var/obj/machinery/analyser_pad/pad in range(1)) + owned_pad = pad + break + +/obj/machinery/artifact_analyser/proc/AA_FailedAnalysis(var/failtype) + switch(failtype) + if(1) + src.aorigin = "Failed to Identify" + if (prob(20)) src.aorigin = pick(src.allorigins) + if(2) + src.atrigger = "Failed to Identify" + if (prob(20)) src.atrigger = pick(src.alltriggers) + if(3) + src.aeffect1 = "Failed to Identify" + if (prob(20)) src.aeffect1 = pick(src.alleffects) + if(4) + src.aeffect2 = "Failed to Identify" + if (prob(20)) src.aeffect2 = pick(src.allranges) + +/obj/machinery/artifact_analyser/proc/AA_Analyse() + if(!cur_artifact) + return + src.accuO = 5 + rand(0,10) + origin_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 + src.accuT = 5 + rand(0,10) + trigger_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 + src.accuE1 = 5 + rand(0,10) + function_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 + src.accuE2 = 5 + rand(0,10) + range_bonuses[cur_artifact.origin] + cur_artifact.activated * 50 + + //keep any correctly determined properties the same + var/origin_correct = 0 + var/trigger_correct = 0 + var/function_correct = 0 + var/range_correct = 0 + if(cur_id == cur_artifact.display_id) + if(src.aorigin == cur_artifact.origin) + origin_correct = 1 + + if(src.atrigger == cur_artifact.my_effect.trigger) + trigger_correct = 1 + else if(src.atrigger == cur_artifact.my_effect.triggerX) + trigger_correct = 1 + + if(src.aeffect1 == cur_artifact.my_effect.effecttype) + function_correct = 1 + + if(src.aeffect2 == cur_artifact.my_effect.effectmode) + range_correct = 1 + + if (src.accuO > 100) src.accuO = 100 + if (src.accuT > 100) src.accuT = 100 + if (src.accuE1 > 100) src.accuE1 = 100 + if (src.accuE2 > 100) src.accuE2 = 100 + // Roll to generate report + if (prob(accuO) || origin_correct) + switch(cur_artifact.origin) + if("ancient") src.aorigin = "Ancient Robots" + if("martian") src.aorigin = "Martian" + if("wizard") src.aorigin = "Wizard Federation" + if("eldritch") src.aorigin = "Extradimensional" + if("precursor") src.aorigin = "Precursor" + else src.aorigin = "Unknown Origin" + origin_bonuses[cur_artifact.origin] += 10 + else + AA_FailedAnalysis(1) + origin_bonuses[cur_artifact.origin] += 5 + if (prob(accuT) || trigger_correct) + switch(cur_artifact.my_effect.trigger) + if("touch") src.atrigger = "Contact with Living Organism" + if("force") src.atrigger = "Heavy Impact" + if("energy") src.atrigger = "Contact with Energy Source" + if("chemical") + switch(cur_artifact.my_effect.triggerX) + if("hydrogen") src.atrigger = "Contact with Hydrogen" + if("corrosive") src.atrigger = "Contact with Corrosive Substance" + if("volatile") src.atrigger = "Contact with Volatile Substance" + if("toxin") src.atrigger = "Contact with Toxins" + if("heat") src.atrigger = "Exposure to Heat" + else src.atrigger = "Unknown Trigger" + trigger_bonuses[cur_artifact.origin] += 5 + else + AA_FailedAnalysis(2) + trigger_bonuses[cur_artifact.origin] += 1 + if (prob(accuE1) || function_correct) + switch(cur_artifact.my_effect.effecttype) + if("healing") src.aeffect1 = "Healing Device" + if("injure") src.aeffect1 = "Anti-biological Weapon" + // if("stun") src.aeffect1 = "Non-lethal Stunning Trap" + if("roboheal") src.aeffect1 = "Mechanoid Repair Module" + if("robohurt") src.aeffect1 = "Mechanoid Deconstruction Device" + if("cellcharge") src.aeffect1 = "Power Generator" + if("celldrain") src.aeffect1 = "Power Drain" + if("planthelper") src.aeffect1 = "Agriculture Regulator" + if("forcefield") src.aeffect1 = "Shield Generator" + if("teleport") src.aeffect1 = "Space-Time Displacer" + else src.aeffect1 = "Unknown Effect" + function_bonuses[cur_artifact.origin] += 5 + else + AA_FailedAnalysis(3) + function_bonuses[cur_artifact.origin] += 1 + if (prob(accuE2) || range_correct) + switch(cur_artifact.my_effect.effectmode) + if("aura") src.aeffect2 = "Constant Short-Range Energy Field" + if("pulse") + if(cur_artifact.my_effect.aurarange > 7) src.aeffect2 = "Long Range Energy Pulses" + else src.aeffect2 = "Medium Range Energy Pulses" + if("worldpulse") src.aeffect2 = "Extreme Range Energy Pulses" + if("contact") src.aeffect2 = "Requires contact with subject" + else src.aeffect2 = "Unknown Range" + range_bonuses[cur_artifact.origin] += 5 + else + AA_FailedAnalysis(4) + range_bonuses[cur_artifact.origin] += 1 + + cur_artifact.name = "alien artifact ([cur_artifact.display_id])" + cur_artifact.desc = "A large alien device. It has a small tag near the bottom that reads \"[cur_artifact.display_id]\"." + cur_id = cur_artifact.display_id + cur_artifact.my_effect.artifact_id = cur_artifact.display_id + +/obj/machinery/artifact_analyser/Topic(href, href_list) + + if(href_list["analyse"]) + if(owned_pad) + var/turf/pad_turf = get_turf(owned_pad) + var/findarti = 0 + for(var/obj/machinery/artifact/A in pad_turf.contents) + findarti++ + cur_artifact = A + if (findarti == 1) + if(cur_artifact && cur_artifact.being_used) + var/message = "[src] states, \"Cannot analyse. Excess energy drain is disrupting signal.\"" + src.visible_message(message, message) + else + cur_artifact.anchored = 1 + cur_artifact.being_used = 1 + src.working = 1 + src.icon_state = "analyser_processing" + var/time = rand(30,50) + max(0, 300 - scan_num * 10) + /*for(var/i = artifact_research.starting_tier, i <= artifact_research.max_tiers, i++) + for(var/datum/artiresearch/R in artifact_research.researched_items[i]) + if (R.bonustype == "analyser") time -= R.bonusTime*/ + time *= 10 + var/message = "[src] states, \"Commencing analysis.\"" + src.visible_message(message, message) + use_power(500) + spawn(time) + src.working = 0 + icon_state = "analyser" + cur_artifact.anchored = 0 + cur_artifact.being_used = 0 + if(cur_artifact.loc == pad_turf) + AA_Analyse() + scan_num++ + message = "[src] states, \"Analysis complete.\"" + src.visible_message(message, message) + use_power(500) + else if (findarti > 1) + var/message = "[src] states, \"Cannot analyse. Error isolating energy signature.\"" + src.visible_message(message, message) + else + var/message = "[src] states, \"Cannot analyse. No noteworthy energy signature isolated.\"" + src.visible_message(message, message) + + if(href_list["upload"] && cur_id != "") + //add new datum to every DB in the world + for(var/obj/machinery/computer/artifact_database/DB in world) + var/update = 0 + for(var/datum/catalogued_artifact/CA in DB.catalogued_artifacts) + if(CA.display_id == cur_id) + //already there, so update it + update = 1 + CA.origin = aorigin + " ([accuO]%)" + CA.trigger = atrigger + " ([accuT]%)" + CA.effecttype = aeffect1 + " ([accuE1]%)" + CA.effectmode = aeffect2 + " ([accuE2]%)" + if(!update) + //not there, so add it + var/datum/catalogued_artifact/CA = new() + CA.display_id = cur_id + CA.origin = aorigin + " ([accuO]%)" + CA.trigger = atrigger + " ([accuT]%)" + CA.effecttype = aeffect1 + " ([accuE1]%)" + CA.effectmode = aeffect2 + " ([accuE2]%)" + DB.catalogued_artifacts.Add(CA) + use_power(100) + + if(href_list["print"]) + var/r = "Artifact Analysis Report (Scan #[scan_num])
" + r += "Artifact ID: [cur_id] (determined from unique energy emission signatures)
" + r += "Artifact Origin: [aorigin] ([accuO]%)
" + r += "Activation Trigger: [atrigger] ([accuT]%)
" + r += "Artifact Function: [aeffect1] ([accuE1]%)
" + r += "Artifact Range: [aeffect2] ([accuE2]%)

" + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src.loc) + P.name = "Artifact Analysis Report #[scan_num]" + P.info = r + for(var/mob/O in hearers(src, null)) + O.show_message("\icon[src] \blue The [src.name] prints a sheet of paper", 3) + use_power(10) + + if(href_list["close"]) + usr << browse(null, "window=artanalyser") + usr.machine = null + + src.updateDialog() + +//stick artifacts onto this then switch the analyser on +/obj/machinery/analyser_pad + name = "artifact analysis pad" + desc = "Studies the structure of artifacts to discover their uses." + icon = 'stationobjs.dmi' + icon_state = "tele0" + anchored = 1 + density = 0 + +/obj/machinery/analyser_pad/New() + ..() + /*spawn(10) + for(var/obj/machinery/artifact_analyser/analyser in orange(1)) + world << "pad found analyser" + if(!analyser.owned_pad) + analyser.owned_pad = src + world << "pad set analyser to self" + break*/ diff --git a/code/modules/research/xenoarchaeology/artifact_db.dm b/code/modules/research/xenoarchaeology/unknown_db.dm similarity index 97% rename from code/modules/research/xenoarchaeology/artifact_db.dm rename to code/modules/research/xenoarchaeology/unknown_db.dm index 5bdb66d71fd..c6e0d1fb3fa 100644 --- a/code/modules/research/xenoarchaeology/artifact_db.dm +++ b/code/modules/research/xenoarchaeology/unknown_db.dm @@ -1,58 +1,58 @@ - -/datum/catalogued_artifact - var/trigger = "touch" // What activates it? - var/effecttype = "healing" // What does it do? - var/effectmode = "aura" // How does it carry out the effect? - var/display_id = "" // Artifact ID to display once successfully scanned - var/origin = "" - -/obj/machinery/computer/artifact_database - name = "Artifact Database" - icon_state = "rdcomp" - var/list/catalogued_artifacts - -/obj/machinery/computer/artifact_database/New() - ..() - catalogued_artifacts = new/list - -/obj/machinery/computer/artifact_database/Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=artifact_db") - usr.machine = null - updateDialog() - -/obj/machinery/computer/artifact_database/process() - ..() - updateDialog() - -/obj/machinery/computer/artifact_database/interact(mob/user) - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=artifact_db") - return - var/t = "Artifact Database
" - t += "
" - for(var/datum/catalogued_artifact/CA in catalogued_artifacts) - t += "Artifact ID: [CA.display_id] (determined from unique energy emission signatures)
" - t += "Artifact Origin: [CA.origin]
" - t += "Activation Trigger: [CA.trigger]
" - t += "Artifact Function: [CA.effecttype]
" - t += "Artifact Range: [CA.effectmode]

" - t += "
" - t += "
Refresh Close
" - user << browse(t, "window=artifact_db;size=500x800") - user.machine = src - -/* -/datum/artifact_effect - var/origin = null // Used in the randomisation/research of the artifact. - var/trigger = "touch" // What activates it? - var/triggerX = "none" // Used for more varied triggers - var/effecttype = "healing" // What does it do? - var/effectmode = "aura" // How does it carry out the effect? - var/aurarange = 4 // How far the artifact will extend an aura effect. - var/display_id = "" // Artifact ID to display once successfully scanned - var/list/created_field + +/datum/catalogued_artifact + var/trigger = "touch" // What activates it? + var/effecttype = "healing" // What does it do? + var/effectmode = "aura" // How does it carry out the effect? + var/display_id = "" // Artifact ID to display once successfully scanned + var/origin = "" + +/obj/machinery/computer/artifact_database + name = "Artifact Database" + icon_state = "rdcomp" + var/list/catalogued_artifacts + +/obj/machinery/computer/artifact_database/New() + ..() + catalogued_artifacts = new/list + +/obj/machinery/computer/artifact_database/Topic(href, href_list) + ..() + if( href_list["close"] ) + usr << browse(null, "window=artifact_db") + usr.machine = null + updateDialog() + +/obj/machinery/computer/artifact_database/process() + ..() + updateDialog() + +/obj/machinery/computer/artifact_database/interact(mob/user) + if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) + if (!istype(user, /mob/living/silicon)) + user.machine = null + user << browse(null, "window=artifact_db") + return + var/t = "Artifact Database
" + t += "
" + for(var/datum/catalogued_artifact/CA in catalogued_artifacts) + t += "Artifact ID: [CA.display_id] (determined from unique energy emission signatures)
" + t += "Artifact Origin: [CA.origin]
" + t += "Activation Trigger: [CA.trigger]
" + t += "Artifact Function: [CA.effecttype]
" + t += "Artifact Range: [CA.effectmode]

" + t += "
" + t += "Refresh Close
" + user << browse(t, "window=artifact_db;size=500x800") + user.machine = src + +/* +/datum/artifact_effect + var/origin = null // Used in the randomisation/research of the artifact. + var/trigger = "touch" // What activates it? + var/triggerX = "none" // Used for more varied triggers + var/effecttype = "healing" // What does it do? + var/effectmode = "aura" // How does it carry out the effect? + var/aurarange = 4 // How far the artifact will extend an aura effect. + var/display_id = "" // Artifact ID to display once successfully scanned + var/list/created_field */ \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/artifact_effect.dm b/code/modules/research/xenoarchaeology/unknown_effect.dm similarity index 97% rename from code/modules/research/xenoarchaeology/artifact_effect.dm rename to code/modules/research/xenoarchaeology/unknown_effect.dm index 118e94adc17..092cb0d0f58 100644 --- a/code/modules/research/xenoarchaeology/artifact_effect.dm +++ b/code/modules/research/xenoarchaeology/unknown_effect.dm @@ -1,542 +1,542 @@ -// - -/datum/artifact_effect - var/artifact_id = "" // Display ID of the spawning artifact - var/trigger = "touch" // What activates it? - var/triggerX = "none" // Used for more varied triggers - var/effecttype = "healing" // What does it do? - var/effectmode = "aura" // How does it carry out the effect? - var/aurarange = 4 // How far the artifact will extend an aura effect. - var/list/created_field - var/archived_loc - -/datum/artifact_effect/New() - // - created_field = new() - -/datum/artifact_effect/proc/GetOriginString(var/origin) - -/datum/artifact_effect/proc/GetEffectString(var/effect) - -/datum/artifact_effect/proc/GetTriggerString(var/trigger) - -/datum/artifact_effect/proc/GetRangeString(var/range) - switch(effectmode) - if("aura") return "Constant Short-Range Energy Field" - if("pulse") - if(aurarange > 7) return "Long Range Energy Pulses" - else return "Medium Range Energy Pulses" - if("worldpulse") return "Extreme Range Energy Pulses" - if("contact") return "Requires contact with subject" - else return "Unknown Range" - -/datum/artifact_effect/proc/HaltEffect() - for(var/obj/effect/energy_field/F in created_field) - created_field.Remove(F) - del F - -/datum/artifact_effect/proc/UpdateEffect(var/atom/originator) - /*for(var/obj/effect/energy_field/F in created_field) - created_field.Remove(F) - del F*/ - if(originator.loc != archived_loc) - archived_loc = originator.loc - update_move(originator) - - for(var/obj/effect/energy_field/E in created_field) - if(E.strength < 5) - E.Strengthen(0.2) - -/datum/artifact_effect/proc/DoEffect(var/atom/originator) - archived_loc = originator.loc - if (src.effectmode == "contact") - var/mob/living/user = originator - if(!user) - return - switch(src.effecttype) - if("healing") - //caeltodo - if (istype(user, /mob/living/carbon/human/)) - user << "\blue You feel a soothing energy invigorate you." - - var/mob/living/carbon/human/H = user - for(var/datum/organ/external/affecting in H.organs) - if(!affecting) continue - if(!istype(affecting, /datum/organ/external)) continue - affecting.heal_damage(25, 25) //fixes getting hit after ingestion, killing you when game updates organ health - //user:heal_organ_damage(25, 25) - // - user.adjustOxyLoss(-25) - user.adjustToxLoss(-25) - user.adjustBruteLoss(-25) - user.adjustFireLoss(-25) - user.adjustBrainLoss(-25) - user.radiation -= min(user.radiation, 25) - user.nutrition += 50 - H.bodytemperature = initial(H.bodytemperature) - // - H.vessel.add_reagent("blood",50) - spawn(1) - H.fixblood() - H.regenerate_icons() - return 1 - // - if (istype(user, /mob/living/carbon/monkey/)) - user << "\blue You feel a soothing energy invigorate you." - user.adjustOxyLoss(-25) - user.adjustToxLoss(-25) - user.adjustBruteLoss(-25) - user.adjustFireLoss(-25) - user.adjustBrainLoss(-25) - return 1 - else user << "Nothing happens." - if("injure") - if (istype(user, /mob/living/carbon/)) - user << "\red A painful discharge of energy strikes you!" - user.adjustOxyLoss(rand(5,25)) - user.adjustToxLoss(rand(5,25)) - user.adjustBruteLoss(rand(5,25)) - user.adjustFireLoss(rand(5,25)) - user.adjustBrainLoss(rand(5,25)) - user.radiation += 25 - user.nutrition -= min(50, user.nutrition) - user.make_dizzy(6) - user.weakened += 6 - return 1 - else user << "Nothing happens." - if("stun") - if (istype(user, /mob/living/carbon/)) - user << "\red A powerful force overwhelms your consciousness." - user.weakened += 45 - user.stuttering += 45 - if(prob(50)) - user.stunned += rand(1,10) - return 1 - else user << "Nothing happens." - if("roboheal") - if (istype(user, /mob/living/silicon/robot)) - user << "\blue Your systems report damaged components mending by themselves!" - user.adjustBruteLoss(rand(-10,-30)) - user.adjustFireLoss(rand(-10,-30)) - return 1 - else user << "Nothing happens." - if("robohurt") - if (istype(user, /mob/living/silicon/robot)) - user << "\red Your systems report severe damage has been inflicted!" - user.adjustBruteLoss(rand(10,50)) - user.adjustFireLoss(rand(10,50)) - return 1 - else user << "Nothing happens." - if("forcefield") - while(created_field.len < 16) - var/obj/effect/energy_field/E = new (locate(user.x,user.y,user.z)) - created_field.Add(E) - E.strength = 1 - E.density = 1 - E.anchored = 1 - E.invisibility = 0 - return 1 - if("teleport") - var/list/randomturfs = new/list() - for(var/turf/T in orange(user, 50)) - if(!istype(T, /turf/simulated/floor) || T.density) - continue - randomturfs.Add(T) - if(randomturfs.len > 0) - user << "\red You are suddenly zapped away elsewhere!" - if (user.buckled) - user.buckled.unbuckle() - user.loc = pick(randomturfs) - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is - sparks.start() - return 1 - if("sleepy") - user << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") - user.drowsyness = min(user.drowsyness + rand(5,25), 50) - user.eye_blurry = min(user.eye_blurry + rand(1,3), 50) - return 1 - else if (src.effectmode == "aura") - switch(src.effecttype) - //caeltodo - if("healing") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby." - M.adjustBruteLoss(-1) - M.adjustFireLoss(-1) - M.adjustToxLoss(-1) - M.adjustOxyLoss(-1) - M.adjustBrainLoss(-1) - M.updatehealth() - return 1 - if("injure") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\red You feel a painful force radiating from something nearby." - M.adjustBruteLoss(1) - M.adjustFireLoss(1) - M.adjustToxLoss(1) - M.adjustOxyLoss(1) - M.adjustBrainLoss(1) - M.updatehealth() - return 1 - if("stun") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\red Energy radiating from the [originator] is making you feel numb." - if(prob(20)) - M << "\red Your body goes numb for a moment." - M.stunned += 2 - M.weakened += 2 - M.stuttering += 2 - return 1 - if("roboheal") - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - if(prob(10)) M << "\blue SYSTEM ALERT: Beneficial energy field detected!" - M.adjustBruteLoss(-1) - M.adjustFireLoss(-1) - M.updatehealth() - return 1 - if("robohurt") - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!" - M.adjustBruteLoss(1) - M.adjustFireLoss(1) - M.updatehealth() - return 1 - if("cellcharge") - for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge += 10 - for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge += 20 - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge += 10 - if(prob(10)) M << "\blue SYSTEM ALERT: Energy boosting field detected!" - return 1 - if("celldrain") - for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge = max(B.charge-10,0) - for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) - S.charge = max(S.charge-20,0) - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge = max(D.charge-10,0) - if(prob(10)) M << "\red SYSTEM ALERT: Energy draining field detected!" - return 1 - if("planthelper") - for (var/obj/machinery/hydroponics/H in range(src.aurarange,originator)) - //makes weeds and shrooms and stuff more potent too - if(H.planted) - H.waterlevel += 2 - H.nutrilevel += 2 - if(H.toxic > 0) - H.toxic -= 1 - H.health += 1 - if(H.pestlevel > 0) - H.pestlevel -= 1 - if(H.weedlevel > 0) - H.weedlevel -= 1 - H.lastcycle += 5 - return 1 - if("sleepy") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(prob(10)) - M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") - M.drowsyness = min(M.drowsyness + 1, 25) - M.eye_blurry = min(M.eye_blurry + 1, 25) - return 1 - else if (src.effectmode == "pulse") - for(var/mob/O in viewers(originator, null)) - O.show_message(text("[] emits a pulse of energy!", originator), 1) - switch(src.effecttype) - //caeltodo - if("healing") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\blue A wave of energy invigorates you." - M.adjustBruteLoss(-5) - M.adjustFireLoss(-5) - M.adjustToxLoss(-5) - M.adjustOxyLoss(-5) - M.adjustBrainLoss(-5) - M.updatehealth() - return 1 - if("injure") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\red A wave of energy causes you great pain!" - M.adjustBruteLoss(5) - M.adjustFireLoss(5) - M.adjustToxLoss(5) - M.adjustOxyLoss(5) - M.adjustBrainLoss(5) - M.make_dizzy(6) - M.weakened += 3 - M.updatehealth() - return 1 - if("stun") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\red A wave of energy overwhelms your senses!" - M.paralysis += 3 - M.weakened += 4 - M.stuttering += 4 - return 1 - if("roboheal") - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" - M.adjustBruteLoss(-10) - M.adjustFireLoss(-10) - M.updatehealth() - return 1 - if("robohurt") - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" - M.adjustBruteLoss(10) - M.adjustFireLoss(10) - M.updatehealth() - return 1 - if("cellcharge") - for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge += 250 - for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge += 400 - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge += 250 - M << "\blue SYSTEM ALERT: Large energy boost detected!" - return 1 - if("celldrain") - for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge = max(B.charge-500,0) - for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) - S.charge = max(S.charge-400,0) - for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge = max(D.charge-500,0) - M << "\red SYSTEM ALERT: Severe energy drain detected!" - return 1 - if("planthelper") - //makes weeds and shrooms and stuff more potent too - for (var/obj/machinery/hydroponics/H in range(src.aurarange,originator)) - if(H.planted) - H.dead = 0 - H.waterlevel = 200 - H.nutrilevel = 200 - H.toxic = 0 - H.health = 100 - H.pestlevel = 0 - H.weedlevel = 0 - H.lastcycle = H.cycledelay - return 1 - if("teleport") - for (var/mob/living/M in range(src.aurarange,originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - var/list/randomturfs = new/list() - for(var/turf/T in orange(M, 30)) - if(!istype(T, /turf/simulated/floor) || T.density) - continue - randomturfs.Add(T) - if(randomturfs.len > 0) - M << "\red You are displaced by a strange force!" - if(M.buckled) - M.buckled.unbuckle() - M.loc = pick(randomturfs) - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is - sparks.start() - return 1 - if("dnaswitch") - for(var/mob/living/H in range(src.aurarange,originator)) - if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - - if(prob(30)) - H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") - //todo - if (H.gender == FEMALE) - H.gender = MALE - else - H.gender = FEMALE - /*H.dna.ready_dna(H) - H.update_body() - H.update_face()*/ - return 1 - if("emp") - empulse(get_turf(originator), aurarange/2, aurarange) - return 1 - if("sleepy") - for (var/mob/living/carbon/M in range(src.aurarange,originator)) - if(prob(30)) - M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") - if(prob(50)) - M.drowsyness = min(M.drowsyness + rand(1,5), 25) - if(prob(50)) - M.eye_blurry = min(M.eye_blurry + rand(1,5), 25) - return 1 - else if (src.effectmode == "worldpulse") - for(var/mob/O in viewers(originator, null)) - O.show_message(text("[] emits a powerful burst of energy!", originator), 1) - switch(src.effecttype) - if("healing") - for (var/mob/living/carbon/M in range(200, originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\blue Waves of soothing energy wash over you." - M.adjustBruteLoss(-3) - M.adjustFireLoss(-3) - M.adjustToxLoss(-3) - M.adjustOxyLoss(-3) - M.adjustBrainLoss(-3) - M.updatehealth() - return 1 - if("injure") - for (var/mob/living/carbon/human/M in range(200, originator)) - M << "\red A wave of painful energy strikes you!" - M.adjustBruteLoss(3) - M.adjustFireLoss(3) - M.adjustToxLoss(3) - M.adjustOxyLoss(3) - M.adjustBrainLoss(3) - M.updatehealth() - return 1 - if("stun") - for (var/mob/living/carbon/M in range(200, originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\red A powerful force causes you to black out momentarily." - M.paralysis += 5 - M.weakened += 8 - M.stuttering += 8 - return 1 - if("roboheal") - for (var/mob/living/silicon/robot/M in range(200, originator)) - M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" - M.adjustBruteLoss(-5) - M.adjustFireLoss(-5) - M.updatehealth() - return 1 - if("robohurt") - for (var/mob/living/silicon/robot/M in range(200, originator)) - M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" - M.adjustBruteLoss(5) - M.adjustFireLoss(5) - M.updatehealth() - return 1 - if("cellcharge") - for (var/obj/machinery/power/apc/C in range(200, originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge += 100 - for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 250 - for (var/mob/living/silicon/robot/M in world) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge += 100 - M << "\blue SYSTEM ALERT: Energy boost detected!" - return 1 - if("celldrain") - for (var/obj/machinery/power/apc/C in range(200, originator)) - for (var/obj/item/weapon/cell/B in C.contents) - B.charge = max(B.charge-250,0) - for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) - S.charge = max(S.charge-250,0) - for (var/mob/living/silicon/robot/M in world) - for (var/obj/item/weapon/cell/D in M.contents) - D.charge = max(D.charge-250,0) - M << "\red SYSTEM ALERT: Energy drain detected!" - return 1 - if("teleport") - for (var/mob/living/M in range(200, originator)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - var/list/randomturfs = new/list() - for(var/turf/T in orange(M, 15)) - if(!istype(T, /turf/simulated/floor) || T.density) - continue - randomturfs.Add(T) - if(randomturfs.len > 0) - M << "\red You are displaced by a strange force!" - if(M.buckled) - M.buckled.unbuckle() - M.loc = pick(randomturfs) - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is - sparks.start() - return 1 - if("dnaswitch") - for(var/mob/living/H in range(200, originator)) - if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - - if(prob(30)) - H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") - //todo - if (H.gender == FEMALE) - H.gender = MALE - else - H.gender = FEMALE - /*H.dna.ready_dna(H) - H.update_body() - H.update_face()*/ - return 1 - if("sleepy") - for(var/mob/living/H in range(200, originator)) - H.drowsyness = min(H.drowsyness + rand(5,15), 50) - H.eye_blurry = min(H.eye_blurry + rand(5,15), 50) - return 1 - -//initially for the force field artifact -/datum/artifact_effect/proc/update_move(var/atom/originator) - switch(effecttype) - if("forcefield") - while(created_field.len < 16) - //for now, just instantly respawn the fields when they get destroyed - var/obj/effect/energy_field/E = new (locate(originator.x,originator.y,originator)) - created_field.Add(E) - E.strength = 1 - E.density = 1 - E.anchored = 1 - E.invisibility = 0 - - var/obj/effect/energy_field/E = created_field[1] - E.loc = locate(originator.x + 2,originator.y + 2,originator.z) - E = created_field[2] - E.loc = locate(originator.x + 2,originator.y + 1,originator.z) - E = created_field[3] - E.loc = locate(originator.x + 2,originator.y,originator.z) - E = created_field[4] - E.loc = locate(originator.x + 2,originator.y - 1,originator.z) - E = created_field[5] - E.loc = locate(originator.x + 2,originator.y - 2,originator.z) - E = created_field[6] - E.loc = locate(originator.x + 1,originator.y + 2,originator.z) - E = created_field[7] - E.loc = locate(originator.x + 1,originator.y - 2,originator.z) - E = created_field[8] - E.loc = locate(originator.x,originator.y + 2,originator.z) - E = created_field[9] - E.loc = locate(originator.x,originator.y - 2,originator.z) - E = created_field[10] - E.loc = locate(originator.x - 1,originator.y + 2,originator.z) - E = created_field[11] - E.loc = locate(originator.x - 1,originator.y - 2,originator.z) - E = created_field[12] - E.loc = locate(originator.x - 2,originator.y + 2,originator.z) - E = created_field[13] - E.loc = locate(originator.x - 2,originator.y + 1,originator.z) - E = created_field[14] - E.loc = locate(originator.x - 2,originator.y,originator.z) - E = created_field[15] - E.loc = locate(originator.x - 2,originator.y - 1,originator.z) - E = created_field[16] - E.loc = locate(originator.x - 2,originator.y - 2,originator.z) +// + +/datum/artifact_effect + var/artifact_id = "" // Display ID of the spawning artifact + var/trigger = "touch" // What activates it? + var/triggerX = "none" // Used for more varied triggers + var/effecttype = "healing" // What does it do? + var/effectmode = "aura" // How does it carry out the effect? + var/aurarange = 4 // How far the artifact will extend an aura effect. + var/list/created_field + var/archived_loc + +/datum/artifact_effect/New() + // + created_field = new() + +/datum/artifact_effect/proc/GetOriginString(var/origin) + +/datum/artifact_effect/proc/GetEffectString(var/effect) + +/datum/artifact_effect/proc/GetTriggerString(var/trigger) + +/datum/artifact_effect/proc/GetRangeString(var/range) + switch(effectmode) + if("aura") return "Constant Short-Range Energy Field" + if("pulse") + if(aurarange > 7) return "Long Range Energy Pulses" + else return "Medium Range Energy Pulses" + if("worldpulse") return "Extreme Range Energy Pulses" + if("contact") return "Requires contact with subject" + else return "Unknown Range" + +/datum/artifact_effect/proc/HaltEffect() + for(var/obj/effect/energy_field/F in created_field) + created_field.Remove(F) + del F + +/datum/artifact_effect/proc/UpdateEffect(var/atom/originator) + /*for(var/obj/effect/energy_field/F in created_field) + created_field.Remove(F) + del F*/ + if(originator.loc != archived_loc) + archived_loc = originator.loc + update_move(originator) + + for(var/obj/effect/energy_field/E in created_field) + if(E.strength < 5) + E.Strengthen(0.2) + +/datum/artifact_effect/proc/DoEffect(var/atom/originator) + archived_loc = originator.loc + if (src.effectmode == "contact") + var/mob/living/user = originator + if(!user) + return + switch(src.effecttype) + if("healing") + //caeltodo + if (istype(user, /mob/living/carbon/human/)) + user << "\blue You feel a soothing energy invigorate you." + + var/mob/living/carbon/human/H = user + for(var/datum/organ/external/affecting in H.organs) + if(!affecting) continue + if(!istype(affecting, /datum/organ/external)) continue + affecting.heal_damage(25, 25) //fixes getting hit after ingestion, killing you when game updates organ health + //user:heal_organ_damage(25, 25) + // + user.adjustOxyLoss(-25) + user.adjustToxLoss(-25) + user.adjustBruteLoss(-25) + user.adjustFireLoss(-25) + user.adjustBrainLoss(-25) + user.radiation -= min(user.radiation, 25) + user.nutrition += 50 + H.bodytemperature = initial(H.bodytemperature) + // + H.vessel.add_reagent("blood",50) + spawn(1) + H.fixblood() + H.regenerate_icons() + return 1 + // + if (istype(user, /mob/living/carbon/monkey/)) + user << "\blue You feel a soothing energy invigorate you." + user.adjustOxyLoss(-25) + user.adjustToxLoss(-25) + user.adjustBruteLoss(-25) + user.adjustFireLoss(-25) + user.adjustBrainLoss(-25) + return 1 + else user << "Nothing happens." + if("injure") + if (istype(user, /mob/living/carbon/)) + user << "\red A painful discharge of energy strikes you!" + user.adjustOxyLoss(rand(5,25)) + user.adjustToxLoss(rand(5,25)) + user.adjustBruteLoss(rand(5,25)) + user.adjustFireLoss(rand(5,25)) + user.adjustBrainLoss(rand(5,25)) + user.radiation += 25 + user.nutrition -= min(50, user.nutrition) + user.make_dizzy(6) + user.weakened += 6 + return 1 + else user << "Nothing happens." + if("stun") + if (istype(user, /mob/living/carbon/)) + user << "\red A powerful force overwhelms your consciousness." + user.weakened += 45 + user.stuttering += 45 + if(prob(50)) + user.stunned += rand(1,10) + return 1 + else user << "Nothing happens." + if("roboheal") + if (istype(user, /mob/living/silicon/robot)) + user << "\blue Your systems report damaged components mending by themselves!" + user.adjustBruteLoss(rand(-10,-30)) + user.adjustFireLoss(rand(-10,-30)) + return 1 + else user << "Nothing happens." + if("robohurt") + if (istype(user, /mob/living/silicon/robot)) + user << "\red Your systems report severe damage has been inflicted!" + user.adjustBruteLoss(rand(10,50)) + user.adjustFireLoss(rand(10,50)) + return 1 + else user << "Nothing happens." + if("forcefield") + while(created_field.len < 16) + var/obj/effect/energy_field/E = new (locate(user.x,user.y,user.z)) + created_field.Add(E) + E.strength = 1 + E.density = 1 + E.anchored = 1 + E.invisibility = 0 + return 1 + if("teleport") + var/list/randomturfs = new/list() + for(var/turf/T in orange(user, 50)) + if(!istype(T, /turf/simulated/floor) || T.density) + continue + randomturfs.Add(T) + if(randomturfs.len > 0) + user << "\red You are suddenly zapped away elsewhere!" + if (user.buckled) + user.buckled.unbuckle() + user.loc = pick(randomturfs) + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is + sparks.start() + return 1 + if("sleepy") + user << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + user.drowsyness = min(user.drowsyness + rand(5,25), 50) + user.eye_blurry = min(user.eye_blurry + rand(1,3), 50) + return 1 + else if (src.effectmode == "aura") + switch(src.effecttype) + //caeltodo + if("healing") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby." + M.adjustBruteLoss(-1) + M.adjustFireLoss(-1) + M.adjustToxLoss(-1) + M.adjustOxyLoss(-1) + M.adjustBrainLoss(-1) + M.updatehealth() + return 1 + if("injure") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\red You feel a painful force radiating from something nearby." + M.adjustBruteLoss(1) + M.adjustFireLoss(1) + M.adjustToxLoss(1) + M.adjustOxyLoss(1) + M.adjustBrainLoss(1) + M.updatehealth() + return 1 + if("stun") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\red Energy radiating from the [originator] is making you feel numb." + if(prob(20)) + M << "\red Your body goes numb for a moment." + M.stunned += 2 + M.weakened += 2 + M.stuttering += 2 + return 1 + if("roboheal") + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + if(prob(10)) M << "\blue SYSTEM ALERT: Beneficial energy field detected!" + M.adjustBruteLoss(-1) + M.adjustFireLoss(-1) + M.updatehealth() + return 1 + if("robohurt") + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!" + M.adjustBruteLoss(1) + M.adjustFireLoss(1) + M.updatehealth() + return 1 + if("cellcharge") + for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge += 10 + for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge += 20 + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge += 10 + if(prob(10)) M << "\blue SYSTEM ALERT: Energy boosting field detected!" + return 1 + if("celldrain") + for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge = max(B.charge-10,0) + for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) + S.charge = max(S.charge-20,0) + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge = max(D.charge-10,0) + if(prob(10)) M << "\red SYSTEM ALERT: Energy draining field detected!" + return 1 + if("planthelper") + for (var/obj/machinery/hydroponics/H in range(src.aurarange,originator)) + //makes weeds and shrooms and stuff more potent too + if(H.planted) + H.waterlevel += 2 + H.nutrilevel += 2 + if(H.toxic > 0) + H.toxic -= 1 + H.health += 1 + if(H.pestlevel > 0) + H.pestlevel -= 1 + if(H.weedlevel > 0) + H.weedlevel -= 1 + H.lastcycle += 5 + return 1 + if("sleepy") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(prob(10)) + M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + M.drowsyness = min(M.drowsyness + 1, 25) + M.eye_blurry = min(M.eye_blurry + 1, 25) + return 1 + else if (src.effectmode == "pulse") + for(var/mob/O in viewers(originator, null)) + O.show_message(text("[] emits a pulse of energy!", originator), 1) + switch(src.effecttype) + //caeltodo + if("healing") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\blue A wave of energy invigorates you." + M.adjustBruteLoss(-5) + M.adjustFireLoss(-5) + M.adjustToxLoss(-5) + M.adjustOxyLoss(-5) + M.adjustBrainLoss(-5) + M.updatehealth() + return 1 + if("injure") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\red A wave of energy causes you great pain!" + M.adjustBruteLoss(5) + M.adjustFireLoss(5) + M.adjustToxLoss(5) + M.adjustOxyLoss(5) + M.adjustBrainLoss(5) + M.make_dizzy(6) + M.weakened += 3 + M.updatehealth() + return 1 + if("stun") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\red A wave of energy overwhelms your senses!" + M.paralysis += 3 + M.weakened += 4 + M.stuttering += 4 + return 1 + if("roboheal") + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" + M.adjustBruteLoss(-10) + M.adjustFireLoss(-10) + M.updatehealth() + return 1 + if("robohurt") + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" + M.adjustBruteLoss(10) + M.adjustFireLoss(10) + M.updatehealth() + return 1 + if("cellcharge") + for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge += 250 + for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) S.charge += 400 + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge += 250 + M << "\blue SYSTEM ALERT: Large energy boost detected!" + return 1 + if("celldrain") + for (var/obj/machinery/power/apc/C in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge = max(B.charge-500,0) + for (var/obj/machinery/power/smes/S in range (src.aurarange,originator)) + S.charge = max(S.charge-400,0) + for (var/mob/living/silicon/robot/M in range(src.aurarange,originator)) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge = max(D.charge-500,0) + M << "\red SYSTEM ALERT: Severe energy drain detected!" + return 1 + if("planthelper") + //makes weeds and shrooms and stuff more potent too + for (var/obj/machinery/hydroponics/H in range(src.aurarange,originator)) + if(H.planted) + H.dead = 0 + H.waterlevel = 200 + H.nutrilevel = 200 + H.toxic = 0 + H.health = 100 + H.pestlevel = 0 + H.weedlevel = 0 + H.lastcycle = H.cycledelay + return 1 + if("teleport") + for (var/mob/living/M in range(src.aurarange,originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + var/list/randomturfs = new/list() + for(var/turf/T in orange(M, 30)) + if(!istype(T, /turf/simulated/floor) || T.density) + continue + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" + if(M.buckled) + M.buckled.unbuckle() + M.loc = pick(randomturfs) + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is + sparks.start() + return 1 + if("dnaswitch") + for(var/mob/living/H in range(src.aurarange,originator)) + if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(30)) + H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") + //todo + if (H.gender == FEMALE) + H.gender = MALE + else + H.gender = FEMALE + /*H.dna.ready_dna(H) + H.update_body() + H.update_face()*/ + return 1 + if("emp") + empulse(get_turf(originator), aurarange/2, aurarange) + return 1 + if("sleepy") + for (var/mob/living/carbon/M in range(src.aurarange,originator)) + if(prob(30)) + M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + if(prob(50)) + M.drowsyness = min(M.drowsyness + rand(1,5), 25) + if(prob(50)) + M.eye_blurry = min(M.eye_blurry + rand(1,5), 25) + return 1 + else if (src.effectmode == "worldpulse") + for(var/mob/O in viewers(originator, null)) + O.show_message(text("[] emits a powerful burst of energy!", originator), 1) + switch(src.effecttype) + if("healing") + for (var/mob/living/carbon/M in range(200, originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\blue Waves of soothing energy wash over you." + M.adjustBruteLoss(-3) + M.adjustFireLoss(-3) + M.adjustToxLoss(-3) + M.adjustOxyLoss(-3) + M.adjustBrainLoss(-3) + M.updatehealth() + return 1 + if("injure") + for (var/mob/living/carbon/human/M in range(200, originator)) + M << "\red A wave of painful energy strikes you!" + M.adjustBruteLoss(3) + M.adjustFireLoss(3) + M.adjustToxLoss(3) + M.adjustOxyLoss(3) + M.adjustBrainLoss(3) + M.updatehealth() + return 1 + if("stun") + for (var/mob/living/carbon/M in range(200, originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\red A powerful force causes you to black out momentarily." + M.paralysis += 5 + M.weakened += 8 + M.stuttering += 8 + return 1 + if("roboheal") + for (var/mob/living/silicon/robot/M in range(200, originator)) + M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" + M.adjustBruteLoss(-5) + M.adjustFireLoss(-5) + M.updatehealth() + return 1 + if("robohurt") + for (var/mob/living/silicon/robot/M in range(200, originator)) + M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" + M.adjustBruteLoss(5) + M.adjustFireLoss(5) + M.updatehealth() + return 1 + if("cellcharge") + for (var/obj/machinery/power/apc/C in range(200, originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge += 100 + for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) S.charge += 250 + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge += 100 + M << "\blue SYSTEM ALERT: Energy boost detected!" + return 1 + if("celldrain") + for (var/obj/machinery/power/apc/C in range(200, originator)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge = max(B.charge-250,0) + for (var/obj/machinery/power/smes/S in range (src.aurarange,src)) + S.charge = max(S.charge-250,0) + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge = max(D.charge-250,0) + M << "\red SYSTEM ALERT: Energy drain detected!" + return 1 + if("teleport") + for (var/mob/living/M in range(200, originator)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + var/list/randomturfs = new/list() + for(var/turf/T in orange(M, 15)) + if(!istype(T, /turf/simulated/floor) || T.density) + continue + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" + if(M.buckled) + M.buckled.unbuckle() + M.loc = pick(randomturfs) + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(originator)) //no idea what the 0 is + sparks.start() + return 1 + if("dnaswitch") + for(var/mob/living/H in range(200, originator)) + if(ishuman(H) && istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(30)) + H << pick("\green You feel a little different.","\green You feel strange.","\green You feel different.") + //todo + if (H.gender == FEMALE) + H.gender = MALE + else + H.gender = FEMALE + /*H.dna.ready_dna(H) + H.update_body() + H.update_face()*/ + return 1 + if("sleepy") + for(var/mob/living/H in range(200, originator)) + H.drowsyness = min(H.drowsyness + rand(5,15), 50) + H.eye_blurry = min(H.eye_blurry + rand(5,15), 50) + return 1 + +//initially for the force field artifact +/datum/artifact_effect/proc/update_move(var/atom/originator) + switch(effecttype) + if("forcefield") + while(created_field.len < 16) + //for now, just instantly respawn the fields when they get destroyed + var/obj/effect/energy_field/E = new (locate(originator.x,originator.y,originator)) + created_field.Add(E) + E.strength = 1 + E.density = 1 + E.anchored = 1 + E.invisibility = 0 + + var/obj/effect/energy_field/E = created_field[1] + E.loc = locate(originator.x + 2,originator.y + 2,originator.z) + E = created_field[2] + E.loc = locate(originator.x + 2,originator.y + 1,originator.z) + E = created_field[3] + E.loc = locate(originator.x + 2,originator.y,originator.z) + E = created_field[4] + E.loc = locate(originator.x + 2,originator.y - 1,originator.z) + E = created_field[5] + E.loc = locate(originator.x + 2,originator.y - 2,originator.z) + E = created_field[6] + E.loc = locate(originator.x + 1,originator.y + 2,originator.z) + E = created_field[7] + E.loc = locate(originator.x + 1,originator.y - 2,originator.z) + E = created_field[8] + E.loc = locate(originator.x,originator.y + 2,originator.z) + E = created_field[9] + E.loc = locate(originator.x,originator.y - 2,originator.z) + E = created_field[10] + E.loc = locate(originator.x - 1,originator.y + 2,originator.z) + E = created_field[11] + E.loc = locate(originator.x - 1,originator.y - 2,originator.z) + E = created_field[12] + E.loc = locate(originator.x - 2,originator.y + 2,originator.z) + E = created_field[13] + E.loc = locate(originator.x - 2,originator.y + 1,originator.z) + E = created_field[14] + E.loc = locate(originator.x - 2,originator.y,originator.z) + E = created_field[15] + E.loc = locate(originator.x - 2,originator.y - 1,originator.z) + E = created_field[16] + E.loc = locate(originator.x - 2,originator.y - 2,originator.z) diff --git a/code/modules/research/xenoarchaeology/artifact_harvester.dm b/code/modules/research/xenoarchaeology/unknown_harvester.dm similarity index 97% rename from code/modules/research/xenoarchaeology/artifact_harvester.dm rename to code/modules/research/xenoarchaeology/unknown_harvester.dm index 4aba7ae2c1f..39463888c59 100644 --- a/code/modules/research/xenoarchaeology/artifact_harvester.dm +++ b/code/modules/research/xenoarchaeology/unknown_harvester.dm @@ -1,150 +1,150 @@ - -/obj/machinery/artifact_harvester - name = "Anomaly Power Collector" - icon = 'virology.dmi' - icon_state = "incubator" //incubator_on - anchored = 1 - density = 1 - var/harvesting = 0 - var/obj/item/weapon/anobattery/inserted_battery - var/obj/machinery/artifact/cur_artifact - var/obj/machinery/analyser_pad/owned_pad = null - -/obj/machinery/artifact_harvester/New() - ..() - spawn(10) - owned_pad = locate() in orange(1, src) - -/obj/machinery/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob) - if(istype(I,/obj/item/weapon/anobattery)) - if(!inserted_battery) - user << "You insert the battery." - user.drop_item() - I.loc = src - src.inserted_battery = I - return - else - return..() - -/obj/machinery/artifact_harvester/process() - if(stat & (NOPOWER|BROKEN)) - return - use_power(350) - - if(harvesting) - use_power(250) - inserted_battery.stored_charge += 10 - if(inserted_battery.stored_charge >= inserted_battery.capacity) - inserted_battery.stored_charge = inserted_battery.capacity - harvesting = 0 - cur_artifact.anchored = 0 - cur_artifact.being_used = 0 - src.visible_message("[name] states, \"Battery is full.\"") - icon_state = "incubator" - return - -/obj/machinery/artifact_harvester/interact(var/mob/user as mob) - if(stat & (NOPOWER|BROKEN)) - return - user.machine = src - var/dat = "Artifact Power Harvester
" - dat += "

" - // - if(owned_pad) - if(harvesting) - dat += "Please wait. Harvesting in progress ([(inserted_battery.stored_charge/inserted_battery.capacity)*100]%).
" - dat += "Halt early
" - else - if(inserted_battery) - dat += "[inserted_battery.name] inserted, charge level: [inserted_battery.stored_charge]/[inserted_battery.capacity] ([(inserted_battery.stored_charge/inserted_battery.capacity)*100]%)
" - dat += "Energy signature ID:[inserted_battery.battery_effect.artifact_id == "" ? "???" : "[inserted_battery.battery_effect.artifact_id]"]
" - dat += "Eject battery
" - dat += "Drain battery of all charge
" - dat += "Begin harvesting
" - - else - dat += "No battery inserted.
" - else - dat += "Unable to locate analysis pad.
" - // - dat += "
" - dat += "Refresh Close
" - user << browse(dat, "window=artharvester;size=450x500") - onclose(user, "artharvester") - -/obj/machinery/artifact_harvester/Topic(href, href_list) - - if (href_list["harvest"]) - //locate artifact on analysis pad - cur_artifact = null - var/articount = 0 - var/obj/machinery/artifact/analysed - for(var/obj/machinery/artifact/A in get_turf(owned_pad)) - analysed = A - articount++ - - var/mundane = 0 - for(var/obj/O in get_turf(owned_pad)) - if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/analyser_pad)) - mundane++ - break - for(var/mob/O in get_turf(owned_pad)) - if(!istype(O, /obj/machinery/artifact)) - mundane++ - break - - if(articount == 1 && !mundane) - cur_artifact = analysed - //check to see if the battery is compatible - if(inserted_battery) - if(inserted_battery.battery_effect.artifact_id == cur_artifact.my_effect.artifact_id || inserted_battery.stored_charge == 0) - harvesting = 1 - cur_artifact.anchored = 1 - cur_artifact.being_used = 1 - icon_state = "incubator_on" - var/message = "[src] states, \"Beginning artifact energy harvesting.\"" - src.visible_message(message, message) - // - inserted_battery.battery_effect = cur_artifact.my_effect - else - var/message = "[src] states, \"Cannot harvest. Incompatible energy signatures detected.\"" - src.visible_message(message, message) - else if(cur_artifact) - var/message = "[src] states, \"Cannot harvest. No battery inserted.\"" - src.visible_message(message, message) - else if(articount > 1 || mundane) - var/message = "[src] states, \"Cannot harvest. Error isolating energy signature.\"" - src.visible_message(message, message) - else if(!articount) - var/message = "[src] states, \"Cannot harvest. No noteworthy energy signature isolated.\"" - src.visible_message(message, message) - else if (cur_artifact.being_used) - var/message = "[src] states, \"Cannot harvest. Too much interferance from energy scan.\"" - src.visible_message(message, message) - - if (href_list["stopharvest"]) - if(harvesting) - harvesting = 0 - cur_artifact.anchored = 0 - cur_artifact.being_used = 0 - src.visible_message("[name] states, \"Harvesting interrupted.\"") - icon_state = "incubator" - - - if (href_list["ejectbattery"]) - src.inserted_battery.loc = src.loc - src.inserted_battery = null - - if (href_list["drainbattery"]) - use_power(100) - src.inserted_battery.battery_effect.artifact_id = "" - src.inserted_battery.stored_charge = 0 - var/message = "[src] states, \"Battery drained of all charge.\"" - src.visible_message(message, message) - - if(href_list["close"]) - usr << browse(null, "window=artharvester") - usr.machine = null - - src.updateDialog() - return + +/obj/machinery/artifact_harvester + name = "Anomaly Power Collector" + icon = 'virology.dmi' + icon_state = "incubator" //incubator_on + anchored = 1 + density = 1 + var/harvesting = 0 + var/obj/item/weapon/anobattery/inserted_battery + var/obj/machinery/artifact/cur_artifact + var/obj/machinery/analyser_pad/owned_pad = null + +/obj/machinery/artifact_harvester/New() + ..() + spawn(10) + owned_pad = locate() in orange(1, src) + +/obj/machinery/artifact_harvester/attackby(var/obj/I as obj, var/mob/user as mob) + if(istype(I,/obj/item/weapon/anobattery)) + if(!inserted_battery) + user << "You insert the battery." + user.drop_item() + I.loc = src + src.inserted_battery = I + return + else + return..() + +/obj/machinery/artifact_harvester/process() + if(stat & (NOPOWER|BROKEN)) + return + use_power(350) + + if(harvesting) + use_power(250) + inserted_battery.stored_charge += 10 + if(inserted_battery.stored_charge >= inserted_battery.capacity) + inserted_battery.stored_charge = inserted_battery.capacity + harvesting = 0 + cur_artifact.anchored = 0 + cur_artifact.being_used = 0 + src.visible_message("[name] states, \"Battery is full.\"") + icon_state = "incubator" + return + +/obj/machinery/artifact_harvester/interact(var/mob/user as mob) + if(stat & (NOPOWER|BROKEN)) + return + user.machine = src + var/dat = "Artifact Power Harvester
" + dat += "

" + // + if(owned_pad) + if(harvesting) + dat += "Please wait. Harvesting in progress ([(inserted_battery.stored_charge/inserted_battery.capacity)*100]%).
" + dat += "
Halt early
" + else + if(inserted_battery) + dat += "[inserted_battery.name] inserted, charge level: [inserted_battery.stored_charge]/[inserted_battery.capacity] ([(inserted_battery.stored_charge/inserted_battery.capacity)*100]%)
" + dat += "Energy signature ID:[inserted_battery.battery_effect.artifact_id == "" ? "???" : "[inserted_battery.battery_effect.artifact_id]"]
" + dat += "Eject battery
" + dat += "Drain battery of all charge
" + dat += "Begin harvesting
" + + else + dat += "No battery inserted.
" + else + dat += "Unable to locate analysis pad.
" + // + dat += "
" + dat += "Refresh Close
" + user << browse(dat, "window=artharvester;size=450x500") + onclose(user, "artharvester") + +/obj/machinery/artifact_harvester/Topic(href, href_list) + + if (href_list["harvest"]) + //locate artifact on analysis pad + cur_artifact = null + var/articount = 0 + var/obj/machinery/artifact/analysed + for(var/obj/machinery/artifact/A in get_turf(owned_pad)) + analysed = A + articount++ + + var/mundane = 0 + for(var/obj/O in get_turf(owned_pad)) + if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/analyser_pad)) + mundane++ + break + for(var/mob/O in get_turf(owned_pad)) + if(!istype(O, /obj/machinery/artifact)) + mundane++ + break + + if(articount == 1 && !mundane) + cur_artifact = analysed + //check to see if the battery is compatible + if(inserted_battery) + if(inserted_battery.battery_effect.artifact_id == cur_artifact.my_effect.artifact_id || inserted_battery.stored_charge == 0) + harvesting = 1 + cur_artifact.anchored = 1 + cur_artifact.being_used = 1 + icon_state = "incubator_on" + var/message = "[src] states, \"Beginning artifact energy harvesting.\"" + src.visible_message(message, message) + // + inserted_battery.battery_effect = cur_artifact.my_effect + else + var/message = "[src] states, \"Cannot harvest. Incompatible energy signatures detected.\"" + src.visible_message(message, message) + else if(cur_artifact) + var/message = "[src] states, \"Cannot harvest. No battery inserted.\"" + src.visible_message(message, message) + else if(articount > 1 || mundane) + var/message = "[src] states, \"Cannot harvest. Error isolating energy signature.\"" + src.visible_message(message, message) + else if(!articount) + var/message = "[src] states, \"Cannot harvest. No noteworthy energy signature isolated.\"" + src.visible_message(message, message) + else if (cur_artifact.being_used) + var/message = "[src] states, \"Cannot harvest. Too much interferance from energy scan.\"" + src.visible_message(message, message) + + if (href_list["stopharvest"]) + if(harvesting) + harvesting = 0 + cur_artifact.anchored = 0 + cur_artifact.being_used = 0 + src.visible_message("[name] states, \"Harvesting interrupted.\"") + icon_state = "incubator" + + + if (href_list["ejectbattery"]) + src.inserted_battery.loc = src.loc + src.inserted_battery = null + + if (href_list["drainbattery"]) + use_power(100) + src.inserted_battery.battery_effect.artifact_id = "" + src.inserted_battery.stored_charge = 0 + var/message = "[src] states, \"Battery drained of all charge.\"" + src.visible_message(message, message) + + if(href_list["close"]) + usr << browse(null, "window=artharvester") + usr.machine = null + + src.updateDialog() + return diff --git a/code/modules/research/xenoarchaeology/artifact_synthetic.dm b/code/modules/research/xenoarchaeology/unknown_synthetic.dm similarity index 96% rename from code/modules/research/xenoarchaeology/artifact_synthetic.dm rename to code/modules/research/xenoarchaeology/unknown_synthetic.dm index 3b21ac36f85..24bd324e4c0 100644 --- a/code/modules/research/xenoarchaeology/artifact_synthetic.dm +++ b/code/modules/research/xenoarchaeology/unknown_synthetic.dm @@ -1,144 +1,144 @@ - -/obj/item/weapon/anobattery - name = "Anomaly power battery" - icon = 'xenoarchaeology.dmi' - icon_state = "anobattery0" - var/datum/artifact_effect/battery_effect - var/capacity = 200 - var/stored_charge = 0 - -/obj/item/weapon/anobattery/New() - battery_effect = new() - -/obj/item/weapon/anobattery/proc/UpdateSprite() - var/p = (stored_charge/capacity)*100 - icon_state = "anobattery[round(p,25)]" - -/obj/item/weapon/anodevice - name = "Anomaly power utilizer" - icon = 'xenoarchaeology.dmi' - icon_state = "anodev" - var/cooldown = 0 - var/activated = 0 - var/time = 50 - var/obj/item/weapon/anobattery/inserted_battery - -/obj/item/weapon/anodevice/New() - spawn(10) - pulse() - -/obj/item/weapon/anodevice/proc/UpdateSprite() - if(!inserted_battery) - icon_state = "anodev" - return - var/p = (inserted_battery.stored_charge/inserted_battery.capacity)*100 - var/s = round(p,25) - icon_state = "anodev[s]" - -/obj/item/weapon/anodevice/interact(var/mob/user) - user.machine = src - var/dat = "Anomalous Materials Energy Utiliser
" - if(activated) - dat += "Device active, stand by.
" - else if(cooldown) - dat += "Cooldown in progress, please wait.
" - else - if(!inserted_battery) - dat += "Please insert battery
" - else - dat += "[inserted_battery] inserted, anomaly ID: [inserted_battery.battery_effect.artifact_id == "" ? "???" : "[inserted_battery.battery_effect.artifact_id]"]
" - dat += "Total Power: [inserted_battery.stored_charge]/[inserted_battery.capacity]

" - dat += "Timed activation:
-- - [time >= 1000 ? "[time/10]" : time >= 100 ? " [time/10]" : " [time/10]" ] + ++
" - if(cooldown && !activated) - dat += "Cooldown in progress.
" - else if(activated) - dat += "Stop timer
" - else - dat += "Start timer
" - dat += "Eject battery
" - dat += "Refresh
" - dat += "Close
" - - user << browse(dat, "window=anodevice;size=400x500") - onclose(user, "anodevice") - return - -/obj/item/weapon/anodevice/attackby(var/obj/I as obj, var/mob/user as mob) - if(istype(I, /obj/item/weapon/anobattery)) - if(!inserted_battery) - user << "\blue You insert the battery." - user.drop_item() - I.loc = src - inserted_battery = I - UpdateSprite() - else - return ..() - -/obj/item/weapon/anodevice/attack_self(var/mob/user as mob) - return src.interact(user) - -/obj/item/weapon/anodevice/proc/pulse() - if(activated) - if(time <= 0 || !inserted_battery) - time = 0 - activated = 0 - var/turf/T = get_turf(src) - T.visible_message("\icon[src]\blue The utiliser device buzzes.", "\icon[src]\blue You hear something buzz.") - else - inserted_battery.battery_effect.DoEffect(src) - time -= 10 - inserted_battery.stored_charge -= 10 + rand(-1,1) - cooldown += 10 - else if(cooldown > 0) - cooldown -= 10 - if(cooldown <= 0) - cooldown = 0 - var/turf/T = get_turf(src) - T.visible_message("\icon[src]\blue The utiliser device chimes.", "\icon[src]\blue You hear something chime.") - - spawn(10) - pulse() - -/obj/item/weapon/anodevice/Topic(href, href_list) - - if(href_list["neg_changetime_max"]) - time += -100 - if(time > inserted_battery.capacity) - time = inserted_battery.capacity - else if (time < 0) - time = 0 - if(href_list["neg_changetime"]) - time += -10 - if(time > inserted_battery.capacity) - time = inserted_battery.capacity - else if (time < 0) - time = 0 - if(href_list["changetime"]) - time += 10 - if(time > inserted_battery.capacity) - time = inserted_battery.capacity - else if (time < 0) - time = 0 - if(href_list["changetime_max"]) - time += 100 - if(time > inserted_battery.capacity) - time = inserted_battery.capacity - else if (time < 0) - time = 0 - - if(href_list["stoptimer"]) - activated = 0 - - if(href_list["starttimer"]) - activated = 1 - - if(href_list["ejectbattery"]) - inserted_battery.loc = get_turf(src) - inserted_battery = null - UpdateSprite() - - if(href_list["close"]) - usr << browse(null, "window=anodevice") - usr.machine = null - else if(usr) - src.interact(usr) + +/obj/item/weapon/anobattery + name = "Anomaly power battery" + icon = 'xenoarchaeology.dmi' + icon_state = "anobattery0" + var/datum/artifact_effect/battery_effect + var/capacity = 200 + var/stored_charge = 0 + +/obj/item/weapon/anobattery/New() + battery_effect = new() + +/obj/item/weapon/anobattery/proc/UpdateSprite() + var/p = (stored_charge/capacity)*100 + icon_state = "anobattery[round(p,25)]" + +/obj/item/weapon/anodevice + name = "Anomaly power utilizer" + icon = 'xenoarchaeology.dmi' + icon_state = "anodev" + var/cooldown = 0 + var/activated = 0 + var/time = 50 + var/obj/item/weapon/anobattery/inserted_battery + +/obj/item/weapon/anodevice/New() + spawn(10) + pulse() + +/obj/item/weapon/anodevice/proc/UpdateSprite() + if(!inserted_battery) + icon_state = "anodev" + return + var/p = (inserted_battery.stored_charge/inserted_battery.capacity)*100 + var/s = round(p,25) + icon_state = "anodev[s]" + +/obj/item/weapon/anodevice/interact(var/mob/user) + user.machine = src + var/dat = "Anomalous Materials Energy Utiliser
" + if(activated) + dat += "Device active, stand by.
" + else if(cooldown) + dat += "Cooldown in progress, please wait.
" + else + if(!inserted_battery) + dat += "Please insert battery
" + else + dat += "[inserted_battery] inserted, anomaly ID: [inserted_battery.battery_effect.artifact_id == "" ? "???" : "[inserted_battery.battery_effect.artifact_id]"]
" + dat += "Total Power: [inserted_battery.stored_charge]/[inserted_battery.capacity]

" + dat += "Timed activation: -- - [time >= 1000 ? "[time/10]" : time >= 100 ? " [time/10]" : " [time/10]" ] + ++
" + if(cooldown && !activated) + dat += "Cooldown in progress.
" + else if(activated) + dat += "Stop timer
" + else + dat += "Start timer
" + dat += "Eject battery
" + dat += "Refresh
" + dat += "Close
" + + user << browse(dat, "window=anodevice;size=400x500") + onclose(user, "anodevice") + return + +/obj/item/weapon/anodevice/attackby(var/obj/I as obj, var/mob/user as mob) + if(istype(I, /obj/item/weapon/anobattery)) + if(!inserted_battery) + user << "\blue You insert the battery." + user.drop_item() + I.loc = src + inserted_battery = I + UpdateSprite() + else + return ..() + +/obj/item/weapon/anodevice/attack_self(var/mob/user as mob) + return src.interact(user) + +/obj/item/weapon/anodevice/proc/pulse() + if(activated) + if(time <= 0 || !inserted_battery) + time = 0 + activated = 0 + var/turf/T = get_turf(src) + T.visible_message("\icon[src]\blue The utiliser device buzzes.", "\icon[src]\blue You hear something buzz.") + else + inserted_battery.battery_effect.DoEffect(src) + time -= 10 + inserted_battery.stored_charge -= 10 + rand(-1,1) + cooldown += 10 + else if(cooldown > 0) + cooldown -= 10 + if(cooldown <= 0) + cooldown = 0 + var/turf/T = get_turf(src) + T.visible_message("\icon[src]\blue The utiliser device chimes.", "\icon[src]\blue You hear something chime.") + + spawn(10) + pulse() + +/obj/item/weapon/anodevice/Topic(href, href_list) + + if(href_list["neg_changetime_max"]) + time += -100 + if(time > inserted_battery.capacity) + time = inserted_battery.capacity + else if (time < 0) + time = 0 + if(href_list["neg_changetime"]) + time += -10 + if(time > inserted_battery.capacity) + time = inserted_battery.capacity + else if (time < 0) + time = 0 + if(href_list["changetime"]) + time += 10 + if(time > inserted_battery.capacity) + time = inserted_battery.capacity + else if (time < 0) + time = 0 + if(href_list["changetime_max"]) + time += 100 + if(time > inserted_battery.capacity) + time = inserted_battery.capacity + else if (time < 0) + time = 0 + + if(href_list["stoptimer"]) + activated = 0 + + if(href_list["starttimer"]) + activated = 1 + + if(href_list["ejectbattery"]) + inserted_battery.loc = get_turf(src) + inserted_battery = null + UpdateSprite() + + if(href_list["close"]) + usr << browse(null, "window=anodevice") + usr.machine = null + else if(usr) + src.interact(usr) diff --git a/icons/obj/cryogenics.dmi b/icons/obj/cryogenics.dmi index 5b5e55ca48b796b2098e65a29164cbb78cc15dd0..e063421fd529fa5f5dae8b2f58c6f459e2f729e3 100644 GIT binary patch literal 14976 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 z zY%gZdkfc3enn_58$$`j>f|*Y}VQqow^8&hx_rBBt-0AcdPCe5t_vrl*+`5XtyP*j3 znZru42eDi>95^>(Y*b$Ypg;&V`KyUj8J8z+r)>J;1+po7WjV*IrMaK2Zs6O6S^emZAIWnFnis%w4015b!3&5v^ey2NSaVbUTpMXSd+?AjNVld;c!zo=AK)x5^zBAR00G=wC9T zJD|uj%(ihOKGbUh{u5Z`hlYyvKK-TZ64UsRJ@rTU;eB2GEyS!@_bKzM^0C*8`$GHiQ!Sf2M#GjC=2R3y;0ln+#Y(k^cWc z(E0?$w~UH6ijMnZ^8b|O)2Cl09|kFp^Exj{VUs8-Dqe1fVV}q^Z7Ux-H?ypv1pG&0 z2yxTN+myGF!&b&HHYqCVClUEfV=UzljG11=q^rX`@KJO)sO}S?UvN0KY039Fwntd1 zt~Ugcxn;sc8#`ZS0KwdFySp#^u3%a?Co-sOt+O#| zFRUN_9CV9TE5GhR-nH+QD|qeP<#CIQ6>Bsx@nAd=b2!7|D;Yx}VWR!Qj&g_avSNJv z@=w*xKKLCK@Fy&$bqNoUo%=ASyj`^Cf5A4K`C|=9QSO|Yy<|^8ygF;YVb)QrTgu4E zDbTLlt&9$9o%9yK$_t3<5|$+X&<)pD z_btOrFOL5&Qde|XA=UK!w-4l}fYr+27fR^ecQ?JBjkE8M&L)JW*%Z({(gnJxV7 zjt7T|70bcF(M~1Pn#~eKX<*cC$O=B=?bTvY&$TEJ-}GEDLQk|LnQo7XcMf;(_P2s{ dzw!_Ot>LmjFt6nR>@THoU!;|#Y9&lV|33>W=2HLw literal 11432 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 WXc6<7B)xhJc%bzVT&?je{Qm%mxm4@` diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index a2ae3e00fd6da0678a2e5c5e3fa5e6c98fed268e..1cfdb8384b6a99193a317309c633f3ef8c642dee 100644 GIT binary patch delta 21501 zcmZ^~byyT{*fzX$cO%j%DIzW1DWG(RpdcVp!phJg($dIENw%h0?U5G z?|I($`~LZkV-J|!xo75%E6(%0?pYi~ADu$43NZqJe@oAFKJET`fHJfyahrTX_zQ~x zTV*qslh)$h`h$V_hflegak0Gyy3@QYZr_^!TU4^2qK$Zr*TlwtLon_$^YhSEv_H2@ zt)DOQc)@ z2pCgG3z}7m6B{}swxl-BnTR98j6OWQ*5yp<%p6j>MkTY!s<6`ctO?458_1~H7eXgl zPFpmPT*%RP#?Z}mtP7x#F&G_fa)4XIrXuMSAj1C6YK7D9tSel6=%ucWDENJ(bTS=R zvHoiMtT9_1+4At=!k53V2rn-&p3~sqg~<1>e)Bwj&4YrfiXxLv{F8`x@ji9BORGDg?e3IPDQHD&-DNXkAxqXfNSYq$}(3B)(JTmj|-Sd|yiZ8?HZ5PvKVM0lA%z=x|K6!iX zib9eME8@fhC-182>V(p@aAQA1RM@CTfg7?EK`Y|up5V9h^)_y9IB-rG2I|D)1+N(k z+J_H&M!rf_du(dZ#;9B&1H>7Kl~~DM7#VfBi1IEaH#l;LI z{eCdtu%2S(+L5oGbnJ%u=LQL^I8?R%VcJo{*EU^4?6dF=hcyA$G63P=`S6w{9#Cty zG>i6?j@|CZCDh@f4VPynZC~SM>dRG*4o$Z3^wq8>rt$tA*z`bQz{}|IW$xCjV}}r7 zNl6JQe%Q+8O&BIyv(Hg)ev{;9VnWDd(92RomISp(&R+B&$gfwmLdLfNvXW9#XmF;- zSgUpoOMa!_PYW)sijO1;q}sn|-T^08DEc5dxj)7>M@y~S*DE+evj>qlA%Ww#)2|d+ z69Q*lRM^Qoay1!yPB({aglLZ^GzD|^^1PWD!attcvmBi+`Ygw+uG%D!SP^Tc@U8lU z3(>Z}W3YstD7ScQ^a;_gNA}o8DzW~2eMo`^8A=t57i1XcEn1?iu^ye=jwQk#6-mIxlPRxP%!`Rb1N+NZ9g7h)? zL5DdBWG}=-n0sqlMmcFQtI&LwKZ-$c=iya+;EWQ7bOfH9oCF)vQavct`HDVNBScFW z*|*+VCZNtC?l4FxeYx;{8}LKf&>ndIDKSYKeszV76GUxEq9B#1ZmBxX4UdVP`ee`A zu~nY*zs8fADE2O)NR>P%CnrdI!)V%El&z;HrAi*z)YMex z3iAeCjLIswJ`Q^;;#ay~(KC3>?hwSnQ7T+<)#6`oRa%N~GHOi|0NjX#NTtw4b@C`B zKg|Ls$|_UPppFL#g z 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 delta 20741 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 TTI1aB00000NkvXXu0mjfrlk8Q diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 1ba74f830a8a2be84db982da0238b7124a32f217..a2950c0b0e66e6e009598bdbf7470cf5e748c825 100644 GIT binary patch literal 9127 zcma)CXFOY9+>aTQ+ErU=QJYeVMyT4Gs#2o0_g*E$R$EauLv31Wv}(qzQ5vfLR*6}A z#tI?N^}KvuJumLL_vD_>IluM&{(k4=zBSNOr=en_0)ap@ni{G`z`gMLq96y_1hj)F zaQpbi#LQRK&d0{v$mIy>J~?`AW$)JW!>#T&ShVfq z5_r||oXu}?h}K#_m&Pr5sTu_00col#n*`?Vz{5N(R%qjYQ7xQbl&;p z+dlh4xh!{z-2FM><&v*Czn!L#9Zyrh3xCVl#L>nZ!hok zG3Fxg^untHJ0&A07l(`Q>N+V)PVW7XU%%)n=W*K7-ripGyFJJ9n=nn5CGk*Zr^lad zvt|R)3*ViS6aOBma3~0rs#l(-!=I*ccW4RRw1dSh9KRs~)tL?N=Xp;*Jd8G|Id8hl zW7$?)tKXz_n>yaD*k-kYbUIW%pB$uGY-q^OL`8(4FlgS6?O6;74ptxzM|}ASOt^@} z^*#)zcu~cD_}Hi0E4XoF@%RmWLSL%JT_Gbvly@KM$I$l>FBNU=gvB6VJ&D`H`sEBJ zC+$|XJWsT>Zx~f(Ou_UnOb(cAQJ7kVf)RVN4SXnSKY;=o`hCt_l{c*ov)8n$uE>R^ zrKaY|9f{u>B>_ZV^lzn4>F;~oI=4%V3W0Dlyd~{k^qk&88q}PL3;y?gcITF?uJYoA zt$O?h>ce!Fn*rH=eCp2(XQUKNkSPMQH);7GcZ3(1FBTEE=imBt8p;DgqGQcOVq704 zXxxnmRCM3CUR9l!UKs+sfbtZ!K5WX?E00!cyNM4~QYoUFnVtPHmVz5LwFA}{rK4zJ30Vv4^=rvu7k{b3O#`amFEb5UQBYZAA3dI4Bhi+54y2MU1zJdOGNn^%7BD3`sQ zA9^gCxxCiY*f>=~I(_A9_z4bbxv3;jK-CC)ssf6L@>gD2p5#fTc>t562W(xBbd1SP zM!D0e=!fy9A^zgMo>*F1lCf;=?SUnZRre93k;8Z4)@kIGOTLuL-(udKJ z0rx7z9W%(PnZqo}OW0F6-}Wz)xt3?JQ$-@_NNRMZXF1ylkr^~nnX@+F=N9jO|)def>~c}lsIm#ZG4Ci@fBf9;!V?7 z=kE&o!tgfgb~ds3KF)F4RYIjdPD9oF!C_^{(y7MU=+`GjsTb&7wcBLM6COm3){I0dMX6_o^chf6DpKM&Ro?xJOA1or_ahEGbO_9z z`dtQP9=cI_Lp$wNW2tQEJY|WNe&-)BTPV&xZ1b46M=F6+V5OXA`FN>(o2`mUMqX{D zh+Zs=x7%TJ-ZQ1HiiJ|yIjlDGa*4o;-@K&~g8$f=qXqTYpVd$H!!fsj@ z7fAz)YQ?f{sGDf0qd~#^uMfD7Gy0d$gRYXFFcZ?8euVX^;mL^F8D@jXk1j4-ikgNf zrRM+pkDplF0h-BKeTjIudZ><8Kb%De3%U73#h*n=&)upVJT6FNBani!udTEa~!cU#G)`^oUc}o0lzV z^S8T&MQ)%@xzAG6#j~(-Qu71s% zb}O%gnwpvjUu}Jo%r)}WEjHy)`M_!6%gZvx_7$5J6!)b5iMFkU+BACaG@(4_v^h{I zL1RGqh1yr?#5nA#Cim;Q4}xKf-O(YImiYkiZ0UH;?kZ6H{r~ZKiy-c!7 zl-9zy8s6$r6*GYiYSH9(vD37++UYH@uJZSGEPaqkZKg?j(chcLi|hC!TdnfY!k0kW z)j0A1IJ4&Hv^W>{WUW#NN>=dHkyPhW971r&a9W2{jE}(F`d&*0wp-;r4mQnL_3=BJ zq56=c@gDv#mo@`l|DYK*a>g#!Z)7<<@ZrV3`WtU9Cjd4i=Q`BLJHK@h$RR2!x)ht9 z0=?Ad^#Sq&=6@R*BT}FI*YVrXFam$vNowLct#>URQQ@-2Oo2Jl#Ory=b_aXV#5)~miPFz3N?dRN^#KsL7^R!BR zC$Sfo05J||Kt{LjG!w>WXSbv_GmO8zgEbx4i!r?AVR&n8Z4JuL&tLLj4#ZT{)abd6 zOBTx~tMc+jjvXr~DA2%p4+jg$$l54B`Qu$cmrYE6NP&2n`>0Z^_3Tcj*4u4W*{?2> zVsnQ<%ws^1IT~GtDlMG$6gx&VqY*9MK;YJtj63%JVRVwF>C)8D71;|uK0dyauO|$? z1FRcyTZn-?Qn?N}TfEcKB0on0wYy)xJJL&`6R%M}DtOFt)wF&}SlP@a0 z)TaJ#f`csqs!n{laleeanE4))XV8iov*YP<-u%23OS|#vq$&OUjz1s6+c=%|(+i*+ z0g5ZSgg(_Djhl>K`>wjMCc^~iN`fkH%+>yRkzrkau=u^Jl-K76wM0idM=QoT;IcAt zb8~ZFtSx9?+|6x?vQSJ?S2vX&lHZLCZHDpC@(3D_;S||_r#SD@jLMD(9U3Cl0iwA$ zlGRP$_j|+PjnbJ=JPbwBn~aM}6ExC?+wQM~jy4}Ub1AF{%UlUQ!COW~MlQJ_{;C)L zi|-Nftg1ge9^S4PVti$55N5~~MHkrMV%JYyMLUjD(T5U}LE@w%uR|FWUStR?gVgRg~@GcyN5g))f+ct=RyDTNT-rAH5RJUdD6x`=5+ zJHMD%Ve#Z;G`|n7P+Q#D*@@u`&td+>EXVCWp+XRJ!tw&JAi8CS;jY2B^IM)FOG5BGqomo(PN^G?mnm(Oy}PIBS~QV z?$!hIO%gqpWC&*azqN*XB}=pEN&3`!eW6S#>Ih3u;u53#7TJhxA4%>^2(oRvKR)Ux z=_wDL!8zT{SnS4ZzQu@axCZ6p-=?BFHmtqq>6S5Og zZg41TG6Xrp(h^(!6j}Sndo>bX z71WoJI}b5_SnCgmD4Ynh64*LlB2#*FpaZ*)m`IyhfjVQzgUS{TAr>_(ckwp*?e|?Z z2cMZmZ6sb8qzIuGy+AkAZZqOOy;(}Kl}y}(MPFToDnlMIR`vEgyZU*2&GDNg^5-EF zlWV!O=ZRWyX!pypwbl*_zp5>VGzcbS)PX6IP8i;ynUb-G|ITRgKEUYF@Dc8l^lsp| zeM!22&3G?q4G1v^idr7(C4I=sk*@yN^gQIyx>tm;>InCq#8Y2~0^R|XrOMp~f+a4= zNk^<0B3}ll(#;3N6&iTIVrxElhq?d(0>a|zedR@muDF?!qs~rSNUusWsPN;ezq?4N za#cF?-G{g)64}p3yx?x41>~y#Qjc-pIXhBL7!MMq>J7Qgd<=g(*cxkvH2!>Whd%wA z9sGyzc23o~Y`y*@sO;!gZKwQ|$qCCBmM~7DktpArQ-9VJMlmTe4LV2<(!LEWoE58% zOetnNPb4GGgcdJ{%H%fub~ z<6~>a$Yp=DCA`DAA1Ld@N{Xo{WIHFwj4DmKB%h5Y-Ti${ZexxnFP!qC5MLqOl?=C) zzkcjN&dkjC>T^F* zV_6kWezfwev&zPo&-Skd1I?&|sbE@9l||W^Vy=QX2EzkJ2{Mo)eit#IfUC_?u_MAoc|H7 zh6@P9LbMqPV1YL3epetqZUCm)Gy|}L|Gl>C50u@K^gHX=jj?%%(h-hgB0fy>9AOFo zHXenKXa}-3KmhC#n?Ir*?Aa?q@R_Wm8oWu=B*q)2 z$2h)rmX&@1mcSg-7%e0^&K56caP}q{)g^e3!u~u2)cYKE5csl9%D7#ChCI@)4$TZc zJLI>H2MIlkFxp1j;xi9jg_d8aBlXvQ0+2DDE*Lx$CKI~WxfosEt@8smNs85c0jXbH z$k*k1*$|ze$XT63>g@h0$8wsR5B6Ot#4kR7`pp}XkIq+djzW~w=LT{0F@LFNf*L;7 zdzc{YbtS|t;^Ef+mS7STUPrh;tN*G1WdLu5LkfWjm9IyvenS+8<9A>tyTJ!;d=9d@ zI)y&3yGMyw^BEbZYz?e-!^}3YUIt~-5n9L;DV_~1(T}?(Kq#^r*!4Rr73wyp?s8?V ztZ!`zr>-y9CDa)Yp1~yF5{Rp>XbI9|YuGzXRLs6dtMEVcBlZpV9H5YJO&$eraJDZ= zGXzOLOwOy=Dt&Tl69otV1hc7jJ4#o%_}jrd(tOPYZaT@_yTdIooAO$#cx>lk*2=>F zR{2*ty%-Ua_`L|>N;H_M9K9A^j26hsuRc#43W63q1?YEk3p-*5R~rNS9^n#SWoiml zqGczKSy@JD4&nhb9)0+E9#W5bz)2vxHt>II)&BTCZxO)hxur;t^N>aWo09_y*G?}* z3-nu;EyET7bU zzSiKFO|#DJ(KR25Cc{)Bhjie5Gc7=*M>x4L$0W|M(q7oRaet|7Uyb!nrU(R}YG+_& z3LYpMV@QwoWH}k+B~-d%HzxiAWYz5-6O%z9|21dy99!RBN-{Z5B<#8(R6hwkK9 zKVXf{{&PL7Fc17G27*6Lk`{68b%6MRb2fA8j>G40T4b-V%NR6<;N%v*u|a!m znbwCq)O$ajS<6J(1o@&sh_=XCa9O9jxZ3zUcLvP%Cv))SY0KFKZpvr;aJ8%RNrYzs z22fd;Cga9G^rGBo*)-%;mihtx-wG2@H;j24k~&bbvO80Yz~ZTyHG3I zAVgVG}|mo`kZlynO4G>V5u z;yC3gXr2Ef5tB%D5nL_DtG<^7ROi}iM(hr^4k&Pc7`iF*Cv1bSE%<7(MJnJACJ|d} zdBdva<=wydvr}w9b6HvDwP=6UUr4{)A_vv!Mv)>Wu?O{Oo?9fX*e2NX$XaQS(X_pG zS`727N1IZN_}|}m&53yzTi3#p<~6?GRq9Tg$8#RbZVjBy$L>*CM4>}AZ`RG3OeS9P z1$&;Ha?e(U^#pVsF}LC`i3nzKwFksy(l3DXy{D|q^x8xo-YGX}SvZt3A5+rqcB9dp z%01mbB9_O=(ssRf?up>n`4g=InLprr!@sH51To$aaQ___q&sa1m6ENv$lbJ|h(&B6 zhF2%Y{DWlXFZM0B9Yb$g#Bk@lZ#SM!m&<(omU9GsC!1Y$_wf7tEmM}f9&RcHL7s)< zuU`Y%475tT@~u^xk8s1Da!p_x87>f%(X@!B`oPG)sb+ZcFT2+*?&V{BazsLB_Dk|k zwZ4h?{)3fJ5qx?s2y{b0`Y?!%<&`h~8HjH7=jIhP;yrx|?H+i4(yorsdxPDQmYi#- z$?`vN-lp}$W@T)!Bc5(XtX54*Hg0@+%xSt5n|`BwV9n{Jv>hSUp5WpRe@webR}j`^ zg=s(_p7Zm687!2rlg<=+r=_jOm6##LJU%v-2HUoZX;s)G2XQE#J>d9dzn^)G>E(XY zI25ShLoU7pCr@B|{C%x}@b)>mRoClNDPLdT6)+fFK0)mdJfYfmD0{=+5C=5l0}0C< zY6n7_9xl*vBn%Atj>lT0u`2Q9EKXv*LV{-*?dtRcAt!kW=i$vimjmy&TKwt4cwpjb zx+*JZlDNA!n$-FZjPQjQp}@j~@3IknyLS81Vi68b4?x!X7+U3i*vtiW$G`cwnCPUy zZ4;(!29_+Q)sQ%}@xHHUJmwzF610)wFCU7$L zkTV^9AAIJRu^(ITwEI`*0*IU(ObQ&nmM#Dz4^l}G4o(eUisjw^Rnxz`yu1w3lfs3e zeruRz?j)9suB1uq3BS{coC_a_439kw2$)YA9;8pS>pz%!-+%B~ogjOwHR~<^Yr|r& z!;c4NvE>Buj;7^SM{n8ghDO#}>NcbIPJo{bL&i>-r3sVVe5Zz{TUesAZbAz^X#dAg zZV>4G#3d_Rji1d*j;xnrGk3z=&oVb;h}rZ^{58mi5KrXp?uNZ}c=YfS24S(K6j@$y z&LyuPpZ4fcL{DtvSw>E@g1r18;=f)-+?zLCJ+;43v5$jK7fk+ff;s`uHNN^ffH;Po zQ>e$ry3Jh>=Lqsw-Z)>MscxX21Hyd^#^F)HHa2H__#u0)0O9)`v0O?!2s zDK;Vs$$-9p=Yj$Z^^4Qs&hv30mM;Ij#{LrxTwbNUR=^r~UN>*JRm@_={KE5z=Xm2z zIxV`tz-Mr!IJoQz)0dF7Uya=>DqoXKqs$6?pQQtV^6fI94~Y*g+X5*OYC2V?cQ{mb z59K;MwHbe*{6z~=9A#UJXs2&$+eaj&j6=*0i)x;m8<+K37vP_sJEMH_5qvLw6FkVSm(2LQ^fMy@KK)8 zozu%0PYOVd?p5zQSqe$#vuq1izY!!#yW%{H^BoT5`S8<|$6N0P0~Y!(J;j}%mu@rz zt9m`F-bF4W=A8e_`yK)$|AEYXglkWiJzM8q>!tQOBuXy>`zk2vW6OuMeQe#@%domT zAHWFi%XL`amBQZ9D?1nAWDd=E)T$Jo?Hi5IuTuWoppNwmDv;ajTObK9`ie`ExsIP- zvpj()0Hv}j85hXXPZBl3YUo#r!JcPRk}FtaO@6;6LGvr$d+whJ!@fFfOG|y)8u@bZ zA&`{eGgjLl=+4#O?&5$_H8L(^VGHVxt!-@CTUPy%;gh18WS#flDK{)nomSW({?x%21%8iP9_7_u9Qh3-x{%Q9oEn0l`e++7?hrYpIg#&>GtUmd z^Vfdc>@|FKW3&t@hCewCeB)5-0^eT@*`g{0Y|3%wrKIPutxF_YQC;oxwAc{%v%}Zl zpO@k7dWkr&d9;mEDI%8K1vYyFFGO%xub)VWr)$}AgSbOIDS=Bfh#KL<5NS9*Xf^CqoyNdPW?6pz##p-Z9h&( zM(4G%?Cc#xP`+1ypx5#OT1r1LCw4jjzsr;G5iRy=i=!*HOA`gZh){;d-9u_^wh!;%Rr- z{P^?6%dak|_~lAjN&KdAV~tsncxMhw=j9(xXUjU`o?0$di+<#Cf@s*wckpfowD;Hw zTeyDHCs()p5aSZNZnRhj3Hw9$p}pzLo{!reQ{V3sruzcc2h=AY=7io!MQJPk6y2$S zXc0?b&qFx!LPEN_09o+Z0?3$n$mw?QQr0@nkEW8Q{yBi6*eLI_&j8YKFXEdy>dU>SW=}tD0rgan{xYvE zDWyyx8_Qc|Fj=Ih;&Iu1%GE>Cp_Xam9QcfSFFzfA2^>!9FPo&yqPq3HA} zhj0jYApuDTb>c4bIh+ezR>=!o{{HHP!gSOx)WMJFZyJK>9?feFX1lmg-dZ+xF4Yv? zVgcr-_O>3FhMME9SZqG$40I=dIL!QA>UkDvi~WhoO+Q&oe2YFT_I$QcWUA$Lv{b_< z^SNXovdp&sD~n=dyR{7Htf-w!M(Jc_=tsD&02pyVAK-l6U3$<>Zmsot5oLD7C%TS& zrL3N4%$1ex?tjd}zLP`%js15usYN5vdW5sWH(iolD&*MTzjdfs*cPQ74a8eC{JedE z4X$q|BA_F!nDaW@BnkN{AY#f zhNxm;*biX9zL_3cay?}-NxdP8x^v8OVo=998`e{7kg z44-bv{YrMrm!_ekc$&mkhNi@V-jW6mVZQb&(~)s@K-sZaL&nzBBmK~k5-Nj7=I@vD zKp^7A>u&*eBWnx;u%AJN^n*XX*1X3$+b2LU6EWT*QeQ|QLuA0=mh+=p@`?@!k~;Lk zI6T{G$gj!`_5;XBD22?RH4mp?vHa(fZ>?I_*Vikm;NXd;T@fbWoAwMhi8xJ||4*Yu zd}XZ;y8Qh#rKbM7i1AD$KV@vOFaS%7XvbpEz{D&*f>=HxeMYI^8{6;M-oHC?sXN zcd{4frYAw1rakY!&`Cu``l+_IA6V<1hx2bziXLDbfHEaqN^x9g(k|wBsq$^GXXVLV z2=L2#<>R<={#_!F7d7aOGwsJ3FgnBzkl)Q#VAp%8*vQarp?O7jyQ{XKxlmWRpvsg literal 11038 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 diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi index 71e6f773c8f2717a9aac29a84d68ffb838a1c4b9..6806854a242ff76d0c229673c004a4b80f1eeaa2 100644 GIT binary patch literal 48429 zcmZ5{1zc0#|MzI55u_26R8lFaQ7WP$hzdvzF$n37v4M1#gw#YpL?lE?VxzmeMN40|X-V_kC{ce)p~0Ygb!mcUvb%5Xd_-KXt${SDLAPV2{<%Zz_56ihR5ygPCFB zcOH{%?&nX^NNIj15aV?bFvgsh)9UXYjy<}04u&7Zbi}&#z|d+x5R-phcs(uci?8&& zJe6Sx(lW1!Toq@2rLSRbxN{iiF-+1k74uvv)~WgPx0ttz%dhsVR<1rlpr1lBO@cK@ zVpPgAF@NwUPr7v|p~ygf&Tt&%r7r$YPVtF!!mc*3zpfQ{3ipaFAkR{`f9&Nh28GyD=*rxqNcOB6 zi(P#znD8J>;Mr6bq99Ykp1W{%v<%)zPXEZpIMQl<$MW_lzY@vxA2J4?TxSK5EUNXr z8{d*W+IKY+XN|W%f<>X+zD(%wtF6^vs4#s2!z?tx!z|x}hFKm0d9zvX&PNLg{Ych? zkMXSWADwcEUwX%Rij%MbCp;E}AQJr_m@~F}#OM1jSo(FJd0Fo5WZ$W8W(hl)R1$ch zQ}e6AL1W5<@kD~RY^sy&^<&BQ)m(9e6&YEW$(3id97mHu74xIt?*^eb0*s_!2jl)SlFevz?fNG*(f-peg*hK& zxp-G7JFPk`C3mR?Pa`pOc87@H`C1p5`~$QL)iM40@%$#!P= zjU7rxAx~}bP_rn2M)0y0Ka;DT{FJ@tNjTS+nX@W zN&THUZ{7K@RGzRK)WMeBGW1%WApee>>X$p8gVE76ydrDPFED(JxYpHU5cH*y*J?TF%FtIA(tZY7lCdw# z5G>bDs5ZdUPYxCO7e{5)PkZepCojfvc*f|`B>zEkxtbWC{j7z0*sZg7+|7<_fqVVW zZ}mwqr}|(2{20*n%b>Zqz>jGQKCkTdL*@~z5FIJ~t#chr@*!#4#ZOx){XgeA`#}p7 z2D^HRrHSk|Hw_B8qx-O*BHc9i`PzaH7wOWrR!DOUvPwYSoOOLiOr} z|NEL>ukJF3c!d05@wsegKu9gzV&QF@(!M{hrLcOvJobJ(hLdQu@XPQsAgdNpzHo!h zkH@6Ef6w!H{D6Rop;l3tM*3;MqYZLX1(FSQD$o@#7Ay0r-Uz{AIoq>P1XrgA~b3 zDruj&`g=xc%sJSRK*FmbqYs`zxiKGv!PpKc^?{_w> zBYnu11`AAK^MW6$(G*B9snr~ZGMhiRtZ3r-Ny0F_?#!5V?KlPoiy!t8c7(NHUT0Lw0?MrX*AED!55kIfLiuNd~B zyWp>)ASsRyi@V>CHRK5i>e!@(z?XSmVm0GB*a3=b9{XG1 zWylXa{vEG|RKQ(l9F@Bv=5$Sxu+7dMpg2&g*skA*(0tI#9tNJn*or=Xg1mFMk>W%f z(%sD-0-oD<$kA8C0fSQp(}#3-{XbN(dRjU2dt@bK&x`h6LEBMjxYY<>26lURI!>yf z8tnucokCv2u+7p8zQ%HeE`j~XHIdSXH&)z4_!3q&oibZ4;mkS(kPA&7$hA)PU@$K> zp;YHU<`*wc&9_g1&_}6_O12tZ|U4% zd&%F4n~YEw)z8XEvm>}wRoT@+UP#HQ+RZ{=buXymCb4y0eUoHv|7{78C7Z06%DpGG zkib~hKtY?#|8vL!G$NEzeTN{ScetH-p^a8*V`6EAu(KU;0kdU8J|W=){>Rj2a@h$h z6Nb!}-4NDog1n2} zcY(TAxB||qTS@Lh4HjxK(I4%K+*eBO4&bZ52iE0%2i?V2r<*HeCk$)Pc&to82k`mI z0oG2(y$};e+DlO@zo^puZ!j_ETQtyKXs`vo23>7ulFx|!yQ*O<0oa3eqs-LB;KrZ| z|JeC8Q);`B8SZPdh_fwbo&I(Og@=;We(_ZUU#o?p^OOm@yKXC9NZ~#R6d{Z7jsHmW zyCeX}HQRP4YKp&)k4>Vl;Huzifewd`!gMA@*tt%i44Fs(yY@q=e`xp%!FvKP zdYL{_Zsz-Y4rq0n?<7XeHDj6Zs3%{srTRaloesl1)mJSEF1%s##zQ0@2L|0nX&+ss z*~0RO`jSo(qJNzv!_Bk@DL+D3CNrGjOYG-SyAXw=AMe3OgoiXFzi~q7BcH$$?C6=; zX#^fBN#-dvcm?4LC#TsPn8Ct5TB?2Ef<`bHj!sp(K|K|kaU#-jo(fmDEKAquww~c4 zRrw*%XI`ZgAJ!PA%@VlnG%3GLT8>`*jYDrz_fN+yKI3>ES$bxpJe2AXEJE=2+MCbL zgi5xK(;QBnsT@Q>mQ5{Vr>Li}YQ8ZoSqGm{H>YKY(Inny=1d3vwPm(EbVeBwsLQyM2NkHpHg>1nf1h05-ZI1=+?Mg{X}llLXv7tR(GS z*i_n@5j=L#&iF8MMd}Xa@>$=y=2cA8fd4_bI6j|^IE*?JGh@Y-3POfKYkU(fIN~_7 zd%(rauPXXpCPc)tu93j2NOO4fE11=}rPq(ayG7EB)Wl%;pC0WE#W$x$)Q8%zS66rE zcpoIKJ=-mnj#CTG#LrA@{%-N8_p;6u?_-}h@9LUBm#o_~%-6&WLjj91izB}L5JP;= z4shV)Q*pL>#M$mIa?4p`cKmM@)7Y~CVS32`_*vHU$=d1pZGx8->)xy@NXtj+M|)suuM-QYStagN@D5D)bbTZq@*JX^2lRZt#z~xk zSeFW2Hp+HhJ1a+}@g3yER0fJ;x6s_C&T8eH$B=wIBN9*>}T*dzWqmPRBUFnmaGF( zisY>3^XunBZu*g^1ryj_(xYDRg)v3nYp!Sh; zLgO0j2Am;@Z()=3_chSQp96w^_wM(V^DqO;eNt`|4S$RGZe01>^w zuU(It@LMVHTVQ0yY^vG^gODp!5&----C)0UxQjn?}wo`n!5Vhp8VP*7Ps_;~Sf65?Tt(=@pw?8r*_FOddtC@g&?6>6% z>h~)i779YV87kxUpf14EFaMTpLuR@aw0HP zGKfMr5R%Z*LCNx}@bUrwhB0I>OX@VFZymiZzVl_In0sJ;K5g{HVJMZyVfCx7cMZPQ z%`0*B@&Tr7C0;h}Mm4sIB9-%RcJ6uGaNL-!P+2HU;Xo1hHz!hyUtTSO6jP$aDmgc= zj<{(Gc>i2iORCsM8<(dOBvIBab`z$jl6vhDzAZsYi>?^>SAtX=rE^d7QR|zXwz6QP z#+ZqciBPp}c#O856Jy0I6Gz~gA&9zy-x6v|P#!`}dW9|WjReosE>SH>=wRNL7B=o1 zpZ`7LtsT=8;D|n~E|BH_o{lJZJLlbCkyaIjIX&@OMV&8#PwVjg2tBvz;(?B1%h`(_ znber!)tG#4I~uh2m%aIAVW%h)eQqSV3EJS6@c%~gxo48T5x30_VqinDyY9PJwgDrC zKF;*_N&T5Id5kIKuSvu5%6zX0Td&`FcCQkUFJ|{Pr^k1KzMbB6{qoJeR_gvB3xZ4S zl(!eJ_Vl^DZd%F}ZTDJkPjC$iWdVm{&o#26O$jr6J1mmyM8@##rkWw5mB5X+s! zM>pM8F+=Dby7a*X;1b)Dmp$tnaOo!ogr!0QbM?WB^Luz2@=n=#v z?{R@Jx+PEfm_LptQ7m3r^Tfv(uoC-Hy8^P8G3Unk2dVo3T$hu?x)}sTRI8#sg zN9Nt}Yrj`p!S@p+*(J|L|tg6pO0^=6Io~{D7a@zafy_JfDizZSsOiPp@z3& zvZrY38W|h^7XAQnoSIR3R1@ZkZ&7_Qe(feE!$MW2;WyHwbQ;Ge3U6c1dZLTeQ>N-P z+Lyq_glww#ehGo_4E|%Zkq+Z$%z~NjqHAQ5zZ-xxEd>6NDO`AZe8I1S3!2@zeHay?oWru5#s;P;o4wq>UZxptDm-r%) zvdnqJHMR;C6&InkajwVYb;M`z<(1&HRe!4HT}fDLM%b%*Kho$uaI_FRv2FV#u@|m) zcU$gC_}nL6CSqwNN;qAN&UaD%Y79iD37k$eFYNQ)`)TdJgsM5Wu=;7j#9VT3czC0z zb>rj>p7b|CB(nQ!jO2|;>)R*S72kd9!FyTbPg~B{r6A%t>uVd^lc^4?Yfm7w#I5^xd~E#jbmBZO*Y|&)eXV&jomwDsOv=CU$k5eI z(l+ycoZP#YLrAHhcv$5D{4>UUT!+=sq+i1Otxqlw zw1O{O=mc+;Dt9lQ#h**BRj8K9R;B8e3_uG@uS1=k#LcYzUoR>ZB|=}dq;2MI8t#6J zYwjyF*I0fgB@Jl!S~kHy4pG0;IyvmWcTE<_qC-BU5CZ#8>_jUhXeW|@MN{EfrCbr5 ztJ}6Qv)#0Ga);~KcEcvQSf;ELnt^#1qSul=ipBM?hTdsdh41}67)eLn-pR-9zMr7F z`HGzi^uXMr?56Pqq`S<)qVA(jOUuyIT*!eNp=IJm%*5u|Ccr6T@|Q6|NhLPW;OoC6 z{+6c7Gtm9D3yto(7mNC74D=l<6d zGi0Rmu2F2ZZywpv1+qmSq9Nt!o3}9j4Cit%kTjqn*M?etwU{X56f?eIHg6r(h(q(R zEzNXy=B?U)(CayC>V=JmB%^T$w#RJQRZ2}adK`tGrOes!s;Za@EVvQ&=JFBa2T!#g z5KY+$j>*H&SN@-kf61QWZ}mhT-^_v;(HIiWn)x_iA7zwA6?de}uE}ZYp^cDrhkmjF z&BBW%?q%49MGFLyBpgY#-iw>W~1yHmq+|K1g1%_y7;K| zvL7sP-(Lq+6#uTBD(RTM;!KK(pqgRmyiEy9zXXrwOYWndrVYIMEY7HSQxq_ji{Mb9 zjH5#V+0ZNN;Fr%_c38qf4VE-Jjlc_v=b9}dj!e0-kTfdyPlGaa_fO|^I#IXsTbu|f zUCT#@6dio93Y^Mc-Gm1W7)c3Dq-53AOL3}g5v9Kr+6QOwC%)o?+4EP^dK-?3%^wyg z3wMzS(mOn6++Qo>GOvYEazS!2{+TXb63XW~D5=ETK-U}k;7*}-+%^+x`mpM*KPSlN z7t^U~P?7E%V8NcpnIJsMVMUT=?zpUrx&y}rIBj^1Nod+4%km5MP-!TrJ=-{6k)il` z$%T0vAJUWT(5COIQLJpUCX|awhIsFhoz7$!A^{fEuPYfavG*xR?&lMiqp`GDZFAPD z8V&}%ZtBQgGN%%hDPuf%MYTco$q^qYo(B<})@gGsKAI~#-*$UN`>IZO4C5b(SqQ8n z%jk>Wh{X#m%M(_cev30m9#n~;L9OT@T}mG2#X-2WT|5#3##j%)-62aam}P7T1zr}R zeeY9!f81qbe19KaASq=$cJ@o@UMXr4d!h4(U~s_g6WPd0&AIi{QGE^`xW6m)vaga` ziHD0Eo2$T9BH%Lg(*ku)27Luvrrq4an?EwV{Ig*B;nLt|HK_XB;aN+8#ZNK9>FcpK zJu8?eo2yH8!`!qJ33C!%SX%>Hz$8Q-$VYp_yX&kjxl}+l%{p#MUw@Wu~Fvd%=z*;vB)=ukqX-CIehy$xqNh?@E zP{7ZQaB2r~F4GL>ky9$0*8%Z>y^{cZqrp(yb2}z}Do9=a<)@4T`XLtv@9kt0#wG)H z`IWMa%D#CBn4Xp~=b$SAj8XGG!fo_HI8O%gYAgp0GmcDFWDjt_e73|lzTMZg&uvddCPPg`Be4j!z) zdFho#P*<~z`+L6z1v~vIWi1v4Mrm{JLl*p{Jwk$=Vf`LXOH29b1n(34YEc#}ABT)i zzNr9z;!;w4pnXKp#_cy<+Nt&ubqgvyo_ z7W=GLP3t2{Q7c+HrVYP+5AuV^6sqKNe$6aY5CPZ5WFw7N7pG*s8l3;Bb43Fxgc zg&d>PWS9uq13s8~?dptLD(Z3K(&eGa>EM)D!wUC`FFz|UbzyX{>-(u8A>x-9>3>b! z^WkPl%-}oPqcgTp{7j<;gD^~gMclQ*U9kw$YJ+ad7~QF$IZ8o{W+Dev>RYmj^PyTH z_|XAaaP|j2{vX`WPfx9((zcN2cLl8m81L!%W~dT3MzzVd2?xnitP;WBX5}KwUYv#v z8oDPeGK0gwZBDBS$gSrRP?3rF0m%ns+kNcwldD!$=ZTaAG>>QUp(mNR8 zCE```G<~-`KUBhfS^5J7{rO-Rzd30zGIq$_^PU%z8{Hcn=L#gz`*C^-jnmvkO^eIpZZ zAYQsH{_5MaKVitJ$QZt2s+^uL*RLmlW$9yzbwL3c<7$mVr%W;TgKEARSLbe?HKX^v zIoWzEx2t0mKI~v$!4-qkwBL1ipc?3^dzVi9;OtK1<`~8}$zQFTZkFO$5@2-;;&$&6 ztq_YPMeZfoIYuKZtm!Wv8uX^f{u#`qiM{zF(H~n43UGp#J58@hInvk?x@*GLP|yAO zi_iQP`9fBPBl(mukU1Qa4$hrN$=Xohoma{n);ytYm*^npM1KC8(5%!re1_mpP$Zw0 z(b~daM0|WsS#@!1#FIsIvjK0cg!$VCPZr{aCP`WE<2p{xPV2hhaGd7URXf2pk({2% z)iTMO*JrM@Jgl39)aIZI@?P@D^rL%o~m;CWNrP>kSO<@8X_3Dz1di44UapG8C#gMux? z6<^0O7mvgW$jY)_#BX<_4-&}i3{ldBoDBa(<1DPd7kTLX!Bwr7tiZTfjKN_t^ zZv$N|ip0)YHrtx-_9ZK{BNNazxtH_w?(J#O2evdXB1YKbXP9)!cIdXt*~0 zfU77EfPmb!5diI3TyuCZIPzZ8j8&~QrfYWd#cMhzEG;#W`GA{HPp0|^dH2t_)Zo$5 z)kDYmxQk`bkIMf*q{gj(g~dcm2`?m)8Cd~Fj-%X*^$RhX;&l__194Qd5M-99*IR8; z`~<)G2pi{*IF!%xG@}WS3U9-qZ*7rk>UAh#YnPE}%OmO!}A5oo#rT`x0Ls zuQR<>0$hD{T9bIob)tur7(wZ0#-P&U|DFYqU-ecO`{wWDYOH-2vhhSeAiA3&Y2=@f{JT?M>u2(Ss*^qijmvtHERR+z=Xc`e}!o_&8n_nZrJ=IRXVW=3FtO{g{YSr9=Jqtn5)p)#N?r=K7! zsfG>yLN%~(Zd;PKg$RLUE9G+vD=%FT3$=;Z&SI?T6ym)Vk*C49V50t2OUlbG0VB$(Yl21KJEvHlgnd!h#K^J{Vk0`4QAA*M~6gj(ALgl}`TXCsGb zZO*kHX%{sJWfq(=c3&VJU45K)SPoR5uqNw@0nzz;dxsBc5bX27Ic(eA`?=s_R!zUk zWAMueqkE65pNG-n9M?VFQeirTand@>`z%kMcQSm}|J?R`O&G9P63!H*zBKbG5b!rx znf?js{~Q=89;iu`aic0?A8q5%fNvw^gqD}Ud=KBSwnA#_`Emn($Wasog|zQ$akE%Q zazbLah-T}ZY7k2WSo5ad0eo~%9CPH=1yQglWk0a>7wUs+*|8WXOKvY~Uzv?!GxfqZ}>tJBgt0M(P?ji)1fBi$+X*og`cD-wD3^P*;3)^oibB7 zLf#3w8OW|nL}7{kChUzi_)%Rc=C2n-dC%6IQx5iUpHV?>!TDKG7GE5j$gha8l85;gNW6=J0Wy8)-G#q(pL;-Rd3f&s@dax7p5>S#fxy5%IY$>d-&Ihin(E;w? zQd39v>Nl?o-|3DQzFn6{{*u5a+t8?v47m%-+Yw0h0X=mVkx#{csCZU_={_b z_?v+f^0+Z)D~rQT5S=}h8)|I})j_4{DR_`|0s(*pe7`8Z9-tr{C=ql3i8lg z%(lBHHxnOA7+~~6TnuU9ALe7e^1VQWAAh6_d+Yv&NjK$^TtY_{_Ckl96tge`IxHeC zqQz)U%h2vlQu@fr&=h%Zi!y#EY5C?kVE|r3H<6JsfW!j{-9z25$^KJaJ6F&EQ(Gh*K zLRW1gao2HP#^stc)FxeZWopVn-MYHzn&3k%b=_j!U@$)0JHzhw@wQ3%Fae##oQH=P zwURZgsyivd%$fO^(1=6$cs9N96Vj9<>nZk%MO2f*YwB5p00z?KPySSD- zpbNVu+m=mC@8^@ob>&+e(2B7b`Mf4yMFJX2UnQYnwBNkl5da7s;oOwi<}hF1C50l3&mWqO>qP8Jj4j@I`h0CrRPZ~P*@gbbAf73R<=)#7?nOl2P#d0x@Xzd{^@j)t&;Y&dOaX^xHFI?f zZ8;|FUtowLa+uBIbYb+5Jda+6qj1nRBGuinzSn|T(GI(UZ_i*z2)C>)7Pnni!RV} z+~Wn4{M26s*c~_*`*ix?^wc|r52M&h&#FaDZnfKeAyvY%9u;@;2Rxx-py;dF4)9|D zg#DoWI=T_qg4q6ND~9NCuYL|o(S0Ivj;OSrp;eQ^UNA`kR-ENfBPMhiUQ%Kdt(FZ9 z;(Pyo3lH#Vt6h)XG|r(iCynbx7;u3d(4y{qVc~B28q4OKC5PR`J%P>)N7)?s)B(q| zcD4-M^|DKL zE;hE@w4=Q1YyJTwkkU4r>Wg&iCD=vn?!#MN^M`NDTc%WhKD|};JWM$n1z?H|@uj_C z;sE@j6WjO4>6E)fjRtV283%l_Sn`J=cI~oI_)eY=HKD9$y}JrqP-nO_?(zg={BR^S z?E+*CS728|;POS4Z!Heu6W%{ITT%XQ<&m^%&ocWm0V<5PO2iX`XI z&GCMDfD62?08IL#LP7&AiWLOEqn?0GmO^&u#Fbj zE8*FPbf#{eDrbf(4`|mr0=8dqnmSYxQNCp;<3F>0_m^JyCRxL)!7jZzgN%lyfo$R* z3yrMQ1}1Zty9H-h>x_dEnyfrb$gb{bA%-O{;WkgKfQbk#Dz|9F5pO^5sDCl%hDhgl z`{g+nXX^>ior{?*#?|`YLhp=u+0TXmOMvNi;XSE$!Gu*bj~p!UtD2{tJRtmK6PG08 z#!4*?qa@5G`{}|0>5tWFeBMq<=<1DHJPVvuonq=Qap^duFH*sf5MIT`agsXJj1!mv zRW&+2724^H1dqxKU$0m+nY;>XY^hM!gc;k^e1}$!NUfEs8OAI*>1k|TlK@cr`VpJ- zuY$zfP-DDoAqB7(mV?ixFLHXa-Aoj$T!1Hk(HYyR194 zXoSZ*RusGEzPraRu+_IMv7~~@{mbG4Y>ZAv3cOWn{Aual;gxRfsG>fBYd)#yzk;4q zYCl2f(PvnqY)ub5pgA8ITVYv-^DZ57xJf}i1abugwP68Sy?Zl7oY86<2@Go6Eml;? z?Y+*x2iWLKT2ECQgu{k*LpBQm*v8>cB@<{iV&nyb4;l!Z>T<|VQh!_^|LeD7+~YTO zRZh=l|c=K^~1!z;4V!&I6tYan!rni2P1hz zvkY$(dYqpLKvWXSCb9H_xZ5r_l9al=ZauY^UfITGlW8FJOy?Qz(w<2OZIXbz{0mX( zT=y{Y55)kvk{00*w7xec@6y z7fDusb%c83-=hHRQE4P^tboMzF|iHw_ubm+MW(Fn1FcC7_Vt=F{gEfxd*m*2@Q`#) z7z7J(d}nd*^9*^TNbM&d$1vahcNrk8T>)f!v-J49^zXrdtn-yJlF`22p5ocw7d+nS zMa~{U8$gX$=ayg@B)t&*-=D-3_hgNh{*p`p)jPXKojH&$q&|0CV*{v77rqCK^!17< z*0!Ak?TX!0aQjV_z2<6uWe;fYigtAkS{MW_ob6p~9N{tJyffFU;`(n5K>S`=ikdz_ zeIHO8X*5))jGs4dU0pEnpW#pr4Cheq&nV;DW9OM`PWE1qx>Fk>#=Q4djNGPaEfC`B zPFtkQpSfem<(Wu1^vAlqR2}?eMYev zpA;~SBW7)*YD@)3&sEJEN7dpZn$K0TjMe@-s4N;1pfmZ)@791RGV1~et{a5}$3O&U z2WVkkLlU#3%;+4Z(cO8-n`NoAQ!0bM-{UJVk3!CTno5Cb>AA8e)_PwZ8ZPGq6DM@j01`t)K%m?7V*AfAIlj zyxbAzW#YNg$sD)2a(P*-#cPV$f^?muLy6hS?O*8)Nd{% zKnfQx)>=I=M~zJk$S+U|9Htj zu~%YVmw7z0c~tJL9$m_VF3K6aZiQ#OCWz<~Dc&Y*_h5lTzR{)fYI1U8O+BAO9Q^%N z1Hk|M`PgCQFn|M{fUYQ^Gk&_zI8e<0z~t$I4En7A#|3AXX}Vg&IR>aA!U0GxZ@e;_ zY_=im=rwGkM$;hgI?BfE+Km?pYA$Bi3ZEwo#E1!Uv~C!kofi2Mi%#)TW22+NU%w(h zb$M-1hm4Ls&-?mS$(wI!dnJ)ot@;Ch^@nfGP9{d7KX>^$CQsrHC~t)0yZ@SOrDH_P ziH9T?*|X1^HF>NOhMB7(JvtWN>Pkwh9+i2xbFXU3EAOuz6DW`*|mE3Ka50d zETtHogDzxz_(|T9$3`)(b&`ZbIlyh@j)_2AP=BtCYt&{@AKTH<5m1tHJx9$5-yOjtk01d)H$_}E*7@p$ zsCF}{<`o%v>V!o8;J>5$+WUnqty%Ps>ZV`^4cUxkG6k7YirIS6AJ~k5A>?&{Dzd2h z)8hnGNFQu$CJAO>wBE}0MQU>PXV6y`|kSM^@Db0by76uqESM#C99O!NC=PyREP z8|x5J6Y7!LYRfBxC-{iW@A$91L*MtkjzTGVPi!@3`!ii*4du1r8G61;Jf_z9A#3W& ztuCK@;NVMrV(Ww9@7DxlWopU{HNU8IWfl(yKdJOVo~4tr}&V1A)l2A zMJL*4-Clo9*{O+^x7Nkbg-(m=|LsH9I&o|27XvXVF>$se)$}|8azncDdmem+BXzSO zc@E^O{I{8c$r%FCG;!h48dz87-ma(bz&Js8s5t5Zvdf{D(|b>r3ny22+W&|^OYb*K zo~V)-`Q0F~yXA2AYbpLqq;CH!L2h)>Q#A`bJ4v;dI0+YKFZvAxmwzQAv&BXpX_TAI znta)L_AV)hemVcN5$tW7@VfMunBB2&QqZtt6;h_Urh~w^NZsME9jgDkR{av6Tfg_( z3>spFmL0hLx=pqgM(Qu{-D~Ewr^Z+2p;Mp8D;|&=1HjQor*W#3V4hdySF9VVPQ(Aq zy79!Pij5Uk0yYLPWe>@rU7Gw2a)`$Rqydk&z%MuHsxe-OA0bn%M1_-mH1U~pB-uXO z1CN_u1x}-|PeLqx--B`6k3kRG0SS=ANqv-Swpt^aO5jhvjCI`MFTMNynOxQoV5ANo z51St7*fN9e0%xm+uZUmt;sKTDS9B>p{{z|n%{-;#5l&umsLp^m&^(X$8hj+afE8lL z3$ItXK30h2%ljWwy{iMr`Z3trAn|XoL;(ky0&cXhov~FNFaLe_m8x;?i$hWd?E;La zgDgCW1Rs;~uJfmp+cV+17Fa@zSFBl#XnxVrI|`HPS+RkDH8)&p@sl068<){ ze>t0s_EAF!HEjqYwy$DBV-Npq5U@E)9`CN&L&KJ%u(ZA;VWj$zM9r51Y*z$ls+rj$ zqnsYFVSENO8@=uz!x1yI+B%qZlvQKV$w|Wp+L-3|jQ1a5M4nXom{^esEVXbGKEADI ze;_0arHWF#0ah4WvyG&;S9|pDLQwlNfKrZ7wt9AH6Vzr#lu>urh}I%AQ5QM-g?}d+g9^ z4=@XRVs}uR|EtuExfwkSR z${xdl{KVG}QO6m&35*kBN_Uwb8t+9kfNC9|YLr*wBbI}+yB49ExK_Ky`bwyOs($ka z$QH$rN9jD@wgiG(+V;A2yP z?m5w5O!8tK51r|3tMPu`pNy2x_DrE7-yYxpJYgszy)Uv}PcwTgf-E{^ILjy@ht$MP z34Wu+_1!?=O8)w7Ih|gHE`r&9)kt6YGqJAuK|UU*p7#RJU8d@f}yBUJqi$2S5vAe_ja)Gt@b_*_3PQi2$q3_*gXmX}^1 zx+@D%aY!^$#2m)VqH%{B?8qtKmVy~hdOY`^0_!~5%X(0g!At0^hQ*O>QR3J@KCQt; z39Tx(6V_e18&a=39q+yLOiSc&tNwxnGO07q4urt}@d_|_zeI&!%%V5iQ^TYbFF*Dz zI^gha&d>wSp&sbyaL=(v@!55`pj_0}X!&4p+(dzOEqan3Vho&(Lckr$&tm5GLPAg| z{Q8=2brLJY29IBb*SFTO4-?Y<6&JWP0{*p0K!-6N=^t^=32by$GZO!1H%$0%DfD!& zsI4FbVFES57PWbe?MfK~v194+k99QAoBV9JGp^;9N47S_*z>5nJdeWDk){Tuz?APvoy#_yyVMU z0Lg<3l2c?KzE;;uTdY0Rj^0jokL)#V2UUade>!cngk$d+3of&w@Y6JDXUyDnl@AB3 zT>s<^-bfIS6H@RQ!(~5Lb?Pkyc890cYyI;CdFGB{to-gKnu-nq#`|o1ssT%k1i~F2 z3YX}11^-S(Ke+^!z+bHab6yzY1+<^;?VSc;PD9$grR@9nuoZjg!%drdZ=(t_cuVP* zpNmFA{DuoT3UrZsg@H45kuBNDnPkLeq0EMUr*@W=FOUCYn!DB^;!Ywa^y9%5z*z^h z1NCTT4oFt;5o4e9e$;y{#}a2} zZN%r_QK#v}Nv)98d#%S3F_#$>?D@&S=XMZyEY1#Z_(poWTKg|*Q-B#F0W<#Wr5f&>nrht+;cP(zA4g8 z9DWIb#8og3d;uPQ!%-R^KMPAhk<3spwjn?Q9sCMnEJwGqwa;lGpXb~26IY&Hfs@WE zQ#Ri4!CoE-tXb_5Z|9qZ3V$W=kEy7KZHOAOf@H2zfX=iOVR-M)YuthjU^Kz9Tb1|z za3txVb~gAg0~GY@SY@{?&K`d+$tP68p`y%XX++a@-~f7x_BXnUjM`8)+h@+)c)$U7 z{%4FI_dpGfp--i4yZp;|dbaDEU3cygp@`ad(b7&uz_p3EFsQ4{2C6+H(K3 zn@4!x7`+K{8n^3AENmPgj8Js~`8%cq3Fmo@R=dgyesMhe+i_DMRifv(2$=}H&5^Y9 zq`eDSj4oD}VRLBo&bZ-Z;9(}KJST?)zp(o{S($dn+Cxx2v7%CBXODKKo zgd|fKBj2%|X(@Np#hcUHlRtyRfBGwznp>G7g8}ZzOS~)(mf@gV>5)Pm+MR8T6i|T$ z>c!;bZ{Hsdu~Ty{_U6+_mAR+}0C^zg%x^YYT)$ zsZmhmhet&PwYmP<%8|a{a{fvx)dRj}bE&-)urVWwg?Mh@fvc)b)#&-Rc9?>xIYB~E zW7)`Irv25fg#q)^Kw*DAF`d-l4v#o8kUXr8ImZuoJ-?>r;rQA@G#ZXmcAB~bO7n9r zu>xwZB*}X=^h`)d=(o94^?!soS>7;8&^)n)Xvqa{_gWK4FZp$zQA9(mbHnexh#WBw zvEWVq^l9S=L;9CGZb=Wjt2&@u%y?hh(rXiVr-Ks$J90m~;{(dd%8D$bq=7%*9>A$F zcXRXK0LM-d?uy15W%04E`#;imT5;3%{ys}X`h0>Els=w(W0=GuQcrm)ca6J|jdWIS z`Kccj*3zSuy?dTcHJleCgnO>>CwwK6yZ9I0<`RsH>YF`|eWFJbIpjRfRbUlL0d z9A*!a>yzfs*v4iCj6CD>NfIyz zFQ$!mDTH?+eaC_vS;*F^KwQhHMmjG@SV$E|^baMz*wg_rGTW=H=-=fyo{GW(McxV)9<om zwni+8?}Qeo_ue;vzfN4!$B@YZtG2FM?)|uUn|5~m((8*jB&gZzSN6s0(o1BGc-+AY zhsj24P==a}i}2o~&-wWjY1e)>#rUfMfQ(~l|JZx7w3HOe#^3u{k>L0WP2-)1J~v>F zhLE=fT+l+L!O!~?z}w$Oi36>9U%%w$DuSdr=<;%N$>!$f(xhK~nCl#ym|%%&`w$vR z8Md0eVx&Ork`+{^AAPy}z)SI~OxiznV0Qgqlrub6QU7g)C%B$-LaqSHE2ID5P4uA0Elp1PVPlAm7W9a|M2w{Kyd}#nuEI&+?^1d;4nzgU7623&uUAn~p*Hk%OtW5tprWkoqz7Lcb88Jhf5bBx zT+AQxkN0J_pQ;6b$u^3AYBD!E8h3hTM&wl-{pGhO+Xtg87qg@9MVUD*3Q) zcJ;}OG-DszU)q@>+QJBLk{bmaOR$ER$sFy6USEK({w%jU`a{;;UC44Q^Y{$v>gt+P zQZn)dC~O9A{DU;*5r#B51pfl%Sv_cQWYA?V=J#IUa8H)-)je|iYy_&OjAcb)T5M`q zQ5zcv$J@#F2K^Hy<2uBjBgGOyI*AmdG3Vr27eDovCO=6lwWW)WN4$oorf|vMi<1dH zleC&mttz|qe)8@;<$eO1kG0h!HQt*T;?Kza)a%D>+}qu~rI%q`rt?SzZ1Vslf3Ckc z{{M{P7me`$V?&64n?R(X{`?<6)f_eU|IU7&Jw0WtVmXTsl@Y1z#{`+XP>(m00oDHa8z<`@=F4sqo%4V4o0ug_c0pN|LA+S zB+elg7lVeLe*&!Q+WL_qhqh*{W5%<{(@sSNHh9=kj$qmo4#~D&6y*ALV)(x1Yx>j` z(SK`jyZK66r(>CW3D7@nn3IpWWG45Rn4YMC(khlmIDGZCVp`B6VEuvL7l&Nr{R(6F zb`8RCrdV-y24i+nrPcvMnD<4fY@LJ%Ao}FE<_9vrAqhYE2;AIgmKB&4vpJ_jy3WnxPV*US6^{EsT zzvJTLgUsaYg~>#%pMbYNZq9|Mmo@Gh5-zxZ#Y@OT`m?^ohD?#o`u~Fw?iTQCz9-9ia;BAgUdr#%MNiWND zZ@Sr=WBKrqEvNgkhDMAVb&Y$Pd}OfD>^Y-gsMDF|drJo+BR$+9;K3)xHNKWHVo%dO z*n*1Cq`(Whocaa^6AKFmry|J1ZC)$lh7$If*52aCu&%qxp&z^1+8rD_Qz7r`RbGi; z(Nj_@5H$FoR>l_wBr`O{)6oflOUSNr%E z0oBjXA6~PzzJo`jPPohNX`)v*Hd4Hsc^4{^*mZ#?SA&u623uh zg3?;h$Wy~4;5&U*kE#AJwq`Jek?iP9hU{-W;7OK79kT`+n(Kcpw}-kD;|+nY1v(I`7_0azxfGn z?*7Kru!GT1oBZ9?PFhH+2RFapAG>Z2%k|DFq$iHK+E9`tZ)aRr7_Y6vk^O}yy|^Oi z;_lAaKu4~)HY=3$ngRGLp^N3wNf*#2N)29*`824URt+LC-#(##PfT3bd~dGJGvBfC z?bt`_{qzGHS%6Dl8MfPzCjI?K&}WuWWM7Qx>S_=_lVE+tX+ehS8KAC~ z!)zg#yX#iyMTr8TGBIP{Z%IS94*Cjyk^T~fAo!aQFvnVRf@f5!N_tpJuo9b4ta!Fv z8B_N5thhu)(~zKmkq{6NpkrhV$fJ#tM*`h!J7uwL;z_oap|H-wh)0u`EbL=tqD<(5 zyJuRj=BCdkRy$px@O4@pL$d%%``Lkcc8L`4vWroy)3Md+p-=VOI{jeokq&Q1@GUh;M?EoIqEf(&TJjGJ@~lOSC0#g2@s6M&1g}(bujKL51-^{bP8(0f{PC>Ks@?n>;%8>H=(o$(2(e_7YIB%=r z22NH}VSsLRI&xdf=dOL7wxGE=U7+X0UPVMiY#s*t)AiDNdl#|Xx1MnC-WPJ}pNeSQ z`RxEJ$E@>!vD0Gxly&DrwN|8O#nA+Ut3{+g#l_CL@)DqPC+2QI&7Kx-dE7nEs~?vq zXjp$Eu&yA7tX=$+_m4A>q-=NI9nEQKqOAHn=BB8nqeDtTL6MO(#Mw*R>|H~5X4T@^0h1 zPrImEn-Bc0mEI;@8GfOo=pEQ}Q_#OXD`O+q8V-{x=QpIA22C2IkJq#+-j<;MHjUFf zP~X@7X8-(+<`jGXV;`00?<4-%&Xkm9e4Mwan!`x{?UMYT9RFW4TO##5zEERhddiz76ZK_M0(x zY`~${ZjXneozzE293mOgVAHinW>^0$HF}GQiK$^=5HUQglKA~Q?`B`OfRyWM9@fAf zK|6KOEQ7@x!QdD&Bp@W(oP%5>+Si#U{o7eq9@?4rxuc=*Di&9_B{717A-X^szV5JP zpp^h!AQTDB0Xm~>y2oc~u+RS|V~^EI6K&5^aJi#&VL=~c+8Y!01@uC@qUhP?lZ}HFT!_tkkLJCmMIda`T`$#aN{CYz3#Vej<2=B>CpN+ ztH7WjIzB#ZP)IZ`(t_yW`0}SzQ>MM??Cf%EJi*TNwI#5WsK6fjE4~>& zgmCw``tse45{}Gk_?vn`YzY?rSC$;Y(Xyc|$W)-J9%QaSqzXb?$m3hxVGU{ z>n?uo1RXM!DKk0-LMNjv&qgJ{4+48bFzK`nC3r~#@u#(X@Dc_PBT&i%t?&sE-^g2? z>B&*c)L?kr*3430{Ml$*9O$MUaUAR$nk1|rF=39)@~y#HTs4kNlE+f}@mp?S(IlbN z4$Hm)!Ac+pJ!X7ku?!wj0IO%oKCCe9vRBkv($HWu&Fp*qO$Al{6xJ|My4#4p(1Vva#bF7d;=w zYEWX{nvUp2LY84rVIgv4i#Y8>MUk-9IeBXYG7Xn+yaS5;h7kDohFcPILe0o|K5X1s zH|0*p&{tKYZl~8>>DDjVQC$UXR?M4Y-)mW>Ro{(fA`c$)IVyQwbp$`&O%z8b-{){F zus)iG_L}0cvml@keKINA#QPkDMLjbTfCi9jXdHM*?>4IOcA7Qb-rsv?4t)V3tewIi zB~#rOOG3lKq_wq4{+1YoG&hTP_x9%I<|0x=q3RfWGIJT$LrY7!GK3we3eHIiM0XT*Rwd-~a;kziVN`NOy~)>IAg3F~f8?CBkbuu zeCPRiY+pnh?{{Y5d0yMLfPY`>J*ul~0Ra(Fg!AqJuTwYrAKeN>06pm+XrKzg(_x^e zM~I6f00|2S2{CeVz5s9yD_h&{h6k?1*?LD!?OPJHz))~OJK*|I!+7GDF|d8# zs@t^bNyhx$mc5P9&IE1dgIIVn$=WuK(As5yLcf0#O>fFuzv6g5_F2QAy+AFdNEK-p zb4>kKa4_v^Eipt-5>r7P2Kq{dmREtqeN5|DOYkc9d-^PZ;oHH+5cQbAs+T$1%%mfSQm}esSKO5a$6t|@C{Y1t&KHif&>?$nM zj+Dg=Ekg?V@pX?THSC0gv%Wn&sB2X4YKw`kOFJs-XGx!lu~Yl8XvEQxEmg^D`rVr)2BWqTdfGwH4UWu?*BTD=Ca4$d(6Ygh6Pzecn zEr)fRZ`TFoF7kv={n>eb=7T^^V`4F@ncwZ?-xHpVG$gMN%nDje91EeesCA}LzN>(_ z8oEA_rKwYOjW~nKVq^zqxw`@{S#ntE$@7b;yQcUwH1Bz}IhDKe;0|W$&mM*XEaYg> zf6doFIP+Fn5#mxyF3d_PBG3oI`y8nV2?@uSmLgB=XbBVI5kRY+rd)dP?!V9rM;bbI zUW~nK$YfYPQKlAuB?iLmQ~;AEgS9Fa@87x?l3WBO^U2vla7-7srr6lU=*(vG{MWu= zOrS2;~$!&?>%0ASbtU0OBRqiM~1RXyJ;AiYuzopq9->bYPKv9*J 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 literal 41852 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%0AxsJx^4!1=y9%acyyZked;q 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 Pz>luBp;noOZRr01x!ZaQ From f37c608dd1ec3185c376eb4816472974168a12ab Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 12 Feb 2013 22:53:55 +1000 Subject: [PATCH 030/163] restructured the layout of many files with folders + renames, added artifact types and artifact effects Signed-off-by: Cael_Aislinn --- baystation12.dme | 81 ++-- .../{ => analysis}/analysis.dm | 18 +- .../{ => analysis}/analysis_accelerator.dm | 16 +- .../analysis_fourier_transform.dm | 12 +- .../analysis_gas_chromatography.dm | 0 .../{ => analysis}/analysis_hyperspectral.dm | 0 .../{ => analysis}/analysis_ion_mobility.dm | 0 .../{ => analysis}/analysis_isotope_ratio.dm | 18 +- .../{ => analysis}/analysis_scanner.dm | 0 .../xenoarchaeology/artifact/artifact.dm | 101 +++++ .../{ => artifact}/artifact_autocloner.dm | 0 .../artifact/artifact_crystal.dm | 36 ++ .../{ => artifact}/artifact_gigadrill.dm | 0 .../{ => artifact}/artifact_hoverpod.dm | 0 .../{ => artifact}/artifact_replicator.dm | 1 - .../xenoarchaeology/{ => finds}/finds.dm | 33 +- .../{ => finds}/finds_defines.dm | 4 +- .../{ => finds}/finds_fossils.dm | 0 .../xenoarchaeology/{ => finds}/finds_misc.dm | 0 .../finds_talkingitem.dm} | 0 .../modules/research/xenoarchaeology/tools.dm | 225 ----------- .../{ => tools}/bunsen_burner.dm | 0 .../xenoarchaeology/{ => tools}/spacesuit.dm | 4 +- .../research/xenoarchaeology/tools/tools.dm | 22 ++ .../tools_coresampler.dm} | 1 + .../tools/tools_depthscanner.dm | 128 +++++++ .../xenoarchaeology/tools/tools_excav.dm | 83 ++++ .../xenoarchaeology/tools/tools_locater.dm | 97 +++++ .../unknown/effects/unknown_affect_cold.dm | 22 ++ .../effects/unknown_effect_badfeeling.dm | 67 ++++ .../effects/unknown_effect_cellcharge.dm | 37 ++ .../effects/unknown_effect_celldrain.dm | 41 ++ .../effects/unknown_effect_dnaswitch.dm | 66 ++++ .../unknown/effects/unknown_effect_emp.dm | 12 + .../effects/unknown_effect_forcefield.dm | 77 ++++ .../unknown/effects/unknown_effect_gasco2.dm | 22 ++ .../effects/unknown_effect_gasnitro.dm | 22 ++ .../unknown/effects/unknown_effect_gasoxy.dm | 21 + .../effects/unknown_effect_gasplasma.dm | 22 ++ .../effects/unknown_effect_gassleeping.dm | 30 ++ .../effects/unknown_effect_goodfeeling.dm | 65 ++++ .../unknown/effects/unknown_effect_heal.dm | 67 ++++ .../unknown/effects/unknown_effect_heat.dm | 22 ++ .../unknown/effects/unknown_effect_hurt.dm | 46 +++ .../unknown/effects/unknown_effect_radiate.dm | 26 ++ .../effects/unknown_effect_roboheal.dm | 31 ++ .../effects/unknown_effect_robohurt.dm | 30 ++ .../unknown/effects/unknown_effect_sleepy.dm | 36 ++ .../unknown/effects/unknown_effect_stun.dm | 38 ++ .../effects/unknown_effect_teleport.dm | 66 ++++ .../xenoarchaeology/unknown/unknown.dm | 360 ++++++++++++++++++ .../{ => unknown}/unknown_analysis.dm | 3 +- .../{ => unknown}/unknown_db.dm | 0 .../xenoarchaeology/unknown/unknown_effect.dm | 68 ++++ .../unknown_effect_old.dm} | 0 .../{ => unknown}/unknown_harvester.dm | 4 +- .../{unknown.dm => unknown/unknown_old.dm} | 2 + .../{ => unknown}/unknown_synthetic.dm | 2 +- 58 files changed, 1869 insertions(+), 316 deletions(-) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis.dm (90%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_accelerator.dm (80%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_fourier_transform.dm (81%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_gas_chromatography.dm (100%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_hyperspectral.dm (100%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_ion_mobility.dm (100%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_isotope_ratio.dm (82%) rename code/modules/research/xenoarchaeology/{ => analysis}/analysis_scanner.dm (100%) create mode 100644 code/modules/research/xenoarchaeology/artifact/artifact.dm rename code/modules/research/xenoarchaeology/{ => artifact}/artifact_autocloner.dm (100%) create mode 100644 code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm rename code/modules/research/xenoarchaeology/{ => artifact}/artifact_gigadrill.dm (100%) rename code/modules/research/xenoarchaeology/{ => artifact}/artifact_hoverpod.dm (100%) rename code/modules/research/xenoarchaeology/{ => artifact}/artifact_replicator.dm (99%) rename code/modules/research/xenoarchaeology/{ => finds}/finds.dm (96%) rename code/modules/research/xenoarchaeology/{ => finds}/finds_defines.dm (99%) rename code/modules/research/xenoarchaeology/{ => finds}/finds_fossils.dm (100%) rename code/modules/research/xenoarchaeology/{ => finds}/finds_misc.dm (100%) rename code/modules/research/xenoarchaeology/{finds_talking_item.dm => finds/finds_talkingitem.dm} (100%) delete mode 100644 code/modules/research/xenoarchaeology/tools.dm rename code/modules/research/xenoarchaeology/{ => tools}/bunsen_burner.dm (100%) rename code/modules/research/xenoarchaeology/{ => tools}/spacesuit.dm (84%) create mode 100644 code/modules/research/xenoarchaeology/tools/tools.dm rename code/modules/research/xenoarchaeology/{core_sampler.dm => tools/tools_coresampler.dm} (98%) create mode 100644 code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm create mode 100644 code/modules/research/xenoarchaeology/tools/tools_excav.dm create mode 100644 code/modules/research/xenoarchaeology/tools/tools_locater.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm create mode 100644 code/modules/research/xenoarchaeology/unknown/unknown.dm rename code/modules/research/xenoarchaeology/{ => unknown}/unknown_analysis.dm (99%) rename code/modules/research/xenoarchaeology/{ => unknown}/unknown_db.dm (100%) create mode 100644 code/modules/research/xenoarchaeology/unknown/unknown_effect.dm rename code/modules/research/xenoarchaeology/{unknown_effect.dm => unknown/unknown_effect_old.dm} (100%) rename code/modules/research/xenoarchaeology/{ => unknown}/unknown_harvester.dm (98%) rename code/modules/research/xenoarchaeology/{unknown.dm => unknown/unknown_old.dm} (99%) rename code/modules/research/xenoarchaeology/{ => unknown}/unknown_synthetic.dm (98%) diff --git a/baystation12.dme b/baystation12.dme index a60303f0d05..cfeaafc50b3 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1118,38 +1118,65 @@ #include "code\modules\research\research.dm" #include "code\modules\research\research_shuttle.dm" #include "code\modules\research\server.dm" -#include "code\modules\research\xenoarchaeology\analysis.dm" -#include "code\modules\research\xenoarchaeology\analysis_accelerator.dm" -#include "code\modules\research\xenoarchaeology\analysis_fourier_transform.dm" -#include "code\modules\research\xenoarchaeology\analysis_gas_chromatography.dm" -#include "code\modules\research\xenoarchaeology\analysis_hyperspectral.dm" -#include "code\modules\research\xenoarchaeology\analysis_ion_mobility.dm" -#include "code\modules\research\xenoarchaeology\analysis_isotope_ratio.dm" -#include "code\modules\research\xenoarchaeology\analysis_scanner.dm" -#include "code\modules\research\xenoarchaeology\artifact_autocloner.dm" -#include "code\modules\research\xenoarchaeology\artifact_gigadrill.dm" -#include "code\modules\research\xenoarchaeology\artifact_hoverpod.dm" -#include "code\modules\research\xenoarchaeology\artifact_replicator.dm" -#include "code\modules\research\xenoarchaeology\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\chemistry.dm" -#include "code\modules\research\xenoarchaeology\core_sampler.dm" -#include "code\modules\research\xenoarchaeology\finds.dm" -#include "code\modules\research\xenoarchaeology\finds_defines.dm" -#include "code\modules\research\xenoarchaeology\finds_fossils.dm" -#include "code\modules\research\xenoarchaeology\finds_misc.dm" -#include "code\modules\research\xenoarchaeology\finds_talking_item.dm" #include "code\modules\research\xenoarchaeology\geosample.dm" #include "code\modules\research\xenoarchaeology\misc.dm" #include "code\modules\research\xenoarchaeology\readme.dm" -#include "code\modules\research\xenoarchaeology\spacesuit.dm" #include "code\modules\research\xenoarchaeology\suspension_generator.dm" -#include "code\modules\research\xenoarchaeology\tools.dm" -#include "code\modules\research\xenoarchaeology\unknown.dm" -#include "code\modules\research\xenoarchaeology\unknown_analysis.dm" -#include "code\modules\research\xenoarchaeology\unknown_db.dm" -#include "code\modules\research\xenoarchaeology\unknown_effect.dm" -#include "code\modules\research\xenoarchaeology\unknown_harvester.dm" -#include "code\modules\research\xenoarchaeology\unknown_synthetic.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_accelerator.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_fourier_transform.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_gas_chromatography.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_hyperspectral.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_ion_mobility.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_isotope_ratio.dm" +#include "code\modules\research\xenoarchaeology\analysis\analysis_scanner.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact_autocloner.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact_crystal.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact_gigadrill.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact_hoverpod.dm" +#include "code\modules\research\xenoarchaeology\artifact\artifact_replicator.dm" +#include "code\modules\research\xenoarchaeology\finds\finds.dm" +#include "code\modules\research\xenoarchaeology\finds\finds_defines.dm" +#include "code\modules\research\xenoarchaeology\finds\finds_fossils.dm" +#include "code\modules\research\xenoarchaeology\finds\finds_misc.dm" +#include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm" +#include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm" +#include "code\modules\research\xenoarchaeology\tools\spacesuit.dm" +#include "code\modules\research\xenoarchaeology\tools\tools.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_excav.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_locater.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown_analysis.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown_db.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown_effect.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown_harvester.dm" +#include "code\modules\research\xenoarchaeology\unknown\unknown_synthetic.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_affect_cold.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_badfeeling.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_cellcharge.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_celldrain.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_dnaswitch.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_emp.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_forcefield.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_gasco2.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_gasnitro.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_gasoxy.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_gasplasma.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_gassleeping.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_goodfeeling.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_heal.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_heat.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_hurt.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_radiate.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_roboheal.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_robohurt.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_sleepy.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_stun.dm" +#include "code\modules\research\xenoarchaeology\unknown\effects\unknown_effect_teleport.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" #include "code\modules\scripting\Options.dm" diff --git a/code/modules/research/xenoarchaeology/analysis.dm b/code/modules/research/xenoarchaeology/analysis/analysis.dm similarity index 90% rename from code/modules/research/xenoarchaeology/analysis.dm rename to code/modules/research/xenoarchaeology/analysis/analysis.dm index 0d2579191ec..49e281ff3b0 100644 --- a/code/modules/research/xenoarchaeology/analysis.dm +++ b/code/modules/research/xenoarchaeology/analysis/analysis.dm @@ -41,8 +41,6 @@ //heat up as we go, but if the air is freezing then heat up much slower var/new_heat = heat_accumulation_rate + heat_accumulation_rate * rand(-5,5) / 10 - if(environmental_temp < temperature) - new_heat *= 0.75 temperature += new_heat if(temperature > 350 && prob(10)) src.visible_message("\blue \icon[src] bleets plaintively.", 2) @@ -53,7 +51,7 @@ if(prob(10)) src.visible_message("\blue \icon[src] [pick("whirrs","chuffs","clicks")][pick(" quietly"," softly"," sadly"," excitedly"," energetically"," angrily"," plaintively")].", 2) - else if(temperature > environmental_temp) + if(temperature > environmental_temp) //cool down to match the air temperature -= heat_accumulation_rate + heat_accumulation_rate * rand(-5,5) / 10 if(temperature < environmental_temp) @@ -82,7 +80,7 @@ var/dat = "[src.name]
" dat += "[owned_scanner ? "Scanner connected." : "Scanner disconnected."]
" dat += "Module heat level: [temperature] kelvin
" - dat += "Safeties set at 600k, shielding failure at 1200k. Failure to maintain safe heat levels may result in equipment damage.
" + dat += "Safeties set at 300k, shielding failure at 400k. Failure to maintain safe heat levels may result in equipment damage.
" dat += "
" if(scan_process) dat += "Scan in progress


" @@ -154,8 +152,8 @@ obj/machinery/anomaly/Topic(href, href_list) fuel_container = null if(href_list["begin"]) if(temperature >= 300) - var/proceed = input("Unsafe internal temperature detected, do you wish to continue?","Warning") - if(proceed && get_dist(src, usr) <= 1) + var/proceed = input("Unsafe internal temperature detected, enter YES below to continue.","Warning") + if(proceed == "YES" && get_dist(src, usr) <= 1) scan_process = 1 else scan_process = 1 @@ -164,12 +162,12 @@ obj/machinery/anomaly/Topic(href, href_list) //whether the carrier sample matches the possible finds //results greater than a threshold of 0.6 means a positive result -obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/carrier) +obj/machinery/anomaly/proc/GetResultSpecifity(var/datum/geosample/scanned_sample, var/carrier_name) var/specifity = 0 - if(scanned_sample && carrier) + if(scanned_sample && carrier_name) - if(scanned_sample.find_presence.Find(carrier)) - specifity = 0.7 * (scanned_sample.find_presence[carrier] / scanned_sample.total_spread) + 0.3 + if(scanned_sample.find_presence.Find(carrier_name)) + specifity = 0.7 * (scanned_sample.find_presence[carrier_name] / scanned_sample.total_spread) + 0.3 else specifity = rand(0, 0.5) diff --git a/code/modules/research/xenoarchaeology/analysis_accelerator.dm b/code/modules/research/xenoarchaeology/analysis/analysis_accelerator.dm similarity index 80% rename from code/modules/research/xenoarchaeology/analysis_accelerator.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_accelerator.dm index 0315220f99d..eef561a6a1a 100644 --- a/code/modules/research/xenoarchaeology/analysis_accelerator.dm +++ b/code/modules/research/xenoarchaeology/analysis/analysis_accelerator.dm @@ -9,7 +9,7 @@ obj/machinery/anomaly/accelerator/ScanResults() var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." var/datum/geosample/scanned_sample - var/carrier + var/carrier_name var/num_reagents = 0 for(var/datum/reagent/A in held_container.reagents.reagent_list) @@ -17,20 +17,22 @@ obj/machinery/anomaly/accelerator/ScanResults() if(istype(R, /datum/reagent/analysis_sample)) scanned_sample = R.data else - carrier = R.id + carrier_name = R.id num_reagents++ - if(num_reagents == 2 && scanned_sample && carrier) - var/specifity = GetResultSpecifity(scanned_sample, carrier) - var/accuracy = (specifity / (specifity + 0.2)) - results = "Kinetic acceleration of carrier ([carrier]) indicates age ([100 * accuracy]% accuracy):

" + if(num_reagents == 2 && scanned_sample && carrier_name) + var/accuracy = GetResultSpecifity(scanned_sample, carrier_name) + accuracy += 0.5 * (1 - accuracy) / scanned_sample.total_spread + if(!accuracy) + accuracy = rand(0.01, 0.5) + results = "Kinetic acceleration of carrier ([carrier_name]) indicates age ([100 * accuracy]% accuracy):

" if(scanned_sample.age_billion) var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - accuracy) * (2 * rand() - 1)), 0) results += "[displayed_age_billions + displayed_age_millions / 1000] billion years.
" else if(scanned_sample.age_million) - var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - accuracy) * (4 * rand() - 2)), 0) + var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - accuracy) * (4 * rand() - 2)), 0) var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.
" else if(scanned_sample.age_thousand) diff --git a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/analysis/analysis_fourier_transform.dm similarity index 81% rename from code/modules/research/xenoarchaeology/analysis_fourier_transform.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_fourier_transform.dm index 5e952c00bbd..e5715708554 100644 --- a/code/modules/research/xenoarchaeology/analysis_fourier_transform.dm +++ b/code/modules/research/xenoarchaeology/analysis/analysis_fourier_transform.dm @@ -22,16 +22,14 @@ obj/machinery/anomaly/fourier_transform/ScanResults() if(num_reagents == 2 && scanned_sample && carrier) //all necessary components are present - var/specifity = GetResultSpecifity(scanned_sample, carrier) + var/accuracy = GetResultSpecifity(scanned_sample, carrier) var/distance = scanned_sample.artifact_distance if(distance > 0) - var/accuracy = 0.9 - if(specifity > 0.6) - distance += (0.2 * rand() - 0.1) * distance + if(accuracy > 0.6) + distance += (2 * rand() - 1) * distance * 0.01 else - var/offset = 1 - specifity - distance += distance * rand(-100 * offset, 100 * offset) / 100 - accuracy = specifity + var/offset = 1 - accuracy + distance += (2 * rand() - 1) * distance * offset results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([100 * accuracy]% accuracy): [distance]." else results = "Energy dispersion detected throughout sample consistent with background readings.
" diff --git a/code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm b/code/modules/research/xenoarchaeology/analysis/analysis_gas_chromatography.dm similarity index 100% rename from code/modules/research/xenoarchaeology/analysis_gas_chromatography.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_gas_chromatography.dm diff --git a/code/modules/research/xenoarchaeology/analysis_hyperspectral.dm b/code/modules/research/xenoarchaeology/analysis/analysis_hyperspectral.dm similarity index 100% rename from code/modules/research/xenoarchaeology/analysis_hyperspectral.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_hyperspectral.dm diff --git a/code/modules/research/xenoarchaeology/analysis_ion_mobility.dm b/code/modules/research/xenoarchaeology/analysis/analysis_ion_mobility.dm similarity index 100% rename from code/modules/research/xenoarchaeology/analysis_ion_mobility.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_ion_mobility.dm diff --git a/code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm b/code/modules/research/xenoarchaeology/analysis/analysis_isotope_ratio.dm similarity index 82% rename from code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_isotope_ratio.dm index 717339a4a79..57e26840803 100644 --- a/code/modules/research/xenoarchaeology/analysis_isotope_ratio.dm +++ b/code/modules/research/xenoarchaeology/analysis/analysis_isotope_ratio.dm @@ -9,7 +9,7 @@ obj/machinery/anomaly/isotope_ratio/ScanResults() var/results = "The scan was inconclusive. Check sample integrity and carrier consistency." var/datum/geosample/scanned_sample - var/carrier + var/carrier_name var/num_reagents = 0 for(var/datum/reagent/A in held_container.reagents.reagent_list) @@ -17,17 +17,15 @@ obj/machinery/anomaly/isotope_ratio/ScanResults() if(istype(R, /datum/reagent/analysis_sample)) scanned_sample = R.data else - carrier = R.id + carrier_name = R.id num_reagents++ - if(num_reagents == 2 && scanned_sample && carrier) - var/specifity = GetResultSpecifity(scanned_sample, carrier) - var/accuracy = 0 - if(specifity) - accuracy = (specifity / (specifity + 0.2)) - else - accuracy = rand(0.01, 0.75) - results = "Isotope decay analysis in carrier ([carrier]) indicates age ([100 * accuracy]% accuracy):

" + if(num_reagents == 2 && scanned_sample && carrier_name) + var/accuracy = GetResultSpecifity(scanned_sample, carrier_name) + accuracy += 0.5 * (1 - accuracy) / scanned_sample.total_spread + if(!accuracy) + accuracy = rand(0.01, 0.5) + results = "Isotope decay analysis in carrier ([carrier_name]) indicates age ([100 * accuracy]% accuracy):

" if(scanned_sample.age_billion) //scramble the results diff --git a/code/modules/research/xenoarchaeology/analysis_scanner.dm b/code/modules/research/xenoarchaeology/analysis/analysis_scanner.dm similarity index 100% rename from code/modules/research/xenoarchaeology/analysis_scanner.dm rename to code/modules/research/xenoarchaeology/analysis/analysis_scanner.dm diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm new file mode 100644 index 00000000000..71f6f7965e0 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -0,0 +1,101 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Large finds - (Potentially) active alien machinery from the dawn of time + +/datum/artifact_find + var/artifact_id + var/artifact_find_type + var/artifact_detect_range + +/datum/artifact_find/New() + artifact_detect_range = rand(5,300) + + artifact_id = "[pick("kappa","sigma","antaeres","beta","omicron","iota","upsilon","omega","gamma","delta","tau","alpha")]-[rand(100,999)]" + + artifact_find_type = pick(\ + 5;/obj/machinery/power/supermatter,\ + 5;/obj/structure/constructshell,\ + 5;/obj/machinery/syndicate_beacon,\ + 25;/obj/machinery/power/supermatter/shard,\ + 50;/obj/structure/cult/pylon,\ + 100;/obj/machinery/auto_cloner,\ + 100;/obj/machinery/giga_drill,\ + 100;/obj/mecha/working/hoverpod,\ + 100;/obj/machinery/replicator,\ + 200;/obj/structure/crystal,\ + 500;/obj/machinery/artifact) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Boulders - sometimes turn up after excavating turf - excavate further to try and find large xenoarch finds + +/obj/structure/boulder + name = "rocky debris" + desc = "Leftover rock from an excavation, it's been partially dug out already but there's still a lot to go." + icon = 'icons/obj/mining.dmi' + icon_state = "boulder1" + density = 1 + opacity = 1 + var/excavation_level = 0 + var/datum/geosample/geological_data + var/datum/artifact_find/artifact_find + +/obj/structure/boulder/New() + icon_state = "boulder[rand(1,4)]" + excavation_level = rand(5,50) + +/obj/structure/boulder/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/device/core_sampler)) + src.geological_data.artifact_distance = rand(-100,100) / 100 + src.geological_data.artifact_id = artifact_find.artifact_id + + var/obj/item/device/core_sampler/C = W + C.sample_item(src, user) + return + + if (istype(W, /obj/item/device/depth_scanner)) + var/obj/item/device/depth_scanner/C = W + C.scan_atom(user, src) + return + + if (istype(W, /obj/item/device/measuring_tape)) + var/obj/item/device/measuring_tape/P = W + user.visible_message("\blue[user] extends [P] towards [src].","\blue You extend [P] towards [src].") + if(do_after(user,40)) + user << "\blue \icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm." + return + + if (istype(W, /obj/item/weapon/pickaxe)) + var/obj/item/weapon/pickaxe/P = W + + user << "\red You start [P.drill_verb] [src]." + + if(!do_after(user,P.digspeed)) + return + + user << "\blue You finish [P.drill_verb] [src]." + excavation_level += P.excavation_amount + + var/reveal_prob = 1 + if(excavation_level >= 95) + reveal_prob = 50 + (excavation_level - 90) * (excavation_level - 90) + else if(excavation_level >= 90) + reveal_prob = 5 + if(excavation_level >= 100) + //failure + user.visible_message("[src] suddenly crumbles away.",\ + "\red [src] has disintegrated under your onslaught, any secrets it was holding long gone.") + del(src) + else if(prob(reveal_prob)) + //success + if(artifact_find) + var/spawn_type = artifact_find.artifact_find_type + var/obj/O = new spawn_type(get_turf(src)) + if(istype(O,/obj/machinery/artifact)) + var/obj/machinery/artifact/X = O + if(X.my_effect) + X.my_effect.artifact_id = artifact_find.artifact_id + src.visible_message("[src] suddenly crumbles away.") + else + user.visible_message("[src] suddenly crumbles away.",\ + "\blue [src] has been whittled away under your careful excavation, but there was nothing of interest inside.") + del(src) diff --git a/code/modules/research/xenoarchaeology/artifact_autocloner.dm b/code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm similarity index 100% rename from code/modules/research/xenoarchaeology/artifact_autocloner.dm rename to code/modules/research/xenoarchaeology/artifact/artifact_autocloner.dm diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm new file mode 100644 index 00000000000..d5cd7a7b504 --- /dev/null +++ b/code/modules/research/xenoarchaeology/artifact/artifact_crystal.dm @@ -0,0 +1,36 @@ + +/obj/structure/crystal + name = "large crystal" + icon = 'xenoarchaeology.dmi' + icon_state = "crystal" + density = 1 + +/obj/structure/crystal/New() + ..() + + icon_state = pick("ano70","ano80") + + desc = pick(\ + "It shines faintly as it catches the light.",\ + "It appears to have a faint inner glow.",\ + "It seems to draw you inward as you look it at.",\ + "Something twinkles faintly as you look at it.",\ + "It's mesmerizing to behold.") + +/obj/structure/crystal/Del() + src.visible_message("\red[src] shatters!") + if(prob(75)) + new /obj/item/weapon/shard/plasma(src.loc) + if(prob(50)) + new /obj/item/weapon/shard/plasma(src.loc) + if(prob(25)) + new /obj/item/weapon/shard/plasma(src.loc) + if(prob(75)) + new /obj/item/weapon/shard(src.loc) + if(prob(50)) + new /obj/item/weapon/shard(src.loc) + if(prob(25)) + new /obj/item/weapon/shard(src.loc) + ..() + +//todo: laser_act diff --git a/code/modules/research/xenoarchaeology/artifact_gigadrill.dm b/code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm similarity index 100% rename from code/modules/research/xenoarchaeology/artifact_gigadrill.dm rename to code/modules/research/xenoarchaeology/artifact/artifact_gigadrill.dm diff --git a/code/modules/research/xenoarchaeology/artifact_hoverpod.dm b/code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm similarity index 100% rename from code/modules/research/xenoarchaeology/artifact_hoverpod.dm rename to code/modules/research/xenoarchaeology/artifact/artifact_hoverpod.dm diff --git a/code/modules/research/xenoarchaeology/artifact_replicator.dm b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm similarity index 99% rename from code/modules/research/xenoarchaeology/artifact_replicator.dm rename to code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm index a52a12ebaf1..089c9084189 100644 --- a/code/modules/research/xenoarchaeology/artifact_replicator.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_replicator.dm @@ -20,7 +20,6 @@ var/list/viables = list(\ /obj/item/roller,\ - /obj/structure/cult/pylon,\ /obj/structure/closet/crate,\ /obj/structure/closet/acloset,\ /mob/living/simple_animal/hostile/mimic,\ diff --git a/code/modules/research/xenoarchaeology/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm similarity index 96% rename from code/modules/research/xenoarchaeology/finds.dm rename to code/modules/research/xenoarchaeology/finds/finds.dm index 10c2af2a156..a31ec91852b 100644 --- a/code/modules/research/xenoarchaeology/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -255,9 +255,9 @@ apply_image_decorations = 1 if(17) //cultblade - new /obj/item/weapon/melee/cultblade(src.loc) - del(src) - return + new_item = new /obj/item/weapon/melee/cultblade(src.loc) + apply_material_decorations = 0 + apply_image_decorations = 0 if(18) new_item = new /obj/item/device/radio/beacon(src.loc) talkative = 0 @@ -283,6 +283,7 @@ if(22) if(prob(50)) new_item = new /obj/item/weapon/shard(src.loc) + else new_item = new /obj/item/weapon/shard/plasma(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 @@ -328,7 +329,7 @@ name = "unknown weapon" if(27) //revolver - var/obj/item/weapon/gun/projectile/new_gun = new (src.loc) + var/obj/item/weapon/gun/projectile/new_gun = new /obj/item/weapon/gun/projectile(src.loc) new_item = new_gun new_item.icon_state = "gun[rand(1,4)]" @@ -364,30 +365,24 @@ apply_image_decorations = 0 if(29) //fossil bone/skull - new/obj/item/weapon/fossil/base(src.loc) - - //this item replaces itself on spawn with another, doing anything else will cause runtimes - del(src) - return + new_item = new /obj/item/weapon/fossil/base(src.loc) if(30) //fossil shell - new/obj/item/weapon/fossil/shell(src.loc) + new_item = new /obj/item/weapon/fossil/shell(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 if(prob(10)) apply_image_decorations = 1 if(31) //fossil plant - new/obj/item/weapon/fossil/plant(src.loc) + new_item = new /obj/item/weapon/fossil/plant(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 if(32) //humanoid remains - name = "humanoid remains" + name = "humanoid [pick("remains","skeleton")]" icon = 'blood.dmi' icon_state = "remains" - apply_material_decorations = 0 - apply_image_decorations = 0 additional_desc = pick("They appear almost human.",\ "They are contorted in a most gruesome way.",\ "They look almost peaceful.",\ @@ -399,11 +394,9 @@ apply_material_decorations = 0 if(33) //robot remains - name = "robotic remains" + name = "[pick("mechanical","robotic","cyborg")] [pick("remains","chassis","debris")]" icon = 'blood.dmi' icon_state = "remainsrobot" - apply_material_decorations = 0 - apply_image_decorations = 0 additional_desc = pick("Almost mistakeable for the remains of a modern cyborg.",\ "They are barely recognisable as anything other than a pile of waste metals.",\ "It looks like the battered remains of an ancient robot chassis.",\ @@ -415,11 +408,9 @@ apply_material_decorations = 0 if(34) //xenos remains - name = "alien remains" + name = "alien [pick("remains","skeleton")]" icon = 'blood.dmi' icon_state = "remainsxeno" - apply_material_decorations = 0 - apply_image_decorations = 0 additional_desc = pick("It looks vaguely reptilian, but with more teeth.",\ "They are faintly unsettling.",\ "There is a faint aura of unease about them.",\ @@ -481,7 +472,7 @@ //icon and icon_state should have already been set if(new_item) - new_item.name = "[pick("strange","ancient","alien","")] [new_item.name]" + new_item.name = "[pick("Strange","Ancient","Alien","")] [new_item.name]" new_item.desc = src.desc if(talkative) diff --git a/code/modules/research/xenoarchaeology/finds_defines.dm b/code/modules/research/xenoarchaeology/finds/finds_defines.dm similarity index 99% rename from code/modules/research/xenoarchaeology/finds_defines.dm rename to code/modules/research/xenoarchaeology/finds/finds_defines.dm index b2aebc52fa2..9583cb74ad9 100644 --- a/code/modules/research/xenoarchaeology/finds_defines.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_defines.dm @@ -57,8 +57,8 @@ #define ARTIFACT_ROBOHURT 13 #define ARTIFACT_ROBOHEAL 14 #define ARTIFACT_DNASWITCH 15 -#define ARTIFACT_ -#define ARTIFACT_ +//#define ARTIFACT_ +//#define ARTIFACT_ //descending order of likeliness to spawn #define DIGSITE_GARDEN 1 diff --git a/code/modules/research/xenoarchaeology/finds_fossils.dm b/code/modules/research/xenoarchaeology/finds/finds_fossils.dm similarity index 100% rename from code/modules/research/xenoarchaeology/finds_fossils.dm rename to code/modules/research/xenoarchaeology/finds/finds_fossils.dm diff --git a/code/modules/research/xenoarchaeology/finds_misc.dm b/code/modules/research/xenoarchaeology/finds/finds_misc.dm similarity index 100% rename from code/modules/research/xenoarchaeology/finds_misc.dm rename to code/modules/research/xenoarchaeology/finds/finds_misc.dm diff --git a/code/modules/research/xenoarchaeology/finds_talking_item.dm b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm similarity index 100% rename from code/modules/research/xenoarchaeology/finds_talking_item.dm rename to code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm diff --git a/code/modules/research/xenoarchaeology/tools.dm b/code/modules/research/xenoarchaeology/tools.dm deleted file mode 100644 index 014ecc59120..00000000000 --- a/code/modules/research/xenoarchaeology/tools.dm +++ /dev/null @@ -1,225 +0,0 @@ -//---- miscellaneous devices ----// - -//also known as the x-ray diffractor -/obj/item/device/depth_scanner - name = "depth analysis scanner" - desc = "Used to check spatial depth and density of rock outcroppings." - icon = 'pda.dmi' - icon_state = "crap" - item_state = "analyzer" - w_class = 1.0 - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - var/list/positive_locations = list() - var/datum/depth_scan/current - -/datum/depth_scan - var/time = "" - var/coords = "" - var/depth = 0 - var/clearance = 0 - var/record_index = 1 - var/dissonance_spread = 1 - -/obj/item/device/depth_scanner/proc/scan_turf(var/mob/user, var/turf/T) - user.visible_message("\blue [user] scans [T], the air around them humming gently.") - if(istype(T,/turf/simulated/mineral)) - var/turf/simulated/mineral/M = T - if(M.excavation_minerals.len || M.finds.len) - //create a new scanlog entry - var/datum/depth_scan/D = new() - D.coords = "[10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]" - D.time = worldtime2text() - D.record_index = positive_locations.len + 1 - - //find whichever is closer: find or mineral - if(M.finds.len) - var/datum/find/F = M.finds[1] - D.depth = F.excavation_required - D.clearance = F.clearance_range - if(M.excavation_minerals.len) - if(M.excavation_minerals[1] < D.depth) - D.depth = M.excavation_minerals[1] - D.clearance = rand(2,6) - D.dissonance_spread = rand(1,1000) / 100 - - positive_locations.Add(D) - - for(var/mob/L in range(src, 1)) - L << "\blue \icon[src] [src] pings." - -/obj/item/device/depth_scanner/attack_self(var/mob/user as mob) - return src.interact(user) - -/obj/item/device/depth_scanner/interact(var/mob/user as mob) - var/dat = "Co-ordinates with positive matches
" - dat += "
== Clear all ==
" - if(current) - dat += "Time: [current.time]
" - dat += "Coords: [current.coords]
" - dat += "Anomaly depth: [current.depth]
" - dat += "Clearance: [current.clearance]
" - dat += "Dissonance spread: [current.dissonance_spread]
" - dat += "clear entry
" - else - dat += "Select an entry from the list
" - dat += "
" - dat += "
" - dat += "
" - dat += "
" - dat += "
" - if(positive_locations.len) - for(var/index=1, index<=positive_locations.len, index++) - var/datum/depth_scan/D = positive_locations[index] - dat += "[D.time], coords: [D.coords]
" - else - dat += "No entries recorded." - dat += "
" - dat += "Refresh
" - dat += "Close
" - user << browse(dat,"window=depth_scanner;size=300x500") - onclose(user, "depth_scanner") - -/obj/item/device/depth_scanner/Topic(href, href_list) - ..() - usr.set_machine(src) - - if(href_list["select"]) - var/index = text2num(href_list["select"]) - if(index && index <= positive_locations.len) - current = positive_locations[index] - else if(href_list["clear"]) - var/index = text2num(href_list["clear"]) - if(index) - if(index <= positive_locations.len) - var/datum/depth_scan/D = positive_locations[index] - positive_locations.Remove(D) - del(D) - else - //GC will hopefully pick them up before too long - positive_locations = list() - del(current) - else if(href_list["close"]) - usr.unset_machine() - usr << browse(null, "window=depth_scanner") - - updateSelfDialog() - -/obj/item/device/gps - name = "relay positioning device" - desc = "Triangulates the approximate co-ordinates using a nearby satellite network." - icon = 'device.dmi' - icon_state = "locator" - item_state = "locator" - -/obj/item/device/gps/attack_self(var/mob/user as mob) - var/turf/T = get_turf(src) - user << "\blue \icon[src] [src] flashes [10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]." - -/obj/item/device/beacon_locator - name = "locater device" - desc = "Used to scan and locate signals on a particular frequency according ." - icon = 'device.dmi' - icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull - item_state = "electronic" - -/obj/item/device/core_sampler - name = "core sampler" - desc = "Used to extract cores from geological samples." - icon = 'device.dmi' - icon_state = "core_sampler" - item_state = "screwdriver_brown" - w_class = 1.0 - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - -/obj/item/device/measuring_tape - name = "measuring tape" - desc = "A coiled metallic tape used to check dimensions and lengths." - icon = 'icons/obj/xenoarchaeology.dmi' - icon_state = "measuring" - -//todo: dig site tape - -//---- excavation devices devices ----// -//sorted in order of delicacy - -/obj/item/weapon/pickaxe/brush - name = "brush" - //icon_state = "brush" - //item_state = "minipick" - digspeed = 50 - desc = "Featuring thick metallic wires for clearing away dust and loose scree." - excavation_amount = 0.5 - drill_sound = 'sound/weapons/thudswoosh.ogg' - drill_verb = "brushing" - -/obj/item/weapon/pickaxe/one_pick - name = "1/6 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (1 centimetre excavation depth)." - excavation_amount = 1 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/two_pick - name = "1/3 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." - excavation_amount = 2 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/three_pick - name = "1/2 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (3 centimetre excavation depth)." - excavation_amount = 3 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/four_pick - name = "2/3 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." - excavation_amount = 4 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/five_pick - name = "5/6 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (5 centimetre excavation depth)." - excavation_amount = 5 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/six_pick - name = "1/1 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." - excavation_amount = 6 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/hand - name = "hand pickaxe" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A smaller, more precise version of the pickaxe (15 centimetre excavation depth)." - excavation_amount = 15 - drill_sound = 'sound/items/Crowbar.ogg' - drill_verb = "clearing" diff --git a/code/modules/research/xenoarchaeology/bunsen_burner.dm b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm similarity index 100% rename from code/modules/research/xenoarchaeology/bunsen_burner.dm rename to code/modules/research/xenoarchaeology/tools/bunsen_burner.dm diff --git a/code/modules/research/xenoarchaeology/spacesuit.dm b/code/modules/research/xenoarchaeology/tools/spacesuit.dm similarity index 84% rename from code/modules/research/xenoarchaeology/spacesuit.dm rename to code/modules/research/xenoarchaeology/tools/spacesuit.dm index 66c9dedb22d..2ff4ff266ea 100644 --- a/code/modules/research/xenoarchaeology/spacesuit.dm +++ b/code/modules/research/xenoarchaeology/tools/spacesuit.dm @@ -1,12 +1,12 @@ -/obj/item/clothing/suit/space/anomaly +/obj/item/clothing/suit/bio_suit/anomaly name = "Anomaly Suit" desc = "A sealed bio suit capable of resisting exotic alien energies and low pressure environments." icon_state = "engspace_suit" item_state = "engspace_suit" allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) -/obj/item/clothing/head/helmet/space/anomaly +/obj/item/clothing/head/bio_hood/anomaly name = "Anomaly Hood" desc = "A sealed bio hood capable of resisting exotic alien energies and low pressure environments." icon_state = "engspace_helmet" diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm new file mode 100644 index 00000000000..c36a7b16710 --- /dev/null +++ b/code/modules/research/xenoarchaeology/tools/tools.dm @@ -0,0 +1,22 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Miscellaneous xenoarchaeology tools + +/obj/item/device/gps + name = "relay positioning device" + desc = "Triangulates the approximate co-ordinates using a nearby satellite network." + icon = 'device.dmi' + icon_state = "locator" + item_state = "locator" + +/obj/item/device/gps/attack_self(var/mob/user as mob) + var/turf/T = get_turf(src) + user << "\blue \icon[src] [src] flashes [10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]." + +/obj/item/device/measuring_tape + name = "measuring tape" + desc = "A coiled metallic tape used to check dimensions and lengths." + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "measuring" + +//todo: dig site tape diff --git a/code/modules/research/xenoarchaeology/core_sampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm similarity index 98% rename from code/modules/research/xenoarchaeology/core_sampler.dm rename to code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 902857b75db..11bde6d4b0f 100644 --- a/code/modules/research/xenoarchaeology/core_sampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -52,6 +52,7 @@ if(istype(item_to_sample, /turf/simulated/mineral)) var/turf/simulated/mineral/T = item_to_sample geo_data = T.geological_data + geo_data.UpdateNearbyArtifactInfo(T) else if(istype(item_to_sample, /obj/item/weapon/ore)) var/obj/item/weapon/ore/O = item_to_sample geo_data = O.geological_data diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm new file mode 100644 index 00000000000..3a714bca916 --- /dev/null +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -0,0 +1,128 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Depth scanner - scans rock turfs / boulders and tells players if there is anything interesting inside, logs all finds + coordinates + times + +//also known as the x-ray diffractor +/obj/item/device/depth_scanner + name = "depth analysis scanner" + desc = "Used to check spatial depth and density of rock outcroppings." + icon = 'pda.dmi' + icon_state = "crap" + item_state = "analyzer" + w_class = 1.0 + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT + var/list/positive_locations = list() + var/datum/depth_scan/current + +/datum/depth_scan + var/time = "" + var/coords = "" + var/depth = 0 + var/clearance = 0 + var/record_index = 1 + var/dissonance_spread = 1 + +/obj/item/device/depth_scanner/proc/scan_atom(var/mob/user, var/atom/A) + user.visible_message("\blue [user] scans [A], the air around them humming gently.") + if(istype(A,/turf/simulated/mineral)) + var/turf/simulated/mineral/M = A + if(M.excavation_minerals.len || M.finds.len) + + //create a new scanlog entry + var/datum/depth_scan/D = new() + D.coords = "[10 * M.x + rand(0,9)]:[10 * M.y + rand(0,9)]:[10 * M.z + rand(0,9)]" + D.time = worldtime2text() + D.record_index = positive_locations.len + 1 + + //find whichever is closer: find or mineral + if(M.finds.len) + var/datum/find/F = M.finds[1] + D.depth = F.excavation_required * 2 + D.clearance = F.clearance_range * 2 + if(M.excavation_minerals.len) + if(M.excavation_minerals[1] < D.depth) + D.depth = M.excavation_minerals[1] + D.clearance = rand(2,6) + D.dissonance_spread = rand(1,1000) / 100 + + positive_locations.Add(D) + + for(var/mob/L in range(src, 1)) + L << "\blue \icon[src] [src] pings." + + else if(istype(A,/obj/structure/boulder)) + var/obj/structure/boulder/B = A + if(B.artifact_find) + //create a new scanlog entry + var/datum/depth_scan/D = new() + D.coords = "[10 * B.x + rand(0,9)]:[10 * B.y + rand(0,9)]:[10 * B.z + rand(0,9)]" + D.time = worldtime2text() + D.record_index = positive_locations.len + 1 + + //these values are arbitrary + D.depth = rand(75,100) + D.clearance = rand(5,25) + D.dissonance_spread = rand(750,2500) / 100 + + positive_locations.Add(D) + + for(var/mob/L in range(src, 1)) + L << "\blue \icon[src] [src] pings [pick("madly","wildly","excitedly","crazily")]." + +/obj/item/device/depth_scanner/attack_self(var/mob/user as mob) + return src.interact(user) + +/obj/item/device/depth_scanner/interact(var/mob/user as mob) + var/dat = "Co-ordinates with positive matches
" + dat += "== Clear all ==
" + if(current) + dat += "Time: [current.time]
" + dat += "Coords: [current.coords]
" + dat += "Anomaly depth: [current.depth]
" + dat += "Clearance: [current.clearance]
" + dat += "Dissonance spread: [current.dissonance_spread]
" + dat += "clear entry
" + else + dat += "Select an entry from the list
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + if(positive_locations.len) + for(var/index=1, index<=positive_locations.len, index++) + var/datum/depth_scan/D = positive_locations[index] + dat += "[D.time], coords: [D.coords]
" + else + dat += "No entries recorded." + dat += "
" + dat += "Refresh
" + dat += "Close
" + user << browse(dat,"window=depth_scanner;size=300x500") + onclose(user, "depth_scanner") + +/obj/item/device/depth_scanner/Topic(href, href_list) + ..() + usr.set_machine(src) + + if(href_list["select"]) + var/index = text2num(href_list["select"]) + if(index && index <= positive_locations.len) + current = positive_locations[index] + else if(href_list["clear"]) + var/index = text2num(href_list["clear"]) + if(index) + if(index <= positive_locations.len) + var/datum/depth_scan/D = positive_locations[index] + positive_locations.Remove(D) + del(D) + else + //GC will hopefully pick them up before too long + positive_locations = list() + del(current) + else if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=depth_scanner") + + updateSelfDialog() diff --git a/code/modules/research/xenoarchaeology/tools/tools_excav.dm b/code/modules/research/xenoarchaeology/tools/tools_excav.dm new file mode 100644 index 00000000000..7a11c1213a9 --- /dev/null +++ b/code/modules/research/xenoarchaeology/tools/tools_excav.dm @@ -0,0 +1,83 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Excavation pickaxes - sorted in order of delicacy. Players will have to choose the right one for each part of excavation. + +/obj/item/weapon/pickaxe/brush + name = "brush" + //icon_state = "brush" + //item_state = "minipick" + digspeed = 50 + desc = "Thick metallic wires for clearing away dust and loose scree (1 centimetre excavation depth)." + excavation_amount = 0.5 + drill_sound = 'sound/weapons/thudswoosh.ogg' + drill_verb = "brushing" + +/obj/item/weapon/pickaxe/one_pick + name = "1/6 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." + excavation_amount = 1 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/two_pick + name = "1/3 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." + excavation_amount = 2 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/three_pick + name = "1/2 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." + excavation_amount = 3 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/four_pick + name = "2/3 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)." + excavation_amount = 4 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/five_pick + name = "5/6 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)." + excavation_amount = 5 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/six_pick + name = "1/1 pick" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)." + excavation_amount = 6 + drill_sound = 'sound/items/Screwdriver.ogg' + drill_verb = "delicately picking" + +/obj/item/weapon/pickaxe/hand + name = "hand pickaxe" + //icon_state = "excavation" + //item_state = "minipick" + digspeed = 50 + desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)." + excavation_amount = 15 + drill_sound = 'sound/items/Crowbar.ogg' + drill_verb = "clearing" diff --git a/code/modules/research/xenoarchaeology/tools/tools_locater.dm b/code/modules/research/xenoarchaeology/tools/tools_locater.dm new file mode 100644 index 00000000000..ea86c6de9d5 --- /dev/null +++ b/code/modules/research/xenoarchaeology/tools/tools_locater.dm @@ -0,0 +1,97 @@ + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GPS Locater - locks into a radio frequency and tracks it + +/obj/item/device/beacon_locator + name = "locater device" + desc = "Used to scan and locate signals on a particular frequency according ." + icon = 'device.dmi' + icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull + item_state = "electronic" + var/frequency = 1459 + var/scan_ticks = 0 + var/obj/item/device/radio/target_radio + +/obj/item/device/beacon_locator/New() + ..() + processing_objects.Add(src) + +/obj/item/device/beacon_locator/Del() + processing_objects.Remove(src) + ..() + +/obj/item/device/beacon_locator/process() + if(target_radio) + dir = get_dir(src,target_radio) + switch(get_dist(src,target_radio)) + if(0 to 3) + icon_state = "pinondirect" + if(4 to 10) + icon_state = "pinonclose" + if(11 to 30) + icon_state = "pinonmedium" + if(31 to INFINITY) + icon_state = "pinonfar" + else + if(scan_ticks) + icon_state = "pinonnull" + scan_ticks++ + if(prob(scan_ticks * 10)) + spawn(0) + set background = 1 + if(processing_objects.Find(src)) + //scan radios in the world to try and find one + var/cur_dist = 999 + for(var/obj/item/device/radio/beacon/R in world) + if(R.z == src.z && R.frequency == src.frequency) + var/check_dist = get_dist(src,R) + if(check_dist < cur_dist) + cur_dist = check_dist + target_radio = R + + scan_ticks = 0 + var/turf/T = get_turf(src) + if(target_radio) + T.visible_message("\icon[src] [src] [pick("chirps","chirrups","cheeps")] happily.") + else + T.visible_message("\icon[src] [src] [pick("chirps","chirrups","cheeps")] sadly.") + else + icon_state = "pinoff" + +/obj/item/device/beacon_locator/attack_self(var/mob/user as mob) + return src.interact(user) + +/obj/item/device/beacon_locator/interact(var/mob/user as mob) + var/dat = "Radio frequency tracker
" + dat += {" + Reset tracker
+ Frequency: + - + - + [format_frequency(frequency)] + + + +
+ "} + + dat += "Close
" + user << browse(dat,"window=locater;size=300x150") + onclose(user, "locater") + +/obj/item/device/beacon_locator/Topic(href, href_list) + ..() + usr.set_machine(src) + + if(href_list["reset_tracking"]) + scan_ticks = 1 + target_radio = null + else if(href_list["freq"]) + var/new_frequency = (frequency + text2num(href_list["freq"])) + if (frequency < 1200 || frequency > 1600) + new_frequency = sanitize_frequency(new_frequency, 1499) + frequency = new_frequency + + else if(href_list["close"]) + usr.unset_machine() + usr << browse(null, "window=locater") + + updateSelfDialog() diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm new file mode 100644 index 00000000000..c2302d91878 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm @@ -0,0 +1,22 @@ + +//inverse of /datum/artifact_effect/heat, the two effects split up for neatness' sake +/datum/artifact_effect/cold + effecttype = "cold" + var/target_temp + +/datum/artifact_effect/cold/New() + ..() + target_temp = rand(0, 250) + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + +/datum/artifact_effect/cold/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.temperature -= rand(5,50) + +/datum/artifact_effect/cold/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.temperature < target_temp) + env.temperature -= pick(0, 0, rand(), 1) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm new file mode 100644 index 00000000000..0be1c3c9c85 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm @@ -0,0 +1,67 @@ + +/datum/artifact_effect/badfeeling + effecttype = "badfeeling" + var/list/messages = list("You feel worried.",\ + "Something doesn't feel right.",\ + "You get a strange feeling in your gut.",\ + "Your instincts are trying to warn you about something.",\ + "Someone just walked over your grave.",\ + "There's a strange feeling in the air.",\ + "There's a strange smell in the air.",\ + "The tips of your fingers feel tingly.",\ + "You feel witchy.",\ + "You have a terrible sense of foreboding.",\ + "You've got a bad feeling about this.",\ + "Your scalp prickles.",\ + "The light seems to flicker.",\ + "The shadows seem to lengthen.",\ + "The walls are getting closer.",\ + "Something is wrong") + + var/list/drastic_messages = list("You've got to get out of here!",\ + "Someone's trying to kill you!",\ + "There's something out there!",\ + "What's happening to you?",\ + "OH GOD!",\ + "HELP ME!") + +/datum/artifact_effect/badfeeling/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = holder + if(prob(50)) + if(prob(75)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + +/datum/artifact_effect/badfeeling/DoEffectAura() + if(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,holder)) + if(prob(10)) + if(prob(75)) + H << "[pick(messages)]" + else + H << "[pick(drastic_messages)]" + + if(prob(10)) + H.dizziness += rand(3,5) + return 1 + +/datum/artifact_effect/badfeeling/DoEffectPulse() + if(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,holder)) + if(prob(50)) + if(prob(95)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + else if(prob(25)) + H.dizziness += rand(5,15) + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm new file mode 100644 index 00000000000..45f895e53fd --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm @@ -0,0 +1,37 @@ + +//todo +/datum/artifact_effect/cellcharge + effecttype = "cellcharge" + +/datum/artifact_effect/cellcharge/DoEffectTouch(var/mob/user) + if(user) + if(istype(user, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = user + for (var/obj/item/weapon/cell/D in R.contents) + D.charge += 250 + R << "\blue SYSTEM ALERT: Large energy boost detected!" + return 1 + +/datum/artifact_effect/cellcharge/DoEffectAura() + if(holder) + for (var/obj/machinery/power/apc/C in range(200, holder)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge += 100 + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 250 + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge += 100 + M << "\blue SYSTEM ALERT: Energy boost detected!" + return 1 + +/datum/artifact_effect/cellcharge/DoEffectPulse() + if(holder) + for (var/obj/machinery/power/apc/C in range(200, holder)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge += 100 + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 250 + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge += 100 + M << "\blue SYSTEM ALERT: Energy boost detected!" + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm new file mode 100644 index 00000000000..677d5892c5e --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm @@ -0,0 +1,41 @@ + +//todo +/datum/artifact_effect/celldrain + effecttype = "celldrain" + +/datum/artifact_effect/celldrain/DoEffectTouch(var/mob/user) + if(user) + if(istype(user, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = user + for (var/obj/item/weapon/cell/D in R.contents) + D.charge = max(D.charge-250, 0) + R << "\blue SYSTEM ALERT: Energy drain detected!" + return 1 + + return 1 + +/datum/artifact_effect/celldrain/DoEffectAura() + if(holder) + for (var/obj/machinery/power/apc/C in range(200, holder)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge = max(B.charge-250,0) + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + S.charge = max(S.charge-250,0) + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge = max(D.charge-250,0) + M << "\red SYSTEM ALERT: Energy drain detected!" + return 1 + +/datum/artifact_effect/celldrain/DoEffectPulse() + if(holder) + for (var/obj/machinery/power/apc/C in range(200, holder)) + for (var/obj/item/weapon/cell/B in C.contents) + B.charge = max(B.charge-250,0) + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + S.charge = max(S.charge-250,0) + for (var/mob/living/silicon/robot/M in world) + for (var/obj/item/weapon/cell/D in M.contents) + D.charge = max(D.charge-250,0) + M << "\red SYSTEM ALERT: Energy drain detected!" + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm new file mode 100644 index 00000000000..4c5329ca927 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm @@ -0,0 +1,66 @@ + +//todo +/datum/artifact_effect/dnaswitch + effecttype = "dnaswitch" + var/severity + +/datum/artifact_effect/dnaswitch/New() + ..() + if(effect == EFFECT_AURA) + severity = rand(1,10) + else + severity = rand(5,95) + +/datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/holder) + if(ishuman(holder) && !istype(holder:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && !istype(holder:head,/obj/item/clothing/head/bio_hood/anomaly)) + holder << pick("\green You feel a little different.",\ + "\green You feel very strange.",\ + "\green Your stomach churns.",\ + "\green Your skin feels loose.",\ + "\green You feel a stabbing pain in your head.",\ + "\green You feel a tingling sensation in your chest.",\ + "\green Your entire body vibrates.") + if(prob(75)) + scramble(1, holder, severity) + else + scramble(0, holder, severity) + return 1 + +/datum/artifact_effect/dnaswitch/DoEffectAura() + for(var/mob/living/carbon/human/H in range(src.effectrange,holder)) + if(istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(30)) + H << pick("\green You feel a little different.",\ + "\green You feel very strange.",\ + "\green Your stomach churns.",\ + "\green Your skin feels loose.",\ + "\green You feel a stabbing pain in your head.",\ + "\green You feel a tingling sensation in your chest.",\ + "\green Your entire body vibrates.") + if(prob(25)) + scramble(1, H, severity) + else + scramble(0, H, severity) + return 1 + +/datum/artifact_effect/dnaswitch/DoEffectPulse() + for(var/mob/living/carbon/human/H in range(200, holder)) + if(istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + + if(prob(75)) + H << pick("\green You feel a little different.",\ + "\green You feel very strange.",\ + "\green Your stomach churns.",\ + "\green Your skin feels loose.",\ + "\green You feel a stabbing pain in your head.",\ + "\green You feel a tingling sensation in your chest.",\ + "\green Your entire body vibrates.") + if(prob(25)) + if(prob(50)) + scramble(1, H, severity) + else + scramble(0, H, severity) + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm new file mode 100644 index 00000000000..3a62e146acf --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm @@ -0,0 +1,12 @@ + +/datum/artifact_effect/emp + effecttype = "emp" + +/datum/artifact_effect/emp/New() + ..() + effect = EFFECT_PULSE + +/datum/artifact_effect/emp/DoEffectPulse() + if(holder) + empulse(get_turf(holder), effectrange/2, effectrange) + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm new file mode 100644 index 00000000000..7957c999dd1 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm @@ -0,0 +1,77 @@ + +/datum/artifact_effect/forcefield + effecttype = "forcefield" + var/list/created_field = list() + +/datum/artifact_effect/forcefield/New() + ..() + trigger = TRIGGER_TOUCH + +/datum/artifact_effect/forcefield/ToggleActivate() + ..() + if(created_field.len) + for(var/obj/effect/energy_field/F in created_field) + created_field.Remove(F) + del F + else if(holder) + while(created_field.len < 16) + var/obj/effect/energy_field/E = new (locate(holder.x,holder.y,holder.z)) + created_field.Add(E) + E.strength = 1 + E.density = 1 + E.anchored = 1 + E.invisibility = 0 + spawn(10) + UpdateMove() + return 1 + +/datum/artifact_effect/forcefield/process() + ..() + for(var/obj/effect/energy_field/E in created_field) + if(E.strength < 1) + E.Strengthen(0.15) + else if(E.strength < 5) + E.Strengthen(0.25) + +/datum/artifact_effect/forcefield/UpdateMove() + if(created_field.len && holder) + while(created_field.len < 16) + //for now, just instantly respawn the fields when they get destroyed + var/obj/effect/energy_field/E = new (locate(holder.x,holder.y,holder)) + created_field.Add(E) + E.anchored = 1 + E.density = 1 + E.invisibility = 0 + + var/obj/effect/energy_field/E = created_field[1] + E.loc = locate(holder.x + 2,holder.y + 2,holder.z) + E = created_field[2] + E.loc = locate(holder.x + 2,holder.y + 1,holder.z) + E = created_field[3] + E.loc = locate(holder.x + 2,holder.y,holder.z) + E = created_field[4] + E.loc = locate(holder.x + 2,holder.y - 1,holder.z) + E = created_field[5] + E.loc = locate(holder.x + 2,holder.y - 2,holder.z) + E = created_field[6] + E.loc = locate(holder.x + 1,holder.y + 2,holder.z) + E = created_field[7] + E.loc = locate(holder.x + 1,holder.y - 2,holder.z) + E = created_field[8] + E.loc = locate(holder.x,holder.y + 2,holder.z) + E = created_field[9] + E.loc = locate(holder.x,holder.y - 2,holder.z) + E = created_field[10] + E.loc = locate(holder.x - 1,holder.y + 2,holder.z) + E = created_field[11] + E.loc = locate(holder.x - 1,holder.y - 2,holder.z) + E = created_field[12] + E.loc = locate(holder.x - 2,holder.y + 2,holder.z) + E = created_field[13] + E.loc = locate(holder.x - 2,holder.y + 1,holder.z) + E = created_field[14] + E.loc = locate(holder.x - 2,holder.y,holder.z) + E = created_field[15] + E.loc = locate(holder.x - 2,holder.y - 1,holder.z) + E = created_field[16] + E.loc = locate(holder.x - 2,holder.y - 2,holder.z) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm new file mode 100644 index 00000000000..ae44c04b171 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm @@ -0,0 +1,22 @@ + +/datum/artifact_effect/gasco2 + effecttype = "gasco2" + var/max_pressure + var/target_percentage + +/datum/artifact_effect/gasco2/New() + ..() + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + max_pressure = rand(115,1000) + +/datum/artifact_effect/gasco2/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.carbon_dioxide += rand(2,15) + +/datum/artifact_effect/gasco2/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.total_moles < max_pressure) + env.carbon_dioxide += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm new file mode 100644 index 00000000000..60b7e2a47c3 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm @@ -0,0 +1,22 @@ + +/datum/artifact_effect/gasnitro + effecttype = "gasnitro" + var/max_pressure + var/target_percentage + +/datum/artifact_effect/gasnitro/New() + ..() + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + max_pressure = rand(115,1000) + +/datum/artifact_effect/gasnitro/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.nitrogen += rand(2,15) + +/datum/artifact_effect/gasnitro/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.total_moles < max_pressure) + env.nitrogen += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm new file mode 100644 index 00000000000..45e40bd3647 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm @@ -0,0 +1,21 @@ + +/datum/artifact_effect/gasoxy + effecttype = "gasoxy" + var/max_pressure + +/datum/artifact_effect/gasoxy/New() + ..() + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + max_pressure = rand(115,1000) + +/datum/artifact_effect/gasoxy/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.oxygen += rand(2,15) + +/datum/artifact_effect/gasoxy/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.total_moles < max_pressure) + env.oxygen += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm new file mode 100644 index 00000000000..27a5c98515b --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm @@ -0,0 +1,22 @@ + +/datum/artifact_effect/gasplasma + effecttype = "gasplasma" + var/max_pressure + var/target_percentage + +/datum/artifact_effect/gasplasma/New() + ..() + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + max_pressure = rand(115,1000) + +/datum/artifact_effect/gasplasma/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.toxins += rand(2,15) + +/datum/artifact_effect/gasplasma/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.total_moles < max_pressure) + env.toxins += pick(0, 0, 0.1, rand()) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm new file mode 100644 index 00000000000..3ac107be500 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm @@ -0,0 +1,30 @@ + +/datum/artifact_effect/gassleeping + effecttype = "gassleeping" + var/max_pressure + var/target_percentage + +/datum/artifact_effect/gassleeping/New() + ..() + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + max_pressure = rand(115,1000) + +/datum/artifact_effect/gassleeping/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + var/datum/gas/sleeping_agent/trace_gas = new + env.trace_gases += trace_gas + trace_gas.moles = rand(2,15) + env.update_values() + + +/datum/artifact_effect/gassleeping/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.total_moles < max_pressure) + var/datum/gas/sleeping_agent/trace_gas = new + env.trace_gases += trace_gas + trace_gas.moles = pick(0, 0, 0.1, rand()) + env.update_values() + diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm new file mode 100644 index 00000000000..2dd0e991677 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm @@ -0,0 +1,65 @@ + +/datum/artifact_effect/goodfeeling + effecttype = "goodfeeling" + var/list/messages = list("You feel good.",\ + "Everything seems to be going alright",\ + "You've got a good feeling about this",\ + "Your instincts tell you everything is going to be getting better.",\ + "There's a good feeling in the air.",\ + "Something smells... good.",\ + "The tips of your fingers feel tingly.",\ + "You've got a good feeling about this.",\ + "You feel happy.",\ + "You fight the urge to smile.",\ + "Your scalp prickles.",\ + "All the colours seem a bit more vibrant.",\ + "Everything seems a little lighter.",\ + "The troubles of the world seem to fade away.") + + var/list/drastic_messages = list("You want to hug everyone you meet!",\ + "Everything is going so well!",\ + "You feel euphoric.",\ + "You feel giddy.",\ + "You're so happy suddenly, you almost want to dance and sing.",\ + "You feel like the world is out to help you.") + +/datum/artifact_effect/goodfeeling/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = holder + if(prob(50)) + if(prob(75)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + +/datum/artifact_effect/goodfeeling/DoEffectAura() + if(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,holder)) + if(prob(10)) + if(prob(75)) + H << "[pick(messages)]" + else + H << "[pick(drastic_messages)]" + + if(prob(10)) + H.dizziness += rand(3,5) + return 1 + +/datum/artifact_effect/goodfeeling/DoEffectPulse() + if(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,holder)) + if(prob(50)) + if(prob(95)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + else if(prob(25)) + H.dizziness += rand(5,15) + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm new file mode 100644 index 00000000000..ee01aa182b1 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm @@ -0,0 +1,67 @@ + +/datum/artifact_effect/heal + effecttype = "heal" + +/datum/artifact_effect/heal/DoEffectTouch(var/mob/user) + //caeltodo + if(user) + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = holder + H << "\blue You feel a soothing energy invigorate you." + + for(var/datum/organ/external/affecting in H.organs) + if(affecting && istype(affecting)) + affecting.heal_damage(25, 25) + //H:heal_organ_damage(25, 25) + // + H.adjustOxyLoss(-25) + H.adjustToxLoss(-25) + H.adjustBruteLoss(-25) + H.adjustFireLoss(-25) + H.adjustBrainLoss(-25) + H.radiation -= min(H.radiation, 25) + H.nutrition += 50 + H.bodytemperature = initial(H.bodytemperature) + // + H.vessel.add_reagent("blood",50) + spawn(1) + H.fixblood() + H.regenerate_icons() + return 1 + + else if (istype(user, /mob/living/carbon/monkey/)) + var/mob/living/carbon/monkey/M = holder + M << "\blue You feel a soothing energy invigorate you." + M.adjustOxyLoss(-25) + M.adjustToxLoss(-25) + M.adjustBruteLoss(-25) + M.adjustFireLoss(-25) + M.adjustBrainLoss(-25) + return 1 + +/datum/artifact_effect/heal/DoEffectAura() + //caeltodo + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby." + M.adjustBruteLoss(-1) + M.adjustFireLoss(-1) + M.adjustToxLoss(-1) + M.adjustOxyLoss(-1) + M.adjustBrainLoss(-1) + M.updatehealth() + return 1 + +/datum/artifact_effect/heal/DoEffectPulse() + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\blue A wave of energy invigorates you." + M.adjustBruteLoss(-5) + M.adjustFireLoss(-5) + M.adjustToxLoss(-5) + M.adjustOxyLoss(-5) + M.adjustBrainLoss(-5) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm new file mode 100644 index 00000000000..4639f503e68 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm @@ -0,0 +1,22 @@ + +//inverse of /datum/artifact_effect/cold, the two effects split up for neatness' sake +/datum/artifact_effect/heat + effecttype = "heat" + var/target_temp + +/datum/artifact_effect/heat/New() + ..() + target_temp = rand(300,600) + effect = pick(EFFECT_TOUCH, EFFECT_AURA) + +/datum/artifact_effect/heat/DoEffectTouch(var/mob/user) + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env) + env.temperature += rand(5,50) + +/datum/artifact_effect/heat/DoEffectAura() + if(holder) + var/datum/gas_mixture/env = holder.loc.return_air() + if(env && env.temperature < target_temp) + env.temperature += pick(0, 0, rand(), 1) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm new file mode 100644 index 00000000000..29c1ffc18ee --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm @@ -0,0 +1,46 @@ + +/datum/artifact_effect/hurt + effecttype = "hurt" + +/datum/artifact_effect/hurt/DoEffectTouch(var/mob/holder) + //caeltodo + if(holder) + if (istype(holder, /mob/living/carbon/)) + var/mob/living/carbon/C = holder + C << "\red A painful discharge of energy strikes you!" + C.adjustOxyLoss(rand(5,25)) + C.adjustToxLoss(rand(5,25)) + C.adjustBruteLoss(rand(5,25)) + C.adjustFireLoss(rand(5,25)) + C.adjustBrainLoss(rand(5,25)) + C.radiation += 25 + C.nutrition -= min(50, C.nutrition) + C.make_dizzy(6) + C.weakened += 6 + return 1 + +/datum/artifact_effect/hurt/DoEffectAura() + if(holder) + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\red You feel a painful force radiating from something nearby." + M.adjustBruteLoss(1) + M.adjustFireLoss(1) + M.adjustToxLoss(1) + M.adjustOxyLoss(1) + M.adjustBrainLoss(1) + M.updatehealth() + return 1 + +/datum/artifact_effect/hurt/DoEffectPulse() + if(holder) + for (var/mob/living/carbon/human/M in range(effectrange, holder)) + M << "\red A wave of painful energy strikes you!" + M.adjustBruteLoss(3) + M.adjustFireLoss(3) + M.adjustToxLoss(3) + M.adjustOxyLoss(3) + M.adjustBrainLoss(3) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm new file mode 100644 index 00000000000..7d1c1c887ff --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm @@ -0,0 +1,26 @@ + +/datum/artifact_effect/radiate + effecttype = "radiate" + var/radiation_amount + +/datum/artifact_effect/radiate/New() + ..() + radiation_amount = rand(1, 10) + +/datum/artifact_effect/radiate/DoEffectTouch(var/mob/living/user) + if(user) + user.apply_effect(radiation_amount * 5,IRRADIATE,0) + user.updatehealth() + return 1 + +/datum/artifact_effect/radiate/DoEffectAura() + for (var/mob/living/M in range(src.effectrange,holder)) + M.apply_effect(radiation_amount,IRRADIATE,0) + M.updatehealth() + return 1 + +/datum/artifact_effect/radiate/DoEffectPulse() + for (var/mob/living/M in range(src.effectrange,holder)) + M.apply_effect(radiation_amount * 25,IRRADIATE,0) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm new file mode 100644 index 00000000000..cd058da7fa2 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm @@ -0,0 +1,31 @@ + +/datum/artifact_effect/roboheal + effecttype = "roboheal" + +/datum/artifact_effect/roboheal/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = holder + R << "\blue Your systems report damaged components mending by themselves!" + R.adjustBruteLoss(rand(-10,-30)) + R.adjustFireLoss(rand(-10,-30)) + return 1 + +/datum/artifact_effect/roboheal/DoEffectAura() + if(holder) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + if(prob(10)) + M << "\blue SYSTEM ALERT: Beneficial energy field detected!" + M.adjustBruteLoss(-1) + M.adjustFireLoss(-1) + M.updatehealth() + return 1 + +/datum/artifact_effect/roboheal/DoEffectPulse() + if(holder) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + M << "\blue SYSTEM ALERT: Structural damage has been repaired by energy pulse!" + M.adjustBruteLoss(-10) + M.adjustFireLoss(-10) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm new file mode 100644 index 00000000000..8e93a26b3c0 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm @@ -0,0 +1,30 @@ + +/datum/artifact_effect/robohurt + effecttype = "robohurt" + +/datum/artifact_effect/robohurt/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = user + R << "\red Your systems report severe damage has been inflicted!" + R.adjustBruteLoss(rand(10,50)) + R.adjustFireLoss(rand(10,50)) + return 1 + +/datum/artifact_effect/robohurt/DoEffectAura() + if(holder) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + if(prob(10)) M << "\red SYSTEM ALERT: Harmful energy field detected!" + M.adjustBruteLoss(1) + M.adjustFireLoss(1) + M.updatehealth() + return 1 + +/datum/artifact_effect/robohurt/DoEffectPulse() + if(holder) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + M << "\red SYSTEM ALERT: Structural damage inflicted by energy pulse!" + M.adjustBruteLoss(10) + M.adjustFireLoss(10) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm new file mode 100644 index 00000000000..6648ffd19cf --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm @@ -0,0 +1,36 @@ + +//todo +/datum/artifact_effect/sleepy + effecttype = "sleepy" + +/datum/artifact_effect/sleepy/DoEffectTouch(var/mob/user) + if(user) + if(istype(user,/mob/living/carbon)) + var/mob/living/carbon/C = user + C << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + C.drowsyness = min(user.drowsyness + rand(5,25), 50) + C.eye_blurry = min(user.eye_blurry + rand(1,3), 50) + return 1 + else if(istype(user,/mob/living/silicon/robot)) + user << "\red SYSTEM ALERT: CPU cycles slowing down." + return 1 + +/datum/artifact_effect/sleepy/DoEffectAura() + if(holder) + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(prob(10)) + M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + M.drowsyness = min(M.drowsyness + 1, 25) + M.eye_blurry = min(M.eye_blurry + 1, 25) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + M << "\red SYSTEM ALERT: CPU cycles slowing down." + return 1 + +/datum/artifact_effect/sleepy/DoEffectPulse() + if(holder) + for(var/mob/living/H in range(src.effectrange, holder)) + H.drowsyness = min(H.drowsyness + rand(5,15), 50) + H.eye_blurry = min(H.eye_blurry + rand(5,15), 50) + for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) + M << "\red SYSTEM ALERT: CPU cycles slowing down." + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm new file mode 100644 index 00000000000..47506bb0f2a --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm @@ -0,0 +1,38 @@ + +/datum/artifact_effect/stun + effecttype = "stun" + +/datum/artifact_effect/stun/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/carbon/)) + user << "\red A powerful force overwhelms your consciousness." + user.weakened += 45 + user.stuttering += 45 + user.stunned += rand(1,10) + return 1 + +/datum/artifact_effect/stun/DoEffectAura() + if(holder) + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + if(prob(10)) M << "\red You feel numb." + if(prob(20)) + M << "\red Your body goes numb for a moment." + M.weakened += 2 + M.stuttering += 2 + if(prob(10)) + M.stunned += 1 + return 1 + +/datum/artifact_effect/stun/DoEffectPulse() + if(holder) + for (var/mob/living/carbon/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + M << "\red A wave of energy overwhelms your senses!" + M.weakened += 4 + M.stuttering += 4 + if(prob(10)) + M.stunned += 1 + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm new file mode 100644 index 00000000000..b99d7f9ab5f --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm @@ -0,0 +1,66 @@ + +/datum/artifact_effect/teleport + effecttype = "teleport" + +/datum/artifact_effect/teleport/DoEffectTouch(var/mob/user) + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(user, 50)) + randomturfs.Add(T) + if(randomturfs.len > 0) + user << "\red You are suddenly zapped away elsewhere!" + if (user.buckled) + user.buckled.unbuckle() + + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(user)) + sparks.start() + user.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(user)) + sparks.start() + + return 1 + +/datum/artifact_effect/teleport/DoEffectAura() + if(holder) + for (var/mob/living/M in range(src.effectrange,holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(M, 30)) + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" + if(M.buckled) + M.buckled.unbuckle() + + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + M.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + return 1 + +/datum/artifact_effect/teleport/DoEffectPulse() + if(holder) + for (var/mob/living/M in range(src.effectrange, holder)) + if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) + continue + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(M, 15)) + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" + + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + if(M.buckled) + M.buckled.unbuckle() + M.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/unknown.dm b/code/modules/research/xenoarchaeology/unknown/unknown.dm new file mode 100644 index 00000000000..1313203a943 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/unknown.dm @@ -0,0 +1,360 @@ + +#define EFFECT_TOUCH 0 +#define EFFECT_AURA 1 +#define EFFECT_PULSE 2 +#define MAX_EFFECT 2 + +#define TRIGGER_TOUCH 0 +#define TRIGGER_WATER 1 +#define TRIGGER_ACID 2 +#define TRIGGER_VOLATILE 3 +#define TRIGGER_TOXIN 4 +#define TRIGGER_FORCE 5 +#define TRIGGER_ENERGY 6 +#define TRIGGER_HEAT 7 +#define TRIGGER_COLD 8 +#define TRIGGER_PLASMA 9 +#define TRIGGER_OXY 10 +#define TRIGGER_CO2 11 +#define TRIGGER_NITRO 12 +#define MAX_TRIGGER 12 + +//sleeping gas appears to be bugged, currently +var/list/valid_primary_effect_types = list(\ + /datum/artifact_effect/cellcharge,\ + /datum/artifact_effect/celldrain,\ + /datum/artifact_effect/forcefield,\ + /datum/artifact_effect/gasoxy,\ + /datum/artifact_effect/gasplasma,\ +/* /datum/artifact_effect/gassleeping,\*/ + /datum/artifact_effect/heal,\ + /datum/artifact_effect/hurt,\ + /datum/artifact_effect/emp,\ + /datum/artifact_effect/teleport,\ + /datum/artifact_effect/robohurt,\ + /datum/artifact_effect/roboheal) + +var/list/valid_secondary_effect_types = list(\ + /datum/artifact_effect/cold,\ + /datum/artifact_effect/badfeeling,\ + /datum/artifact_effect/cellcharge,\ + /datum/artifact_effect/celldrain,\ + /datum/artifact_effect/dnaswitch,\ + /datum/artifact_effect/emp,\ + /datum/artifact_effect/gasco2,\ + /datum/artifact_effect/gasnitro,\ + /datum/artifact_effect/gasoxy,\ + /datum/artifact_effect/gasplasma,\ +/* /datum/artifact_effect/gassleeping,\*/ + /datum/artifact_effect/goodfeeling,\ + /datum/artifact_effect/heal,\ + /datum/artifact_effect/hurt,\ + /datum/artifact_effect/radiate,\ + /datum/artifact_effect/roboheal,\ + /datum/artifact_effect/robohurt,\ + /datum/artifact_effect/sleepy,\ + /datum/artifact_effect/stun,\ + /datum/artifact_effect/teleport) + +/obj/machinery/artifact + name = "alien artifact" + desc = "A large alien device." + icon = 'xenoarchaeology.dmi' + icon_state = "ano00" + var/icon_num = 0 + density = 1 + var/datum/artifact_effect/my_effect + var/datum/artifact_effect/secondary_effect + var/being_used = 0 + +/obj/machinery/artifact/New() + ..() + + //setup primary effect - these are the main ones (mixed) + var/effecttype = pick(valid_primary_effect_types) + my_effect = new effecttype(src) + + //75% chance to have a secondary stealthy (and mostly bad) effect + if(prob(75)) + effecttype = pick(valid_secondary_effect_types) + secondary_effect = new effecttype(src) + if(prob(75)) + secondary_effect.ToggleActivate(0) + + icon_num = rand(0,11) + icon_state = "ano[icon_num]0" + if(icon_num == 7 || icon_num == 8) + name = "large crystal" + desc = pick("It shines faintly as it catches the light.",\ + "It appears to have a faint inner glow.",\ + "It seems to draw you inward as you look it at.",\ + "Something twinkles faintly as you look at it.",\ + "It's mesmerizing to behold.") + if(prob(50)) + my_effect.trigger = TRIGGER_ENERGY + else if(icon_num == 9) + name = "alien computer" + desc = "It is covered in strange markings." + if(prob(75)) + my_effect.trigger = TRIGGER_TOUCH + else if(icon_num == 10) + desc = "A large alien device, there appear to be some kind of vents in the side." + if(prob(50)) + my_effect.trigger = rand(6,12) + else if(icon_num == 11) + name = "sealed alien pod" + desc = "A strange alien device." + if(prob(25)) + my_effect.trigger = rand(1,4) + +#define TRIGGER_PLASMA 9 +#define TRIGGER_OXY 10 +#define TRIGGER_CO2 11 +#define TRIGGER_NITRO 12 + +/obj/machinery/artifact/process() + if(my_effect) + my_effect.process() + if(secondary_effect) + secondary_effect.process() + + if(pulledby) + Bumped(pulledby) + + //if either of our effects rely on environmental factors, work that out + var/trigger_cold = 0 + var/trigger_hot = 0 + var/trigger_plasma = 0 + var/trigger_oxy = 0 + var/trigger_co2 = 0 + var/trigger_nitro = 0 + if( (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) || (my_effect.trigger >= TRIGGER_HEAT && my_effect.trigger <= TRIGGER_NITRO) ) + var/turf/T = get_turf(src) + var/datum/gas_mixture/env = T.return_air() + if(env) + if(env.temperature < 225) + trigger_cold = 1 + else if(env.temperature > 375) + trigger_hot = 1 + + if(env.toxins >= 10) + trigger_plasma = 1 + if(env.oxygen >= 10) + trigger_oxy = 1 + if(env.carbon_dioxide >= 10) + trigger_co2 = 1 + if(env.nitrogen >= 10) + trigger_nitro = 1 + + //COLD ACTIVATION + if(trigger_cold) + if(my_effect.trigger == TRIGGER_COLD && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_COLD && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_COLD && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //HEAT ACTIVATION + if(trigger_hot) + if(my_effect.trigger == TRIGGER_HEAT && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_HEAT && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //PLASMA GAS ACTIVATION + if(trigger_plasma) + if(my_effect.trigger == TRIGGER_PLASMA && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_PLASMA && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_PLASMA && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_PLASMA && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //OXYGEN GAS ACTIVATION + if(trigger_oxy) + if(my_effect.trigger == TRIGGER_OXY && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_OXY && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_OXY && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //CO2 GAS ACTIVATION + if(trigger_co2) + if(my_effect.trigger == TRIGGER_CO2 && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_CO2 && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_CO2 && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + + //NITROGEN GAS ACTIVATION + if(trigger_nitro) + if(my_effect.trigger == TRIGGER_NITRO && !my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + else + if(my_effect.trigger == TRIGGER_NITRO && my_effect.activated) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_NITRO && !secondary_effect.activated) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/attack_hand(var/mob/user as mob) + if (get_dist(user, src) > 1) + user << "\red You can't reach [src] from here." + return + if(ishuman(user) && istype(user:gloves,/obj/item/clothing/gloves)) + return ..() + + src.add_fingerprint(user) + + if(my_effect.trigger == TRIGGER_TOUCH) + user << "You touch [src]." + my_effect.ToggleActivate() + else + user << "You touch [src], [pick("and nothing of note happens","but nothing happens","and nothing interesting happens","you notice nothing different","nothing seems to have happened")]." + + if(prob(25) && secondary_effect && secondary_effect.trigger == my_effect.trigger) + secondary_effect.ToggleActivate(0) + + if (my_effect.effect == EFFECT_TOUCH) + my_effect.DoEffectTouch(user) + + if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated) + secondary_effect.DoEffectTouch(user) + +/obj/machinery/artifact/attackby(obj/item/weapon/W as obj, mob/living/user as mob) + + if (istype(W, /obj/item/weapon/reagent_containers/)) + if(W.reagents.has_reagent("hydrogen", 1) || W.reagents.has_reagent("water", 1)) + if(my_effect.trigger == TRIGGER_WATER) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_WATER && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("acid", 1) || W.reagents.has_reagent("pacid", 1) || W.reagents.has_reagent("diethylamine", 1)) + if(my_effect.trigger == TRIGGER_ACID) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ACID && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("plasma", 1) || W.reagents.has_reagent("thermite", 1)) + if(my_effect.trigger == TRIGGER_VOLATILE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_VOLATILE && prob(25)) + secondary_effect.ToggleActivate(0) + else if(W.reagents.has_reagent("toxin", 1) || W.reagents.has_reagent("cyanide", 1) || W.reagents.has_reagent("amanitin", 1) || W.reagents.has_reagent("neurotoxin", 1)) + if(my_effect.trigger == TRIGGER_TOXIN) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_TOXIN && prob(25)) + secondary_effect.ToggleActivate(0) + else if(istype(W,/obj/item/weapon/melee/baton) && W:status ||\ + istype(W,/obj/item/weapon/melee/energy) ||\ + istype(W,/obj/item/weapon/melee/cultblade) ||\ + istype(W,/obj/item/weapon/card/emag) ||\ + istype(W,/obj/item/device/multitool)) + if (my_effect.trigger == TRIGGER_ENERGY) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) + secondary_effect.ToggleActivate(0) + + else if (istype(W,/obj/item/weapon/match) && W:lit ||\ + istype(W,/obj/item/weapon/weldingtool) && W:welding ||\ + istype(W,/obj/item/weapon/lighter) && W:lit) + if(my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_HEAT && prob(25)) + secondary_effect.ToggleActivate(0) + else + ..() + if (my_effect.trigger == TRIGGER_FORCE && W.force >= 10) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/Bumped(M as mob|obj) + ..() + if(istype(M,/obj)) + if(M:throwforce >= 10) + if(my_effect.trigger == TRIGGER_FORCE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + else if(ishuman(M) && !istype(M:gloves,/obj/item/clothing/gloves)) + var/warn = 0 + + if (my_effect.trigger == TRIGGER_TOUCH && prob(50)) + my_effect.ToggleActivate() + warn = 1 + if(secondary_effect && secondary_effect.trigger == TRIGGER_TOUCH && prob(25)) + secondary_effect.ToggleActivate(0) + warn = 1 + + if (my_effect.effect == EFFECT_TOUCH && prob(50)) + my_effect.DoEffectTouch(M) + warn = 1 + if(secondary_effect && secondary_effect.effect == EFFECT_TOUCH && secondary_effect.activated && prob(50)) + secondary_effect.DoEffectTouch(M) + warn = 1 + + if(warn) + M << "You accidentally touch [src]." + ..() + +/obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) + if(istype(P,/obj/item/projectile/bullet) ||\ + istype(P,/obj/item/projectile/hivebotbullet)) + if(my_effect.trigger == TRIGGER_FORCE) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) + secondary_effect.ToggleActivate(0) + + else if(istype(P,/obj/item/projectile/beam) ||\ + istype(P,/obj/item/projectile/ion) ||\ + istype(P,/obj/item/projectile/energy)) + if(my_effect.trigger == TRIGGER_ENERGY) + my_effect.ToggleActivate() + if(secondary_effect && secondary_effect.trigger == TRIGGER_ENERGY && prob(25)) + secondary_effect.ToggleActivate(0) + +/obj/machinery/artifact/ex_act(severity) + switch(severity) + if(1.0) del src + if(2.0) + if (prob(50)) + del src + else + if(my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) + secondary_effect.ToggleActivate(0) + if(3.0) + if (my_effect.trigger == TRIGGER_FORCE || my_effect.trigger == TRIGGER_HEAT) + my_effect.ToggleActivate() + if(secondary_effect && (secondary_effect.trigger == TRIGGER_FORCE || secondary_effect.trigger == TRIGGER_HEAT) && prob(25)) + secondary_effect.ToggleActivate(0) + return + +/obj/machinery/artifact/Move() + ..() + if(my_effect) + my_effect.UpdateMove() + if(secondary_effect) + secondary_effect.UpdateMove() diff --git a/code/modules/research/xenoarchaeology/unknown_analysis.dm b/code/modules/research/xenoarchaeology/unknown/unknown_analysis.dm similarity index 99% rename from code/modules/research/xenoarchaeology/unknown_analysis.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_analysis.dm index 706343e8f62..0f7e9349e1e 100644 --- a/code/modules/research/xenoarchaeology/unknown_analysis.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_analysis.dm @@ -29,7 +29,7 @@ var/list/alltriggers = list("Contact with Living Organism","Heavy Impact","Contact with Energy Source","Contact with Hydrogen","Contact with Corrosive Substance","Contact with Volatile Substance","Contact with Toxins","Exposure to Heat") var/list/alleffects = list("Healing Device","Anti-biological Weapon","Non-lethal Stunning Trap","Mechanoid Repair Module","Mechanoid Deconstruction Device","Power Generator","Power Drain","Stellar Mineral Attractor","Agriculture Regulator","Shield Generator","Space-Time Displacer") var/list/allranges = list("Constant Short-Range Energy Field","Medium Range Energy Pulses","Long Range Energy Pulses","Extreme Range Energy Pulses","Requires contact with subject") - +/* /obj/machinery/artifact_analyser/New() ..() origin_bonuses = new/list() @@ -316,3 +316,4 @@ analyser.owned_pad = src world << "pad set analyser to self" break*/ +*/ \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/unknown_db.dm b/code/modules/research/xenoarchaeology/unknown/unknown_db.dm similarity index 100% rename from code/modules/research/xenoarchaeology/unknown_db.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_db.dm diff --git a/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm new file mode 100644 index 00000000000..a89ef63d0b9 --- /dev/null +++ b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm @@ -0,0 +1,68 @@ + +//override procs in children as necessary +/datum/artifact_effect + var/effecttype = "unknown" //purely used for admin checks ingame + var/effect = EFFECT_TOUCH + var/effectrange = 4 + var/trigger = TRIGGER_TOUCH + var/atom/holder + var/activated = 0 + var/chargelevel = 0 + var/chargelevelmax = 10 + var/artifact_id = "" + +/datum/artifact_effect/New(var/atom/location) + ..() + holder = location + effect = rand(0,MAX_EFFECT) + trigger = rand(0,MAX_TRIGGER) + + //random charge time and distance + switch(pick(100;1, 50;2, 25;3)) + if(1) + //short range, short charge time + chargelevelmax = rand(3, 20) + effectrange = rand(1, 3) + if(2) + //medium range, medium charge time + chargelevelmax = rand(15, 40) + effectrange = rand(5, 15) + if(3) + //large range, long charge time + chargelevelmax = rand(20, 120) + effectrange = rand(20, 200) + +/datum/artifact_effect/proc/ToggleActivate(var/reveal_toggle = 1) + //so that other stuff happens first + spawn(0) + if(activated) + activated = 0 + else + activated = 1 + if(holder && istype(holder, /obj/machinery/artifact)) + var/obj/machinery/artifact/A = holder + var/display_msg + if(activated) + display_msg = pick("momentarily glows brightly!","distorts slightly for a moment!","flickers slightly!","vibrates!","shimmers slightly for a moment!") + else + display_msg = pick("grows dull!","fades in intensity!","suddenly becomes very still!","suddenly becomes very quiet!") + + if(reveal_toggle) + A.icon_state = "ano[A.icon_num][activated]" + A.visible_message("\red \icon[A] [A] [display_msg]") + +/datum/artifact_effect/proc/DoEffectTouch(var/mob/user) +/datum/artifact_effect/proc/DoEffectAura(var/atom/holder) +/datum/artifact_effect/proc/DoEffectPulse(var/atom/holder) +/datum/artifact_effect/proc/UpdateMove() + +/datum/artifact_effect/proc/process() + if(chargelevel < chargelevelmax) + chargelevel++ + + if(activated) + if(effect == EFFECT_AURA) + DoEffectAura() + else if(effect == EFFECT_PULSE && chargelevel >= chargelevelmax) + chargelevel = 0 + DoEffectPulse() diff --git a/code/modules/research/xenoarchaeology/unknown_effect.dm b/code/modules/research/xenoarchaeology/unknown/unknown_effect_old.dm similarity index 100% rename from code/modules/research/xenoarchaeology/unknown_effect.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_effect_old.dm diff --git a/code/modules/research/xenoarchaeology/unknown_harvester.dm b/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm similarity index 98% rename from code/modules/research/xenoarchaeology/unknown_harvester.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm index 39463888c59..40733e91c7e 100644 --- a/code/modules/research/xenoarchaeology/unknown_harvester.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_harvester.dm @@ -8,7 +8,7 @@ var/harvesting = 0 var/obj/item/weapon/anobattery/inserted_battery var/obj/machinery/artifact/cur_artifact - var/obj/machinery/analyser_pad/owned_pad = null + var/obj/machinery/anomaly/scanner/owned_pad = null /obj/machinery/artifact_harvester/New() ..() @@ -85,7 +85,7 @@ var/mundane = 0 for(var/obj/O in get_turf(owned_pad)) - if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/analyser_pad)) + if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/anomaly/scanner)) mundane++ break for(var/mob/O in get_turf(owned_pad)) diff --git a/code/modules/research/xenoarchaeology/unknown.dm b/code/modules/research/xenoarchaeology/unknown/unknown_old.dm similarity index 99% rename from code/modules/research/xenoarchaeology/unknown.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_old.dm index 96107f8ebdc..a313c56b967 100644 --- a/code/modules/research/xenoarchaeology/unknown.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_old.dm @@ -87,9 +87,11 @@ my_effect.effectmode = "worldpulse" src.recharge = rand(40,120) + /* display_id += pick("kappa","sigma","antaeres","beta","lorard","omicron","iota","upsilon","omega","gamma","delta") display_id += "-" display_id += num2text(rand(100,999)) + */ /obj/machinery/artifact/Del() ..() diff --git a/code/modules/research/xenoarchaeology/unknown_synthetic.dm b/code/modules/research/xenoarchaeology/unknown/unknown_synthetic.dm similarity index 98% rename from code/modules/research/xenoarchaeology/unknown_synthetic.dm rename to code/modules/research/xenoarchaeology/unknown/unknown_synthetic.dm index 24bd324e4c0..1ef39c7cf74 100644 --- a/code/modules/research/xenoarchaeology/unknown_synthetic.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_synthetic.dm @@ -85,7 +85,7 @@ var/turf/T = get_turf(src) T.visible_message("\icon[src]\blue The utiliser device buzzes.", "\icon[src]\blue You hear something buzz.") else - inserted_battery.battery_effect.DoEffect(src) + inserted_battery.battery_effect.DoEffectPulse(src) time -= 10 inserted_battery.stored_charge -= 10 + rand(-1,1) cooldown += 10 From b63bc438203438984381e5a8724ada5bcbc0c701 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 12 Feb 2013 22:55:07 +1000 Subject: [PATCH 031/163] new sprites, reworked digspite spawning and geosamples to fit artifacts, misc tweaks (admin logging on syndie beacon, energy field) Signed-off-by: Cael_Aislinn --- .../Cael_Aislinn/energy_field.dm | 9 +- code/game/machinery/syndicatebeacon.dm | 2 + code/modules/mining/mine_turfs.dm | 147 +++++++++++------- .../research/xenoarchaeology/geosample.dm | 30 ++-- icons/obj/mining.dmi | Bin 43727 -> 45471 bytes icons/obj/xenoarchaeology.dmi | Bin 48429 -> 50870 bytes 6 files changed, 117 insertions(+), 71 deletions(-) diff --git a/code/WorkInProgress/Cael_Aislinn/energy_field.dm b/code/WorkInProgress/Cael_Aislinn/energy_field.dm index 4488fc3af03..2f79a820cdb 100644 --- a/code/WorkInProgress/Cael_Aislinn/energy_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/energy_field.dm @@ -8,7 +8,7 @@ icon_state = "shieldsparkles" anchored = 1 layer = 2.1 - density = 0 + density = 1 invisibility = 2 var/strength = 0 var/obj/machinery/shield_gen/parent @@ -31,7 +31,7 @@ //if we take too much damage, drop out - the generator will bring us back up if we have enough power if(strength < 1) - invisibility = 2 + invisibility = 101 density = 0 /obj/effect/energy_field/proc/Strengthen(var/severity) @@ -41,7 +41,7 @@ if(strength > 1) invisibility = 0 density = 1 - +/* /obj/effect/energy_field/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) //Purpose: Determines if the object (or airflow) can pass this atom. //Called by: Movement, airflow. @@ -49,4 +49,5 @@ //Outputs: Boolean if can pass. //return (!density || !height || air_group) - return density + return !density +*/ \ No newline at end of file diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 7dec73e335c..bbf765544fc 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -85,6 +85,8 @@ M << "You have joined the ranks of the Syndicate and become a traitor to the station!" + message_admins("[N]/([N.ckey]) has accepted a traitor objective from a syndicate beacon.") + var/obj_count = 1 for(var/datum/objective/OBJ in M.mind.objectives) M << "Objective #[obj_count]: [OBJ.explanation_text]" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 27222b680e4..742fe3d5d9d 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -2,6 +2,7 @@ #define XENOARCH_SPAWN_CHANCE 0.5 #define XENOARCH_SPREAD_CHANCE 15 +#define ARTIFACT_SPAWN_CHANCE 20 /turf/simulated/mineral //wall piece name = "Rock" @@ -28,7 +29,7 @@ var/archaeo_overlay = "" var/excav_overlay = "" var/obj/item/weapon/last_find - var/datum/find/artifact_find + var/datum/artifact_find/artifact_find /turf/simulated/mineral/Del() return @@ -82,61 +83,68 @@ //---- Xenoarchaeology BEGIN - if(mineralAmt > 0 && !excavation_minerals.len) - for(var/i=0, i 0 && !excavation_minerals.len) + for(var/i=0, i 0) - if(excavation_level < 25) - src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv1_[rand(1,3)]") - else if(excavation_level < 50) - src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv2_[rand(1,3)]") - else if(excavation_level < 75) - src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv3_[rand(1,3)]") - else - src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv4_[rand(1,3)]") - desc = "It appears to be partially excavated."*/ + if(!src.geological_data) + src.geological_data = new/datum/geosample(src) + src.geological_data.UpdateTurf(src) + + //for excavated turfs placeable in the map editor + /*if(excavation_level > 0) + if(excavation_level < 25) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv1_[rand(1,3)]") + else if(excavation_level < 50) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv2_[rand(1,3)]") + else if(excavation_level < 75) + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv3_[rand(1,3)]") + else + src.overlays += image('icons/obj/xenoarchaeology.dmi', "overlay_excv4_[rand(1,3)]") + desc = "It appears to be partially excavated."*/ return @@ -172,6 +180,14 @@ src = M M.levelupdate() + //preserve archaeo data + M.geological_data = src.geological_data + M.excavation_minerals = src.excavation_minerals + M.overlays = src.overlays + M.artifact_find = src.artifact_find + M.archaeo_overlay = src.archaeo_overlay + M.excav_overlay = src.excav_overlay + /*else if (prob(artifactChance)) new/obj/machinery/artifact(src)*/ return @@ -290,14 +306,14 @@ commented out in r5061, I left it because of the shroom thingies if (istype(W, /obj/item/device/depth_scanner)) var/obj/item/device/depth_scanner/C = W - C.scan_turf(user, src) + C.scan_atom(user, src) return if (istype(W, /obj/item/device/measuring_tape)) var/obj/item/device/measuring_tape/P = W user.visible_message("\blue[user] extends [P] towards [src].","\blue You extend [P] towards [src].") if(do_after(user,40)) - user << "\blue \icon[P] [src] has been excavated to a depth of [src.excavation_level]cm." + user << "\blue \icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm." return if (istype(W, /obj/item/weapon/pickaxe)) @@ -354,6 +370,23 @@ commented out in r5061, I left it because of the shroom thingies excavate_find(5, F) if(src.excavation_level + P.excavation_amount >= 100) + //if players have been excavating this turf, have a chance to leave some rocky debris behind + var/boulder_prob = 0 + if(src.excavation_level > 15) + boulder_prob = 50 + if(artifact_find) + boulder_prob += 10 + if(src.excavation_level == 100) + boulder_prob += 40 + else if(src.excavation_level > 95) + boulder_prob += 25 + else if(src.excavation_level > 90) + boulder_prob += 10 + if(prob(boulder_prob)) + var/obj/structure/boulder/B = new(src) + if(artifact_find) + B.artifact_find = artifact_find + gets_drilled() return else @@ -473,17 +506,19 @@ commented out in r5061, I left it because of the shroom thingies //some find types delete the /obj/item/weapon/archaeological_find and replace it with something else, this handles when that happens //yuck + var/display_name = "something" if(!X) X = last_find - if(!X) - X = "something" + if(X) + display_name = X.name //many finds are ancient and thus very delicate - luckily there is a specialised energy suspension field which protects them when they're being extracted if(prob(F.prob_delicate)) var/obj/effect/suspension_field/S = locate() in src if(!S || S.field_type != get_responsive_reagent(F.find_type)) - src.visible_message("\red[pick("[X] crumbles away into dust","[X] breaks apart","[X] collapses onto itself")].") - del(X) + if(X) + src.visible_message("\red[pick("[display_name] crumbles away into dust","[display_name] breaks apart","[display_name] collapses onto itself")].") + del(X) src.finds.Remove(F) diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index 1ecc347f6da..cd02736b3fd 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -64,7 +64,7 @@ var/list/artifact_spawning_turfs = list() var/age_million = 0 var/age_billion = 0 var/artifact_id = "" //id of a nearby artifact, if there is one - var/artifact_distance = -1 //proportional to distance + var/artifact_distance = 9999 //proportional to distance var/source_mineral = "calcium" var/total_spread = 0 // @@ -134,14 +134,14 @@ var/list/artifact_spawning_turfs = list() if("Clown") age = rand(-1,-999) //thats_the_joke.mp4 age_thousand = rand(-1,-999) - find_presence["beryllium"] = rand(1,1000) / 100 - source_mineral = "beryllium" + find_presence["plasma"] = rand(1,1000) / 100 + source_mineral = "plasma" //find_presence[FIND_IGNEOUS] = comp_remaining * (rand(25, 75) / 100) //comp_remaining -= find_presence[FIND_IGNEOUS] find_presence["neon"] = rand(1,500) / 100 - if(prob(20)) - find_presence["carbon"] = rand(1,10) / 100 + /*if(prob(20)) + find_presence["carbon"] = rand(1,10) / 100*/ //find_presence[FIND_METAMORPHIC] = comp_remaining //allocate the rest to ordinary rock @@ -160,11 +160,19 @@ var/list/artifact_spawning_turfs = list() if(!container || !istype(container)) return - for(var/turf/simulated/mineral/holder in artifact_spawning_turfs) - var/dist = get_dist(container, holder) - if(dist < artifact_distance) - artifact_distance = dist - //artifact_id = A.display_id + if(container.artifact_find) + artifact_distance = rand(-100,100) / 100 + artifact_id = container.artifact_find.artifact_id + else + for(var/turf/simulated/mineral/holder in artifact_spawning_turfs) + if(holder.artifact_find) + var/dist = get_dist(container, holder) + if(dist < holder.artifact_find.artifact_detect_range && dist < src.artifact_distance) + src.artifact_distance = dist + src.artifact_id = holder.artifact_find + else + artifact_spawning_turfs.Remove(holder) + /* #undef FIND_PLANT #undef FIND_BIO @@ -176,4 +184,4 @@ var/list/artifact_spawning_turfs = list() #undef FIND_METAMORPHIC #undef FIND_SEDIMENTARY #undef FIND_NOTHING -*/ \ No newline at end of file +*/ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 1cfdb8384b6a99193a317309c633f3ef8c642dee..e984d192e8270445ef26ed49ba9113bc400b5397 100644 GIT binary patch delta 23622 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 CCw|5N diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi index 6806854a242ff76d0c229673c004a4b80f1eeaa2..88aeb802d8de534a97a4c87c681d5aa00cb68f3b 100644 GIT binary patch literal 50870 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 z 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

dz7=@ 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 Tm78TC;7e6eOQA;2BIy4CmcLsh literal 48429 zcmZ5{1zc0#|MzI55u_26R8lFaQ7WP$hzdvzF$n37v4M1#gw#YpL?lE?VxzmeMN40|X-V_kC{ce)p~0Ygb!mcUvb%5Xd_-KXt${SDLAPV2{<%Zz_56ihR5ygPCFB zcOH{%?&nX^NNIj15aV?bFvgsh)9UXYjy<}04u&7Zbi}&#z|d+x5R-phcs(uci?8&& zJe6Sx(lW1!Toq@2rLSRbxN{iiF-+1k74uvv)~WgPx0ttz%dhsVR<1rlpr1lBO@cK@ zVpPgAF@NwUPr7v|p~ygf&Tt&%r7r$YPVtF!!mc*3zpfQ{3ipaFAkR{`f9&Nh28GyD=*rxqNcOB6 zi(P#znD8J>;Mr6bq99Ykp1W{%v<%)zPXEZpIMQl<$MW_lzY@vxA2J4?TxSK5EUNXr z8{d*W+IKY+XN|W%f<>X+zD(%wtF6^vs4#s2!z?tx!z|x}hFKm0d9zvX&PNLg{Ych? zkMXSWADwcEUwX%Rij%MbCp;E}AQJr_m@~F}#OM1jSo(FJd0Fo5WZ$W8W(hl)R1$ch zQ}e6AL1W5<@kD~RY^sy&^<&BQ)m(9e6&YEW$(3id97mHu74xIt?*^eb0*s_!2jl)SlFevz?fNG*(f-peg*hK& zxp-G7JFPk`C3mR?Pa`pOc87@H`C1p5`~$QL)iM40@%$#!P= zjU7rxAx~}bP_rn2M)0y0Ka;DT{FJ@tNjTS+nX@W zN&THUZ{7K@RGzRK)WMeBGW1%WApee>>X$p8gVE76ydrDPFED(JxYpHU5cH*y*J?TF%FtIA(tZY7lCdw# z5G>bDs5ZdUPYxCO7e{5)PkZepCojfvc*f|`B>zEkxtbWC{j7z0*sZg7+|7<_fqVVW zZ}mwqr}|(2{20*n%b>Zqz>jGQKCkTdL*@~z5FIJ~t#chr@*!#4#ZOx){XgeA`#}p7 z2D^HRrHSk|Hw_B8qx-O*BHc9i`PzaH7wOWrR!DOUvPwYSoOOLiOr} z|NEL>ukJF3c!d05@wsegKu9gzV&QF@(!M{hrLcOvJobJ(hLdQu@XPQsAgdNpzHo!h zkH@6Ef6w!H{D6Rop;l3tM*3;MqYZLX1(FSQD$o@#7Ay0r-Uz{AIoq>P1XrgA~b3 zDruj&`g=xc%sJSRK*FmbqYs`zxiKGv!PpKc^?{_w> zBYnu11`AAK^MW6$(G*B9snr~ZGMhiRtZ3r-Ny0F_?#!5V?KlPoiy!t8c7(NHUT0Lw0?MrX*AED!55kIfLiuNd~B zyWp>)ASsRyi@V>CHRK5i>e!@(z?XSmVm0GB*a3=b9{XG1 zWylXa{vEG|RKQ(l9F@Bv=5$Sxu+7dMpg2&g*skA*(0tI#9tNJn*or=Xg1mFMk>W%f z(%sD-0-oD<$kA8C0fSQp(}#3-{XbN(dRjU2dt@bK&x`h6LEBMjxYY<>26lURI!>yf z8tnucokCv2u+7p8zQ%HeE`j~XHIdSXH&)z4_!3q&oibZ4;mkS(kPA&7$hA)PU@$K> zp;YHU<`*wc&9_g1&_}6_O12tZ|U4% zd&%F4n~YEw)z8XEvm>}wRoT@+UP#HQ+RZ{=buXymCb4y0eUoHv|7{78C7Z06%DpGG zkib~hKtY?#|8vL!G$NEzeTN{ScetH-p^a8*V`6EAu(KU;0kdU8J|W=){>Rj2a@h$h z6Nb!}-4NDog1n2} zcY(TAxB||qTS@Lh4HjxK(I4%K+*eBO4&bZ52iE0%2i?V2r<*HeCk$)Pc&to82k`mI z0oG2(y$};e+DlO@zo^puZ!j_ETQtyKXs`vo23>7ulFx|!yQ*O<0oa3eqs-LB;KrZ| z|JeC8Q);`B8SZPdh_fwbo&I(Og@=;We(_ZUU#o?p^OOm@yKXC9NZ~#R6d{Z7jsHmW zyCeX}HQRP4YKp&)k4>Vl;Huzifewd`!gMA@*tt%i44Fs(yY@q=e`xp%!FvKP zdYL{_Zsz-Y4rq0n?<7XeHDj6Zs3%{srTRaloesl1)mJSEF1%s##zQ0@2L|0nX&+ss z*~0RO`jSo(qJNzv!_Bk@DL+D3CNrGjOYG-SyAXw=AMe3OgoiXFzi~q7BcH$$?C6=; zX#^fBN#-dvcm?4LC#TsPn8Ct5TB?2Ef<`bHj!sp(K|K|kaU#-jo(fmDEKAquww~c4 zRrw*%XI`ZgAJ!PA%@VlnG%3GLT8>`*jYDrz_fN+yKI3>ES$bxpJe2AXEJE=2+MCbL zgi5xK(;QBnsT@Q>mQ5{Vr>Li}YQ8ZoSqGm{H>YKY(Inny=1d3vwPm(EbVeBwsLQyM2NkHpHg>1nf1h05-ZI1=+?Mg{X}llLXv7tR(GS z*i_n@5j=L#&iF8MMd}Xa@>$=y=2cA8fd4_bI6j|^IE*?JGh@Y-3POfKYkU(fIN~_7 zd%(rauPXXpCPc)tu93j2NOO4fE11=}rPq(ayG7EB)Wl%;pC0WE#W$x$)Q8%zS66rE zcpoIKJ=-mnj#CTG#LrA@{%-N8_p;6u?_-}h@9LUBm#o_~%-6&WLjj91izB}L5JP;= z4shV)Q*pL>#M$mIa?4p`cKmM@)7Y~CVS32`_*vHU$=d1pZGx8->)xy@NXtj+M|)suuM-QYStagN@D5D)bbTZq@*JX^2lRZt#z~xk zSeFW2Hp+HhJ1a+}@g3yER0fJ;x6s_C&T8eH$B=wIBN9*>}T*dzWqmPRBUFnmaGF( zisY>3^XunBZu*g^1ryj_(xYDRg)v3nYp!Sh; zLgO0j2Am;@Z()=3_chSQp96w^_wM(V^DqO;eNt`|4S$RGZe01>^w zuU(It@LMVHTVQ0yY^vG^gODp!5&----C)0UxQjn?}wo`n!5Vhp8VP*7Ps_;~Sf65?Tt(=@pw?8r*_FOddtC@g&?6>6% z>h~)i779YV87kxUpf14EFaMTpLuR@aw0HP zGKfMr5R%Z*LCNx}@bUrwhB0I>OX@VFZymiZzVl_In0sJ;K5g{HVJMZyVfCx7cMZPQ z%`0*B@&Tr7C0;h}Mm4sIB9-%RcJ6uGaNL-!P+2HU;Xo1hHz!hyUtTSO6jP$aDmgc= zj<{(Gc>i2iORCsM8<(dOBvIBab`z$jl6vhDzAZsYi>?^>SAtX=rE^d7QR|zXwz6QP z#+ZqciBPp}c#O856Jy0I6Gz~gA&9zy-x6v|P#!`}dW9|WjReosE>SH>=wRNL7B=o1 zpZ`7LtsT=8;D|n~E|BH_o{lJZJLlbCkyaIjIX&@OMV&8#PwVjg2tBvz;(?B1%h`(_ znber!)tG#4I~uh2m%aIAVW%h)eQqSV3EJS6@c%~gxo48T5x30_VqinDyY9PJwgDrC zKF;*_N&T5Id5kIKuSvu5%6zX0Td&`FcCQkUFJ|{Pr^k1KzMbB6{qoJeR_gvB3xZ4S zl(!eJ_Vl^DZd%F}ZTDJkPjC$iWdVm{&o#26O$jr6J1mmyM8@##rkWw5mB5X+s! zM>pM8F+=Dby7a*X;1b)Dmp$tnaOo!ogr!0QbM?WB^Luz2@=n=#v z?{R@Jx+PEfm_LptQ7m3r^Tfv(uoC-Hy8^P8G3Unk2dVo3T$hu?x)}sTRI8#sg zN9Nt}Yrj`p!S@p+*(J|L|tg6pO0^=6Io~{D7a@zafy_JfDizZSsOiPp@z3& zvZrY38W|h^7XAQnoSIR3R1@ZkZ&7_Qe(feE!$MW2;WyHwbQ;Ge3U6c1dZLTeQ>N-P z+Lyq_glww#ehGo_4E|%Zkq+Z$%z~NjqHAQ5zZ-xxEd>6NDO`AZe8I1S3!2@zeHay?oWru5#s;P;o4wq>UZxptDm-r%) zvdnqJHMR;C6&InkajwVYb;M`z<(1&HRe!4HT}fDLM%b%*Kho$uaI_FRv2FV#u@|m) zcU$gC_}nL6CSqwNN;qAN&UaD%Y79iD37k$eFYNQ)`)TdJgsM5Wu=;7j#9VT3czC0z zb>rj>p7b|CB(nQ!jO2|;>)R*S72kd9!FyTbPg~B{r6A%t>uVd^lc^4?Yfm7w#I5^xd~E#jbmBZO*Y|&)eXV&jomwDsOv=CU$k5eI z(l+ycoZP#YLrAHhcv$5D{4>UUT!+=sq+i1Otxqlw zw1O{O=mc+;Dt9lQ#h**BRj8K9R;B8e3_uG@uS1=k#LcYzUoR>ZB|=}dq;2MI8t#6J zYwjyF*I0fgB@Jl!S~kHy4pG0;IyvmWcTE<_qC-BU5CZ#8>_jUhXeW|@MN{EfrCbr5 ztJ}6Qv)#0Ga);~KcEcvQSf;ELnt^#1qSul=ipBM?hTdsdh41}67)eLn-pR-9zMr7F z`HGzi^uXMr?56Pqq`S<)qVA(jOUuyIT*!eNp=IJm%*5u|Ccr6T@|Q6|NhLPW;OoC6 z{+6c7Gtm9D3yto(7mNC74D=l<6d zGi0Rmu2F2ZZywpv1+qmSq9Nt!o3}9j4Cit%kTjqn*M?etwU{X56f?eIHg6r(h(q(R zEzNXy=B?U)(CayC>V=JmB%^T$w#RJQRZ2}adK`tGrOes!s;Za@EVvQ&=JFBa2T!#g z5KY+$j>*H&SN@-kf61QWZ}mhT-^_v;(HIiWn)x_iA7zwA6?de}uE}ZYp^cDrhkmjF z&BBW%?q%49MGFLyBpgY#-iw>W~1yHmq+|K1g1%_y7;K| zvL7sP-(Lq+6#uTBD(RTM;!KK(pqgRmyiEy9zXXrwOYWndrVYIMEY7HSQxq_ji{Mb9 zjH5#V+0ZNN;Fr%_c38qf4VE-Jjlc_v=b9}dj!e0-kTfdyPlGaa_fO|^I#IXsTbu|f zUCT#@6dio93Y^Mc-Gm1W7)c3Dq-53AOL3}g5v9Kr+6QOwC%)o?+4EP^dK-?3%^wyg z3wMzS(mOn6++Qo>GOvYEazS!2{+TXb63XW~D5=ETK-U}k;7*}-+%^+x`mpM*KPSlN z7t^U~P?7E%V8NcpnIJsMVMUT=?zpUrx&y}rIBj^1Nod+4%km5MP-!TrJ=-{6k)il` z$%T0vAJUWT(5COIQLJpUCX|awhIsFhoz7$!A^{fEuPYfavG*xR?&lMiqp`GDZFAPD z8V&}%ZtBQgGN%%hDPuf%MYTco$q^qYo(B<})@gGsKAI~#-*$UN`>IZO4C5b(SqQ8n z%jk>Wh{X#m%M(_cev30m9#n~;L9OT@T}mG2#X-2WT|5#3##j%)-62aam}P7T1zr}R zeeY9!f81qbe19KaASq=$cJ@o@UMXr4d!h4(U~s_g6WPd0&AIi{QGE^`xW6m)vaga` ziHD0Eo2$T9BH%Lg(*ku)27Luvrrq4an?EwV{Ig*B;nLt|HK_XB;aN+8#ZNK9>FcpK zJu8?eo2yH8!`!qJ33C!%SX%>Hz$8Q-$VYp_yX&kjxl}+l%{p#MUw@Wu~Fvd%=z*;vB)=ukqX-CIehy$xqNh?@E zP{7ZQaB2r~F4GL>ky9$0*8%Z>y^{cZqrp(yb2}z}Do9=a<)@4T`XLtv@9kt0#wG)H z`IWMa%D#CBn4Xp~=b$SAj8XGG!fo_HI8O%gYAgp0GmcDFWDjt_e73|lzTMZg&uvddCPPg`Be4j!z) zdFho#P*<~z`+L6z1v~vIWi1v4Mrm{JLl*p{Jwk$=Vf`LXOH29b1n(34YEc#}ABT)i zzNr9z;!;w4pnXKp#_cy<+Nt&ubqgvyo_ z7W=GLP3t2{Q7c+HrVYP+5AuV^6sqKNe$6aY5CPZ5WFw7N7pG*s8l3;Bb43Fxgc zg&d>PWS9uq13s8~?dptLD(Z3K(&eGa>EM)D!wUC`FFz|UbzyX{>-(u8A>x-9>3>b! z^WkPl%-}oPqcgTp{7j<;gD^~gMclQ*U9kw$YJ+ad7~QF$IZ8o{W+Dev>RYmj^PyTH z_|XAaaP|j2{vX`WPfx9((zcN2cLl8m81L!%W~dT3MzzVd2?xnitP;WBX5}KwUYv#v z8oDPeGK0gwZBDBS$gSrRP?3rF0m%ns+kNcwldD!$=ZTaAG>>QUp(mNR8 zCE```G<~-`KUBhfS^5J7{rO-Rzd30zGIq$_^PU%z8{Hcn=L#gz`*C^-jnmvkO^eIpZZ zAYQsH{_5MaKVitJ$QZt2s+^uL*RLmlW$9yzbwL3c<7$mVr%W;TgKEARSLbe?HKX^v zIoWzEx2t0mKI~v$!4-qkwBL1ipc?3^dzVi9;OtK1<`~8}$zQFTZkFO$5@2-;;&$&6 ztq_YPMeZfoIYuKZtm!Wv8uX^f{u#`qiM{zF(H~n43UGp#J58@hInvk?x@*GLP|yAO zi_iQP`9fBPBl(mukU1Qa4$hrN$=Xohoma{n);ytYm*^npM1KC8(5%!re1_mpP$Zw0 z(b~daM0|WsS#@!1#FIsIvjK0cg!$VCPZr{aCP`WE<2p{xPV2hhaGd7URXf2pk({2% z)iTMO*JrM@Jgl39)aIZI@?P@D^rL%o~m;CWNrP>kSO<@8X_3Dz1di44UapG8C#gMux? z6<^0O7mvgW$jY)_#BX<_4-&}i3{ldBoDBa(<1DPd7kTLX!Bwr7tiZTfjKN_t^ zZv$N|ip0)YHrtx-_9ZK{BNNazxtH_w?(J#O2evdXB1YKbXP9)!cIdXt*~0 zfU77EfPmb!5diI3TyuCZIPzZ8j8&~QrfYWd#cMhzEG;#W`GA{HPp0|^dH2t_)Zo$5 z)kDYmxQk`bkIMf*q{gj(g~dcm2`?m)8Cd~Fj-%X*^$RhX;&l__194Qd5M-99*IR8; z`~<)G2pi{*IF!%xG@}WS3U9-qZ*7rk>UAh#YnPE}%OmO!}A5oo#rT`x0Ls zuQR<>0$hD{T9bIob)tur7(wZ0#-P&U|DFYqU-ecO`{wWDYOH-2vhhSeAiA3&Y2=@f{JT?M>u2(Ss*^qijmvtHERR+z=Xc`e}!o_&8n_nZrJ=IRXVW=3FtO{g{YSr9=Jqtn5)p)#N?r=K7! zsfG>yLN%~(Zd;PKg$RLUE9G+vD=%FT3$=;Z&SI?T6ym)Vk*C49V50t2OUlbG0VB$(Yl21KJEvHlgnd!h#K^J{Vk0`4QAA*M~6gj(ALgl}`TXCsGb zZO*kHX%{sJWfq(=c3&VJU45K)SPoR5uqNw@0nzz;dxsBc5bX27Ic(eA`?=s_R!zUk zWAMueqkE65pNG-n9M?VFQeirTand@>`z%kMcQSm}|J?R`O&G9P63!H*zBKbG5b!rx znf?js{~Q=89;iu`aic0?A8q5%fNvw^gqD}Ud=KBSwnA#_`Emn($Wasog|zQ$akE%Q zazbLah-T}ZY7k2WSo5ad0eo~%9CPH=1yQglWk0a>7wUs+*|8WXOKvY~Uzv?!GxfqZ}>tJBgt0M(P?ji)1fBi$+X*og`cD-wD3^P*;3)^oibB7 zLf#3w8OW|nL}7{kChUzi_)%Rc=C2n-dC%6IQx5iUpHV?>!TDKG7GE5j$gha8l85;gNW6=J0Wy8)-G#q(pL;-Rd3f&s@dax7p5>S#fxy5%IY$>d-&Ihin(E;w? zQd39v>Nl?o-|3DQzFn6{{*u5a+t8?v47m%-+Yw0h0X=mVkx#{csCZU_={_b z_?v+f^0+Z)D~rQT5S=}h8)|I})j_4{DR_`|0s(*pe7`8Z9-tr{C=ql3i8lg z%(lBHHxnOA7+~~6TnuU9ALe7e^1VQWAAh6_d+Yv&NjK$^TtY_{_Ckl96tge`IxHeC zqQz)U%h2vlQu@fr&=h%Zi!y#EY5C?kVE|r3H<6JsfW!j{-9z25$^KJaJ6F&EQ(Gh*K zLRW1gao2HP#^stc)FxeZWopVn-MYHzn&3k%b=_j!U@$)0JHzhw@wQ3%Fae##oQH=P zwURZgsyivd%$fO^(1=6$cs9N96Vj9<>nZk%MO2f*YwB5p00z?KPySSD- zpbNVu+m=mC@8^@ob>&+e(2B7b`Mf4yMFJX2UnQYnwBNkl5da7s;oOwi<}hF1C50l3&mWqO>qP8Jj4j@I`h0CrRPZ~P*@gbbAf73R<=)#7?nOl2P#d0x@Xzd{^@j)t&;Y&dOaX^xHFI?f zZ8;|FUtowLa+uBIbYb+5Jda+6qj1nRBGuinzSn|T(GI(UZ_i*z2)C>)7Pnni!RV} z+~Wn4{M26s*c~_*`*ix?^wc|r52M&h&#FaDZnfKeAyvY%9u;@;2Rxx-py;dF4)9|D zg#DoWI=T_qg4q6ND~9NCuYL|o(S0Ivj;OSrp;eQ^UNA`kR-ENfBPMhiUQ%Kdt(FZ9 z;(Pyo3lH#Vt6h)XG|r(iCynbx7;u3d(4y{qVc~B28q4OKC5PR`J%P>)N7)?s)B(q| zcD4-M^|DKL zE;hE@w4=Q1YyJTwkkU4r>Wg&iCD=vn?!#MN^M`NDTc%WhKD|};JWM$n1z?H|@uj_C z;sE@j6WjO4>6E)fjRtV283%l_Sn`J=cI~oI_)eY=HKD9$y}JrqP-nO_?(zg={BR^S z?E+*CS728|;POS4Z!Heu6W%{ITT%XQ<&m^%&ocWm0V<5PO2iX`XI z&GCMDfD62?08IL#LP7&AiWLOEqn?0GmO^&u#Fbj zE8*FPbf#{eDrbf(4`|mr0=8dqnmSYxQNCp;<3F>0_m^JyCRxL)!7jZzgN%lyfo$R* z3yrMQ1}1Zty9H-h>x_dEnyfrb$gb{bA%-O{;WkgKfQbk#Dz|9F5pO^5sDCl%hDhgl z`{g+nXX^>ior{?*#?|`YLhp=u+0TXmOMvNi;XSE$!Gu*bj~p!UtD2{tJRtmK6PG08 z#!4*?qa@5G`{}|0>5tWFeBMq<=<1DHJPVvuonq=Qap^duFH*sf5MIT`agsXJj1!mv zRW&+2724^H1dqxKU$0m+nY;>XY^hM!gc;k^e1}$!NUfEs8OAI*>1k|TlK@cr`VpJ- zuY$zfP-DDoAqB7(mV?ixFLHXa-Aoj$T!1Hk(HYyR194 zXoSZ*RusGEzPraRu+_IMv7~~@{mbG4Y>ZAv3cOWn{Aual;gxRfsG>fBYd)#yzk;4q zYCl2f(PvnqY)ub5pgA8ITVYv-^DZ57xJf}i1abugwP68Sy?Zl7oY86<2@Go6Eml;? z?Y+*x2iWLKT2ECQgu{k*LpBQm*v8>cB@<{iV&nyb4;l!Z>T<|VQh!_^|LeD7+~YTO zRZh=l|c=K^~1!z;4V!&I6tYan!rni2P1hz zvkY$(dYqpLKvWXSCb9H_xZ5r_l9al=ZauY^UfITGlW8FJOy?Qz(w<2OZIXbz{0mX( zT=y{Y55)kvk{00*w7xec@6y z7fDusb%c83-=hHRQE4P^tboMzF|iHw_ubm+MW(Fn1FcC7_Vt=F{gEfxd*m*2@Q`#) z7z7J(d}nd*^9*^TNbM&d$1vahcNrk8T>)f!v-J49^zXrdtn-yJlF`22p5ocw7d+nS zMa~{U8$gX$=ayg@B)t&*-=D-3_hgNh{*p`p)jPXKojH&$q&|0CV*{v77rqCK^!17< z*0!Ak?TX!0aQjV_z2<6uWe;fYigtAkS{MW_ob6p~9N{tJyffFU;`(n5K>S`=ikdz_ zeIHO8X*5))jGs4dU0pEnpW#pr4Cheq&nV;DW9OM`PWE1qx>Fk>#=Q4djNGPaEfC`B zPFtkQpSfem<(Wu1^vAlqR2}?eMYev zpA;~SBW7)*YD@)3&sEJEN7dpZn$K0TjMe@-s4N;1pfmZ)@791RGV1~et{a5}$3O&U z2WVkkLlU#3%;+4Z(cO8-n`NoAQ!0bM-{UJVk3!CTno5Cb>AA8e)_PwZ8ZPGq6DM@j01`t)K%m?7V*AfAIlj zyxbAzW#YNg$sD)2a(P*-#cPV$f^?muLy6hS?O*8)Nd{% zKnfQx)>=I=M~zJk$S+U|9Htj zu~%YVmw7z0c~tJL9$m_VF3K6aZiQ#OCWz<~Dc&Y*_h5lTzR{)fYI1U8O+BAO9Q^%N z1Hk|M`PgCQFn|M{fUYQ^Gk&_zI8e<0z~t$I4En7A#|3AXX}Vg&IR>aA!U0GxZ@e;_ zY_=im=rwGkM$;hgI?BfE+Km?pYA$Bi3ZEwo#E1!Uv~C!kofi2Mi%#)TW22+NU%w(h zb$M-1hm4Ls&-?mS$(wI!dnJ)ot@;Ch^@nfGP9{d7KX>^$CQsrHC~t)0yZ@SOrDH_P ziH9T?*|X1^HF>NOhMB7(JvtWN>Pkwh9+i2xbFXU3EAOuz6DW`*|mE3Ka50d zETtHogDzxz_(|T9$3`)(b&`ZbIlyh@j)_2AP=BtCYt&{@AKTH<5m1tHJx9$5-yOjtk01d)H$_}E*7@p$ zsCF}{<`o%v>V!o8;J>5$+WUnqty%Ps>ZV`^4cUxkG6k7YirIS6AJ~k5A>?&{Dzd2h z)8hnGNFQu$CJAO>wBE}0MQU>PXV6y`|kSM^@Db0by76uqESM#C99O!NC=PyREP z8|x5J6Y7!LYRfBxC-{iW@A$91L*MtkjzTGVPi!@3`!ii*4du1r8G61;Jf_z9A#3W& ztuCK@;NVMrV(Ww9@7DxlWopU{HNU8IWfl(yKdJOVo~4tr}&V1A)l2A zMJL*4-Clo9*{O+^x7Nkbg-(m=|LsH9I&o|27XvXVF>$se)$}|8azncDdmem+BXzSO zc@E^O{I{8c$r%FCG;!h48dz87-ma(bz&Js8s5t5Zvdf{D(|b>r3ny22+W&|^OYb*K zo~V)-`Q0F~yXA2AYbpLqq;CH!L2h)>Q#A`bJ4v;dI0+YKFZvAxmwzQAv&BXpX_TAI znta)L_AV)hemVcN5$tW7@VfMunBB2&QqZtt6;h_Urh~w^NZsME9jgDkR{av6Tfg_( z3>spFmL0hLx=pqgM(Qu{-D~Ewr^Z+2p;Mp8D;|&=1HjQor*W#3V4hdySF9VVPQ(Aq zy79!Pij5Uk0yYLPWe>@rU7Gw2a)`$Rqydk&z%MuHsxe-OA0bn%M1_-mH1U~pB-uXO z1CN_u1x}-|PeLqx--B`6k3kRG0SS=ANqv-Swpt^aO5jhvjCI`MFTMNynOxQoV5ANo z51St7*fN9e0%xm+uZUmt;sKTDS9B>p{{z|n%{-;#5l&umsLp^m&^(X$8hj+afE8lL z3$ItXK30h2%ljWwy{iMr`Z3trAn|XoL;(ky0&cXhov~FNFaLe_m8x;?i$hWd?E;La zgDgCW1Rs;~uJfmp+cV+17Fa@zSFBl#XnxVrI|`HPS+RkDH8)&p@sl068<){ ze>t0s_EAF!HEjqYwy$DBV-Npq5U@E)9`CN&L&KJ%u(ZA;VWj$zM9r51Y*z$ls+rj$ zqnsYFVSENO8@=uz!x1yI+B%qZlvQKV$w|Wp+L-3|jQ1a5M4nXom{^esEVXbGKEADI ze;_0arHWF#0ah4WvyG&;S9|pDLQwlNfKrZ7wt9AH6Vzr#lu>urh}I%AQ5QM-g?}d+g9^ z4=@XRVs}uR|EtuExfwkSR z${xdl{KVG}QO6m&35*kBN_Uwb8t+9kfNC9|YLr*wBbI}+yB49ExK_Ky`bwyOs($ka z$QH$rN9jD@wgiG(+V;A2yP z?m5w5O!8tK51r|3tMPu`pNy2x_DrE7-yYxpJYgszy)Uv}PcwTgf-E{^ILjy@ht$MP z34Wu+_1!?=O8)w7Ih|gHE`r&9)kt6YGqJAuK|UU*p7#RJU8d@f}yBUJqi$2S5vAe_ja)Gt@b_*_3PQi2$q3_*gXmX}^1 zx+@D%aY!^$#2m)VqH%{B?8qtKmVy~hdOY`^0_!~5%X(0g!At0^hQ*O>QR3J@KCQt; z39Tx(6V_e18&a=39q+yLOiSc&tNwxnGO07q4urt}@d_|_zeI&!%%V5iQ^TYbFF*Dz zI^gha&d>wSp&sbyaL=(v@!55`pj_0}X!&4p+(dzOEqan3Vho&(Lckr$&tm5GLPAg| z{Q8=2brLJY29IBb*SFTO4-?Y<6&JWP0{*p0K!-6N=^t^=32by$GZO!1H%$0%DfD!& zsI4FbVFES57PWbe?MfK~v194+k99QAoBV9JGp^;9N47S_*z>5nJdeWDk){Tuz?APvoy#_yyVMU z0Lg<3l2c?KzE;;uTdY0Rj^0jokL)#V2UUade>!cngk$d+3of&w@Y6JDXUyDnl@AB3 zT>s<^-bfIS6H@RQ!(~5Lb?Pkyc890cYyI;CdFGB{to-gKnu-nq#`|o1ssT%k1i~F2 z3YX}11^-S(Ke+^!z+bHab6yzY1+<^;?VSc;PD9$grR@9nuoZjg!%drdZ=(t_cuVP* zpNmFA{DuoT3UrZsg@H45kuBNDnPkLeq0EMUr*@W=FOUCYn!DB^;!Ywa^y9%5z*z^h z1NCTT4oFt;5o4e9e$;y{#}a2} zZN%r_QK#v}Nv)98d#%S3F_#$>?D@&S=XMZyEY1#Z_(poWTKg|*Q-B#F0W<#Wr5f&>nrht+;cP(zA4g8 z9DWIb#8og3d;uPQ!%-R^KMPAhk<3spwjn?Q9sCMnEJwGqwa;lGpXb~26IY&Hfs@WE zQ#Ri4!CoE-tXb_5Z|9qZ3V$W=kEy7KZHOAOf@H2zfX=iOVR-M)YuthjU^Kz9Tb1|z za3txVb~gAg0~GY@SY@{?&K`d+$tP68p`y%XX++a@-~f7x_BXnUjM`8)+h@+)c)$U7 z{%4FI_dpGfp--i4yZp;|dbaDEU3cygp@`ad(b7&uz_p3EFsQ4{2C6+H(K3 zn@4!x7`+K{8n^3AENmPgj8Js~`8%cq3Fmo@R=dgyesMhe+i_DMRifv(2$=}H&5^Y9 zq`eDSj4oD}VRLBo&bZ-Z;9(}KJST?)zp(o{S($dn+Cxx2v7%CBXODKKo zgd|fKBj2%|X(@Np#hcUHlRtyRfBGwznp>G7g8}ZzOS~)(mf@gV>5)Pm+MR8T6i|T$ z>c!;bZ{Hsdu~Ty{_U6+_mAR+}0C^zg%x^YYT)$ zsZmhmhet&PwYmP<%8|a{a{fvx)dRj}bE&-)urVWwg?Mh@fvc)b)#&-Rc9?>xIYB~E zW7)`Irv25fg#q)^Kw*DAF`d-l4v#o8kUXr8ImZuoJ-?>r;rQA@G#ZXmcAB~bO7n9r zu>xwZB*}X=^h`)d=(o94^?!soS>7;8&^)n)Xvqa{_gWK4FZp$zQA9(mbHnexh#WBw zvEWVq^l9S=L;9CGZb=Wjt2&@u%y?hh(rXiVr-Ks$J90m~;{(dd%8D$bq=7%*9>A$F zcXRXK0LM-d?uy15W%04E`#;imT5;3%{ys}X`h0>Els=w(W0=GuQcrm)ca6J|jdWIS z`Kccj*3zSuy?dTcHJleCgnO>>CwwK6yZ9I0<`RsH>YF`|eWFJbIpjRfRbUlL0d z9A*!a>yzfs*v4iCj6CD>NfIyz zFQ$!mDTH?+eaC_vS;*F^KwQhHMmjG@SV$E|^baMz*wg_rGTW=H=-=fyo{GW(McxV)9<om zwni+8?}Qeo_ue;vzfN4!$B@YZtG2FM?)|uUn|5~m((8*jB&gZzSN6s0(o1BGc-+AY zhsj24P==a}i}2o~&-wWjY1e)>#rUfMfQ(~l|JZx7w3HOe#^3u{k>L0WP2-)1J~v>F zhLE=fT+l+L!O!~?z}w$Oi36>9U%%w$DuSdr=<;%N$>!$f(xhK~nCl#ym|%%&`w$vR z8Md0eVx&Ork`+{^AAPy}z)SI~OxiznV0Qgqlrub6QU7g)C%B$-LaqSHE2ID5P4uA0Elp1PVPlAm7W9a|M2w{Kyd}#nuEI&+?^1d;4nzgU7623&uUAn~p*Hk%OtW5tprWkoqz7Lcb88Jhf5bBx zT+AQxkN0J_pQ;6b$u^3AYBD!E8h3hTM&wl-{pGhO+Xtg87qg@9MVUD*3Q) zcJ;}OG-DszU)q@>+QJBLk{bmaOR$ER$sFy6USEK({w%jU`a{;;UC44Q^Y{$v>gt+P zQZn)dC~O9A{DU;*5r#B51pfl%Sv_cQWYA?V=J#IUa8H)-)je|iYy_&OjAcb)T5M`q zQ5zcv$J@#F2K^Hy<2uBjBgGOyI*AmdG3Vr27eDovCO=6lwWW)WN4$oorf|vMi<1dH zleC&mttz|qe)8@;<$eO1kG0h!HQt*T;?Kza)a%D>+}qu~rI%q`rt?SzZ1Vslf3Ckc z{{M{P7me`$V?&64n?R(X{`?<6)f_eU|IU7&Jw0WtVmXTsl@Y1z#{`+XP>(m00oDHa8z<`@=F4sqo%4V4o0ug_c0pN|LA+S zB+elg7lVeLe*&!Q+WL_qhqh*{W5%<{(@sSNHh9=kj$qmo4#~D&6y*ALV)(x1Yx>j` z(SK`jyZK66r(>CW3D7@nn3IpWWG45Rn4YMC(khlmIDGZCVp`B6VEuvL7l&Nr{R(6F zb`8RCrdV-y24i+nrPcvMnD<4fY@LJ%Ao}FE<_9vrAqhYE2;AIgmKB&4vpJ_jy3WnxPV*US6^{EsT zzvJTLgUsaYg~>#%pMbYNZq9|Mmo@Gh5-zxZ#Y@OT`m?^ohD?#o`u~Fw?iTQCz9-9ia;BAgUdr#%MNiWND zZ@Sr=WBKrqEvNgkhDMAVb&Y$Pd}OfD>^Y-gsMDF|drJo+BR$+9;K3)xHNKWHVo%dO z*n*1Cq`(Whocaa^6AKFmry|J1ZC)$lh7$If*52aCu&%qxp&z^1+8rD_Qz7r`RbGi; z(Nj_@5H$FoR>l_wBr`O{)6oflOUSNr%E z0oBjXA6~PzzJo`jPPohNX`)v*Hd4Hsc^4{^*mZ#?SA&u623uh zg3?;h$Wy~4;5&U*kE#AJwq`Jek?iP9hU{-W;7OK79kT`+n(Kcpw}-kD;|+nY1v(I`7_0azxfGn z?*7Kru!GT1oBZ9?PFhH+2RFapAG>Z2%k|DFq$iHK+E9`tZ)aRr7_Y6vk^O}yy|^Oi z;_lAaKu4~)HY=3$ngRGLp^N3wNf*#2N)29*`824URt+LC-#(##PfT3bd~dGJGvBfC z?bt`_{qzGHS%6Dl8MfPzCjI?K&}WuWWM7Qx>S_=_lVE+tX+ehS8KAC~ z!)zg#yX#iyMTr8TGBIP{Z%IS94*Cjyk^T~fAo!aQFvnVRf@f5!N_tpJuo9b4ta!Fv z8B_N5thhu)(~zKmkq{6NpkrhV$fJ#tM*`h!J7uwL;z_oap|H-wh)0u`EbL=tqD<(5 zyJuRj=BCdkRy$px@O4@pL$d%%``Lkcc8L`4vWroy)3Md+p-=VOI{jeokq&Q1@GUh;M?EoIqEf(&TJjGJ@~lOSC0#g2@s6M&1g}(bujKL51-^{bP8(0f{PC>Ks@?n>;%8>H=(o$(2(e_7YIB%=r z22NH}VSsLRI&xdf=dOL7wxGE=U7+X0UPVMiY#s*t)AiDNdl#|Xx1MnC-WPJ}pNeSQ z`RxEJ$E@>!vD0Gxly&DrwN|8O#nA+Ut3{+g#l_CL@)DqPC+2QI&7Kx-dE7nEs~?vq zXjp$Eu&yA7tX=$+_m4A>q-=NI9nEQKqOAHn=BB8nqeDtTL6MO(#Mw*R>|H~5X4T@^0h1 zPrImEn-Bc0mEI;@8GfOo=pEQ}Q_#OXD`O+q8V-{x=QpIA22C2IkJq#+-j<;MHjUFf zP~X@7X8-(+<`jGXV;`00?<4-%&Xkm9e4Mwan!`x{?UMYT9RFW4TO##5zEERhddiz76ZK_M0(x zY`~${ZjXneozzE293mOgVAHinW>^0$HF}GQiK$^=5HUQglKA~Q?`B`OfRyWM9@fAf zK|6KOEQ7@x!QdD&Bp@W(oP%5>+Si#U{o7eq9@?4rxuc=*Di&9_B{717A-X^szV5JP zpp^h!AQTDB0Xm~>y2oc~u+RS|V~^EI6K&5^aJi#&VL=~c+8Y!01@uC@qUhP?lZ}HFT!_tkkLJCmMIda`T`$#aN{CYz3#Vej<2=B>CpN+ ztH7WjIzB#ZP)IZ`(t_yW`0}SzQ>MM??Cf%EJi*TNwI#5WsK6fjE4~>& zgmCw``tse45{}Gk_?vn`YzY?rSC$;Y(Xyc|$W)-J9%QaSqzXb?$m3hxVGU{ z>n?uo1RXM!DKk0-LMNjv&qgJ{4+48bFzK`nC3r~#@u#(X@Dc_PBT&i%t?&sE-^g2? z>B&*c)L?kr*3430{Ml$*9O$MUaUAR$nk1|rF=39)@~y#HTs4kNlE+f}@mp?S(IlbN z4$Hm)!Ac+pJ!X7ku?!wj0IO%oKCCe9vRBkv($HWu&Fp*qO$Al{6xJ|My4#4p(1Vva#bF7d;=w zYEWX{nvUp2LY84rVIgv4i#Y8>MUk-9IeBXYG7Xn+yaS5;h7kDohFcPILe0o|K5X1s zH|0*p&{tKYZl~8>>DDjVQC$UXR?M4Y-)mW>Ro{(fA`c$)IVyQwbp$`&O%z8b-{){F zus)iG_L}0cvml@keKINA#QPkDMLjbTfCi9jXdHM*?>4IOcA7Qb-rsv?4t)V3tewIi zB~#rOOG3lKq_wq4{+1YoG&hTP_x9%I<|0x=q3RfWGIJT$LrY7!GK3we3eHIiM0XT*Rwd-~a;kziVN`NOy~)>IAg3F~f8?CBkbuu zeCPRiY+pnh?{{Y5d0yMLfPY`>J*ul~0Ra(Fg!AqJuTwYrAKeN>06pm+XrKzg(_x^e zM~I6f00|2S2{CeVz5s9yD_h&{h6k?1*?LD!?OPJHz))~OJK*|I!+7GDF|d8# zs@t^bNyhx$mc5P9&IE1dgIIVn$=WuK(As5yLcf0#O>fFuzv6g5_F2QAy+AFdNEK-p zb4>kKa4_v^Eipt-5>r7P2Kq{dmREtqeN5|DOYkc9d-^PZ;oHH+5cQbAs+T$1%%mfSQm}esSKO5a$6t|@C{Y1t&KHif&>?$nM zj+Dg=Ekg?V@pX?THSC0gv%Wn&sB2X4YKw`kOFJs-XGx!lu~Yl8XvEQxEmg^D`rVr)2BWqTdfGwH4UWu?*BTD=Ca4$d(6Ygh6Pzecn zEr)fRZ`TFoF7kv={n>eb=7T^^V`4F@ncwZ?-xHpVG$gMN%nDje91EeesCA}LzN>(_ z8oEA_rKwYOjW~nKVq^zqxw`@{S#ntE$@7b;yQcUwH1Bz}IhDKe;0|W$&mM*XEaYg> zf6doFIP+Fn5#mxyF3d_PBG3oI`y8nV2?@uSmLgB=XbBVI5kRY+rd)dP?!V9rM;bbI zUW~nK$YfYPQKlAuB?iLmQ~;AEgS9Fa@87x?l3WBO^U2vla7-7srr6lU=*(vG{MWu= zOrS2;~$!&?>%0ASbtU0OBRqiM~1RXyJ;AiYuzopq9->bYPKv9*J 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 From b9bd5ca3e2082a65ae9cebf7b10c4ba274e94a94 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 13 Feb 2013 12:22:30 +1000 Subject: [PATCH 032/163] renamed two files, restructured tools and anomaly suits to semi-final format Signed-off-by: Cael_Aislinn --- baystation12.dme | 12 ++++---- .../xenoarchaeology/tools/anomaly_suit.dm | 30 +++++++++++++++++++ .../xenoarchaeology/tools/spacesuit.dm | 13 -------- .../{tools_excav.dm => tools_pickaxe.dm} | 0 4 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 code/modules/research/xenoarchaeology/tools/anomaly_suit.dm delete mode 100644 code/modules/research/xenoarchaeology/tools/spacesuit.dm rename code/modules/research/xenoarchaeology/tools/{tools_excav.dm => tools_pickaxe.dm} (100%) diff --git a/baystation12.dme b/baystation12.dme index cfeaafc50b3..87a6be7b3a3 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -774,10 +774,10 @@ #include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_spawning.dm" #include "code\modules\destilery\main.dm" -#include "code\modules\detectivework\detective_work.dm" -#include "code\modules\detectivework\evidence.dm" -#include "code\modules\detectivework\footprints_and_rag.dm" -#include "code\modules\detectivework\scanner.dm" +#include "code\modules\DetectiveWork\detective_work.dm" +#include "code\modules\DetectiveWork\evidence.dm" +#include "code\modules\DetectiveWork\footprints_and_rag.dm" +#include "code\modules\DetectiveWork\scanner.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" @@ -1143,11 +1143,11 @@ #include "code\modules\research\xenoarchaeology\finds\finds_misc.dm" #include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm" #include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm" -#include "code\modules\research\xenoarchaeology\tools\spacesuit.dm" +#include "code\modules\research\xenoarchaeology\tools\anomaly_suit.dm" #include "code\modules\research\xenoarchaeology\tools\tools.dm" #include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm" #include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm" -#include "code\modules\research\xenoarchaeology\tools\tools_excav.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.dm" #include "code\modules\research\xenoarchaeology\tools\tools_locater.dm" #include "code\modules\research\xenoarchaeology\unknown\unknown.dm" #include "code\modules\research\xenoarchaeology\unknown\unknown_analysis.dm" diff --git a/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm new file mode 100644 index 00000000000..6539f3d1838 --- /dev/null +++ b/code/modules/research/xenoarchaeology/tools/anomaly_suit.dm @@ -0,0 +1,30 @@ + +//changes: rad protection up to 100 from 20/50 respectively +/obj/item/clothing/suit/bio_suit/anomaly + name = "Anomaly suit" + desc = "A sealed bio suit capable of insulating against exotic alien energies" + icon_state = "engspace_suit" + item_state = "engspace_suit" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100) + +/obj/item/clothing/head/bio_hood/anomaly + name = "Anomaly hood" + desc = "A sealed bio hood capable of insulating against exotic alien energies." + icon_state = "engspace_helmet" + item_state = "engspace_helmet" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100) + +/obj/item/clothing/suit/space/anomaly + name = "Excavation suit" + desc = "A pressure resistant excavation suit partially capable of insulating against exotic alien energies." + icon_state = "cespace_suit" + item_state = "cespace_suit" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank) + +/obj/item/clothing/head/helmet/space/anomaly + name = "Excavation hood" + desc = "A pressure resistant excavation hood partially capable of insulating against exotic alien energies." + icon_state = "cespace_helmet" + item_state = "cespace_helmet" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100) diff --git a/code/modules/research/xenoarchaeology/tools/spacesuit.dm b/code/modules/research/xenoarchaeology/tools/spacesuit.dm deleted file mode 100644 index 2ff4ff266ea..00000000000 --- a/code/modules/research/xenoarchaeology/tools/spacesuit.dm +++ /dev/null @@ -1,13 +0,0 @@ - -/obj/item/clothing/suit/bio_suit/anomaly - name = "Anomaly Suit" - desc = "A sealed bio suit capable of resisting exotic alien energies and low pressure environments." - icon_state = "engspace_suit" - item_state = "engspace_suit" - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) - -/obj/item/clothing/head/bio_hood/anomaly - name = "Anomaly Hood" - desc = "A sealed bio hood capable of resisting exotic alien energies and low pressure environments." - icon_state = "engspace_helmet" - item_state = "engspace_helmet" diff --git a/code/modules/research/xenoarchaeology/tools/tools_excav.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm similarity index 100% rename from code/modules/research/xenoarchaeology/tools/tools_excav.dm rename to code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm From bbfbfb0ca22a7ae359be29b7dfef63156c1c2078 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 13 Feb 2013 12:23:20 +1000 Subject: [PATCH 033/163] tweaks to artifact spawning, tweaks and fixes to multiple anomalous artifact effects Signed-off-by: Cael_Aislinn --- code/modules/mining/mine_turfs.dm | 1 - .../xenoarchaeology/artifact/artifact.dm | 2 +- .../effects/unknown_effect_cellcharge.dm | 16 +-- .../effects/unknown_effect_celldrain.dm | 14 +-- .../effects/unknown_effect_dnaswitch.dm | 77 +++++++------ .../unknown/effects/unknown_effect_heal.dm | 105 +++++++++--------- .../unknown/effects/unknown_effect_hurt.dm | 67 +++++------ .../unknown/effects/unknown_effect_sleepy.dm | 48 ++++---- .../unknown/effects/unknown_effect_stun.dm | 53 +++++---- .../effects/unknown_effect_teleport.dm | 98 ++++++++-------- .../xenoarchaeology/unknown/unknown.dm | 4 +- .../xenoarchaeology/unknown/unknown_effect.dm | 27 +++++ 12 files changed, 269 insertions(+), 243 deletions(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 742fe3d5d9d..f4ad059a428 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -128,7 +128,6 @@ //dont create artifact machinery in animal or plant digsites, or if we already have one if(!artifact_find && digsite != 1 && digsite != 2 && prob(ARTIFACT_SPAWN_CHANCE)) artifact_find = new() - world << artifact_find.artifact_find_type if(!src.geological_data) src.geological_data = new/datum/geosample(src) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index 71f6f7965e0..60f6fc7fb96 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -22,7 +22,7 @@ 100;/obj/machinery/giga_drill,\ 100;/obj/mecha/working/hoverpod,\ 100;/obj/machinery/replicator,\ - 200;/obj/structure/crystal,\ + 150;/obj/structure/crystal,\ 500;/obj/machinery/artifact) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm index 45f895e53fd..b6f48daf1b6 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm @@ -8,7 +8,7 @@ if(istype(user, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = user for (var/obj/item/weapon/cell/D in R.contents) - D.charge += 250 + D.charge += rand() * 100 + 50 R << "\blue SYSTEM ALERT: Large energy boost detected!" return 1 @@ -16,11 +16,12 @@ if(holder) for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) - B.charge += 100 - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 250 + B.charge += 25 + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + S.charge += 25 for (var/mob/living/silicon/robot/M in world) for (var/obj/item/weapon/cell/D in M.contents) - D.charge += 100 + D.charge += 25 M << "\blue SYSTEM ALERT: Energy boost detected!" return 1 @@ -28,10 +29,11 @@ if(holder) for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) - B.charge += 100 - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 250 + B.charge += rand() * 100 + for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + S.charge += 250 for (var/mob/living/silicon/robot/M in world) for (var/obj/item/weapon/cell/D in M.contents) - D.charge += 100 + D.charge += rand() * 100 M << "\blue SYSTEM ALERT: Energy boost detected!" return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm index 677d5892c5e..954cbe46a6d 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm @@ -8,7 +8,7 @@ if(istype(user, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = user for (var/obj/item/weapon/cell/D in R.contents) - D.charge = max(D.charge-250, 0) + D.charge = max(D.charge - rand() * 100, 0) R << "\blue SYSTEM ALERT: Energy drain detected!" return 1 @@ -18,12 +18,12 @@ if(holder) for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) - B.charge = max(B.charge-250,0) + B.charge = max(B.charge - 50,0) for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) - S.charge = max(S.charge-250,0) + S.charge = max(S.charge - 100,0) for (var/mob/living/silicon/robot/M in world) for (var/obj/item/weapon/cell/D in M.contents) - D.charge = max(D.charge-250,0) + D.charge = max(D.charge - 50,0) M << "\red SYSTEM ALERT: Energy drain detected!" return 1 @@ -31,11 +31,11 @@ if(holder) for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) - B.charge = max(B.charge-250,0) + B.charge = max(B.charge - rand() * 150,0) for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) - S.charge = max(S.charge-250,0) + S.charge = max(S.charge - 250,0) for (var/mob/living/silicon/robot/M in world) for (var/obj/item/weapon/cell/D in M.contents) - D.charge = max(D.charge-250,0) + D.charge = max(D.charge - rand() * 150,0) M << "\red SYSTEM ALERT: Energy drain detected!" return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm index 4c5329ca927..9c66974e9ca 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm @@ -11,8 +11,9 @@ else severity = rand(5,95) -/datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/holder) - if(ishuman(holder) && !istype(holder:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && !istype(holder:head,/obj/item/clothing/head/bio_hood/anomaly)) +/datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/toucher) + var/weakness = GetAnomalySusceptibility(toucher) + if(ishuman(toucher) && prob(weakness * 100)) holder << pick("\green You feel a little different.",\ "\green You feel very strange.",\ "\green Your stomach churns.",\ @@ -21,46 +22,44 @@ "\green You feel a tingling sensation in your chest.",\ "\green Your entire body vibrates.") if(prob(75)) - scramble(1, holder, severity) + scramble(1, holder, weakness * severity) else - scramble(0, holder, severity) + scramble(0, holder, weakness * severity) return 1 /datum/artifact_effect/dnaswitch/DoEffectAura() - for(var/mob/living/carbon/human/H in range(src.effectrange,holder)) - if(istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - - if(prob(30)) - H << pick("\green You feel a little different.",\ - "\green You feel very strange.",\ - "\green Your stomach churns.",\ - "\green Your skin feels loose.",\ - "\green You feel a stabbing pain in your head.",\ - "\green You feel a tingling sensation in your chest.",\ - "\green Your entire body vibrates.") - if(prob(25)) - scramble(1, H, severity) - else - scramble(0, H, severity) - return 1 + if(holder) + for(var/mob/living/carbon/human/H in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(H) + if(prob(weakness * 100)) + if(prob(30)) + H << pick("\green You feel a little different.",\ + "\green You feel very strange.",\ + "\green Your stomach churns.",\ + "\green Your skin feels loose.",\ + "\green You feel a stabbing pain in your head.",\ + "\green You feel a tingling sensation in your chest.",\ + "\green Your entire body vibrates.") + if(prob(25)) + scramble(1, H, weakness * severity) + else + scramble(0, H, weakness * severity) /datum/artifact_effect/dnaswitch/DoEffectPulse() - for(var/mob/living/carbon/human/H in range(200, holder)) - if(istype(H:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(H:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - - if(prob(75)) - H << pick("\green You feel a little different.",\ - "\green You feel very strange.",\ - "\green Your stomach churns.",\ - "\green Your skin feels loose.",\ - "\green You feel a stabbing pain in your head.",\ - "\green You feel a tingling sensation in your chest.",\ - "\green Your entire body vibrates.") - if(prob(25)) - if(prob(50)) - scramble(1, H, severity) - else - scramble(0, H, severity) - return 1 + if(holder) + for(var/mob/living/carbon/human/H in range(200, holder)) + var/weakness = GetAnomalySusceptibility(H) + if(prob(weakness * 100)) + if(prob(75)) + H << pick("\green You feel a little different.",\ + "\green You feel very strange.",\ + "\green Your stomach churns.",\ + "\green Your skin feels loose.",\ + "\green You feel a stabbing pain in your head.",\ + "\green You feel a tingling sensation in your chest.",\ + "\green Your entire body vibrates.") + if(prob(25)) + if(prob(50)) + scramble(1, H, weakness * severity) + else + scramble(0, H, weakness * severity) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm index ee01aa182b1..6d4aba5f748 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm @@ -2,66 +2,61 @@ /datum/artifact_effect/heal effecttype = "heal" -/datum/artifact_effect/heal/DoEffectTouch(var/mob/user) - //caeltodo - if(user) - if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = holder - H << "\blue You feel a soothing energy invigorate you." +/datum/artifact_effect/heal/DoEffectTouch(var/mob/toucher) + //todo: check over this properly + if(toucher && iscarbon(toucher)) + var/weakness = GetAnomalySusceptibility(toucher) + if(prob(weakness * 100)) + var/mob/living/carbon/C = toucher + C << "\blue You feel a soothing energy invigorate you." - for(var/datum/organ/external/affecting in H.organs) - if(affecting && istype(affecting)) - affecting.heal_damage(25, 25) - //H:heal_organ_damage(25, 25) + if(ishuman(toucher)) + var/mob/living/carbon/human/H = holder + for(var/datum/organ/external/affecting in H.organs) + if(affecting && istype(affecting)) + affecting.heal_damage(25 * weakness, 25 * weakness) + //H:heal_organ_damage(25, 25) + H.vessel.add_reagent("blood",5) + H.nutrition += 50 * weakness + H.adjustBrainLoss(-25 * weakness) + H.radiation -= min(H.radiation, 25 * weakness) + H.bodytemperature = initial(H.bodytemperature) + spawn(1) + H.fixblood() // - H.adjustOxyLoss(-25) - H.adjustToxLoss(-25) - H.adjustBruteLoss(-25) - H.adjustFireLoss(-25) - H.adjustBrainLoss(-25) - H.radiation -= min(H.radiation, 25) - H.nutrition += 50 - H.bodytemperature = initial(H.bodytemperature) + C.adjustOxyLoss(-25 * weakness) + C.adjustToxLoss(-25 * weakness) + C.adjustBruteLoss(-25 * weakness) + C.adjustFireLoss(-25 * weakness) // - H.vessel.add_reagent("blood",50) - spawn(1) - H.fixblood() - H.regenerate_icons() - return 1 - - else if (istype(user, /mob/living/carbon/monkey/)) - var/mob/living/carbon/monkey/M = holder - M << "\blue You feel a soothing energy invigorate you." - M.adjustOxyLoss(-25) - M.adjustToxLoss(-25) - M.adjustBruteLoss(-25) - M.adjustFireLoss(-25) - M.adjustBrainLoss(-25) + C.regenerate_icons() return 1 /datum/artifact_effect/heal/DoEffectAura() - //caeltodo - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\blue You feel a soothing energy radiating from something nearby." - M.adjustBruteLoss(-1) - M.adjustFireLoss(-1) - M.adjustToxLoss(-1) - M.adjustOxyLoss(-1) - M.adjustBrainLoss(-1) - M.updatehealth() - return 1 + //todo: check over this properly + if(holder) + for (var/mob/living/carbon/C in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(weakness * 100)) + if(prob(10)) + C << "\blue You feel a soothing energy radiating from something nearby." + C.adjustBruteLoss(-1 * weakness) + C.adjustFireLoss(-1 * weakness) + C.adjustToxLoss(-1 * weakness) + C.adjustOxyLoss(-1 * weakness) + C.adjustBrainLoss(-1 * weakness) + C.updatehealth() /datum/artifact_effect/heal/DoEffectPulse() - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\blue A wave of energy invigorates you." - M.adjustBruteLoss(-5) - M.adjustFireLoss(-5) - M.adjustToxLoss(-5) - M.adjustOxyLoss(-5) - M.adjustBrainLoss(-5) - M.updatehealth() - return 1 + //todo: check over this properly + if(holder) + for (var/mob/living/carbon/C in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(weakness * 100)) + C << "\blue A wave of energy invigorates you." + C.adjustBruteLoss(-5 * weakness) + C.adjustFireLoss(-5 * weakness) + C.adjustToxLoss(-5 * weakness) + C.adjustOxyLoss(-5 * weakness) + C.adjustBrainLoss(-5 * weakness) + C.updatehealth() diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm index 29c1ffc18ee..a9ae4d89ee0 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm @@ -2,45 +2,46 @@ /datum/artifact_effect/hurt effecttype = "hurt" -/datum/artifact_effect/hurt/DoEffectTouch(var/mob/holder) +/datum/artifact_effect/hurt/DoEffectTouch(var/mob/toucher) //caeltodo if(holder) - if (istype(holder, /mob/living/carbon/)) - var/mob/living/carbon/C = holder + var/weakness = GetAnomalySusceptibility(toucher) + if(iscarbon(toucher) && prob(weakness * 100)) + var/mob/living/carbon/C = toucher C << "\red A painful discharge of energy strikes you!" - C.adjustOxyLoss(rand(5,25)) - C.adjustToxLoss(rand(5,25)) - C.adjustBruteLoss(rand(5,25)) - C.adjustFireLoss(rand(5,25)) - C.adjustBrainLoss(rand(5,25)) - C.radiation += 25 - C.nutrition -= min(50, C.nutrition) - C.make_dizzy(6) - C.weakened += 6 - return 1 + C.adjustOxyLoss(rand(5,25) * weakness) + C.adjustToxLoss(rand(5,25) * weakness) + C.adjustBruteLoss(rand(5,25) * weakness) + C.adjustFireLoss(rand(5,25) * weakness) + C.adjustBrainLoss(rand(5,25) * weakness) + C.radiation += 25 * weakness + C.nutrition -= min(50 * weakness, C.nutrition) + C.make_dizzy(6 * weakness) + C.weakened += 6 * weakness /datum/artifact_effect/hurt/DoEffectAura() if(holder) - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\red You feel a painful force radiating from something nearby." - M.adjustBruteLoss(1) - M.adjustFireLoss(1) - M.adjustToxLoss(1) - M.adjustOxyLoss(1) - M.adjustBrainLoss(1) - M.updatehealth() - return 1 + for (var/mob/living/carbon/C in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(weakness * 100)) + if(prob(10)) + C << "\red You feel a painful force radiating from something nearby." + C.adjustBruteLoss(1 * weakness) + C.adjustFireLoss(1 * weakness) + C.adjustToxLoss(1 * weakness) + C.adjustOxyLoss(1 * weakness) + C.adjustBrainLoss(1 * weakness) + C.updatehealth() /datum/artifact_effect/hurt/DoEffectPulse() if(holder) - for (var/mob/living/carbon/human/M in range(effectrange, holder)) - M << "\red A wave of painful energy strikes you!" - M.adjustBruteLoss(3) - M.adjustFireLoss(3) - M.adjustToxLoss(3) - M.adjustOxyLoss(3) - M.adjustBrainLoss(3) - M.updatehealth() - return 1 + for (var/mob/living/carbon/C in range(effectrange, holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(weakness * 100)) + C << "\red A wave of painful energy strikes you!" + C.adjustBruteLoss(3 * weakness) + C.adjustFireLoss(3 * weakness) + C.adjustToxLoss(3 * weakness) + C.adjustOxyLoss(3 * weakness) + C.adjustBrainLoss(3 * weakness) + C.updatehealth() diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm index 6648ffd19cf..911efd04135 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm @@ -3,34 +3,40 @@ /datum/artifact_effect/sleepy effecttype = "sleepy" -/datum/artifact_effect/sleepy/DoEffectTouch(var/mob/user) - if(user) - if(istype(user,/mob/living/carbon)) - var/mob/living/carbon/C = user - C << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") - C.drowsyness = min(user.drowsyness + rand(5,25), 50) - C.eye_blurry = min(user.eye_blurry + rand(1,3), 50) +/datum/artifact_effect/sleepy/DoEffectTouch(var/mob/toucher) + if(toucher) + var/weakness = GetAnomalySusceptibility(toucher) + if(ishuman(toucher) && prob(weakness * 100)) + var/mob/living/carbon/human/H = toucher + H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + H.drowsyness = min(H.drowsyness + rand(5,25) * weakness, 50 * weakness) + H.eye_blurry = min(H.eye_blurry + rand(1,3) * weakness, 50 * weakness) return 1 - else if(istype(user,/mob/living/silicon/robot)) - user << "\red SYSTEM ALERT: CPU cycles slowing down." + else if(isrobot(toucher)) + toucher << "\red SYSTEM ALERT: CPU cycles slowing down." return 1 /datum/artifact_effect/sleepy/DoEffectAura() if(holder) - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(prob(10)) - M << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") - M.drowsyness = min(M.drowsyness + 1, 25) - M.eye_blurry = min(M.eye_blurry + 1, 25) - for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) - M << "\red SYSTEM ALERT: CPU cycles slowing down." + for (var/mob/living/carbon/human/H in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(H) + if(prob(weakness * 100)) + if(prob(10)) + H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + H.drowsyness = min(H.drowsyness + 1 * weakness, 25 * weakness) + H.eye_blurry = min(H.eye_blurry + 1 * weakness, 25 * weakness) + for (var/mob/living/silicon/robot/R in range(src.effectrange,holder)) + R << "\red SYSTEM ALERT: CPU cycles slowing down." return 1 /datum/artifact_effect/sleepy/DoEffectPulse() if(holder) - for(var/mob/living/H in range(src.effectrange, holder)) - H.drowsyness = min(H.drowsyness + rand(5,15), 50) - H.eye_blurry = min(H.eye_blurry + rand(5,15), 50) - for (var/mob/living/silicon/robot/M in range(src.effectrange,holder)) - M << "\red SYSTEM ALERT: CPU cycles slowing down." + for(var/mob/living/carbon/human/H in range(src.effectrange, holder)) + var/weakness = GetAnomalySusceptibility(H) + if(prob(weakness * 100)) + H << pick("\blue You feel like taking a nap.","\blue You feel a yawn coming on.","\blue You feel a little tired.") + H.drowsyness = min(H.drowsyness + rand(5,15) * weakness, 50 * weakness) + H.eye_blurry = min(H.eye_blurry + rand(5,15) * weakness, 50 * weakness) + for (var/mob/living/silicon/robot/R in range(src.effectrange,holder)) + R << "\red SYSTEM ALERT: CPU cycles slowing down." return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm index 47506bb0f2a..4e3b2374913 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm @@ -2,37 +2,36 @@ /datum/artifact_effect/stun effecttype = "stun" -/datum/artifact_effect/stun/DoEffectTouch(var/mob/user) - if(user) - if (istype(user, /mob/living/carbon/)) - user << "\red A powerful force overwhelms your consciousness." - user.weakened += 45 - user.stuttering += 45 - user.stunned += rand(1,10) - return 1 +/datum/artifact_effect/stun/DoEffectTouch(var/mob/toucher) + if(toucher && iscarbon(toucher)) + var/mob/living/carbon/C = toucher + var/weakness = GetAnomalySusceptibility(C) + if(prob(weakness * 100)) + C << "\red A powerful force overwhelms your consciousness." + C.weakened += 45 * weakness + C.stuttering += 45 * weakness + C.stunned += rand(1,10) * weakness /datum/artifact_effect/stun/DoEffectAura() if(holder) - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - if(prob(10)) M << "\red You feel numb." - if(prob(20)) - M << "\red Your body goes numb for a moment." - M.weakened += 2 - M.stuttering += 2 + for (var/mob/living/carbon/C in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(10 * weakness)) + C << "\red Your body goes numb for a moment." + C.weakened += 2 + C.stuttering += 2 if(prob(10)) - M.stunned += 1 - return 1 + C.stunned += 1 + else if(prob(10)) + C << "\red You feel numb." /datum/artifact_effect/stun/DoEffectPulse() if(holder) - for (var/mob/living/carbon/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - M << "\red A wave of energy overwhelms your senses!" - M.weakened += 4 - M.stuttering += 4 - if(prob(10)) - M.stunned += 1 - return 1 + for (var/mob/living/carbon/C in range(src.effectrange,holder)) + var/weakness = GetAnomalySusceptibility(C) + if(prob(100 * weakness)) + C << "\red A wave of energy overwhelms your senses!" + C.weakened += 4 * weakness + C.stuttering += 4 * weakness + if(prob(10)) + C.stunned += 1 * weakness diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm index b99d7f9ab5f..166fcbfd2af 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm @@ -3,64 +3,62 @@ effecttype = "teleport" /datum/artifact_effect/teleport/DoEffectTouch(var/mob/user) - var/list/randomturfs = new/list() - for(var/turf/simulated/floor/T in orange(user, 50)) - randomturfs.Add(T) - if(randomturfs.len > 0) - user << "\red You are suddenly zapped away elsewhere!" - if (user.buckled) - user.buckled.unbuckle() + var/weakness = GetAnomalySusceptibility(user) + if(prob(100 * weakness)) + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(user, 50)) + randomturfs.Add(T) + if(randomturfs.len > 0) + user << "\red You are suddenly zapped away elsewhere!" + if (user.buckled) + user.buckled.unbuckle() - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(user)) - sparks.start() - user.loc = pick(randomturfs) - sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(user)) - sparks.start() - - return 1 + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(user)) + sparks.start() + user.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(user)) + sparks.start() /datum/artifact_effect/teleport/DoEffectAura() if(holder) for (var/mob/living/M in range(src.effectrange,holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - var/list/randomturfs = new/list() - for(var/turf/simulated/floor/T in orange(M, 30)) - randomturfs.Add(T) - if(randomturfs.len > 0) - M << "\red You are displaced by a strange force!" - if(M.buckled) - M.buckled.unbuckle() + var/weakness = GetAnomalySusceptibility(M) + if(prob(100 * weakness)) + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(M, 30)) + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" + if(M.buckled) + M.buckled.unbuckle() - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) - sparks.start() - M.loc = pick(randomturfs) - sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) - sparks.start() - return 1 + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + M.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() /datum/artifact_effect/teleport/DoEffectPulse() if(holder) for (var/mob/living/M in range(src.effectrange, holder)) - if(ishuman(M) && istype(M:wear_suit,/obj/item/clothing/suit/bio_suit/anomaly) && istype(M:head,/obj/item/clothing/head/bio_hood/anomaly)) - continue - var/list/randomturfs = new/list() - for(var/turf/simulated/floor/T in orange(M, 15)) - randomturfs.Add(T) - if(randomturfs.len > 0) - M << "\red You are displaced by a strange force!" + var/weakness = GetAnomalySusceptibility(M) + if(prob(100 * weakness)) + var/list/randomturfs = new/list() + for(var/turf/simulated/floor/T in orange(M, 15)) + randomturfs.Add(T) + if(randomturfs.len > 0) + M << "\red You are displaced by a strange force!" - var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) - sparks.start() - if(M.buckled) - M.buckled.unbuckle() - M.loc = pick(randomturfs) - sparks = new /datum/effect/effect/system/spark_spread() - sparks.set_up(3, 0, get_turf(M)) - sparks.start() - return 1 + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + if(M.buckled) + M.buckled.unbuckle() + M.loc = pick(randomturfs) + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() diff --git a/code/modules/research/xenoarchaeology/unknown/unknown.dm b/code/modules/research/xenoarchaeology/unknown/unknown.dm index 1313203a943..52f7e2c772e 100644 --- a/code/modules/research/xenoarchaeology/unknown/unknown.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown.dm @@ -222,7 +222,7 @@ var/list/valid_secondary_effect_types = list(\ if (get_dist(user, src) > 1) user << "\red You can't reach [src] from here." return - if(ishuman(user) && istype(user:gloves,/obj/item/clothing/gloves)) + if(ishuman(user) && user:gloves) return ..() src.add_fingerprint(user) @@ -231,7 +231,7 @@ var/list/valid_secondary_effect_types = list(\ user << "You touch [src]." my_effect.ToggleActivate() else - user << "You touch [src], [pick("and nothing of note happens","but nothing happens","and nothing interesting happens","you notice nothing different","nothing seems to have happened")]." + user << "You touch [src], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." if(prob(25) && secondary_effect && secondary_effect.trigger == my_effect.trigger) secondary_effect.ToggleActivate(0) diff --git a/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm index a89ef63d0b9..b6d0fd61901 100644 --- a/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm @@ -66,3 +66,30 @@ else if(effect == EFFECT_PULSE && chargelevel >= chargelevelmax) chargelevel = 0 DoEffectPulse() + +//returns 0..1, with 1 being no protection and 0 being fully protected +proc/GetAnomalySusceptibility(var/mob/living/carbon/human/H) + if(!H || !istype(H)) + return 1 + + var/protected = 0 + + //anomaly suits give best protection, but excavation suits are almost as good + if(istype(H.wear_suit,/obj/item/clothing/suit/bio_suit/anomaly)) + protected += 0.6 + else if(istype(H.wear_suit,/obj/item/clothing/suit/space/anomaly)) + protected += 0.5 + + if(istype(H.head,/obj/item/clothing/head/bio_hood/anomaly)) + protected += 0.3 + else if(istype(H.head,/obj/item/clothing/head/helmet/space/anomaly)) + protected += 0.2 + + //latex gloves and science goggles also give a bit of bonus protection + if(istype(H.gloves,/obj/item/clothing/gloves/latex)) + protected += 0.1 + + if(istype(H.glasses,/obj/item/clothing/glasses/science)) + protected += 0.1 + + return 1 - protected From 7fba00ce5518eb5ce8d8e5a3562cb2624ffa1e97 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 14 Feb 2013 13:28:31 +1000 Subject: [PATCH 034/163] miscellaneous fixes + tweaks + cleanups (spoons, artifacts, geotracking, helpers for finds, tools / gear) Signed-off-by: Cael_Aislinn --- baystation12.dme | 48 +---------------- code/game/objects/items/weapons/kitchen.dm | 2 +- code/modules/mining/mine_turfs.dm | 2 + .../research/xenoarchaeology/finds/finds.dm | 49 ++++++++++++++---- .../xenoarchaeology/finds/finds_defines.dm | 35 +++++-------- .../research/xenoarchaeology/geosample.dm | 4 +- .../xenoarchaeology/suspension_generator.dm | 4 ++ .../research/xenoarchaeology/tools/tools.dm | 2 +- .../tools/tools_coresampler.dm | 2 +- .../tools/tools_depthscanner.dm | 2 +- .../xenoarchaeology/tools/tools_pickaxe.dm | 18 +++---- icons/obj/xenoarchaeology.dmi | Bin 50870 -> 52967 bytes 12 files changed, 73 insertions(+), 95 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 87a6be7b3a3..8fcfc748ea1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -5,50 +5,6 @@ // END_INTERNALS // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR "code" -#define FILE_DIR "code/TriDimension" -#define FILE_DIR "code/WorkInProgress" -#define FILE_DIR "code/WorkInProgress/Cael_Aislinn" -#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle" -#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" -#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" -#define FILE_DIR "code/WorkInProgress/Susan" -#define FILE_DIR "html" -#define FILE_DIR "icons" -#define FILE_DIR "icons/48x48" -#define FILE_DIR "icons/effects" -#define FILE_DIR "icons/mecha" -#define FILE_DIR "icons/misc" -#define FILE_DIR "icons/mob" -#define FILE_DIR "icons/mob/human_races" -#define FILE_DIR "icons/obj" -#define FILE_DIR "icons/obj/assemblies" -#define FILE_DIR "icons/obj/atmospherics" -#define FILE_DIR "icons/obj/clothing" -#define FILE_DIR "icons/obj/doors" -#define FILE_DIR "icons/obj/flora" -#define FILE_DIR "icons/obj/machines" -#define FILE_DIR "icons/obj/pipes" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/spideros_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "sound" -#define FILE_DIR "sound/AI" -#define FILE_DIR "sound/ambience" -#define FILE_DIR "sound/effects" -#define FILE_DIR "sound/effects/wind" -#define FILE_DIR "sound/hallucinations" -#define FILE_DIR "sound/items" -#define FILE_DIR "sound/machines" -#define FILE_DIR "sound/mecha" -#define FILE_DIR "sound/misc" -#define FILE_DIR "sound/music" -#define FILE_DIR "sound/piano" -#define FILE_DIR "sound/violin" -#define FILE_DIR "sound/voice" -#define FILE_DIR "sound/weapons" // END_FILE_DIR // BEGIN_PREFERENCES @@ -1142,13 +1098,13 @@ #include "code\modules\research\xenoarchaeology\finds\finds_fossils.dm" #include "code\modules\research\xenoarchaeology\finds\finds_misc.dm" #include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm" -#include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\tools\anomaly_suit.dm" +#include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm" #include "code\modules\research\xenoarchaeology\tools\tools.dm" #include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm" #include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm" -#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.dm" #include "code\modules\research\xenoarchaeology\tools\tools_locater.dm" +#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.dm" #include "code\modules\research\xenoarchaeology\unknown\unknown.dm" #include "code\modules\research\xenoarchaeology\unknown\unknown_analysis.dm" #include "code\modules\research\xenoarchaeology\unknown\unknown_db.dm" diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 02f270d767d..c21601d0230 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -34,7 +34,7 @@ /* * Spoons */ - /obj/item/weapon/kitchen/utensil/spoon +/obj/item/weapon/kitchen/utensil/spoon name = "spoon" desc = "SPOON!" icon_state = "spoon" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index f4ad059a428..40319b0d1a7 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -128,6 +128,8 @@ //dont create artifact machinery in animal or plant digsites, or if we already have one if(!artifact_find && digsite != 1 && digsite != 2 && prob(ARTIFACT_SPAWN_CHANCE)) artifact_find = new() + //world << "[artifact_find.artifact_find_type] [src.x], [src.y], [src.z]" + artifact_spawning_turfs.Add(src) if(!src.geological_data) src.geological_data = new/datum/geosample(src) diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index a31ec91852b..61b6fec727c 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -87,7 +87,7 @@ if(new_item_type) find_type = new_item_type else - find_type = get_random_find_type(0) + find_type = rand(1,34) //update this when you add new find types var/item_type = "object" icon_state = "unknown[rand(1,4)]" @@ -97,6 +97,7 @@ var/apply_material_decorations = 1 var/apply_image_decorations = 0 var/material_descriptor = "" + var/apply_prefix = 1 if(prob(40)) material_descriptor = pick("rusted ","dusty ","archaic ","fragile ") source_material = pick("cordite","quadrinium","steel","titanium","aluminium","ferritic-alloy","plasteel","duranium") @@ -116,7 +117,7 @@ new_item.icon_state = "bowl" apply_image_decorations = 1 if(prob(20)) - additional_desc = "There appear to be [pick("dark","faintly glowing","pungent")] [pick("red","purple","green","blue")] stains inside." + additional_desc = "There appear to be [pick("dark","faintly glowing","pungent","bright")] [pick("red","purple","green","blue")] stains inside." if(2) item_type = "urn" new_item = new /obj/item/weapon/reagent_containers/glass(src.loc) @@ -167,20 +168,22 @@ chance += 10 item_type = new_item.name + apply_prefix = 0 apply_material_decorations = 0 apply_image_decorations = 1 if(8) - item_type = "chained loops" + item_type = "handcuffs" new_item = new /obj/item/weapon/handcuffs(src.loc) additional_desc = "[pick("They appear to be for securing two things together","Looks kinky","Doesn't seem like a children's toy")]." if(9) item_type = "[pick("wicked","evil","byzantine","dangerous")] looking [pick("device","contraption","thing","trap")]" + apply_prefix = 0 new_item = new /obj/item/weapon/legcuffs/beartrap(src.loc) additional_desc = "[pick("It looks like it could take a limb off",\ "Could be some kind of animal trap",\ "There appear to be [pick("dark red","dark purple","dark green","dark blue")] stains along part of it")]." if(10) - item_type = "small [pick("cylinder","tank","chamber")]" + item_type = "[pick("cylinder","tank","chamber")]" new_item = new /obj/item/weapon/lighter(src.loc) additional_desc = "There is a tiny device attached." if(prob(30)) @@ -203,7 +206,7 @@ icon_state = pick("oxygen","oxygen_fr","oxygen_f","plasma","anesthetic") additional_desc = "It [pick("gloops","sloshes")] slightly when you shake it." if(13) - item_type = "strange tool" + item_type = "tool" if(prob(25)) new_item = new /obj/item/weapon/wrench(src.loc) else if(prob(25)) @@ -239,12 +242,16 @@ if(prob(30)) apply_image_decorations = 1 if(16) - if(prob(33)) + apply_prefix = 0 + if(prob(25)) item_type = "smooth green crystal" icon_state = "Green lump" - else if(prob(50)) + else if(prob(33)) item_type = "irregular purple crystal" icon_state = "Phazon" + else if(prob(50)) + item_type = "rough red crystal" + icon_state = "changerock" else item_type = "smooth red crystal" icon_state = "ore" @@ -255,6 +262,7 @@ apply_image_decorations = 1 if(17) //cultblade + apply_prefix = 0 new_item = new /obj/item/weapon/melee/cultblade(src.loc) apply_material_decorations = 0 apply_image_decorations = 0 @@ -265,10 +273,12 @@ new_item.icon = 'xenoarchaeology.dmi' new_item.desc = "" if(19) + apply_prefix = 0 new_item = new /obj/item/weapon/claymore(src.loc) name = new_item.name if(20) //arcane clothing + apply_prefix = 0 var/list/possible_spawns = list(/obj/item/clothing/head/culthood, /obj/item/clothing/head/magus, /obj/item/clothing/head/culthood/alt, @@ -278,16 +288,20 @@ new_item = new new_type(src.loc) if(21) //soulstone + apply_prefix = 0 new_item = new /obj/item/device/soulstone(src.loc) + item_type = new_item.name apply_material_decorations = 0 if(22) if(prob(50)) new_item = new /obj/item/weapon/shard(src.loc) else new_item = new /obj/item/weapon/shard/plasma(src.loc) + apply_prefix = 0 apply_image_decorations = 0 apply_material_decorations = 0 if(23) + apply_prefix = 0 new_item = new /obj/item/stack/rods(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 @@ -300,6 +314,7 @@ new_item = new new_type(src.loc) apply_material_decorations = 0 if(25) + apply_prefix = 0 new_item = new /obj/item/weapon/katana(src.loc) name = new_item.name if(26) @@ -326,7 +341,7 @@ else new_gun.power_supply.charge = 0 - name = "unknown weapon" + name = "gun" if(27) //revolver var/obj/item/weapon/gun/projectile/new_gun = new /obj/item/weapon/gun/projectile(src.loc) @@ -358,7 +373,7 @@ new_gun.loaded.Remove(I) I.loc = null - name = "unknown weapon" + name = "gun" if(28) //completely unknown alien device if(prob(50)) @@ -366,9 +381,13 @@ if(29) //fossil bone/skull new_item = new /obj/item/weapon/fossil/base(src.loc) + apply_prefix = 0 + apply_image_decorations = 0 + apply_material_decorations = 0 if(30) //fossil shell new_item = new /obj/item/weapon/fossil/shell(src.loc) + apply_prefix = 0 apply_image_decorations = 0 apply_material_decorations = 0 if(prob(10)) @@ -378,8 +397,10 @@ new_item = new /obj/item/weapon/fossil/plant(src.loc) apply_image_decorations = 0 apply_material_decorations = 0 + apply_prefix = 0 if(32) //humanoid remains + apply_prefix = 0 name = "humanoid [pick("remains","skeleton")]" icon = 'blood.dmi' icon_state = "remains" @@ -394,6 +415,7 @@ apply_material_decorations = 0 if(33) //robot remains + apply_prefix = 0 name = "[pick("mechanical","robotic","cyborg")] [pick("remains","chassis","debris")]" icon = 'blood.dmi' icon_state = "remainsrobot" @@ -408,6 +430,7 @@ apply_material_decorations = 0 if(34) //xenos remains + apply_prefix = 0 name = "alien [pick("remains","skeleton")]" icon = 'blood.dmi' icon_state = "remainsxeno" @@ -463,7 +486,11 @@ desc += " " desc += engravings - name = "[item_type]" + if(apply_prefix) + name = "[pick("Strange","Ancient","Alien","")] [item_type]" + else + name = item_type + if(desc) desc += " " desc += additional_desc @@ -472,7 +499,7 @@ //icon and icon_state should have already been set if(new_item) - new_item.name = "[pick("Strange","Ancient","Alien","")] [new_item.name]" + new_item.name = name new_item.desc = src.desc if(talkative) diff --git a/code/modules/research/xenoarchaeology/finds/finds_defines.dm b/code/modules/research/xenoarchaeology/finds/finds_defines.dm index 9583cb74ad9..dd5aa34dd25 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_defines.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_defines.dm @@ -30,6 +30,10 @@ #define ARCHAEO_FOSSIL 29 #define ARCHAEO_SHELL 30 #define ARCHAEO_PLANT 31 +#define ARCHAEO_REMAINS_HUMANOID 32 +#define ARCHAEO_REMAINS_ROBOT 33 +#define ARCHAEO_REMAINS_XENO 34 +#define MAX_ARCHAEO 34 //eggs //droppings //footprints @@ -37,29 +41,6 @@ //DNA sampling from fossils, or a new archaeo type specifically for it? -#define ARTIFACT_REMAINS_HUMANOID 1 -#define ARTIFACT_REMAINS_ROBOT 2 -#define ARTIFACT_REMAINS_XENO 3 -#define ARTIFACT_MACHINERY 4 -#define ARTIFACT_OCCULT 5 -#define ARTIFACT_SYNDBEACON 6 - -//? -#define ARTIFACT_HEAL 4 -#define ARTIFACT_BIODAM 5 -#define ARTIFACT_POWERCHARGE 6 -#define ARTIFACT_POWERDRAIN 7 -#define ARTIFACT_EMP 8 -#define ARTIFACT_PLANTGROW 9 -#define ARTIFACT_WEAKEN 10 -#define ARTIFACT_SLEEPY 11 -#define ARTIFACT_TELEPORT 12 -#define ARTIFACT_ROBOHURT 13 -#define ARTIFACT_ROBOHEAL 14 -#define ARTIFACT_DNASWITCH 15 -//#define ARTIFACT_ -//#define ARTIFACT_ - //descending order of likeliness to spawn #define DIGSITE_GARDEN 1 #define DIGSITE_ANIMAL 2 @@ -126,8 +107,16 @@ return "beryllium" if(ARCHAEO_FOSSIL) return "carbon" + if(ARCHAEO_SHELL) + return "carbon" if(ARCHAEO_PLANT) return "carbon" + if(ARCHAEO_REMAINS_HUMANOID) + return "carbon" + if(ARCHAEO_REMAINS_ROBOT) + return "carbon" + if(ARCHAEO_REMAINS_XENO) + return "carbon" return "chlorine" //see /turf/simulated/mineral/New() in code/modules/mining/mine_turfs.dm diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index cd02736b3fd..9ad8a15b8d4 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -161,7 +161,7 @@ var/list/artifact_spawning_turfs = list() return if(container.artifact_find) - artifact_distance = rand(-100,100) / 100 + artifact_distance = rand() artifact_id = container.artifact_find.artifact_id else for(var/turf/simulated/mineral/holder in artifact_spawning_turfs) @@ -169,7 +169,7 @@ var/list/artifact_spawning_turfs = list() var/dist = get_dist(container, holder) if(dist < holder.artifact_find.artifact_detect_range && dist < src.artifact_distance) src.artifact_distance = dist - src.artifact_id = holder.artifact_find + src.artifact_id = holder.artifact_find.artifact_id else artifact_spawning_turfs.Remove(holder) diff --git a/code/modules/research/xenoarchaeology/suspension_generator.dm b/code/modules/research/xenoarchaeology/suspension_generator.dm index b24080df2ff..690431a8366 100644 --- a/code/modules/research/xenoarchaeology/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/suspension_generator.dm @@ -89,6 +89,7 @@ dat += "[field_type=="aluminium"?"":"" ]Aluminium transmitted field
" dat += "[field_type=="silicon"?"":"" ]Silicon wafer conduction
" dat += "[field_type=="calcium"?"":"" ]Calcium binary deoxidiser
" + dat += "[field_type=="chlorine"?"":"" ]Chlorine alkalising field
" else dat += "
" dat += "
" @@ -257,6 +258,9 @@ if("aluminium") success = 1 // + if("chlorine") + success = 1 + // if("silicon") success = 1 for(var/mob/living/silicon/R in T) diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm index c36a7b16710..03b3f136fd4 100644 --- a/code/modules/research/xenoarchaeology/tools/tools.dm +++ b/code/modules/research/xenoarchaeology/tools/tools.dm @@ -11,7 +11,7 @@ /obj/item/device/gps/attack_self(var/mob/user as mob) var/turf/T = get_turf(src) - user << "\blue \icon[src] [src] flashes [10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]." + user << "\blue \icon[src] [src] flashes [10 * T.x].[rand(0,9)]:[10 * T.y].[rand(0,9)]:[10 * T.z].[rand(0,9)]." /obj/item/device/measuring_tape name = "measuring tape" diff --git a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 11bde6d4b0f..e060fc44ae7 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -51,8 +51,8 @@ var/datum/geosample/geo_data if(istype(item_to_sample, /turf/simulated/mineral)) var/turf/simulated/mineral/T = item_to_sample + T.geological_data.UpdateNearbyArtifactInfo(T) geo_data = T.geological_data - geo_data.UpdateNearbyArtifactInfo(T) else if(istype(item_to_sample, /obj/item/weapon/ore)) var/obj/item/weapon/ore/O = item_to_sample geo_data = O.geological_data diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm index 3a714bca916..c146f9fd445 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -56,7 +56,7 @@ if(B.artifact_find) //create a new scanlog entry var/datum/depth_scan/D = new() - D.coords = "[10 * B.x + rand(0,9)]:[10 * B.y + rand(0,9)]:[10 * B.z + rand(0,9)]" + D.coords = "[10 * B.x].[rand(0,9)]:[10 * B.y].[rand(0,9)]:[10 * B.z].[rand(0,9)]" D.time = worldtime2text() D.record_index = positive_locations.len + 1 diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm index 7a11c1213a9..f87dfcbc245 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm @@ -4,8 +4,8 @@ /obj/item/weapon/pickaxe/brush name = "brush" - //icon_state = "brush" - //item_state = "minipick" + icon_state = "pick_brush" + item_state = "syringe_0" digspeed = 50 desc = "Thick metallic wires for clearing away dust and loose scree (1 centimetre excavation depth)." excavation_amount = 0.5 @@ -15,7 +15,7 @@ /obj/item/weapon/pickaxe/one_pick name = "1/6 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." excavation_amount = 1 @@ -25,7 +25,7 @@ /obj/item/weapon/pickaxe/two_pick name = "1/3 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." excavation_amount = 2 @@ -35,7 +35,7 @@ /obj/item/weapon/pickaxe/three_pick name = "1/2 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." excavation_amount = 3 @@ -45,7 +45,7 @@ /obj/item/weapon/pickaxe/four_pick name = "2/3 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)." excavation_amount = 4 @@ -55,7 +55,7 @@ /obj/item/weapon/pickaxe/five_pick name = "5/6 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)." excavation_amount = 5 @@ -65,7 +65,7 @@ /obj/item/weapon/pickaxe/six_pick name = "1/1 pick" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)." excavation_amount = 6 @@ -75,7 +75,7 @@ /obj/item/weapon/pickaxe/hand name = "hand pickaxe" //icon_state = "excavation" - //item_state = "minipick" + item_state = "syringe_0" digspeed = 50 desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)." excavation_amount = 15 diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi index 88aeb802d8de534a97a4c87c681d5aa00cb68f3b..57b2d876d3383152a8e40acb3b0a71afdb11682c 100644 GIT binary patch literal 52967 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 z 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

dz7=@ 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 Tm78TC;7e6eOQA;2BIy4CmcLsh From f0de14d0d4363f13dbd697f3850b7da105c55c9c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Thu, 14 Feb 2013 21:59:50 +1000 Subject: [PATCH 035/163] fixed xenoarch chemical analysis, added icons for excavation picks, various misc tweaks Signed-off-by: Cael_Aislinn --- code/modules/mining/mine_turfs.dm | 2 +- code/modules/reagents/Chemistry-Holder.dm | 38 +++++++++++++++++++ code/modules/reagents/Chemistry-Machinery.dm | 19 +++++++++- code/modules/reagents/Chemistry-Recipes.dm | 2 +- .../xenoarchaeology/analysis/analysis.dm | 2 +- .../research/xenoarchaeology/chemistry.dm | 4 +- .../research/xenoarchaeology/finds/finds.dm | 4 ++ .../xenoarchaeology/finds/finds_defines.dm | 2 + .../xenoarchaeology/tools/bunsen_burner.dm | 1 + .../research/xenoarchaeology/tools/tools.dm | 2 +- .../tools/tools_depthscanner.dm | 2 +- .../xenoarchaeology/tools/tools_pickaxe.dm | 22 +++++++---- 12 files changed, 85 insertions(+), 15 deletions(-) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 40319b0d1a7..66a1422bd8a 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -368,7 +368,7 @@ commented out in r5061, I left it because of the shroom thingies else if(src.excavation_level + P.excavation_amount > F.excavation_required - F.clearance_range) //just pull the surrounding rock out - excavate_find(5, F) + excavate_find(0, F) if(src.excavation_level + P.excavation_amount >= 100) //if players have been excavating this turf, have a chance to leave some rocky debris behind diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 74f63060c0c..db136202f6a 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -230,6 +230,15 @@ datum continue var/datum/chemical_reaction/C = reaction + + //check if this recipe needs to be heated to mix + if(C.requires_heating) + if(istype(my_atom.loc, /obj/machinery/bunsen_burner)) + if(!my_atom.loc:heated) + continue + else + continue + var/total_required_reagents = C.required_reagents.len var/total_matching_reagents = 0 var/total_required_catalysts = C.required_catalysts.len @@ -276,11 +285,25 @@ datum for(var/B in C.required_reagents) remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1) + //try and grab any data so we can preserve it across reactions + //added for xenoarchaeology, might be useful for other things + var/preserved_data = null + for(var/B in src.reagent_list) + if(!preserved_data) + var/temp_data = get_data(B) + if(temp_data) + preserved_data = temp_data + var/created_volume = C.result_amount*multiplier if(C.result) feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]") multiplier = max(multiplier, 1) //this shouldnt happen ... add_reagent(C.result, C.result_amount*multiplier) + set_data(C.result, preserved_data) + + //add secondary products + for(var/S in C.secondary_results) + add_reagent(S, C.result_amount * C.secondary_results[S] * multiplier) var/list/seen = viewers(4, get_turf(my_atom)) for(var/mob/M in seen) @@ -490,6 +513,21 @@ datum return res + //two helper functions to preserve data across reactions (needed for xenoarch) + get_data(var/reagent_id) + for(var/R in reagent_list) + var/datum/reagent/D = reagent_list[R] + if(D.id == reagent_id) + //world << "proffering a data-carrying reagent ([reagent_id])" + return D.data + + set_data(var/reagent_id, var/new_data) + for(var/R in reagent_list) + var/datum/reagent/D = reagent_list[R] + if(D.id == reagent_id) + //world << "reagent data set ([reagent_id])" + D.data = new_data + /////////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 1580f50b8c3..4eaf6a80965 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -17,7 +17,7 @@ var/recharged = 0 var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine", "sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron", - "copper","mercury","radium","water","ethanol","sugar","sacid") + "copper","mercury","radium","water","ethanol","sugar","sacid","tungsten") /obj/machinery/chem_dispenser/proc/recharge() if(stat & (BROKEN|NOPOWER)) return @@ -743,6 +743,9 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), + //archaeology! + /obj/item/weapon/rocksliver = list("ground_rock" = 50), + //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! @@ -1070,6 +1073,20 @@ break remove_object(O) + //xenoarch + for(var/obj/item/weapon/rocksliver/O in holdingitems) + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + var/allowed = get_allowed_by_id(O) + for (var/r_id in allowed) + var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume + var/amount = allowed[r_id] + beaker.reagents.add_reagent(r_id,min(amount, space), O.geological_data) + + if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) + break + remove_object(O) + //Everything else - Transfers reagents from it into beaker for (var/obj/item/weapon/reagent_containers/O in holdingitems) if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index e8cd99dab64..cb61b11ad5e 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -480,7 +480,7 @@ datum var/location = get_turf(holder.my_atom) new /obj/item/stack/sheet/mineral/plasma(location) return - + virus_food name = "Virus Food" id = "virusfood" diff --git a/code/modules/research/xenoarchaeology/analysis/analysis.dm b/code/modules/research/xenoarchaeology/analysis/analysis.dm index 49e281ff3b0..54d3fd443e6 100644 --- a/code/modules/research/xenoarchaeology/analysis/analysis.dm +++ b/code/modules/research/xenoarchaeology/analysis/analysis.dm @@ -29,7 +29,7 @@ D = M break S.reagents.add_reagent("analysis_sample", 1, D.geological_data) - S.reagents.add_reagent("chlorine", 1, D.geological_data) + S.reagents.add_reagent("calcium", 1, D.geological_data) /obj/machinery/anomaly/process() //not sure if everything needs to heat up, or just the GLPC diff --git a/code/modules/research/xenoarchaeology/chemistry.dm b/code/modules/research/xenoarchaeology/chemistry.dm index b8387470c34..64dd86a281f 100644 --- a/code/modules/research/xenoarchaeology/chemistry.dm +++ b/code/modules/research/xenoarchaeology/chemistry.dm @@ -51,9 +51,9 @@ datum //todo: make this brown density_separated_sample - name = "Analysis liquid" + name = "Density separated sample" id = "density_separated_sample" - description = "A watery paste used in chemical analysis." + description = "A watery paste used in chemical analysis, this one has some chunks floating in it." reagent_state = LIQUID color = "#C81040" //rgb: 200, 16, 64 //todo: make this browny-white diff --git a/code/modules/research/xenoarchaeology/finds/finds.dm b/code/modules/research/xenoarchaeology/finds/finds.dm index 61b6fec727c..5a9d8adca0c 100644 --- a/code/modules/research/xenoarchaeology/finds/finds.dm +++ b/code/modules/research/xenoarchaeology/finds/finds.dm @@ -382,12 +382,14 @@ //fossil bone/skull new_item = new /obj/item/weapon/fossil/base(src.loc) apply_prefix = 0 + additional_desc = "A fossilised part of an alien, long dead." apply_image_decorations = 0 apply_material_decorations = 0 if(30) //fossil shell new_item = new /obj/item/weapon/fossil/shell(src.loc) apply_prefix = 0 + additional_desc = "A fossilised, pre-Stygian alien crustacean." apply_image_decorations = 0 apply_material_decorations = 0 if(prob(10)) @@ -395,6 +397,8 @@ if(31) //fossil plant new_item = new /obj/item/weapon/fossil/plant(src.loc) + item_type = new_item.name + additional_desc = "A fossilised shred of alien plant matter." apply_image_decorations = 0 apply_material_decorations = 0 apply_prefix = 0 diff --git a/code/modules/research/xenoarchaeology/finds/finds_defines.dm b/code/modules/research/xenoarchaeology/finds/finds_defines.dm index dd5aa34dd25..182f460b7ea 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_defines.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_defines.dm @@ -63,6 +63,8 @@ return "aluminium" if(ARCHAEO_COIN) return "silicon" + if(ARCHAEO_KNIFE) + return "silicon" if(ARCHAEO_HANDCUFFS) return "aluminium" if(ARCHAEO_BEARTRAP) diff --git a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm index bbb3d0c9c94..684788b0f85 100644 --- a/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm +++ b/code/modules/research/xenoarchaeology/tools/bunsen_burner.dm @@ -39,6 +39,7 @@ user << "\red There is nothing on the [src]." /obj/machinery/bunsen_burner/proc/try_heating() + src.visible_message("\blue \icon[src] [src] bubbles.") if(held_container && heating) heated = 1 held_container.reagents.handle_reactions() diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm index 03b3f136fd4..70ce18d2abe 100644 --- a/code/modules/research/xenoarchaeology/tools/tools.dm +++ b/code/modules/research/xenoarchaeology/tools/tools.dm @@ -11,7 +11,7 @@ /obj/item/device/gps/attack_self(var/mob/user as mob) var/turf/T = get_turf(src) - user << "\blue \icon[src] [src] flashes [10 * T.x].[rand(0,9)]:[10 * T.y].[rand(0,9)]:[10 * T.z].[rand(0,9)]." + user << "\blue \icon[src] [src] flashes [T.x].[rand(0,9)]:[T.y].[rand(0,9)]:[T.z].[rand(0,9)]." /obj/item/device/measuring_tape name = "measuring tape" diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm index c146f9fd445..cfb651a036e 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -31,7 +31,7 @@ //create a new scanlog entry var/datum/depth_scan/D = new() - D.coords = "[10 * M.x + rand(0,9)]:[10 * M.y + rand(0,9)]:[10 * M.z + rand(0,9)]" + D.coords = "[M.x].[rand(0,9)]:[M.y].[rand(0,9)]:[10 * M.z].[rand(0,9)]" D.time = worldtime2text() D.record_index = positive_locations.len + 1 diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm index f87dfcbc245..5b0196ee78f 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm @@ -4,6 +4,7 @@ /obj/item/weapon/pickaxe/brush name = "brush" + icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "pick_brush" item_state = "syringe_0" digspeed = 50 @@ -14,7 +15,8 @@ /obj/item/weapon/pickaxe/one_pick name = "1/6 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick1" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (2 centimetre excavation depth)." @@ -24,7 +26,8 @@ /obj/item/weapon/pickaxe/two_pick name = "1/3 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick2" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (4 centimetre excavation depth)." @@ -34,7 +37,8 @@ /obj/item/weapon/pickaxe/three_pick name = "1/2 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick3" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (6 centimetre excavation depth)." @@ -44,7 +48,8 @@ /obj/item/weapon/pickaxe/four_pick name = "2/3 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick4" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (8 centimetre excavation depth)." @@ -54,7 +59,8 @@ /obj/item/weapon/pickaxe/five_pick name = "5/6 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick5" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (10 centimetre excavation depth)." @@ -64,7 +70,8 @@ /obj/item/weapon/pickaxe/six_pick name = "1/1 pick" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick6" item_state = "syringe_0" digspeed = 50 desc = "A miniature excavation tool for precise digging (12 centimetre excavation depth)." @@ -74,7 +81,8 @@ /obj/item/weapon/pickaxe/hand name = "hand pickaxe" - //icon_state = "excavation" + icon = 'icons/obj/xenoarchaeology.dmi' + icon_state = "pick_hand" item_state = "syringe_0" digspeed = 50 desc = "A smaller, more precise version of the pickaxe (30 centimetre excavation depth)." From 31bf502e654d4387578af84f0e8fe32a068474c0 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 19 Feb 2013 01:58:42 +1000 Subject: [PATCH 036/163] moved a file, add/tweaked some sprites Signed-off-by: Cael_Aislinn --- baystation12.dme | 2 +- .../{ => tools}/suspension_generator.dm | 10 ++++++++++ icons/mecha/mecha.dmi | Bin 139966 -> 149405 bytes icons/obj/vehicles.dmi | Bin 9127 -> 6970 bytes 4 files changed, 11 insertions(+), 1 deletion(-) rename code/modules/research/xenoarchaeology/{ => tools}/suspension_generator.dm (97%) diff --git a/baystation12.dme b/baystation12.dme index 8fcfc748ea1..2124eeb1509 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1078,7 +1078,6 @@ #include "code\modules\research\xenoarchaeology\geosample.dm" #include "code\modules\research\xenoarchaeology\misc.dm" #include "code\modules\research\xenoarchaeology\readme.dm" -#include "code\modules\research\xenoarchaeology\suspension_generator.dm" #include "code\modules\research\xenoarchaeology\analysis\analysis.dm" #include "code\modules\research\xenoarchaeology\analysis\analysis_accelerator.dm" #include "code\modules\research\xenoarchaeology\analysis\analysis_fourier_transform.dm" @@ -1100,6 +1099,7 @@ #include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm" #include "code\modules\research\xenoarchaeology\tools\anomaly_suit.dm" #include "code\modules\research\xenoarchaeology\tools\bunsen_burner.dm" +#include "code\modules\research\xenoarchaeology\tools\suspension_generator.dm" #include "code\modules\research\xenoarchaeology\tools\tools.dm" #include "code\modules\research\xenoarchaeology\tools\tools_coresampler.dm" #include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm" diff --git a/code/modules/research/xenoarchaeology/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm similarity index 97% rename from code/modules/research/xenoarchaeology/suspension_generator.dm rename to code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 690431a8366..5b9ecc95866 100644 --- a/code/modules/research/xenoarchaeology/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -313,6 +313,16 @@ deactivate() ..() +/obj/machinery/suspension_gen/verb/toggle() + set src in view(1) + set name = "Rotate suspension gen (clockwise)" + set category = "IC" + + if(anchored) + usr << "\red You cannot rotate [src], it has been firmly fixed to the floor." + else + dir = turn(dir, 90) + /obj/effect/suspension_field name = "energy field" icon = 'icons/effects/effects.dmi' diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 97b4694885512dc425ff1498a5161b4c8c1a98c3..a9d6a2656fa30f8c098d3b9fc8d4bcfcb488a518 100644 GIT binary patch literal 149405 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×!$9um$%*h&3jEcHGjPb}ts{8^GM#e&L#1 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%0AxsJx^4!1=y9%acyyZked;q z8+^^N0B!vlDb99P1BY2a_;T)Mr3o)D_}X#qHp$Rwy=lK6VhLo{dOQzD9t8gLNR3AQ zgFgIogcPpQYKJt;ya6sD7C0$Gz)sqDRHZdGo0u)~XW$zl*a|UvlP@Ls63_8FIgN2d zvQ$)3R(-3g;0AS{;3+PwImArv~;7k99uFpSm%&I}k{sEyND_%h%`ZBpFlv7A+^CJ#BunSKhuT z-VWx!0XtLCM_`TVSiDjVmA5s)0|`Yp=rfc;8XZid%wXmel0+Uz#T;ZH&&JUni90*iqCSnSRE!w4f#1J#fK)DJjv-DspKV_EO};9GsYVSdyiU&F;_M zRIk`}<>1f&e<>|=f88ze{o-Uc^iw}4Xg=)R9f>65!~20%9Q3TPQ4;FIlW_R%{G|iy z=S%Co?_30*^qgiA5?R_NalA;EWb{Dqv_}Mmuq_A#c+UBLKKb4hIetxJ==b26WN9V< zR29=S9QI_m^uHJ79oXF5Y^fN(53KYAw&257e^RcMrVZTU_=BbtX3g>@tDhy8&{{jq z+OfvI>-%hw%TTQD9Przc1~)6G@`{Rtcj)Pgw-8Mjg#=Q5-9O;M9Jv~vX9RauD=Y^G2S4P#!L6p7_Bs1` z8yqB$+A?Cb7)+yGsArGj2Fx)7E;pl0<(KvB_=>gY_fHT5(@W<8BX2;l6}q z6I(}O>PHiZ`!5rhzGh8rp-z=62%e~NdPL?NB7+$qbn?+Pjvx8Lc4~_y3N>UDpX7%9 ztQH;X#$U?YhV1~PFMh|Umb-p`Vy3?}OTP&Fuz=sr5&`Mn1A$B7zg}UP#2~1zH5=$C3=dX#c@wJ%PtLFVO>B zehj0FP`ClmeEJocV||18 z{zjIPnxNbNtpy-~VT%be&lNQ;MQ}~*;RuO2z-)Z<-gl=Q{4$?L(Rux8oLUV13+FT% z{j0J>dxi8JFk*`Xh73+3sbx~)pWx)v#*J>auXS~-hwDRHCML|oNNCa_dL;kL7n;M@ zfAASAQwDZbYuv#0NHu{*nHXnzh(X7-BO#=)zaPOqVV$1WtjAip`?}wiiLg{Ht)wa#nOsdyt5AX#ogVVAR+nE^M3EW=hq!~j{zev zR(95&YpprwGvx_^Fx=VY@CWC2au=K$1e?K^qpzWno9W#A<>2+#>FxbC=c;eJZO&8Q zc0*qvSf51K4vj)zrixnvT5nslli&i56}V3oabqVb*(dPXNcfB`^3lrD>Rl`zwr0g< zJndUVZ{fXmEoJumI0orE54-|ll3{;V7BEd(IIY+ouEOKXt)3GF5f9u`ZkLt+YY{{B z-GH<5JMn-nvZT&x*LGXu8pKn3D+s^qbDaLv2Z$l>{%UTKKhqrAW5erH6tC~Ar1EMA zkA84_ZHIiq`C!sn1-9nN5T2FOr2$p{TzUQ?gu=D*1UuZlqq57$YnvTY(WAF2Pt-XS zh+&p@Z<45Q%Q3kHeW(C?#xR6lE9kn?;`&#N0_2yQ^YRkBlZf%9IZEoVmp=3-w|DDf zZM>IOXj-%d0Ap_#EY@N7GGKi;Bkorj$oU$-W~APOh{V8xeZ?aSb;dG5!5a@1V=(&J zCHV36#Tgt#jBmB)j{rM|K{tR@(j1|%5cQ$v-^Bp;sV5#NK&OOU3MZlqLg|aGl&pdq zggmYBB*2{NyYYi~r@3hjp&N!|+bOX50SOMDQu(OS9Yg#tXgqM~{wJC+)g$N)*rI{u zu{6fh^-#L&eo<~O-XY`(%EkO!?6e2p&he)}ZwPel(Kp870~j5aH~1oGYrp-Gz{mw+ z^!x!So&%XtlY`>TZ}7KnBZH`*x0--%;R0Iz5Mzu2OA@sCx$QJF8B)FIjbLF+EX)*}8;d3VS?zoSgE%PA60%H^iZPQ9H% z03V_xDJaW)y~WdkA8K8ARxfFO@lomjh5@kri?VDHQKCguEt1-(bwVz+hpO&=AhnIi zKK13WpCOQEV)4m&@kYk((mlNUx&273F+1Uadfd=biRCsds`#@RIrARSsB>+u9$Y~1i9c~BO@C0LWk4XWfwXMSLl(NTutYX}? zJi|jAX9}#a&-|X*Oa>35Xm0eeBzRKJC`_#U8glRAZxAr;fTA@d!pG z&vz`CG=_yjarY0l4p^MfdozB3$4h)wlTzv@6;H0}B@Fv!O;xG+?A? z;PV|T9w$V8wZvL6{h^d73Fd4fXRy;3u4Sn4cen)nGwz~7kIofuYguSuCRgm^j(qdD zw*QCMJV3vs#QXxXLNDd-o*f^OPzBub>+b)Ik9uqqei4*-B1Jj&dB+GM?#h;pcLT6~ zU27NI;HAUzdl&ByADRWrBnPuMyGgh3`x47U`fiU!BRMa%gl{Xi2*eC=KZ#rys(Die zYy9@7eDg1h6wB4Q^@Q^qjqV^UTNd^4Cr7WB2O&{0)kjzbA;0lg`*z{(*R1$S{$Q*r zr~E+s$UD5|;UtlMMEMZWoT;5kr;2ZB0lV3ima+qE-@xvl z$ltuD`vIbeR-6t`%&-+z-8cDm-*stSW@EXJm3eeRJZh{O&E>3rX(RI&>@%`LN|!)h zPd~vT_>LSV{uHoQc21{Ja81WkGw#<*0wab5b!y;G@?xa3VD||DzpF0P?5&7Co;hhXDrj?B-I6YMdH`IU2SA+EZ43aHys-#PBoV9PO4%z zQl|iTofAG`e|}q6ttcZCQiMQ=`tP%I9h(4JRS;(4#_y&#_^b&^Bky9T)ve&{5D(Mi$J z(dFe8ya^8vC(qg0LHqaT@858AvzVh4aNqzVRQ{EE^Fs%caR0LKa>afUDjV_765jNs+)e0f$={qZEd| zIb>qCw#)|;8KLW4Ujqy(hr6~vp@Y3iqD6O}nhtiSDu@4hB*ByPO4U+;y(*1?0X)Ea zPCid`t;)4hTc&^;*-yac;W%TlKeU>6!nj>NquK|>ck6r4jl+j977KW60XP7xNu1nQ z`$7~K9P)jY@N9L+=DHh@3yRIT31tT^RCk(jJ##IXBVyLiuawYB+Z+|p-3K3zmk zdmxk}Qy4XO68dfCSRjiTN)HCpUJfQzF6wO`;Jh6|F|NNw2oJd10=fmh0G0k8%a_vE zI6FHB4W^U$SpS%3^TLViv{UU}Kw8$?Fd~3{O&h zobafhfHbmV)X_Pq3@N^7(ZnPq?-mI|`TE0?Df-0$Vj6L6xW67%HoWMEHVHJq<|CjN zagN_Xuh?46PZHB8M>i1xGVh@g%$0El8_UZ?`qc`sr6>ZAMOBT!nVFdl%WU;u$>)qB z-bHu!P0-H}!+l?=XJmLXs(1(3H_8ULrV6-Toc59(l*-PA;&UaY(i+*49gI@{X%ke-ntJqA-Q^LyG=(H{>hlOs?=djIpD_wV2T zU0r3?O-@ZMVdN_C9VHmOEd4P2!`3XX@eA`m9pE@(QRl^SdUBHII|}-G7i|oqds0M2 zMI|4T;1^1|VW;S{K#ogK|C0&?6=znVeaeZjX&$zy+df;a%QL5ePhx|4e%gr#hXAfk z!Pu3-+3r%)fZpbpbr=7)dxpUvk{V-NS=PPY_}rg^r2}mVlt3a579Emwmo<0sMnpT<2|LB7g@GdNz#*xC7MW z<7bJ~&|;T-U;P&ULgcQ;&VY_7r#^{If4wHt+&p5;bUvrNGc0{;{(be%bg&Pl;ssAO zqW+k~y#%4de#yUUZvWQI@o*|fwx^$TI#}Dy4MvD_mmC*ci}eKrhQX<0u77%&$<5mP zed<5*uag@b7&!TdchS-H7ZR@R_dn>CI8~#s7K7rVM`{s{?WhM(+eP@X0QeciK7>MR6kX_U_xrC^Gb9NZ zF)=ak5xeqhEGk4R0JaaBtlsIVss&YM2`=LSV0x9&#aZj0nmvmm>K@9_-b$`TBE$NX zh@a0_X(sAY(;oJA5X+?C>i!_+BMj__?jsKpkU+MGcMc9@3W`;5XNaziT1=aTbdl1Z z0Vm1qmX~eYNPx9AdS-d~xYX36Yeu$8F%uIiVq#)ruJga=A4Z}Jc}_62T#4m7eSb9I z?aDX)u^*}s9WZ2JHwktl)oq-PWETo?GyslLkau+%GYb1*&aSPY+{7n3cC?KTJ5X9> zW3JdY)rDeF$VAs5RcL_}wAENkm)uU-0Nr_#k=PCFXo!f2C1quOQ$WaVKt}=jr$qAj zFCT`sv5dlHNxKJbXww%F)u4_!(D?4nHeaR#As-q$UkBpPVAzSQX=!Oubh$NLAp3R5 zW!7Q{M5stSwUPx7Q|9En;iVyrv-!L)8uA9AvlZa$MoAbdON$pSQoss#W55=44U#SQ zcte5lYX3B2e6E}Lz?Q@GET~(*SgUb2ttTvuV@~bN#)DfqtT*04s*51v29FRhdvIq3 zw}rk)kZ%}TSOq^J`-h05lrlMT{B=7~=#MLZ+b-irc3;JWy1hA=6x@f@JB{HJsxO@H zF&q7xd>OxVzrI#k8fmf+l>72k!2=q)sUlZV?dn?f-iROisB%0aBJN!J)Zn_5-z;_; z`FlT;$_Usc60WVSg;#coSw&URQ^N$@M>cDi{E|&FM|~uGpLXCqcwks{?E7*CkV6-H zBGOm}>ZQs;q#^nW8l9R*!{?Y~XRjsc`kh~g!`^d{nRmq9z6o$hJ zyqOei$vVF^cUakDB_L-*jTYq`-UD`!Ca%TCetk?m;T`WC64Hf(2xL3n!tI}`iN^PFf57-3aB>Ez0B?)a@l_F&WCQO=hV>5Tz-E=>c-2C_m_ZwKJ~~$ z7F$~iKWgc32=ey!euq5y?(P#XkaLl3D+}HU1^O~X@bxziOmK4pbH81T=m*EigD3s6 zj?T}eb)AUg#w#33ZNy=(iey!=_DHYPB1GhVe8zZNcU6;H_@Q2Y@(Nj9O^adq_l|9h zh;1+q;!7`9h{jX@GgA0@v=NEa#Z|nPB^3`iumL`-2DvhzF4_g2r_{q(_f*eH&;>(V z|5jM)a5KmX@IB{JDhTdKB`qjy66sDq0ukWKv5T$Ug(H_1!j%;%7+assF5As5JvVQWwyDcSUi z2LEwfSe{>2kbyF|K@7=n@Lv_i-YlSnO>|^GY0takZ#hG{@xs2p(p$)OMnp#YaMJbk z%ieF23P!b-8TFsVXgjrAushezzySzif$%i@zeUZ_*m#?AZ|^K0Z`6^yfRrk?9A6Sg z`coC@kN|ePBruyDpOrNcr($MC1GpM{6^4^|vf=wTRg~EbXZ22VvG1#3}(i0Jj$wggguV0z6%<%`zx8;sAN!}9(1CnPwpGr_6l$# zIC6rOFwv@4R=X=~m&YftKxl4}bTH5WDC;-zP2b9WOK;|z9@~=;8VcaQT#MlbjF9kx z5C+2dBbb6TBp;sJE%`l^6@tqd6QqQ9yL zg5MyLgUaKjjK7_~w06+^2(O%-57<^BISe;`qxs>h8VH`Y+APC^LZ$@BC>{) zOTj`ucDjA3TX!UuBvVEvv_DjMqE5`o775+P@M56#C5pnQ&()C0*)FMRS>*orV>G{z z2Pug5fEPa3Uy*%G@r?nSexkVd@u6Be#P9xzP5|@!A`#K?!`#!Gqwr|dbJO5)CZ1Yu^B-_o0DiiQCl@XZT}5(14vQ3xdyYp zr07-lCnaNf+=?!>u2n%{5#Cim*>y3d5DE6B+?;b2*wLzA5SGOFGbY(L5BJ6f9R5Su zxS0>oB@hV9u)uOGo&S?#QH%fRhg0eIM)D(~)c<&2djB`k^51y)zrC*i2Qd3jAhr6x zdJiD;lKb6Ff4dGq_~(QDYK763o-S5dR&_qxOxI>+k}BqikmdN^pe|GyO{x8hkx27^ z_ZMCMGib5=Yw-DM6E!_OaCm$6d`92XcK6}4t8^WX8Z&_!Q`}{(f8>) z#vtKO-=AhH`S+oD-faV3%_E0p34kXKhMDFj{_UA|5%5l@HsjrS^S#HXz z)uQIBQVI-eO4TpvaS}#-T-GJz?eS}CX?8Ash+K`Do(F_y5q{vLPukvVnWjrJ!_f1T~?UH zpQOmlRP{o_s_+_qT}F5CWwLLz&}{;C#gTOfA)+VIDkO&~uu$BrdmOrdA`@5To7$O1 z&4PMjx0#+E-Kkf0oEtigl;1YnEbxomzO-ns(-?XkpoSFDw}=Awb8H7H*V`B&?Mbna zr%ySDg++yMXv=-Emi@!wV92yaf*R60vhN?**oeQBR5=thZhuf})G|?;mXaoVM}5$Iwgz{O9C3t3)rB@M2H6qbM5{Eh4n|%iq(;#U-ZVi4Yg3^=wZ<`}-m9I|W z=dir!z%?&ASGA4nJ*PDFZ;@OaZu|N4JID&)1`sr!;r%Lu3^?FVpfgph+rR-xtve}} z=GMpFsF44?ALJ7dc#SYx2O(dN=|N*ft2}?Drdnkx)2qr*Pjhn4EzEHY%78WArPs=&WqnWzMI&DhECj3fc%QH3MbF7XEC0LvAiUh(EBCz&FKfEmp zhvX}Wk54#Pr=+6Y$A@IC72Pa`h@c)TF*w~--7gquy^K0fD^M%j?+9W)Pevep~f+)o$71X*nO{ZV6YEKha`OXtKS$x5!oYzT0 zGEqYDnZM)Rkcf&jxOQq)LyY9>`nrRVfwb=0z^T8#=~XGTL#<*X`SIw}l+uKpr>NJJ zr~VX2B()K2(5mSfbVUxByrYjHnc(T_RAV6IRN*$|U!{r=VN;8Vkux0z>J1Crn;D}6 ze8^-%*dU)iv69j25})$DG+lnFhlm?yyEVaoskN_vJhSAz_`?8_vuz?1g9SM}*xwN& z)L*4kP+V%oc7fcehVG8>YyABl{Vz}cpiT1M(yuwL^L%&%+VEiq`rdH@$X|D<^_>Rr z`qOtF7Zp?z)6?Z$T|d5k`WL=3LD+c+SV4}m&X z5HrB94HV$W<>X8*f%0&%rlg=i^8Nc?3l0+wvCNU-kO}1Q2&Mh#L!+z530?;SMmm+| z^4UwzOnyzT=P?bZo)m|gn+7ip?Zz6*DgWfIhhNn^4J|?h#vf(gnMUllRW;uHeT{4_ z99kPX2zxA0%xsjw9L(&I+Q00lGfO-o?FaqR^E{4k$f^{D{(OF=VUDb(UC`nNCPXzBOry$^zkjFAoX7czzhPxjS7C5G1Ci_K!jJ$CN}* zy}K?l>^mg;2M1>7_CA32?9{ju!tsCYS)gYsFP0(&OBBuzrpJz^xvsp){QlkU<;3qgF7k~&dVr7yQQX)aR$=fJuTn_); z7~v-hCZJsjvqFf!Z16ltB6o3ZwY zOV5^G4iT;1N%O!97@`1o5PCeTc>ppED8Olqm(infhhl1n>@)Q1GD;Gi0alN1hS}Wj608>rv@qABq|l9KC+% z2xS59pE?Qze&6&T>j_4dlat%K+LnwW=1+LKJ%p{}@KO!^7hPQm8yhAkCpxhnn+6kJ zto^N?U=1xT=f}U4m=q!rvy6PzKng+kv)q=Jw8zKC0FZlqBiH#{jhUIn%#yL`{BuS7 z^;w@t*Xn#qkCKZ6!7;V+)_|yJl@1F*WL_RUUVxr`n;ynzm2bO)0vq}bDP`z4~`r1#B@=XlBVAaLu`n3UsL$BO-RK3qT zF;|l_?s%;aD`wV73X7^wLmAwEO}LvMR!hP`SO0ebThcBHjxrPD&$_s-1na$!8Sq;k=@m(PpQ^e1>Wt5V>Lz-_DK_ zX+`-?#$_X?{TfEhN8TCTW8+~@?)(&G<@^8T1qhSmOJCBQ7CYTC)1CUfE9HaM#zbtT z@F~uWaXnOTg+{>Jjb&^GA|< z1qmK(3}?gKjAt;jiKz*p32)t@Bbj5&=8NuRHmijZ$6E{;nJB^$RwN3Ro$1^Y-;@IIr+w=~00bS-lbcLdhB2P*=R5RNPhlUQ@r|8wpn;(4e22vNEqE7j9#o3>C; zpU1$HI(>D~k&B_{sAk(nqf6K0R>h(I;rJt}$GS6__Ed{f!P)xM!zHNpDq9e|xpYj! zL;LF;wT$tXt;DIWybof!z?ZVsq?~ovP*1i627e)YniPGPd^u%#<9hzA>3rGSS4e)j z&&z&5*HlA_Q67ulT@Yb*&CksajlPHczEtjxw0R194LI(}KJhu%)|^D;Fo8oY?5<>JE>L^cZt|F*H=x(<7lv45tpo zx;<}N1<2VD_g5VnQtyy)@?l`&VtfooN~lw-ZfJCrBAQ714z!GHM&TxTWV_bgF@3{1 zEfdu%)^O|@Q|6bUu}c2K4_nz3cYkPI`lP3!U$Z?{PHsr#Oh0PZq5t}o7-P^17h$fc zex@iwjqE#fUv9r-RN!+m+DQfSu)OfE^mN^`2i`vCRs%mmSi9dd*hLvQ#bB6jgX@zt_5~Qaq>Php&A^0!wK zl@aA7Jpi>2MtXV*&d#-~A`3dLuBFww6&H)Jx&Q<6Dz?Y_bfDQ%HpkQ}N$hvec3Gh5 zWv|i7w)2}FM;DmjiUz*C%-2u2a#{{>(hflcPy^jhj}9ME!;M`T0qOoe2Z@)LD#tuMzk6_xp#^IEW2Sjb%toiF`-B z=7?uFc$*}+F#d3IFjS^_TXNM6Jz><;&7nZbl7(tOqLc57)&AlbnCqk>X(ZjMBD^UyahtO zMAEc(IncJpo0rWt)?T;G6luxy>Ez+qJD&L~7}y~xCKl`drtJl=GQu9A57s*e z%*@QdlV6^HpxS?fcKG#2D~@OG9h{v?D*eHRZg0eXmT7?SHpY7v)ZVtOluPO74Vwc| za1uc0c~!8_do#lx`b$n(=}-l0o#4)mm75J#Y{e5^{(HHfo<{BKW^dLfqs5B5`IVI) zUvOizG@P6B67uopeXkyz?HcK7-!sdF|HQEr>E7_$r|BPR4z&`{)w90Uoum>FK+Eqz zLDSG)WY1lD~uo{KJHv9uP1?Vzzi3oRod$B+kGwCOn@%E zJCEy7z zVXyj^Q1~Rq+It@`J*MEB7=U(Fe3>?0I0pgP56zmeh zsf{}O0;jV3KHi!AA(r>r*IxJ05^ZPG4%Ba2*WAYXV7OZTm|jVeEE4eg0^&9wO>)$i z$2lPe(%3?EkCw3XJvV$W>#7Yv_3A2NM-I;?Ig8R~&t0$P;yII8 zlnyAjpe|_E%8IUytu37A!?I;xa!IE$tl;qlOCPZVMB%vr>04*aJiJH7Zs`Sjy+Geb z+zc^we7#b*k-yOqY3bAIiorF&ySU+IjoH!JA2>{AE}Elk2TwH!)i5|3g(zR*IHQXV z4#c`0OyyJ!f6F~t@y{jhD1Wu(=Ov`l8b;1DYiyUz;c;nCO>Cw>-~ z)$!*f<45u?Jm=|34#@M|XQ4rq;KpG;9rOfl)4Tw|XC0p2*ThISi2FHkbT}GcissG= zKM$BV;*WjZxp<0fzH8?ew%IhgTw=zkzwV(Q7*FR9=FG3f3!r$Qcu$|hfz(#9vHO@5 z)nhWX@mdcff{<4_(ntit9$=?@_LfiMYjB>YKX|6B%H{Yc_mk(Y1zV1vf6B3+&jb+Q zOYYH|I$c0N=%w%bZ(g=Wz(#d%CYU{b+eEN+S|`T=n{?#ZB$y1A5XzPrS;!(4P&;qT z@!I9&1=hjks;5J|p%oWFN2M;tcW6JmGIzb1L4*54c4eOh0`kZ=a>S^}x}SahDB!cU zjtMZ0C69ThzZeY-Lj9EOFRT=uYW8AADTS$nGcKQ5u{K3xgUv$;IfY1yXGbhEI=4hm zBRn1b;qLF>@?|OS?Cw5}MWir5-MP2+HhwC!T%F~33VodFs!_w>YUE@&^aS}#Oiawp z&D~T1yU@GOT^ulu1Xk}1lo!2@89)!dv0 zi1QQp%o#?I(CWqvU}R*3;nUGqe~#Pr%|gjMicZ;{uM>~uLv)>^tRj-UNP7%xNuQJGQVoeps;YA zB+RU0{a^~&Ty{Jqm9Z2YPK7e*8GYWr`x)zk=-9V*Iv`yz1aP0f z!tH_9Ufp8eJ{KV9w4Q0II@tEKK3(!P(#1Qi@k!+egG8BjNXJ}BrQ!vtBHt}rq?3^F zQ9IGZ3bkM)a6c}Wb3YxXW3}v+Q`~OQlUPwlz#un9#0Q5n#}Jwfxd?n?`8zKMy}ICz zHV@~=t8V}n{K!xQ&&Lr0r*R_7!GURE( zbSkoS0%|fjZ<*+QqG-6j)UCa#dHeEWPtVDU9uP|Il@!!=amROAmlw++lK~4OOr^$Y zOk@-iW%7Lt@nILtu4?j|B$d3hO3!U&z{Y?k|wn9FH+#ci|q+miu5*gDY{cJD3N8GZ4Glnr4M_vUAuC zeccg%DX2VnLQ7o$Z+!Ve zSLC92hy#9P$$m2t0JK5e%TTn@bN`yW+k1Md?w@)QmQvw|14^x+HlstPj2)jnPfky* znV4O=M8A-VU(@1W$B*!Y9AsM1t8X4JUy@b6*t!Ft&r*QY?5q|e zn|G=6*c`SDLIth+qoOHqtY-8KXh&IY_(fXVm*oGh4Dncm#`>VcqIC6u>f_ni@R%4% zO3t*_D(%~a_B1}-Gt$bE?Y=xU$lde1&W+{nT7qP5Hjm~53PzY`kBURr{C#YWLRACY zGG!{8hU_8G+1k27h7UhXo;nLL0=rK(A)qwAp@Z4Kx zM$MQ}0?~@|UbK21obSSFR>Eoo0CG!T;hJaWY75b96Mw&UT;Nn+O;P75cN?8=?xvy$ zzyTY8v8GgeZ(!#xmoECKNMmMpHat3}aK8+Hc(TZPLX~eO02bkncZSE0gr0wfi-_>H zkDQ5BM3TX>1^WH%p382nIe`!{#wGmictLgrXdAf2^Lf{2mmcbi>1yFql!FP>Cj}|; zP5RmXSi7S5gJzA?8Y+?)ae)0`Z6g{+7Yyk7O^Y0v$wBB;WNB%6uc7t`glx4`#5XKc zojxI(hj941IYqUe>mzg4ewAOho3;)g{R^zP;6i~MXhnH@urBK=|2|QLRM~o3*M=mc zWToNfZ4s%gjr{wO&!{Y$e@AEbZJ)GARqAI#`r?&(&Ocqx#n#8JQ~VMp41g_?Ys70T zvB>!D5-d`ys;=Jm1IJl_tjq0G%f`lL>G{ZdCVP+ioI zak51S#;?k~I5(>E9$BrA4{(yhRh1MpvlE^>vBwLr{iw`A*5`xeFK@Aey5=-n1;-$2 z=jH)xnc|({NbLkqM>lEq-#=C-$N~Zo*dz5|8 z`V&}Ct-})3cb%G0XQdVMo&Q>Za*944IW@!nn)yzOh0_d5RAgS9fnPR5NihS zYszD@IDnMjITgPRAquH;?UAwOGirYU9rx`Y+q9Pf%QdfM&CI8nTm2NlWX+!r-)wlk zbb4KD9UVC4AI;S4HjP!d$bNokSbNmK~ zinF?7>;60*)j=I+HSxK2R{2^zNQ``M7_Vz&Ok{EfPHJ&YFiDoLrs*@iAc!>SCSQG4 z@7G7)gwZ)V+U0`O+M!?D|@xX==-{t2Yfg>(9vZ)H$4Uu};%@>^8}U9(IMRC>7y}J6+R{vpjzC0FYQt z97Ku=k4#mygd7?{klhw+)DjX$#J_X7T=a63AR5&PtDc#nt0SXcSlB1e?e6RR?5{`Uhtz~^D`S*Wx1 zcS47(D1tG9T*S!n z6~4vR!{?m`MF^vzUL$3?TNXGR-a-g*-@D+Jx3w8Uys($4z{sZ7oJsnT1~#iHQ>r2u<>$e5?J@U&yT28XiAGAPXd!=KP81?3so7J`?j7 zw~KfV_#hU2;+xpqgVE(f#sONR$oVp@_XM=n%XY8>{DaeU@QbFVbg~zr^gzz->&2_S z$cw~=;VngFrk`OG*IFBD(AQ8h!i_rj=kj~_MQlZ)lbViG8;{O5691N7%%zS=$Dh9S z_+T3|+wJ64f5w^jyJ4}h^p;6w^Db8; z;UrPwn2sXS~a7$!pjWU82tQ>sI!K&0DoZk=d zJ}#fzF}`NLQ25I6t!A=3z4j_2uJ@l&j#99<=-RC}q~zBela^PAS(m*1Bla;(5rf>^ z0^F?X+fc=Vn0D}6hvTEmQP2DQi z(RT&(U#g1`eIenFsIU1a!XlC0SSxfi*goIjU7$2E8m_-)O|Y>n8X(Ol=S^p9N6X` zXLcMNkDt`Tc!_(Cja4+uhMWj;L?v4u!9c2R!Q7U-FR5nMy=(v2x)VHig3PT z8MWG~WA8MDPG)J$e{=>rNqX&9U@hx#CqZ#VmTiSu8X6if$c0j2D-CTK8o zZ(c4DJ4{MAfEw|k4ftEa+$pD*~+6Da@((d6F851(j&Ro;e(@S=|qqb+@ z(vCq2HN)k_f@BLBVAIm>Su>k zVc}?BUm@5W`uhiGX66SZl!GnxH%+{h1Io4>OnqY)!9ALf#WZ5(N-CSn(tHBHUw$Bj z#c-+VEe^L3WPNVrPb5IwEG}(9rDf{Sp8b`XdBz5|wKbrO+exTe$C98)4ymlDFz*k0 zcedG;14}kkyF1{}gJ(3Wm6(k17qmjzWh`0+^1kzCy!;M{p`~NX5U!iml@XSfk`xp$ z$iqC=*(u;I=^3R2m~GWYXQyE-Y-4*{zDByFXZdQF=GG40w`yMi{{k4+TY))_fKP^A zfm{rnU%`b}sPCgNO`@vl?cpywZ(a<2wr1ZOP}{*86WrU#icR{R4~QU?$=baT6J zui2V3oHBz&BQ92eT3Yy$p_t*1Ask$9X!OXxd$L{O9|tXMJ2s>H!|3%DVF96``9rjqp$r8TNKPOM_AaVB;?b^0>t{sqOXu!keCdKuO*X=>%Skk$y zot>x&$x>DqETR`6GLO2psKap?L(UH9&;yKwJLv;Y*LUXkg+Ec+=e~WyK=%%Y=~Y6EADHW&CQQLpDm88IbHNn9C6sBQt42R0C5VuW>ntI-BS=g&d%vUztk^E ziut9&#`& z*Fo_OgkNv38vWKq|MJ5c*EzwTya`;DjIip zsf}qoJ#UE~P>z9^&;6^v9s^`K`Gx7Yx1}l7qv~# z3*7a5n~{zVLy=-yZ!)W1_3HWF;o-~cMo$#xUo{jR7JN>x8?%2RvbKhSYTA8qF-;fqvq@N)qAaoo+VWfr`IfU+&Z!G|EsHoeY#tMQ)`}Grl z;cvZfA|fLLw=#15O#-rPs7^vl>+9>s(&hE_Gykep2b_wJzygyuFBuaSxzyYWf~>3) ze!k-3fpLvAac{G@|A5jJAa-6V))^BA%E#)(n{6RSu_EO_`j02h7nDl$dZf+o{$T^kXt zvR`+1u0OC@zSc?s3W|N~w~wc^L?1U014hi8De@aTM2%|A!m%ZcxzeyDKFsPF7@Ujn z^6<>>3L-MSaeXzA(gltz-Jjw)(0{o94pcdM#@Z4IC``$w-Fb_4@AGDaA8q9PS73g0 z?`xMY6l>{+gh}n`*xcp2)Bp=y#Thu_q`1t0WxFC6WUH;^>Q>)!J6&kuzH4CK=1u&W=R_ z1th$G2y32!6-f0;2A`eTadC66^Kh~rJ$qm?zRr6J!U1{w4WJj(moEUOhX7P@C4v4q z?dzR<^wK)5Z&m8mD~J3y)Rw*ytiAe11HSmU9c3=>K@pg> zou>0Pee@N^gw2Z*^GRqVP-2nM^_AAeI0u4);A085igWylHN4x2{Fe)JZT68?_q10} zbaS2?7O>;k^-k1blrZKl`sl5YEL2V4a{BE&JYe%#!S$883^AdtG$eJWA0)pFe|7}QEL=AIUYw;OY)bA4-&@KwHlsrUk5IlN* zq1SlrkOcn5fWNW~t^~&3!TFkT#r>b!&O99IxBdHL$r44`D_hBuHA=E)DP*Z+8_STg zhq7dC21%AIi7a6#`@Zi6eY49t#u7sk#xjyIjEvtkeee5z?)$la$MfIAarnz|&3v}= ze7)c2d0wA{QF2okqVDOa2A=EXjJPqtyFj-JYIWA#8+ z2O-p)^xZr>gMJ~TUiD<(jov3;kSdz{N>VA27eSbO`|e#}%W^TD02Y6oa2?df)4Bz3 z3+tyq8rt5iZxt04J%zj1(*OzdhGTvbn1ja*M*;;=sIS;eBawEkQ#OF`sY+G*FR zg{c&tIfwdZV7x=S+6ebiefbDU@5!u@lt8a-ipQpI>xf*jT<(Bq~}#H zb3a@$p+Y~$FGm0V9YhIo?N_Jm2sm^`Y$XtJ3Z9Uay=>4vzW5}DmAZN=X3Fj4B{pVW z#kXLu8)LwYl;?L37b7k$O?*YwH&B$<(2xT9^+h?OwQ1!}PMyW4h_r*QGD;rFKjt|D z8UgN`nKeIdG*7CR?3OC#l1sd*xSv_$_4FxdcyPCzGoGGXP2}~;My}x_%Z@6G;q?cQ z($kLE*+mLeHC-xRP~wKiIF6sA3b*2WkGVvx(n*1#cVhpp~vs)z~Y#yIG>a`c`+Zy0u>N0^3_-*ouYOZwKI z`E$jBytDHH`wY1WG9~JR677z^^fSfP`UeM3q%eM82?M>Cmjid#U;PF7)YuhSGV*w; z>LP7mB2KSARpF_gaX{87n)aPU867 zkTHzugHhl2mZSO<)RCPaA+SWKJ|e_rBUDi-M%Obu2Iq1~*U4mWekpvQ(eVkF8Bs`D zngviP=ss*0HV46wO~mja$kb_Rw$KL^vTOx%wq`sMtlM9=x3}Z@$UJfm4Xz<`nrq)_ zBwc+wCcT!6G$Hj-1{+HuB~y=G;F^!cqcp%OQ90gKtz)JpCLH$|{&g1JuS0GfyMOJ{ zUTWbvQ=Dsd?$z+LU2;Oo?&YKPQ$jyP$EU1gzj-EcRJ=J;?78C_a`~8zMS$8h<+5Om zTVqAixtmMkbfQxgb~Iph+@p7$y}~J0?RreIY$<~dU9Zn#oHb&D1kj&`gC6aD`}Uyj z@eJqoC+UQ6#I@}X`Sig}R>(YGqQnMxQgUl*?iXwTsAHNae>O9p_C?Cod;6SozpLJi zo4hd;imO9sB+3qEgXpT;Kp3)Y`}*O6IR=}UIj;7Qe*Tq7JJntJ{578!1+~pxzq)ht zM@LgSOi-2s;c!h1S+jK`EA!5zql@;R$-*VY=;R%0|f#` zmQC5*5`zk}-N8Q>@r>}z#ZS+B%1xrgO`0+b=`>b zN88JgJ`HugMNjZPOMj3kX{$bkl)>p2hOt?tU6yb#eHpE@%3npJkU!OXOPHpX-n#rk zxZ-mZj)m9^t4B77yle%*>g0WsW~I=jH>?o({Na`}1!_jC9+&DA>9{uw_i#^oAjX>w zvnou+^3Q_N?m=kwrsj_D5|dun{!oFQGg)`wQv819+6yn98LOHfwD*~mMJfn_(2~B1 z!}ssXv3)H?4e&RSrOxMq{9=n!($@PZ3@`NmITFr%c0Isa>XP&9V$o`Ut{^2=rtu~* z8{I3Iq*+KwL_WH1vub_K{p$*m8(%mHeYZ%c4UC7n`E;N2-rU+wy4-n}0kQ1atn&g< zVzZ!FEBT_`r8Z!^XFSW%!J#Q{-qDx+UWXJNT@$&Dp`PqA?tcR(#vA(Qj9`~B)J^*f zOPdQwx@Li{^{8LX$4M>)g~A+WB9((vjfI?jhIUUc`6}2Wp!wg5uT{sdC1@_^I-q&I z=6+iEyV=`+=w@!WWun@jFGzm_jGXn!1!#n>{AzS`^j-F2&9i`GB+M(+#Y9C}p&F1m zNkAsb{)50MW!KJbXy6v4H8C+^5Db0Z)2xBPY6}sFW>mujyv5-`3r+mGGQ)=mpMl@U zFtioWW@Jt$flOmJ%~@5Syhxbq)p=c>>k$0f`%bs>QW($`wXC8N5_Co*XvB?%9M?oF(GU+?uSIW}&> zpnllcl3#@~b|ae{v~3yy!Q9r|@T^3AMepZp8v`NW^OC}Q9oX${JszSqYzf3P1x zPGZ^NREGp{d>{Q}DN$x19u=jCAs-k^s*7A{8inO7huL#^93Fg_XrfsW+3T|+A4if? zPWdPUBczD19e0>!Ci=UY!id2mu(yTv5?R~>eR$ZL12d~fzE9asdG%k*=CU)OcJPax0AJ7sibxM7e1O5?zm{|tjTZtwe zxKTM}Xl!`oXnzD6I5bthjHA@PBHR9Qk+7`lTLP^qJIZr)<$uvCIs#k(+x<1xncG?sQWfKIl%3MFq>3sirNfU$d?59 zhB~uE;#=o?`79b)IZ`MuuqyX8_xH)hzt79XC;ONSLAgGp%RV}8S?AW_Uf(Q|JJcoioIq5SG7o^leH48Tt(~l6hO@{W^K!I8Dp^)>&@w#{R7?#RqWRj*#m>&) ze7mU%ZAn!m7c!xuzNC^1+%=_Kqm1XJ{T)SeZOYg{V+Xj~Y!mu0pz{UerpZC*<4_mt z7{f!EaIecnnZx`+O5mNUStKS{`9U$+`nsq!d?Oe_wL=srP=!cl4!P960Xm7bv-MHh z*X*04NgK5s$g_#PwBGC|M|a6Vy>BjRFog6z1b_6)1Aaw;mXkOw z-w`-QceP_&BS4AnD;p^cZyE(4upDky$_5VzoM|GTTA|s>6CbK~7(4^2Z+F?l3yt%u z0thZB9u3ujIi5~41N8v!M!uGs-1*ANN(RBN#J5>SK(v9u#kkjORn^sDbEge67=g=x zMx#~hKN)-U0(GtEFp#p~HActK#yC9_eOI?L7xmZ7Zg|;I`!E*fbQ>qu&uo3Pg=}O| zADk$)?EUh^*W-BWYI%Rk)9#H;>3sKZVo@5vI*A(n$-A_?ZMW-wnv_=Yv6gOrDEa*U zG?%fsEZbg_lwTA}SxhVVG(#1_xD;?*$a4l);pz8^?GX!eZ_jk*qrmOZL=HBC@2j07 z9k?FTQF)Y_y~b~G7?#E$|GVn;tkRg~mI1lU1(AKctnN`)NkPF%)%Cn%unUlJ8(u|6 z`TZkGiW@96!HhmNN?rZFLKn%}x!6H%W_<0A{z#xP&PeU>O2LjFo9^MKyHqRUq(J__ zk`?@G)7C?6h>(jTat&KedgdzZ3H-MnU!*Wn$o#A#6PowmCDXMx!!ws{OP$b`oDi4h z<_rYcZ6)}yxxX?GRr1vzzUeCPstnGLqe+pmqn;<-coY#4kod!v2q9d1q;l>m1gMwt z6NzCrV!h}#c>1tUI`k#(dX$U&G@*&dKMNnV)k|6ddiC45-Jjbb?tX%r!~dpO}QAvE;BKVlF}0go*3iuinicQ&(l zP_;bJn7|?K?!yFM&X5w!z4Z>%kMm0{}{p>OuxcmVoyPDN6^^m@$(!c`L) zK*oeNN0Tvc>wsTVQ#1a!SSkNunx?jt+r@~x`%zSS@@|ue9MOz`sa(%0 zMq#ds(a-@}hw9WPi(Nix@fY}Y2r^e-JZ(UiKAx!y|Gfq51j>mE9>Wqa=cu>a_HgLp zSw8F2B_}c>XkRKayLH9zY^EZBfx?$)9(tp-!UT}kJhWX;d~PuwJvKtK5bUOqc9<~A z-zmpz4oI4eM4__V$qv+k@Xg0-!0(A6Q}H5DJ~HYD71CmPB(GGe7P*j53rHnjg{{me z-T_Z>!gU-`Gc~H*VGQ=JQTT!L$C8o(d+WD%7$eAJH<-UVPV83`OFdN+5JXuV|487YWct%8$d>!`u_~4ltEIG89MojxTvXvC zj@z~YAY!*5jeg^zFDTXSX9Pbw4!as|`x3dI(@eT8*{Vh~Vd%jNQ$CJ~Ao`A+hf=f5 znX6YcZ*AS!lwtjIifRS!HOL~G1mXuTT0nHpTG^lh%lbVeEQ9fcvWwiZO0v!s(KkZs zmdtaX%{DywfVFSQf8c5ziwWdCy~S=hdzn5%sU_%9j3+xaYZ|%j5`=tbZ55oUX3)cY zPz>2~qKewYl}}icF$7{c{M|`)vL`N2%ijJ17$}1%rg?w<{25H#&br^a%MN@lBs)9% ztFkl%`2m8g+|uFz1Y%Uq9V@FC)=IaPY&wi5Bmf4ELFyP%}8N|hfcF^40vhod-QVSe1qnk zlP{~|rwuAFYV{GUBZJPY{>mjm7o(X(Eydv0){8J9K7oBpr|YH| z7zTD5>U|j2oM#$v4<5&fFr*K8uy6et(v15)x~kUmoDnv?KMKS6&$AY)A~L&%XBbzC z_X6Y5iKdwWeP7;RzecBQCe2O~!Cl6=%wBBUA^N;8Cwi0A$eBmv7XX3P&1w~+Ki4{I z-%aqqmtz3y^6ceDT_2*Ss@YO5}dco=U^;U1Y@f|j5@)i zvqD;X5$3+ZkT=%c@;8Ro^)s3(c1typ6=y#$D?_e^yc7z5YFGdcZF^EDUu~EW28feG zlI<=fw6tQ+>X3+Zt-RFRQ`EzX;nP^HXdSlIonvy3t;C_-wwm1!?k7yL-3Kmb6IsTS zz^~({fUwQGV>ykX=^Y&W>`>iUe>ahh@1Z0ZQE7P$i)8fv0#X4e>pb-+7p8a*3$2sJ z1=WyNlvhLEgW_`DS9589fERobekX4iDyLrBfLT9*@_lUOY5a=r|J|MhcWcymYdu)al zeTK$VO@F~EMh}BEKJsYW?>cOpasyA!OK==}-jIJQ6KqP3eLs2ije4E5zHp*&;Qs?8 zTN<}IEhMZaf3^`{GS8*U7ck~=jsjw_hCdc}#F6+dNi14T=jarDaQ9JJr54pMK^cNw z+YUEgSYp$vxWc@^1m}Yt=R12gnzb|7Xn%ja&=~CGu{Eh6sHCK{BDpXg4(bNGJ$LYJ z&79^8^OYB8{!ug-GB_)+C+y@Qee>d~5y`UDlvCPf{a2ci>i)y_13e&}UIStugGuR1 zCIq|>+U}*oE8STgr2@2_1j+@(yy0!sz*n4bMvmym+}vzYUVr7c!pMm;2sO)z&Y+Fx zLJqk2GH;VVXUZ>SzUQ8g)rBjd$nXlE#eGPFzw6S#c%NNDQQXmX-?59x7kzWOA&npANm%&mdrZ)RvDj z^z`nh(z^;3uELYaj z^7R7UdU5l3NHvG+-(=5#ZgEoE!|I2y~NBuH<7eD&pwq5Nst|lodsZr@i=pZdlS8CxaTMfnL z7W^-u1n&joUt6n9qnO@~PJP^-G9d1O+vSiZo9~=JusYnvHpem;GWx;ezg%R=70^hh zG<8Ar z5AXId!RMnj6ng37t#`{hmNv%I02xO|@70%XzJKFUX8mFoZ2d*LJHsl-#w;aOhF#hiV&Z!Uwl6}BkgQY zMtrdRgPHsTo=X43%$u$^ZBnjAf4*gvnDtxI9+~txnyXpFm=aBfO5C%UMpPwC0bRmI zVFu3#M84Qd2@7TRCLrVkI^QW8<RMh5Iu7zaH)FKu zw)mcv)`hd0mzu_%NhSRn7|^fxx_89ld;V4OlHa2Zm&LBv&*Oe(MwR|9(IULcE#jtgp;YbP83{KP{up~wMiO%1miI;SWt zhulmtCJq%~P+;7ikV19FO;F%~wdLI;*kR<8OD&E>ym5&3HiI`t<&|Gdj(c=SfBGNr z7+&$vYS>L4Y}&Xk=w~EP)%phs!GJn_rNz8g+0D1M-G=*u@;rJ8Eh}BaYhd8EYuH3{iDa8r z6yS)a)Jb$)?rx2W?#D3<#nn6?)`!*TucWXBbo6NnPAz`RiE713 Pz>luBp;noOZRr01x!ZaQ literal 32769 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 MlaLp$6g3F^Uu!OXX#fBK diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 10032cd8cab09e7947cb0b5a399698fbd71bfa52..501c4881c4e1838ee3436b0fc7716b27ab6152f6 100644 GIT binary patch delta 12373 zcmX|o1yoes_x8{rC?H4*LwARO!VnTlBS<&W-5_xZ>6DTN=|&oq5+w!cZien== z1(*=(XfkP`_PpE|$K%233m6xtaRNKzhAFM?A$BJ^w_Z-fzj#EPza)ogO#-!H%JLfE zRddo8yl6aJCVd`S;DuxixKYCK3NZrw*Q87#u2X&zHe&QIvI)ucB4$GkN-%bLD<$Ta z{mYs`9dnc?9ofHAv)PSkI69Ju$> zk5P2Ww?mVbduj@UYZVP6w*oO%e~r4E8Rq|$ke8b)!I%L(_+9_+cIEIC5)xT%0+iRx zX2yn0o$@$1`N?1>wLWZN2{YplOwXPWB9q7lq2xn?-w`?s5BI;NXMFT4fld>L@%)8h zQHs#kGXY-4mIbqQAWvhqKmAlYEhS#xlGk};$Hq+Y``SSNTlZ$LS1{OX{=jSx|rNXQt>kKG2WlaHVVp{7M_heKzPFdu5r0P1%#~Acqiz6K8pfFU4=f zM?L%4iV#Q=`B#FBtVNaWl}~MEuEK)5#+AF0$=rOs=^t za)9VsRR4sh&>&XE*7&NZC>zGcQWO*MXd5Lr;HsyHN|^7oS5Mr>Lqj=h@!6OR;+=yo znI^em5+_~R6Ru(6caz;%C`m3Ie$WgqLup1F!C@?v7vL=hcq_(;(>REQGU43ecaY9y z{E{&e5d4cp>*m}MItkwMF-A6)MRJRbcWgBgDJs=Fe5?-|9c6!>TDjlUu~osEzW<|R z>u;%RFq-%?q#F%!HG=lQXJhY+aRWb2JR7U2$j)>{J1b)?GS?Fqw4RTAHa4#*J|F#T z?6#5c`4{vF^lz&Y9ovus-8Xt!$I)J|0=~1rWQSDGRRS_AW1gOV@JYxv-_Au9QGn7L3T?NZs08f4 zgwk(jJ~RZO^bp?@738HCU_<|*!3Q>AU}Iz_sljr|jh)G%jfk+(2>TH*SA~XVHy!Xo z4PxPk{phqE4Q*yA06F7OKY*x->{LQ~MPxRcWQ62EYpE0?35QSSSDgR8g(lAsG!YFEc0SyE!N4&oB4++}wRg06!}FMMDyy!VYWl6Om*`;p>g*zLw|5Zjeiwg?G+J_JS@yFNHwzX~ zf5obzr@*imwql-(tNj!1=4PCLNg{Vt_p)_4;Jl~aM$e@8_eOWHkK(Tw>&r_ehE{F5 z@WHIywGC^w25Zlo_{*Cu{I+vIH^6?%Z*Jx3?tBfjV9R}3R*9H_P@&5(8YwINhOnn@ z>C_((`8J@31KGU2LM4JV5$#V*i_AWj$W{468(1dqSu9=iI3^g&_aoG@>UTaN6d zg%HQB-M7!NQ2nsfy@6)5HEiF|6N(MBuu8xNH(fOF8o0uKe%%vBAoHCc3N)WUsoRYe zFbb{%GfMdV7m#BkpdzRpnxU0vM@rH+7Ge4;xJ!;_TIH!WH`P3DkqIAmPN1x<+M9ar zFDHht5R6yg@)vDhpg?5J2RfT7>rG(Dd+0OqhF zIs>|Wn~cX1O<0hZwN;zgPd#(b{A%4eCjj~D{5Lf`f{`DnC@{M^Up#K79Vr0vjSmre#DDPWQDTcrmv(wsn>Tw4{lA~sc#g(tv~MgdS{`u>JD-IP#)#BB zdwaD;`U`#{DtsEAwOK{pB0}CRy0D>CiSQMTr=5r1kQNACAqj*26QYy4T|{sG{$ckhh-gx4A0JOm#+y6H3%}?{Bh?3V+=` z^YXdqjp4SN*&DfL@hKf?GI-Z_tmhv+Dt1YM>5|^XNUQb2^v0#@OOc3Z8>A}+_S()7 z%jr=#ZC9o6-LG4_8{m9=@vHZ~h~T25Vj`mNy#12bVqgUU&$#ENZ$Fic*=p64U`q2D z3ba^ZrL@B4@$_yf{Ny2e8qV1uGz@>ad<5U)FLv#+DpSNV%gqpFOzSqdyqx5{`%^g} zv(&GWAX$!&)}^Jdx}BOK~B zgjoQD0L1UDXoYn5a$r%i2-LGcm!t>pk@!s@ZOd%Wjz*=S0g$wHZ5x zIH7xO;O;aMxSQoP%Fqq2;k?fsGpkCZ;#%q!$l~pGsu>R+RFZs|t`jbM*jd;eZ#CGU z$-S`G@desKTSu%=`l+yx07b)_OUG95{4?)Loo@_)ZSR_{U_B>WkT{R-JgkK!)2s8HI@2wX9uqG;rw=ZwgDaJV89=0>*-yI>zb3O_t=%_#XD zGroV(nCHgc4MH{^1A52ZGPTp07v^bUZT%~fG||BmohyGR@Ax=^KZ9$=0#V5S0iOZZFth;F`Yw(rk5IL9*Qo z-!}_tRzn)B!^Rb7F!(tuE$%_Wp=+U++f4Ld1z=)Lg#X-MsBr06p&Vs0q}l zE0WZNqjjR&ovluw^<3vGDk`%762qtdRNw+d76)Cv(Kh;YDbd+r`Fz&CTLlFb)ri%b!N-kT^W_fZ>aTY|ju7_p-8SlseOhh_?pxu6 zBc!E_Nncuaxb8PYq;DShe<^G~pGU~n-Tt}1fHI}{a0Xxh&E4F;9=`pVrE)jKlkT$y zHF}X&h3HjiL>#r{uKKqHUXOKi0SYX?>aYvN>g!*u zzm78zyPgF;!032ziTJ(WccNF3s7mgA@45#bTfuhv6T?KjtP2r?YvcJyzh{;+dbl`)TkZx@{FD-lV;$;U4qX z*wzxZQMb0Y*zHNBO^o|Z4TS*}I1iJo^6}_Uxs%tE8pcfCIae^2<%wm~_T`5BYJ>EzV?4-}7!6K9VdgaBf9 z<$bg34Y_4XVRcL0ALy`t{h_}~<-z{Ra!1gCc)xn`qetAUu5w3BxMAa%hRvjCs`j1c zS%7~;CTmIOmj>cNEkBUgKmeQ_Wr=2$3sz~esl>D`9MuWm1HI3ImKAIej)pchbu;3u za{k7w%36JPI;9jY)^&k)24*ph`NyrnHRiJr$VPPiQen(3N%{Sq*>8dbFFEFeKLRWd}xXy}{;oxW&P) zpy>9Q{~Z9+ELaG~mdQZ$Dp5)eZVftgjz5Ms>fm8Mq21h*8cb2uJg@0KJo5r1^oP}S z9WRQA3>Fr4wmTaw8*(?sR5Zh7V+Y^|FI{omt_^;=ZYQ56FC5i4-oYt=7C5-9pHc16 z@7-oJcd~z!JQt{~^Y0$COU!RyrIO0@mz+yT0jfPnh&ZZpLC<>U)0eAMA$2gxXqfSv zhuX^X^Y8DX<7Q}&gAUKW-bd`i4`>dK-8W%(99>bo%PWlRJr}M<&6eKMdjyP&;e+>U z4c`)yXa$CFDmBM62hhlKl(t`FQTTgWF<0omj5%()SlazzpY0&qWObBV7s3=& z2^`Q=JKmf`$PGE(_)P6e_t4ce>d+!VZn9Y@Hy#AHRCKo1Z*|BzLo;r6}?XK2C- zi=h1dC2JfWpZmon3IGtR-CI!6 zXVHNBhL9fI0GH3+Tl*@a!fIn7VVe?Rt?Hv!&8IeP8C{3h6()63Qln%-cwZdb3=r?@z?>TV#?q}|^UxwGk>^t$Oo zOvCO!8UTHWl%a1U;uj)y>8(|cbuQRVUYn(9>ZLEx@SHA&Ob2ZP+aT?z0&b$e3P_*k zPp1jM6dwNSp6XYMzL#2@YE0EG9Q@>HjGyV@OD_ASis&n90FXwhzmu14OrFYx1HmN4 za>9`4akPAO-Lq4HcnooawI;lncxmxEF{8D4#pnUXm1XMoWC=<_``+HgE;!+lsKW3D zpOg$c3%5976!8*%!zN;{7Lw+nz=`K5vP1*FFaIi@`uZT#yAPt^RV**3M7<7qBGrsk ziL|oUM@D@IcrR3xAN<_^hEEDU<0`_YGu(C7!SKRN zo`W5^X&c=^Xnkh^GyyVdU;@qR{;=ey6zqtqU7+c(5x2FGbRXuPu7Qb~^0kvikbg<^ z>bO5)MlA`s!tMMVP5hkX&l7x)8!^RLnh$hLOyeaO%Qgw!xS9jY-SR|_{NB(EO+HyI zBAK*8e|gP}{EJ$?=a0Xw6=v%>UidLivIWvhT|&_N$E;DeQ{TP9poJMK<-mVmC%?Mj zcn(}5P&apjv`&ylS8j8!ly7ed9$asIL5LXYXTA12Zlqh-k|JeYF+X63? zFewlGh(dUa)NYI%Uch~Hwr{QDu=S`j4+~YJLIu&%g3o*+zv&8~I6Kgsx7DI4-CB`D zmfH6RdN>V{*;5;@nj}cx1AB96>bvVvN~!>oA*B<%%~`sc>Z6~?D4!`OB?v)=E?ncqw0R~Usws2#cUb}lawQ?A zkGCn9mT~2UJNt_~F&~1*jQm(U{N|DClR$292 z*x}T_Q7Z!Z2lO{~uBz)V70O$S`zMRWeot44Ax+8~7&%rO`XeBEe@z&dXog`W=y_YgTHo`hJILYR8D`9Dx=o zLrlMXV2P@gLRke7ohVh+13D#}1-XB(9{hf>XH9Lb|G0tKpu3IkU4Bhghwy5bKQNy* ze6ZE&*Fb#GS`R`bJgl_&X#n_f_iaf%o&~WK1N#vY`Jrv(3b}ckqT}vM{R4zFtL(^c znxv9-KfX%cNm7MqUN~V-*H#7zUmEjjwOVpE9iEwPRUWAAaG@4gf%LFnGBRi zvS}gw*oli$9?x3b7wwPT`An@0gW*yO}VkRLLC zT|w_Sw*Fd^^=z&1!|TsI7_wR?aXlC;pY7GkK;sQ+@cO<4jR(Ytraf4%7BMY+@7FqM zP>b05c2K-_nq{T6Zn+jM;@Gz5G2AR5Hu}^k?Yu6wIlx#xRZLlEAQ)^3U+q#J56<56 zwqEa(H*$JMI2-t2Lp)Y{iI=v}|N0;lW&&cIr)Q(}F9bF(PL1#7biNtSzqqk^Mqqr2 zMnIc6`%M*)ye)u0NHgC`imQ!?+Xe+C>kARs+vqA3YW)2)6M+w@U)3MD_(SMP?F5qW ze#PHtrjHx8~uPqo7Ua6ZZL1tOT?yI8E?~gG2_$zr>ks&0gNSy6|lkn#B_OgXI z!h;i^^u?T2uwYPNst^*zWBQk^Luu7{X{tptX@K+O@&52bfxA0At=}}af=&q6PQC{6;+z!HgM}>9}g^x+E{OA{Km`ULY=;_ zG#3rxl+52XGzYAfT`rLRbosRSd|R2HoDGpXK$t9F4W0P1941D4k7vzMO7!l`W)=*% z0)H(1!?M9AOthrmCA8-b?o-FW$ca84+`MG7@z!6OiG7x7=LS5VGAL?wOZ|NI`(Z-; z5{6Yo@M43itwDDK6N&zJBuz7pBeh{nX*!Wvq89-!C}TR2R5F>D%lDJ2$?ubR@M{a2 zg37FoMJ2Vn)y%RJ7!uOXEd?kT2c?1XMK~Rd^F+U|i_p*@G{gC>TS}oN-eHiHJ!omd zim0Zd_btLx-OL}st$AXFxbceGCS1o*K!uABPoNb#K?PRDtNR9H*(wSdm~GZ@kXb zRy;8c*w`3sfxI66(6M-uloQtI78I5>*pudDvP-OI7(KSp8Ao|vO-7k^0d%1 zR8k&rDyeUME3r>WX3Gr(q&hf`f)4ihz1w%AJUn-h`RA+pDvA$7WitJH)QwCV1a&zO zWY!dFe_qnv<>Gv^PBHgsgivBysz!8TR|PU4>sU4t5kQ*tZ02B`UKQ&6%9NsqeO4GP z+q{PG16+I^G-cI6V~1HZeF7pre2=gDb+HEGTw|{f`&$pE$bpjG1mc!2@3{=h#6+)& zmF*G2J6${bksAsbZ`G~3ptKs8xOZg!s&xUbw2D%2b~$-{C0B@E2C_5vPj*v(!P4_KW*?*z z7mu=;Vx4{hz@!xr&M{4b7^ZtN1eYfsZVKrzs5Vi_Rn~OR$4?t%mx_cQ_e9)2oub^&*+XYVCwz_QvvRX8 zs#Y}x@LQXSVkS|KwQE6;gnfBNv4%2n>*M|jH(_Ms4M>?*UNq1G`9)D}FBX{Q^#3+q zHShLX!TV!3k%~5tqxhfX*@x)Tl~?hz?;tioiiHgnkQ{B9o2#w0)9Dubg453D1M9|@ z1ughmMS+~bXv1~*_na`P)MAWer)?ksYoHY~Eowng;9;Y>^|3>}!n#5x4D>8QFV+t!7f*hoR0sMh+faW-sXMb^fS69-sXX~8V7C?rpz z(sfJ5ex5w|U>NqZYY|EV#$L5lm;=Ut(8kYA-N;<3n1%c@P)buw3(MAlH~3{qm^|oA z!oEpstB#&HzPCr+V}D`2qz0I$XVQZ(BzdYMi8IA-#eFW-UytPrD>D-LAU0Q{kCL>G zJ!RVR8$vpWA6*z-^St7pn!1%&4|4Y3*)!Iv*B{(;{tLzY&)SY$}_q>*6n_8 zu*1OsZPZcn_|2F;N$b`ngc1!rUv8bcaKsrn?-1$ zO`jW`mOEp_Go;}glQT=90}DeQC|29JZ#P8S{IHZ)ki0pA2bEQVOT z+dn;+W0cz$U~yPpK0!`&wt3h#4?~C>vJ37892ENANZS+$*-+q@y0MVrNX7ROq+Li8 z-r%})b9|eWbzwg8Ou_t)!^$>c+*>yODsF%9!>~9F0(T$W<<=yqW+ml?m>8`KX3XX6Tvkj(@CMJ;o6bE4i52V=@miAXmvEl;g%@PD0?- z0(okNWWi)_ONyp6245#6vQqPkQOo!~1DKYwaxNM=8bFMh<2GRmLs8|C z4z{(Nq)9LSGM6DrD8Q$SxoGl9EwJ-;W<-kl`}N;ywxvI;lm+`#LA~gNdh`w#ub&#V zx&d_WBVP1jl-2S%aU$i%sL(+3=;e}r`}lxfCt0Z^;9LFA>*^oE-48zPwf{mqt4lvA z9aqdxE&h#it<7#FRy%2{!{!%wuZLG_+ww}?_UVsxqyu{(tvSvEr8a1~YkcGn@vgN- z__B2&6Bj<=hh>bEdxRw=(<7ja={c7H{~J}6pw2CYiw_+q7&qH4LmhuKXIVC5jVJ)cQ0oOO^8CGLSuv;#c(h{(ODg z?bP(V@`y0vrka}v5A0NbvDVf3rTWfszQ=07MZNGLX*k|_Mbrm;1 z6M{=F`j0*gNAX8L`_2(Hq+pK32uCScyTmwcxy$KPBC_`ji+DTAVEnF1LEF{iG3o$$ zR>4C;?C+2i83EvlG{_I9YMv8AbS{gf`X3M2oMq^*VEfTYWC|TpGGp?1efrS4Tj{^N>sR+|k6;a{&Xi8)TsF+cI z^EbU4JEnlA)P=<}v&d;l+q(1rsp!-2?jxpVFnG7SG(&M)tGnPB6Lw0?+YVrWJG9j*yj@vM9;P8sUH~skJVeo?Cdf$_xOb=c zSb>~&&cE1*f%JJgn_T21G1T>C6mTysy023@EfFsUtm>y7-}CCA=UA-|!Z89kB+K~L z0{-y5`$;1J+vDchiGLi9&<;0R>+6{xf6`ZIwN_6R)*2ym>BoG599btoDFX%qo0nnU z$;Ny6h3Yqw|9K7^^c+c;p>`I~QrY&wx*ZH<5&)0M1IIWp|N9C2sI1Zv*h{pk_N{Wp zy{tU*>h+&b<0f%2ZC?FYb~09}9~)@~76`Py-!6Bud-z8iw& zsV_oXk7E@^p}!-5XH1V4NHx-@0h_mRt=X`hnUt8|YxsROJreMp;l+Ta>L8D^w{?yO z>37XouOzm7Y7%8YaL4ZE!}6ZT_3wtw%Uw<;X4dYlcmN5KT>j$p#}8WlMu#v8uy)1; zKgXsp&vml_H8;l^wBp*q?;F0T=ok-`5=tFmYg{!S4&VZd2Hb zi0}fCLbYx7PpUs=t1X;-T+J}3EU+ckC9%3Nd|ea&zj|0fIL)co$0PaMs0<_m%-Z0| z(Ia_99gXv9-(&4+3)Nj$gHg zj`qeF*sn+#Uw>?Nd&55OS43=@e$fO6xi`?v1pTp@nQ-gL8_Nb1vBBb8P`A;%ZitE8 zPB=vR;pyE@#O8^KF2QxlaaK{OR?(JHW41*m`hHc%plAMD3sOn(S%>E9RsniQ&#fOS zviLe;X8h<>Hsr(agy#LSZ-QP>U>^Xw3g48|rf|a8A5nGWvS&WSNb$Y4d1-$6@e{f* z$@X5b<&|FJ$Y_u?v7!lA<(rQ=I}s+JV$61XKg>9pQ&-1d{vg>k-WRsD>pbRsC||0) zDlkJY%d34(9|1+`<)%8lb?1`Li1yl;4-^&Hg`i3G(o9Hm)(6TLLnxk517JxPvGh$f z5pgtAn6yv=>U-T;@;BDRtwEr+4B=^Oeb;mc*(AHq!fodG6evbT5`Q?u(Dduag3ro_ zUk-x$Hm%=BEF#J-SN3mvNl?lA&FU+qx5}E@v!MlFOOxF%bmglQ+f5?OR@!bt6%=m2 z-vR#mHZpg9MBNGK|(!48fAHiqX~iD zK}wCiE7`TH(O0cvRCtl^d5%s;$Xc#{v2!9ylCs4pP)l zo8}wWn*yA>e`QL^z+gx``N%NHHQ;Wz%6W4-gR(K0?fP3m1K9eNcl!1n-1jZ>i5{*? zI(pxMST>vwMj8g3+mQdKvF;fBPh(9z$G}t?HKl!+6n!h%qz21m*1{1QvcH&v&(|ab zE$)3GnH3j_GN|`#{gh)A{Zx5DW7l?2iR3r_jm?{DCFr<a%838`gOv=a)u1Xo6Y zHA)CIs_OoCrH{LygqfX?kE!)oxsiR=XY}R6WB6gQmuHE)XNB%JGp=pVRe|@9K&^u6 zRqX7>-0SlAKTG>o@szbwvUntix%W<-ew(F@Y*O@xUb>_W-P&ly45NK^flU@H-Yv_p zRpKv8;oWGmTSa%Kb@pq#d@+?52tYN8^8h7#4}5@ENh#I8wU~%Kfx^;<$(i)@&v**S zS#RGYhERTdbHITKK3a^bhldo4tJUPCyDwVDs~FaS;aaxj(eF_0@K@CB|2i~Y_PpPT zYE*h-%6x)Ls%GOyIv6RhFt#tl=h%&=^+Kuue1)J|MUL_MJ0~y)*0|yW3B75@(v8{$ zR=mE>C6B8AL{({4U|u_5ZQB};u{azM0A-n8@o-_3u*UrB)`v;pVcKy>o3_WL*uk}^ z#mrt#$l>$hy9DHv1+h*6A|8{>Fu}1mT!;81N zj^7xlHp8dd%6wSC!jQMpwABZ9E;DVxV!SLc=7;rQG=~%X8gw>&_C#WN?>$Y^LVu$G zEKi|t3XgwIQc9>~A`!5M;u(zWM2hLD+8iZX)fbmXVAWbw>FXbHWeBEpz%iVzXn6IH zuJHFrbSbiE!+z+}`u~8w3m(`owg1(rm+8OxT`J%|yH~}~wZ}aZJKl}EEI|U0lyMYD z(8ch0o~}Omq^t^MhLNeiWFin5E?j??F@oBWru%&+cPD+$AJ2PF>eWTwWNY<|xbqd$$4FEz{7AZ)xTo&_dq4V4{$r@I>E=(GW!%cDRaQ>ZFdk6A|W(NakBw6~WZb-_-P>9Z!rD~`=$Kf$6=FE4^0@jIITRz>r zULC{#{I}6D?2S-w;jFN4J6;}uNtzPcTWPq$&=z3Y)+|B@Dh|(I$4ZA%#s_Js$Uk`( z>0U$QYbv6~2aZN&OB;vL(LL%g0EiY|o@l)zN zM(baxPv@eql+wlTfBFx1F4d_$R2{(c5AhC1_Uyd z14i?`6UO8GLT`l~F+S}~RN#bgad2YPKdR^QpDcGIE77#^(=rS-_WqAK?0S}eg~*U* zuQzr8S05CdZ5AsuIWBMRyTqId@<1)1c8V->1U2@z8qMeJwpG&nY)cnGPf?HH@^aQD zg}NpS6i6=nTwyFW_kcNh$*v2iHh!+`lB5=ov3HR-`pp888}iSA5VcRx@`BPyg6p6z zNE9AScgexOs&3|UEvY3K;y#FX;>14@z~`%CZ{DzES=9DwE4u*kPwbSSFIcSM5Oqx| za+63Bc3&OVLfy-h@`)m5?NLQOtR~};$XuoTE6|VBvJ)FX^4=%+edqs=x&#D9)Fp*S zX|brZzIw9gp!B|VturXIQB4Vww821?H2a=oE0fnRpI<|PkLTsZVB!a~#FW$A=r$xY`M>ucI?#B@M?owkwoR@= zEdRth!ehEx4X8FbW>c$V|`-&xitW-e6sy>IARh9T;n|j%Xh&WA{sNr|0MuR$D z>k#t2iNgduyY?kUvT9lW0seJUCi4)uY)7 zdq|%&FglfO5RqM?^>)H@Vu<%1^2yePLx4rT=@|wiDQmP#_rn@rrA@%dZTaNLa824v}vxI zAR^7s+GmdUzU%+yPE`VdGi4kJflfnatF6SL1`4W<0wapuv3#ji$Q@{x&3JbYblRzr zo%KdQKLSX^=?xt^^Ge3Ixx_&Zj1qxScT?GR>3#TMYZdkHGzWNuK)j#%4V9C&Qfpt# zwT@KU1pN9<-(%f1sl%YoUgDpB!s-n2=UzwVmUSZMc!kmjj%>&&g6c=t_Lmtr@juRS zfaAUQqn`=`v$4s;Ur8mJT^)iOXcfX=!y5n|i(S-v1f-E{vsp zWS*=C&iK~+&pY}gD&*vzWqwVFpDzOr$}L@PF^nUf#=Di}O&%scHDFcm0Qzs3dCxz$ z^s4;3PWD?XE%m(?CEgYnC^SdMM(ND>pvrVU#7y}{O6J}jV}m`bIkB> zG(%DH7*?vMIsa!U&Jxph)GcZr!~eDr?;Ak=owQz4xV;(p;{nK9DMiT&3B!Q@2j9(1 AuK)l5 delta 6303 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 MJu=p+eqa~*KS|>DR{#J2 From 9b802ce142647127691a6a22fe1aa3497b056034 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 8 Feb 2013 23:49:38 +1000 Subject: [PATCH 025/163] added + fleshed out + tweaked some misc items and excavation tools, renamed file --- .../research/xenoarchaeology/archaeo_tools.dm | 84 ------- .../research/xenoarchaeology/core_sampler.dm | 1 + .../research/xenoarchaeology/misc_tools.dm | 225 ++++++++++++++++++ 3 files changed, 226 insertions(+), 84 deletions(-) delete mode 100644 code/modules/research/xenoarchaeology/archaeo_tools.dm create mode 100644 code/modules/research/xenoarchaeology/misc_tools.dm diff --git a/code/modules/research/xenoarchaeology/archaeo_tools.dm b/code/modules/research/xenoarchaeology/archaeo_tools.dm deleted file mode 100644 index 03a2e6635f9..00000000000 --- a/code/modules/research/xenoarchaeology/archaeo_tools.dm +++ /dev/null @@ -1,84 +0,0 @@ -//---- miscellaneous devices ----// - -//also known as the x-ray diffractor -/obj/item/device/depth_scanner - name = "depth analysis scanner" - desc = "Used to check spatial depth and density of rock outcroppings." - icon = 'pda.dmi' - icon_state = "crap" - item_state = "analyzer" - w_class = 1.0 - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - -/obj/item/device/beacon_locator - name = "locater device" - desc = "Used to scan and locate signals on a particular frequency." - icon = 'device.dmi' - icon_state = "pinoff" //pinonfar, pinonmedium, pinonclose, pinondirect, pinonnull - item_state = "electronic" - -/obj/item/device/core_sampler - name = "core sampler" - desc = "Used to extract cores from geological samples." - icon = 'device.dmi' - icon_state = "core_sampler" - item_state = "screwdriver_brown" - w_class = 1.0 - flags = FPRINT | TABLEPASS - slot_flags = SLOT_BELT - -//todo: tape - -//---- excavation devices devices ----// -//sorted in order of delicacy - -/obj/item/weapon/pickaxe/brush - name = "brush" - //icon_state = "brush" - //item_state = "minipick" - digspeed = 50 - desc = "Featuring thick metallic wires for clearing away dust and loose scree." - excavation_amount = 0.5 - drill_sound = 'sound/weapons/thudswoosh.ogg' - drill_verb = "brushing" - -/obj/item/weapon/pickaxe/quarter_pick - name = "1/4 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging." - excavation_amount = 1 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/half_pick - name = "1/2 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging." - excavation_amount = 3 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/pick - name = "1/1 pick" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A miniature excavation tool for precise digging." - excavation_amount = 5 - drill_sound = 'sound/items/Screwdriver.ogg' - drill_verb = "delicately picking" - -/obj/item/weapon/pickaxe/hand - name = "hand pickaxe" - //icon_state = "excavation" - //item_state = "minipick" - digspeed = 50 - desc = "A smaller, more precise version of the pickaxe." - excavation_amount = 15 - drill_sound = 'sound/items/Crowbar.ogg' - drill_verb = "clearing" diff --git a/code/modules/research/xenoarchaeology/core_sampler.dm b/code/modules/research/xenoarchaeology/core_sampler.dm index b123fed02e1..902857b75db 100644 --- a/code/modules/research/xenoarchaeology/core_sampler.dm +++ b/code/modules/research/xenoarchaeology/core_sampler.dm @@ -27,6 +27,7 @@ var/obj/item/weapon/evidencebag/filled_bag /obj/item/device/core_sampler/examine() + set src in orange(1) if (!( usr )) return if(get_dist(src, usr) < 2) diff --git a/code/modules/research/xenoarchaeology/misc_tools.dm b/code/modules/research/xenoarchaeology/misc_tools.dm new file mode 100644 index 00000000000..014ecc59120 --- /dev/null +++ b/code/modules/research/xenoarchaeology/misc_tools.dm @@ -0,0 +1,225 @@ +//---- miscellaneous devices ----// + +//also known as the x-ray diffractor +/obj/item/device/depth_scanner + name = "depth analysis scanner" + desc = "Used to check spatial depth and density of rock outcroppings." + icon = 'pda.dmi' + icon_state = "crap" + item_state = "analyzer" + w_class = 1.0 + flags = FPRINT | TABLEPASS + slot_flags = SLOT_BELT + var/list/positive_locations = list() + var/datum/depth_scan/current + +/datum/depth_scan + var/time = "" + var/coords = "" + var/depth = 0 + var/clearance = 0 + var/record_index = 1 + var/dissonance_spread = 1 + +/obj/item/device/depth_scanner/proc/scan_turf(var/mob/user, var/turf/T) + user.visible_message("\blue [user] scans [T], the air around them humming gently.") + if(istype(T,/turf/simulated/mineral)) + var/turf/simulated/mineral/M = T + if(M.excavation_minerals.len || M.finds.len) + //create a new scanlog entry + var/datum/depth_scan/D = new() + D.coords = "[10 * T.x + rand(0,9)]:[10 * T.y + rand(0,9)]:[10 * T.z + rand(0,9)]" + D.time = worldtime2text() + D.record_index = positive_locations.len + 1 + + //find whichever is closer: find or mineral + if(M.finds.len) + var/datum/find/F = M.finds[1] + D.depth = F.excavation_required + D.clearance = F.clearance_range + if(M.excavation_minerals.len) + if(M.excavation_minerals[1] < D.depth) + D.depth = M.excavation_minerals[1] + D.clearance = rand(2,6) + D.dissonance_spread = rand(1,1000) / 100 + + positive_locations.Add(D) + + for(var/mob/L in range(src, 1)) + L << "\blue \icon[src] [src] pings." + +/obj/item/device/depth_scanner/attack_self(var/mob/user as mob) + return src.interact(user) + +/obj/item/device/depth_scanner/interact(var/mob/user as mob) + var/dat = "Co-ordinates with positive matches
" + dat += "
== Clear all ==
" + if(current) + dat += "Time: [current.time]
" + dat += "Coords: [current.coords]
" + dat += "Anomaly depth: [current.depth]
" + dat += "Clearance: [current.clearance]
" + dat += "Dissonance spread: [current.dissonance_spread]
" + dat += "clear entry
" + else + dat += "Select an entry from the list
" + dat += "
" + dat += "
" + dat += "
" + dat += "
" + dat += "