From 8cd47739d285b40fa6c27df88780d6c29f8f2f27 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 19 Feb 2013 14:04:33 +1000 Subject: [PATCH 01/17] removed event debug string, bumped up minimum event interval, tweak to space carp Signed-off-by: Cael_Aislinn --- code/modules/events/carp_migration.dm | 7 ++++--- code/modules/events/event_dynamic.dm | 2 +- code/modules/events/event_manager.dm | 8 ++++---- code/modules/events/infestation.dm | 6 +----- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index dffb2836688..e90e20c9f88 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -18,6 +18,7 @@ /datum/event/carp_migration/end() for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp) - var/turf/T = get_turf(C) - if(istype(T, /turf/space)) - del(C) + if(!C.stat) + var/turf/T = get_turf(C) + if(istype(T, /turf/space)) + del(C) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 38e86ec0e56..4a2c43bdf6c 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -43,7 +43,7 @@ possibleEvents[/datum/event/carp_migration] = 50 + 50 * active_with_role["Engineer"] possibleEvents[/datum/event/brand_intelligence] = 50 + 25 * active_with_role["Janitor"] - possibleEvents[/datum/event/rogue_drone] = 50 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] + possibleEvents[/datum/event/rogue_drone] = 25 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"] possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"] possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 40f8483ca4b..ab505e5d832 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 15000 //15 minutes -var/eventTimeUpper = 30000 //45 minutes +var/eventTimeLower = 20000 //20 minutes +var/eventTimeUpper = 45000 //45 minutes var/scheduledEvent = null @@ -19,7 +19,7 @@ var/scheduledEvent = null /proc/checkEvent() if(!scheduledEvent) //more players = more time between events, less players = less time between events - var/playercount_modifier = 0.5 + var/playercount_modifier = 1 switch(player_list.len) if(0 to 10) playercount_modifier = 1.2 @@ -63,4 +63,4 @@ var/scheduledEvent = null if(ispath(type)) new type - message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1) \ No newline at end of file + message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1) diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 04dc7d46a17..4099927ac9f 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -70,24 +70,20 @@ turfs += F var/list/spawn_types = list() - var/max_number vermin = rand(0,2) switch(vermin) if(VERM_MICE) spawn_types = list(/mob/living/simple_animal/mouse/gray, /mob/living/simple_animal/mouse/brown, /mob/living/simple_animal/mouse/white) - max_number = 12 vermstring = "mice" if(VERM_LIZARDS) spawn_types = list(/mob/living/simple_animal/lizard) - max_number = 6 vermstring = "lizards" if(VERM_SLIMES) spawn_types = list(/mob/living/carbon/slime) - max_number = 3 vermstring = "slimes" spawn(0) - var/num = rand(2,max_number) + var/num = rand(1, 3) while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) From ad227f09254184460c2847f55012f0c9b7b6e775 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Tue, 19 Feb 2013 14:18:55 +1000 Subject: [PATCH 02/17] removed debug string, bumped event intervals, decreased probability of some events Signed-off-by: Cael_Aislinn --- code/modules/events/event_dynamic.dm | 8 ++++---- code/modules/events/event_manager.dm | 10 +++++----- code/modules/events/infestation.dm | 2 +- code/modules/events/viral_infection.dm | 2 +- code/modules/events/viral_outbreak.dm | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 38e86ec0e56..731cc56551e 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -47,13 +47,13 @@ possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"] possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25 - possibleEvents[/datum/event/ionstorm] = active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 - possibleEvents[/datum/event/grid_check] = 10 * active_with_role["Engineer"] + possibleEvents[/datum/event/ionstorm] = 25 + active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 + possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"] possibleEvents[/datum/event/electrical_storm] = 75 + 25 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] if(!spacevines_spawned) possibleEvents[/datum/event/spacevine] = 5 + 10 * active_with_role["Engineer"] - if(active_with_role["Engineer"] > 0 && minutes_passed >= 30) // Give engineers time to set up engine + if(minutes_passed >= 30) // Give engineers time to set up engine possibleEvents[/datum/event/meteor_wave] = 20 * active_with_role["Engineer"] possibleEvents[/datum/event/meteor_shower] = 80 * active_with_role["Engineer"] possibleEvents[/datum/event/blob] = 30 * active_with_role["Engineer"] @@ -64,8 +64,8 @@ possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 75 possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 5 + possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(active_with_role["Security"] > 0) - possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(!sent_spiders_to_station) possibleEvents[/datum/event/spider_infestation] = max(active_with_role["Security"], 5) + 5 if(aliens_allowed && !sent_aliens_to_station) diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 40f8483ca4b..855e4d969ba 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 15000 //15 minutes -var/eventTimeUpper = 30000 //45 minutes +var/eventTimeLower = 20000 //20 minutes +var/eventTimeUpper = 45000 //45 minutes var/scheduledEvent = null @@ -25,11 +25,11 @@ var/scheduledEvent = null playercount_modifier = 1.2 if(11 to 15) playercount_modifier = 1.1 - if(16 to 20) + if(16 to 25) playercount_modifier = 1 - if(21 to 25) + if(26 to 35) playercount_modifier = 0.9 - if(26 to 100000) + if(36 to 100000) playercount_modifier = 0.8 scheduledEvent = world.timeofday + rand(eventTimeLower, eventTimeUpper) * playercount_modifier diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 513f83ea5ed..04dc7d46a17 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -94,7 +94,7 @@ var/spawn_type = pick(spawn_types) new spawn_type(T) num-- - world << "[vermstring] spawned in [spawn_area_type]" + //world << "[vermstring] spawned in [spawn_area_type]" /datum/event/infestation/announce() command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm index 3644905d8c3..2798e51dfbc 100644 --- a/code/modules/events/viral_infection.dm +++ b/code/modules/events/viral_infection.dm @@ -8,7 +8,7 @@ datum/event/viral_infection/setup() severity = rand(1, 3) datum/event/viral_infection/announce() - command_alert("Confirmed outbreak of level [severity + rand(2,3)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('sound/AI/outbreak5.ogg') datum/event/viral_infection/start() diff --git a/code/modules/events/viral_outbreak.dm b/code/modules/events/viral_outbreak.dm index 49fbcdebd68..7a21ecccf9c 100644 --- a/code/modules/events/viral_outbreak.dm +++ b/code/modules/events/viral_outbreak.dm @@ -8,7 +8,7 @@ datum/event/viral_outbreak/setup() severity = rand(2, 4) datum/event/viral_outbreak/announce() - command_alert("Confirmed outbreak of level [severity + rand(3,5)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('sound/AI/outbreak7.ogg') datum/event/viral_outbreak/start() From 29f1095a255a1f6905cc3d7ae80b57c109903469 Mon Sep 17 00:00:00 2001 From: Uristqwerty Date: Tue, 19 Feb 2013 23:40:06 -0500 Subject: [PATCH 03/17] Non-animated runes aren't being cached, probably a bug. --- code/game/magic/Uristrunes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/magic/Uristrunes.dm b/code/game/magic/Uristrunes.dm index 6234c76454b..6e0abd177e0 100644 --- a/code/game/magic/Uristrunes.dm +++ b/code/game/magic/Uristrunes.dm @@ -126,6 +126,6 @@ var/list/uristrune_cache = list() result.Insert(I3, "", frame = 7, delay = 2) result.Insert(I2, "", frame = 8, delay = 2) - uristrune_cache[lookup] = result + uristrune_cache[lookup] = result return result From 28c8c679467e63bf44e462b7530a22164ab32e37 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 20 Feb 2013 09:15:27 +0400 Subject: [PATCH 04/17] Fixes issue #2384 Uplink now spawns proper implanters. Fixed missing icon for compressed matter implant. --- code/game/gamemodes/game_mode.dm | 4 ++-- .../items/weapons/implants/implanter.dm | 8 ++++---- .../items/weapons/storage/uplink_kits.dm | 19 ++++++++---------- icons/obj/items.dmi | Bin 57847 -> 58089 bytes 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index f948f769061..94b9c03811f 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -64,8 +64,8 @@ Whitespace:Seperator; Implants; /obj/item/weapon/storage/box/syndie_kit/imp_freedom:3:Freedom Implant; /obj/item/weapon/storage/box/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals); -/obj/item/weapon/implant/explosive:6:Explosive Implant (DANGER!); -/obj/item/weapon/implant/compressed:4:Compressed Matter Implant;Whitespace:Seperator; +/obj/item/weapon/storage/box/syndie_kit/imp_explosive:6:Explosive Implant (DANGER!); +/obj/item/weapon/storage/box/syndie_kit/imp_compress:4:Compressed Matter Implant;Whitespace:Seperator; (Pointless) Badassery; /obj/item/toy/syndicateballoon:10:For showing that You Are The BOSS (Useless Balloon);"} diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index ae21beff2d4..785997a3db8 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -83,7 +83,7 @@ /obj/item/weapon/implanter/compressed name = "implanter (C)" - icon_state = "cimplanter0" + icon_state = "cimplanter1" /obj/item/weapon/implanter/compressed/New() imp = new /obj/item/weapon/implant/compressed( src ) @@ -95,11 +95,11 @@ if (imp) var/obj/item/weapon/implant/compressed/c = imp if(!c.scanned) - icon_state = "cimplanter0" - else icon_state = "cimplanter1" + else + icon_state = "cimplanter2" else - icon_state = "cimplanter2" + icon_state = "cimplanter0" return /obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 3653d1322e9..646fc4d244c 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -83,24 +83,21 @@ O.update() return -/*/obj/item/weapon/storage/box/syndie_kit/imp_compress - name = "Compressed Matter Implant (with injector)" +/obj/item/weapon/storage/box/syndie_kit/imp_compress + name = "box (C)" -/obj/item/weapon/storage/syndie_kit/imp_compress/New() +/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() new /obj/item/weapon/implanter/compressed(src) ..() return -/obj/item/weapon/storage/syndie_kit/imp_explosive - name = "Explosive Implant (with injector)" +/obj/item/weapon/storage/box/syndie_kit/imp_explosive + name = "box (E)" -/obj/item/weapon/storage/syndie_kit/imp_explosive/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) - O.imp = new /obj/item/weapon/implant/explosive(O) - O.name = "(BIO-HAZARD) BIO-detpack" - O.update() +/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New() + new /obj/item/weapon/implanter/explosive(src) ..() - return*/ + return /obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "Uplink Implant (with injector)" diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index b0a67761b709ad5d9b8ee6bf673a278fbc1c1790..a8f3633eccd1516cb1215e6022b4bc5f72f0152a 100644 GIT binary patch delta 19469 zcmZ^KbyQSe^zV=ghy_Z6w19LeDc#+T(v5Tt7bT@by1N?&siBk(>1OB}8itNHe1Ge$ z_tsnM{V{OQoIB^-z0Z!%j(gFCw(}P)ng*pjhE^K=8yD$t%r|vZ*C#PO?*L`9kVv1= zU!HorV8v;Acg2SHWPQt#;vDlh&Mi8X&-nRx8isspVS5jpZ?QI*bYGaJc7AWQCelXa zDF{Xh`~*x5P@|n4Y{7~mK19)Z4&&M%V};aZV!(*X9w zXm%0Rth1i_w7Ll94h3FC&mFNf71aa}?R=Pv!;YY{UWor4(2t9HXHKKtm@-Lmp_~&M25Se-Mz!du%93`jK8e2bFnMh{{ zD*leu(@1MnC98RhbJyZ;9K@=umS^iv45rSQ2t;okKluwE{Z)MEU?cPMkAA-TCaIP$ zL`yk-=bd4;M1eoxfiaczd^Mitv)%SPLk-BUi=!W3Cq!C0tyP{JJ2DKHs>EIz2GT1= z?vAmGv?vPJ1swxFh`O&22frqAv$|z_CmjWFjfY5wzQ6uF zLeN-C-q1X!|KOs1kEkx-I9I5;kBSQ4mZHKIiWTw;R+U=1Z`9#0jzF7XC4u)<6vz;;B^>NT!LlzUGG9qq||E zv3_wlN~AsV#k#$DeaYl#%qd&QR*!z>84ahYUfrUCQqbycXYX%OB6_f;0yFiTSUe`F z1lJb**f)M)lG4DsC)VQ3(ch^<9XYj(%3srE=?pI#jidZNGS1DBP>fmE{cI;mB5N>d zL;NuYyB%#Y95wk6#L%*gP-pe{1vX)|4ZJypIA7}l_6Kb+Zg&{@)B`HjaDlaM4Do&K zEV^C-uti3pkqlXZ59Y;@zkdBRUHJ_f7K+YG_0NCbpxb86px`v~JYAjB)-j+;K&WYT zU}$N*!hfUr1!FJdsd%WWm;+W`%#!)$-F;G8Tymd0N1Qy?daJMSM+?PfSX}a_3xSdO zw?khB_24@0Fv~ebqxSqBiag6zmcPk1TmgJo{(vgodqLAWS+c?*Ts#&3yHUNof=RCW zYI$W#tEu{)QpDe3#r~sz`Ci8>^0nU-Jq7XRlcOXt{aQT%0_OfQEm-p&W~;KoW&H?8 z@@-!r9*P{zYZNJAipP19_ta|;jhXV$ph_K*rsXlTv%5(%`P)l%1 z13(LEVi7-A?JmKZUoEPhtRWekj@@L6k)}DwFW$u2YDDpleZ?yAwEasL!(@QQUUKC| z_2=5){9n?@eFi$m{Pq!dcAC62KTXt4Fsv$G{}dn7Rf(9+nB}QcBCZmrLM}w!ZCG;M zLLRF6IEYOM;p|fBf2#dBc>RJBQ2U4c4OL7Xn<=&~Rg6cxjkkCx@{_?ES0G1|Au8Ga z`sW`T{dsCt8gVJMI)~R5*u(7Z2*_#9MSJrhl-BM3lB}snTlRFw8GyE)<(}s3#U_Mt z8UGYtee+?6VEMqEcY?F3F05%jBD~?&w@4y+5l3m{wX6qC<0lIbs}#1%k?#IC${vTb+?7zmJoH&6(!@~N8hd0H2J;OMf+gQ_Bzw)~l3JM5#`T8~LXHij9G80i<^~K}0+6;B4 zC<tZZ*zU$#NB+gzFD@$vEJ0qzy*W`O#) z0qTS9v2Pe-YM$Ae6SmjpV%)xOyP;9dAkz*(F)Jb;dU$3a!VOCeHtd9S6_RknkVJ=F zUV8Ko3|LK9km=~?(9qJx#K%i`czmR!q+DNLk4{fl07OMa!%7M6Z#u7XY}&#;-PU^Y zO*H}r+i@qYM`s@>5hE|aiB!f?M)%$4jX3{%pN=sfr8Fk@ruy0xHwYIjFOLSvBte69 z^V7>R`gjM;54rRCT|_*$9Qz`B3hD~QfbaHABjfURBBX&Fq-wM)2ZrtNcePrj8vvm` z`>!Y{j79=#Yia~k^c%+NVG_>{C;cfdC}^_vUc6=X(Uea`lxb11*PEU1BFWIKd2Qb65Cva-QV|fhkD854LmYp!Xf*5c-4At_H8{$Y)U8#3k!q;mXP9$ z>2bFYgfIm?+iV!Oc+bpWK9ax;Bw;%@o|Kecttq&BwX{T@p%`8zZryy415YE;BmKfc zLzDQd$~^Ytwe}9&&x{=jO77#NqOR2+Rz1&wKySH+ex}N^;(PByU_^^57qf-0??<}^2m5hzwMJ+go9o1pYjw{_+Vu&2wQ8z5C9 zc!1{ezNJPT0BRFFoi{=Jw>Qnde)u9ERvYn`;Q7VfRg6@Ms(qp7$+pVtA3sPBQepXF zQV7ol@0* zzCVwJgG0^3lMs$UWY5<nIY*ew2kTHeTuWX9jh}lw_Y5U^|s5ZmCUJh?{W-UY74qN%}Bud1w}8B^}~D5aZl zE3gz@SxO~Ph#-?_FS+v4g{hz;$N%r}jHDB4iXL=m`^j9RqR0GB#zkRQB(dmeR9+6rxR%04Hn!;U>?n~M9q43pIBo!NF^bvGLVDVUo38{U{ zBy z$N4?IV%p3yR7n`o0?mCt&3_$td8T%wQsJ3t0Rz0XpVy!aBTfO=AmoXKZdCnBaD{%$ z_WA}}ycqXg=FB-OY_(-56&^}$P^N%Z`W~YRO6l7*R2=39J`@iAhQIBImYc10uHE+T zd)W{_O>`&3(1kx4@FYL)x7?i7os3yQObM2h5g_<0xuwKt+@>~1vJ;QhU%%T^1L%1| zkI()3o@u0JNfdx>X#T5gJ;Ap7;a?7k*HAy|>W)xgXdAfHeVCj!q|1w__x04l5cYxb z9XveTADW?}m5=|^(8%{W%)bE;lUnsLG3rPYceN5sp&NKVP}w5sC{0po_h!S)_V(Dj za$D~!$<-XmeB-B&)|Rf2iK1tXbtFlMt<%Ctu z7hJ=h;y%keq!nwaaIoq;XF3)rtxP$3PPkGLN~LwitdR8i5MD|rZ$#K?nxzd~RATqW zR3W_~Ue%s8`azga`o>?)XJ5v1) zZHMN-$nek*i;ddZP2Mv#5F?J_l{lc9Y(>+4z{8ihJ$*J;2KuA9xP^B|Mv4(=c&fkU9RZg zDlN))OwZQX-y7_B;`t&;CYbg;G+gbGOB{HU1tGm>c^%-q(KG0qg}l zSmO(L^?gQBU|T*ZVSL8TjevOK7{Rp?v`pBhCgwMpeZUW9W|M?=2W@48-WNtXIzKx$ zpGceKyFV+Y-PY2IS5q@7YZzK|3CDUhJ3CwS@FC*T)`JR|t(q^~EIpZ*3Jg6C5OtIw z46=QH)$2?rA{3_u0=)yth>NJ-cK!y`W9G`i<5a9Tb3y1lR+}{LJDEb@CK)SB_njvl z7YZ_B&2pJJA$0lKi}?;j7|mQnT@x}Ue{tjJV)!hhC(rHl8czE9p|>S#^W;~p*L+SK|k{fbYTw=JH5+wyu*cuKR@wgO9A-NUGa(&EK^>7669%9CDY3)=p^J}Z@66$2N!Uq^>b@9}8S&jO41SEP7(230Ab z*6BuZ6!-PF;1!=^q}NS{1~ntXYF>ne1lS9WKV(HHF6f${B>UQSe2yWxD;+tT4AN#9 z37Yt)>@ma;J&|~=3cI*Y*aU2>ARrkTnK||E%zZu@EKRhsm+o)WU0Er!=(kr_rZa|k zzqkwgpgd}Y@)Mh*!26}ah|XD;I{Gs$$S8QrmTwO4x>|~bV7MSxFk9F|^TqK%r+)u#Ui*LGif7eq zVM-(V)unblOob54&GfO6s$TQQ8}p-m{WBQ}W^i1W4A`Wg=jPPbeRxzL7pMqpXO5^! zK&QhYm!NL--qub}HSpc}_G) zOw24SoT=JcBnmQ9!}vN?)NVXw!NrHz9H_|qK(}A28okxDwF!~1E$x$Y!DO;S^R{%R z&~3gid@S)5k|ijE#k_uEJ&Km|{R2b(KKKL#fYHCr=JjC}1&Sr*UAa3tDrzKjMa>%8 z9BXx!a&mHd#Dc$nU;f}V;@;mb4Q`uoXubY#xAF`mO2%%7zW|D1O^EzQ_=?25X#b&T zB(kP>hxNN_4R2RCrwdAng^QvU>iwnm;D4^-+?D zKPEeJsp>D|Zk6ERAl$v&bv-K#z1>|8xaiv|s)x(9C^I>Qn;oGVNdvb0UKab0m zVB|OcO8vFR)2*`h_AE$DR9I6JTVc>#W88tNdgB(KDaE@o6;oyC;gz7=N!dVN%B04694%x+I)V#onP{Sh))$(G&fk7uj4KSy_8;NSFy4dYg<$A}G*E$OPr3_nN z&~AW`fB^JJ(odZ~FmODO$myfgdPw+>#Q;6rOGLv1Wd$Ke5==2OyDl$DP!D3vIEb-} z>E%xFV(DAl`wt&nem`_g!Z)7eA=T5G=^C*&n9ONG$l-ymF=e95 z8LbsPWWm&yZy<_p;e^eWEmnw@J{;wJ*aG-3r7OITsTSZC2yYLS4Zrt2^ZqL4k9qsg zwa~)`><&600f#h9xzn?-Joh{LryMFL_sRRb41#O?(8nm0T2JPOBp)w>#dgf19q&35 zoQ21b3<{H$>7%)r0=y9S!Z)Ak3oKYrIr_k})sR2#MRcTZiTjr+#V*ZG&1GfffL3#; zG0#E_wNwr8;9FB$%fP^pZ84I8|MsoZ!NMm{liPlOkC896u$X;&xoi6)WdA>iov_O1 z$jeXaw*;4Ir&@Q!)EMz_($;~Xw`FGZXLWUahg_M_n!U1bTI@=kRvxN4Fhj3(~0N7`V_dWnSVTq2tiJ+>m**%T=dq^&bx7t7Syk zjR4bLelDPK8W9>Q%B|#R`$s8g_b;1YtM^c))-Fc-t!nN`cbnGx2#KBw4zmSIq`!R$ zv%eZD5nvU*2yko|ZJ@bxfZXP}*i37d>DFhow|~y?HD}?6IEWOYJ5?;BQlUG(*Nzr9s(|OJc&oG0`Y#*!A=t!r4EA^b+Kevj=|{W@ig{!7Jq9pGAzIir z%}|2`-dp05{EXHiq@iPcG)c6yv?*8S78ZD>$5*NR?kvUNX6)o3dm(!n5!OcMU)zL4 zK<9}9KZ=J%7=pmZs%SPKPG+;$qDS%tg`ncRgBA2qgicJ0poSO^-9q49t4IpoNEV#8 zAT|+)$nFd-9v{|IIRo!^^Gsp<72eQo_t57A4lTzhiO;r&F5#8tq76a{YJzG`7>CpP3V#E2X#@nf7)WL8(&3+JJIAfz6fR(FOS6uPgev*Y zTPEA-p%`%sX#Dy6_Z2yDf5sez5ky#aLB?jo!gV*;#5|`{<#qV1uW{f+e zt??2>h0-vnXr~-L^1-^RiixF-)UQJ^5^f-D4%GInWb1$>*&LoPE{|B$9O~U0f zA0{RL77YPkHPY9y8h8A_kgqftDKjYe=+XN0eHs^*AGx5H0N~L5D;c> z!0&w7%f6oiyW6;?1B-Y8xQ(JMm%X_zvf(D(;ENo*t;?&6HO=Wz9NgEbybkmn0;sLR zgb_bFe|&Xv#>FA7T9N8bhd&G9(|tGZ_3 z?q3bN+n-97hi9KY%@$sjlm%IRZu7mnJWn(j@)g$ofg*gheJ2WV!;rQIwaW9Ul z&+%GMGTRqaiLGH7JU6rvJcrI9A9OusmJ`45TxvQZepxbUas`@X)pPn7}}0m`_I zl$`bz_eG^ar(OKQqx&U_F7R0y{;h)-4LFn02J9wlKVd(k!n$Fw%-s@>oO$#~{!Lq} zeAJf&c$7at_-LUyPvn!r`I=ne!*;w%*B!zC)MkeYJewITpZ5vCw8HzW+S#oa>Z~YfLS7ImdY`BqV%2aVWLkUS=#HRWc6u zGVojRqqP~}-KS~J3SoVbVRMH2`;ldjtYS%C$BY{IL%LWT1Md~|=32w3y*h`_C;n>n z2Fj@ntw*W}?nDhjz2H;jE_<0nJ}*nKEVkA`t_-d81Rq{PHWN`F-2orJ-aNF(tq+Cyij4R|P?*eEdxmu9gzQVV!*cLf)ULQ>4sKDD~z)f1jxz-)-@yBm?b&3Hf z$jb}A?Nt5o#|Rl z3xycWtsQ+|izd!(RSb!8D7)P39sgRKlTt3|b}-X{q_@#xj_aD9{uGH}u)OIONWqh~ z`zlV1srxoBoRQ^{EWHuM@Z0&V97;SP-xE^4^ymH^?JHe9N2jOM6-q#`+4UNQgXxv` zL!O@p=Bw}2N88f0eTTE#It$qfiJfaGeaDO&O}C)0 z&$CR>ogbPFj!Q9xDidJv&jBFkJPV>b9m%#`8z}}$3*b?Klyz|B3Z7Y3?LG0!sE1o8 z=V(?;xNv@F%lb3i2nk9{kLzlC%ZizHn2V%YPmD#dHIQP7y%M<4?0Qx8QgX>-je+N$ z?N`;&Q>PaPW=6-uUR(OkvyRnXh^-GvykP{Hay_OTswyf95gnfk6~CSBdcFcp`Z_qB zPoNC}vVv$dh~3AetW2v{jQjbA=8L@*a@GRV{T**kR75>g9Ca*U@uwUnGFW|#Ra@n( zEWFoa2P`G|7XVOgbrETWLNi23`t!bFUP0D=Iy~g{AcMXZxh{lmTY7-!T0^aW9%4V) zzx3-sba;1OvMs-`0kk*+J!j*GRML6^?c8PFHfd_tQm3-~XhSdhL3$jp#6Nuvno?H;{yC1Bt?5LGjG&^q%pXQMNX3xWFeo}}#W3Y+i zs^UoHilBZ3q8_;umJKAax?5H{7g&g)DMK1d8Iwg<_3^rVN;R!nh-)dNg7^R_zXlwO zo7)aX-r9Ovxb8P|UG)Y0!@w++Wt!_M3IQppyt493uU7Kh(U3k<)U3L^w3-@hmZt5m zUM}#zuG6qiVWF!ef(o{r)A6-RCfh0sN3o*KTJI5Ze2EUd%`Iuzyoc;V1cTSN5ldio zZ9Y!Vl!`}mdf91GzBTE*0>S+n5AT!bNuF3lkdT@~!0unc`toS!2!QS@q6ssxR21FV8ZDPKK-J|#x#El?Qo%SeD@Nk!$%_zi6EhNPm;a6KkpJrd8}AOEQTPB#grFzL?@%*gOlaFPBO^T<-A`To`>Z-FjU?!t(k4 zm~-{G=WwMIA^dHq2*AG$_zpWkBP3)}#;30IF&4aCKr}2FBbtmJxMJpRs6JQi^tiU1 z%<;d+eu_eeP9;q#(CbIZ5i*c!4D|wlaPG|@j?f&BR+8bsvP?_z_Q-wj8kvx{w!--n zdIx-}LoK*JcZq1|rrIK{#m_@``^wja}2R$?dxQ_xVU35czHK!=;n_YRv z3xxywOhr}DF~zvA+h1b7*i*{PXcd=F1XL+y0p>jDXMG0(QTlLF4g{76-@78wCw{ARco288xfsM?cs{zf z@+Oi2&D;I0-z48-NoQkY!>zJXG9Xgk(Wh9&lUkki^>^+h+*!9ztfSSw;^OGYD$CHA z(VG$iQUUYBGt6&vdM=dI3cq)_EZgM{NH@-VwKgh%F&$0jEHjhWFb*sElBZF7f3qgk zZ|_jq37%FM4GQJ`3KH>xh&99Nog3mbea{YAhIO+v?VOse`wyCnRNKmOS)qu^tBOknwbr? z8YEgWUt6Q^6|GE`>fPuhCpD43dL`oN*%*I?S~R-TzLXwlJ%KySn5S-D!63xx`hkU_(e)gr~xRHO;4o z-)ARZsFYtU@|`W`R0tAzZV+NVS909}QwS}8tv1!i_X3_i!^bB?mDz@cEngl?;FD#) zhlA2Bd^T#X&dbZEnHU&GiOI=?0k=UWow%u-HtPaI{rFWSx9^R^(@Rd%G1i8QyT2nf zxP_$B1U$#SG-;Ayb2LL9=aBkR$)nseuT4Ze=D-k6%=h^z<>mDjS$}*Y9gc)bix9q< zv&{ayMqYmY@n-YD8wB_AM0C7^)H(h}tpn;iJ7a^kDCRcv*EgLwzpen+X-GWD^W%_I z*vOIzIUc7Z`uwDpPKqQJJE|}(@5tzO0 z`Hg<|i%xvPAM7;0Wc@`gjcKv(w-H_?$L_N}8nUvo+f(HvvUX=%%%?UA*Yr4p11Mm; zUSJp#8CHN)? zVi5S!Yx*_2LXLYK_fa5su(pLk_u z1+;g2ZFBn}hyd}Hpy}S9g7}TI@Un^G1seH76A8kGL?m6nV{pf}eT~d;|5ic;zoLap zM_aOe3!v8JBd)!IB9?j-VZC_HLqq<1677_}i#h|JrcgI9FMnrsmILpQg2>rqF||8w z=kOl2K#RgURMF|^NJ$~eZ}Q3~|4LSu>hIsbru(p{OvA%COz(0L7@oh)?>vB9ylCki z1H(@yR)x37EUzYKX}SYf{>mg$^6~4RU%G1omh)nM9Bl{Wm1s*12ecC9XucK$4s&iM z5`mD47lz-3KIRybIjSimeX`j)lhvp;kLXF@RXsAfQ|GNP(t{}n?! z=baBSSBtFXYnwE@sr#?^|9T|n)D`71H%Vm`@jofXpMReG&jo?Uw&EA(o8L*UVYi;ILb8Jk^=<=tG zg6yW{IgY_NIv?N1r0h4e$0RAv#X&ts8*VB9VItwN)B2$BFYX$$36}v+Uixr%MK_$0 zgt~BYaPZ8}CuU?Q%E`ZK`*`?mMbX6V0-;M?^IV(Cimv2}ytudn7^OPDICN+jRg-qC z>N(p_uB1O>rdBjcs%$v3QG-%ZQ=@rDlpvGbmh%v1W1buawSwrFm}(-z)t@ItBg?>rn%-meEk;P*g*g?FU2Z)8O-v7?vQHD_f1zkgT5zj``d9+F~W zjxj#(H$fH+=mhrbNih73qFvK0i?}S|kQ-Zeb>btOleNt8#76xB&)N(pJ(q{U&aJ)O z0c3ZH6;(tsYf|&Wqj~%oDw|pg(_V+O+?7%+<(GN%E0tZM+<%;E!_$93{sr zExi7>H9mGX9SdR#(9OFrI-GU}YRw4u^E6>(K%HYJ>~_YL-dxw9%NORQphum66mc#T zi$Sfwc#A-q0)MmE18~45T>1n&s`sg?>XVj0+gS(cow=zg(ztDIyFW!lc&ORoGnxyZ zy5}?C)_xfOo3N!z{Ck7_Z6Tk$67Q2RikAm1$c#s;Tds11`xO5ff_y3QsFtE=M4 zpyWa{)<`PimvY3#UyO$>)!EY0Qmm&>tC}6olGx`E%nI7XRe<;^RYg)|;aNI2Z1by? zZ)?CZBLINjA^|EX>om%ZC@ja&RSkJAT0}%dS}GRM$QgC-;gN(L8;kJK$m$Zg(k9D+ zUI9Ttu=xI`jCGvls0@7Np^L;^y-SZSdL(v@f?|PxS3K0GF%O&Vj64)Lh*Ds>%b>k$ z`;a-=4E+a0&Zf31g~d)fPnZbJUw*<1G8oyziu%O$Wzxsp7B+J23P%>*=|NwG=nsZ&?iC9I`+FQw#43`|SU`bJl%@68dM0olidAB!JTyIjoiM`= z8^R^6kn9&*m|?u;{~+0^s-SI9GQW_uhIjkpwoG*xjCWmSyYD2lbc7W|OdVI*nA~A7 zmV{8`^A+)xCv-z5l^fc82td4%O&z=3?F)U*9>@QD3;T_eoiJ;!AQ2H?CX%?wuTIAW z05<2Q1TW~ul#R#wh|+0dA^DoaNUQpx?u)^+rJ{_zAexwuGBzBr(%`~S)_{M5yyf6R zub#nCxXyBiZ@V>-7uNTNv-E9U6D#Nlmz$uwyG+eKTA86gMfYu@KlSFFK*bI6o*z^l2H(Rw4nVi4nh#v`f z{0ceQZb2e!;czYlvYQXfY!$COXuY&u+aetl%#-LyxVAp?-rKffzTTfJ4|}__x$zd| zXcHc`y^!BJ3F+*7ZRojQnX)3p=FA6p?y{Hit)if*KAuZYWX4pEF%XTci>>095BUI# z&_!!Kb$bZJ@cwipK;MgDL-=72%d^?+CR8mgy0&DtjEH?miiesE;HIR52Or z<#Vht^k*J$B|=;9y;nX#)3p25gR^))mkH?D9fFE;`gxIOL7 zejCjF%gdglzIgpr60Un*lOXb;19H6#y{V0gCGAIn=mE0Y_jj)da`X{B@{*F>1jCj$ z7*~^=-QVsWdLwe}jXSI0IuJKc|1AJ=?0jx|h_UUVCSEII zw`#e%rg{{r$NxiVxjCI4#+xqC+f|%WJI}@|afv{k^vaA<$sxDH=8ooAY28ncT(2b0 z*gcJj@X-jG9l15=t6~eAOBgY>`>mLtk*bCnwmo0+J-(JXZQr0P)wQdBbAH`k##(L@ zsk+AcfO8%Z{@Y%p@tcE^S1;C^fXtOV!u=bA>)ua0rRG;(C~U8(6Y-SI=j8ulj%ci^ z3K%SJvx;H+JU{akslt{)3ypHXjn|fi{oT-gE1w4O&%8HdbAtrCR7ysx1034K8r>~D zfpdrgw+W^wqRLi|kK^tAHI$lS(?^nx8n#V}pSan2gbP{K4ve^T9<@%hjo-V|MBrlS z6g?25X8rr$50}=Iwe$krVVTJ!0>zlk-VKQM4}xEt*9g|7{&$qpnh3nV(++de7GR~95r=4X!?$2(~@=sfSvKG4dA z5eR$ttypSXJ_w3Yn~fBh%Nw z@=Zu>{;zD>FP~`g6{yP&C%%8O4K72!kc1}q`!4H?eHaQbkl_AO6lQLhtI0jL|7w2G zdeJG9In(Y|zu8ypx&#Ytf&Wg?ZbnAWHaNG=7RBzxWYLE5uh&1(CS-6F)A=x#HBN1? zt}B$|X3Oj|w<4f{SHE9lOo#cJh|NFs0~W?O5|@;4z}|~-(1G6G%jacqgKXbL2Q@^h z-{SW48}KBJ-OcVCiS?M%S4=tEC}%Sc%t@M7b|U}9+2{j>ke494Urmgw94gZoSrIw8 z7RDsx0#2$Z9!20^@A2rC`dFL>Qg3|dPmLE|T`Sw^#Z;^7X*CFYm=>cRNlrJ512NUV z=p%u>w|7s*sD_Y0?%MT)Act`7KwEzSL>3rHZD>>JanRLJrK#rw;TFW7=R? zUFAaO9|n_n!R0C3w$`^n?`uG@sH2O?7;wP$wpr5BK^D_z*D zgk0m|qB}Ttt6Gf(wB%U3f>#8_hzj{+niqKg)E%z(tApc> z-4&BGr(soO`(i#osmh89<)suoOTD58jbToiy@K58UNk7`pC~~Y0oKv*>ynqk9Hk56 z8SpDb-q2;D%_&oYLfi?6h5eO=UYnJb-oCb<6$)TnZl9@lMj;)BFSBNW8hO|@ecy2P z)hOS50@&LhVeMIPelX~k3JV@1w^V+J@Vj_Fqb-{lVV-+V@;0<)UNElwBI7tIX_Vo& zW?Ng}J&zsODl@eXFhN1BNC~p<(QVik2E@vqlCz=tnLfDy)CN`GIuuQXd(9Prrp$RB z4i9a*PV1q6*b~ZQvX?+)6X$QHA~mM%aOoTBk(fosoO7x^2z*)fQ)c19Z2&vNg{*{+^vrX_Z@X z)MhSwoGm)ni}pWXxv)Jfx*ogY6{R|nl9aIs5iS-JGqzQji;r{+jUDpBD@9$}2tjRb zfGc?OnFXo4@sp<G+6B7~XH2xcEFwTj#KM!cLtj_|s8B!Yu%cFYzjG6pf{yk^(aWXYNilOI#D2;> z4@=PGy|>v+5U{(0%sut^hEV!!hpt~c!pyK;LyQ;SHT23c;P0K*RG6Pl-E{ie*?I!; zrM;3&EkfbVkKml4SH^P^Z(kYLyQ169XeY)_|Mfpk`@Yt;!K(+;R{ax>TC1s>2s91Y zF%*p(&2903O4@XvB~dS@kl8H8{$MF#izWI31;ATPHzR|U<89?UsG2+DxQcHls=Q3H zZ&kfR(&_L5_xZGOu^PwMFQu*m3mn3%KQ@c`OGw%|3@=#RFKv4sa8Nwb|L@G`R=BW& zX=s{Q=ZWnTohJ)?a6j6}Z(KXT_l6uLhh2V~*Q~?d`bDp{_bl!!if|*cd`l+dC8f9G zpnOVI{0KcfxBvQibU7jBtJ@!?z>Y}k6>`Y-U`g?F*lf*e|GFIGzm}#kP=YynByOM1 zcFziujIw>gRv2j*j>4oLg>J$B0@+wuRei?r|#tb(PF z-8&+Uum_KH+mLsUt^1NOn0qwGSXdx&2?~9|)irWRazWH-wiBa7mW6B>Oa`F}q3{g-R zj@3xZ$<%taHJIAR9Dc(??uCjg(Z0mBGQ-2CqM;$-=EkF;p+PfI&{KMry|fc@Xo75T z`MtHPeB2$ke{~7lG}WP*ayZtw%lSK)yn?9Jdp9~B##L{ zw04$W>@nZf{o?vI9}dv(+QlK0nd_fP71+m)%Ps5;+&=%sF} z@(T^cPN=*L@LPTdI(RrWVzC6rC*$yj{Xq6v|)N^tVf>Q*Ttw}a304KYMp?k-=fTzC;3PMw`1%scH<;+=<@A>S_RD*6$ zGac|OKfK8Z7YCOMJFl3>yc`dDl}Hn-rmW~84FaSim*a2?|J>tY>hZl$%4D>MUYUcCTzb#QXubaIX4sl8UyOjP_!oya}%U#YG zwqgqhFTSobIVVfxjBWg3fTkI70i9J+{l+qFZFDdSeE8Z-6XVS_Kud{8878c@Zi&0U z)?z$8t=|vS(GjPm)nQJTXf+p;T+nu>wiujV;vP=>1c&r~JXqdxBY9zb>hKpG<8rjrgo`&y zcHIGx1MomP^zfy`-IONzkt@r8l~am6TG+opXdhCP?0Gwg@JMkc!-PE@z1sV53|CfJ zR6w^Isr;S^4P`H+XC-B^Op3LGNH(;jP9E8CuLV5N6v@<2=iiJq4$Qsw7u*SiCtv;BFkl&Y`^&SlyiwLt3@ zht`j<4lCHqqOOVw&5V(QJ8WiD%W~SGHy|;Bgjs#f;OcBVA|4jXm>cuC6?~UnuQFHj zEmuN}uB;%1EIXxq|Mhb0y4+p{@;PQPD|bFTXdnFoT@LKcKK%j>EZj7E4`K!G_gPoB z`_z7E#(x&~yXw$T-=AXrF@D`1S@bT(mZLgHiG$b9-q%_-!l$%U;WMtJf7b6DV!teq zFk>n1v&N5UWH$pc`?HZPIkLA1zD`lpm!itrx)SP^??7r9_ljvsbS*6T{+4L?pnbm@ zy+X%X=nj6`CwYF#e-c%MJ0mV zy$hH3x4}(zFnNtvE3)Qm*Q%5$GJ3llx1M;Pz-lz?hk`b&2bNP+Rei@97dI=# z)uqulASC+LmJQj>wKrQE{8-q8=X>UixR*WC=7z2D^HiJP@#;^s;sKADg*kSW>P@3B zt&%Wlk*Vj*RL>*BH!dR;K=_*(qmj&mf?_f&lD+J(sBVCpg1P*xiTtk+527!br1Ggv5Py~h1`6v`30Y3j6F zq%&_q5PT47oB9NC)s1}9thBsz$7u5Q`hpi|d;3AVoqJl}#Oz0@W_i=QGiIGyb6k_2 zNLo(L+KiPSpF|CjV`Q=f5>K~BlY)XQx+l_IP%}cvstsa86lKjHuA{#5okrmBHh2MG z_z-XTlm;F|fE9T|BApruh6yh=B-~d{DbrkSKNV~9>^Sk^G8nR#nPyuLJ3%0YOZ$AUv_onql37 z#csDf1wA+gCo(bpymg3@Kkho;Zz*jv2Efp1!Z{OHKTf^zKeADTYx3Wcs`ky+} zRP__I6Mv-nII%WYD7?9ATcD$Gv;Q+P5{26p^o{hl_nIWK0`riR#%ZD03fS#_lgw4Q z5#Z7Qw1?QVF-aUQpwNC~ZvK&{$;ru^>UCrsoSgM09k!hZ%OxwttECj>!qag*dJVNY zkpAYbhbFbh@FUze_v^fs`Fyj9UPbctyGjA!sGFuF>XFz`VlS5vG;AvZvcDZ_u86er z;Z!a+t}2rDFK8?Sn1GfskD4DI3~*pkvzsX8aM_#jk}M;xY=!$=MFAi#Lac`Mr-Xw$ zAJY}39HU(a#`;raUHH-sOazS1G}bi6hgK*z`Q}$o7(px~#ucG6bps2;>fErQw&Wq! zkG+}w*8aMxpl~`7HxZ&0yTNJ359QW%uM*0S&2M$?QhrS_10yYd>}M)xcBsWd&_q8) za2>6M;k)!%&1vh3S8b}PP8B&pN_aQp6$UL32O_rP^@>gXC5BB1JishC_r>KiGt1MUYnlCeK8N~)|7Bg(-^TjrHPh0)Z-w$)xUa%!S4-fdl8B~4o>Tp-D z#%$niMe_mQ5MW70cDh$P(xia5TuRZvkU%Hkc}u9m!=BpLg^5;WyT&R{E-dLW5I~Q7 zYY}>X4VRy{QK zCWI1GUkDz7{1#8sI;IFUy3}zsz~!o5*L7;s^@5cErLGtH-qu#IVj(pLM{NHtvE5Bf zF8$6@F%J7m2HD$jwd({#3uuM%dkR)*cPVkXbxXqhYOd%H@SEdfM{=Gb2D?cX_^qQcyGV;_W;so|^Pv8fyXdbq1YZ7E-ePLz=JQuJrba>u{dG?m1;ZQAWI3PDS7iC7^ zl9H}AIoLX=eVJ1KY6qLnP*Bw8y6sTVyffkY+_D7P<=fsURcoEAx$S-ox;C(F9T`J5 zfN9_^EO}aYeXy9RHwo65AfAH?-q|!<9P$-M+D<=RC zs%}#w(rP$WzKl#SDILMZKB6wHN_z(ge!t(0a#8VoV=)r1rfto0*3U>Cte9!TbsZ5A zv9VwHwMYm`F!wCq{BUdAq$xRqx1tR&Z$bfkefdyIl{JDO969(=bGM1}$Kc2Po?^)< z+P@x`wTFX`a-R!@c5$^H8EuU7WVdY>ObWm-0kvwFMhY(0OBjdv$a$C= z$nS92!$>DqNF$sKjA0^W^hE=BVf#W355i^SjRYGjTV&1k71Btkp@z&uu1~__k@!FC zf3@qT51aPHHw2%k$ARN0QJQ75 z$tLyC@fhgY@==AIV|Jjz^+>L;)V8*^!`PKIn;Lr;5J@Zp=(^-i_o^rhUx-+AJRSXn zh6`{U{>;}an_Lzr+&18weDCrX zZvd90evkkce~=`BWL>0X;fA8dwlg-XH26e&if^M(zKue$FM>p%HjYBlp!M}imlf2S z6K~*QXm36EDiuX7XblzcB@(MoXpC9n${#5PuO+DXb#V;dI)xH!u9 zjtY;OlF|ZT@wMh=gTsA%&iMMmN1p?bN1)06+O=O|nbTyY^R1V}en$Ofbeu%b7Bu8qN342@X z0K)X#RjShwTKvke?RxZKXG++Rp6so2@v9<~t|j5MjrPq2At zTI}gmd9|bc6UUP?h6z2Hio-EXhAYMTb46xe%H|K2UeF8Vm4Cp}t+VQyi5>fVyzYhb z&=ORzxLK0F`6w$FL{$AK&vR#MIuY~%20DCH_0&1=2J?1Db;x@_sYeH3<7_?L&VZpBbClZeU#C+sn3pbBxno%OM*`L#*jrR^W;cAIZ`Oo!W_|J7@;RS@4B z)4@lp&KLM%;)>heMhu8AIC|EM8?^KPxi^fC5m+L0dsNqGHokxNQLX4}UiO?i&1h5R zKrU6cm6DXCZ$x?da)yn)eqAoXkG6r@|Le~9l^+1RK?apSnaYunYebV<=kgoNzjl38 zeBW;>wJLt3wjHgmXNgu^4vvf2Tm>nQwUC~Sv<;3);KJhLO@Mk{PF+14u+bBk$7>K| z{Jj^BI)xp_YCO`*Sv__gv?h4b;Lm?9}7=M>0gVbW9z35E=)OCWp}m+JKFMgeA~Y14#9Sppaamk?N@uLvIzKVZoG;(hi4mTeAr&=V6sMcx8rs+j4q z>@WTO{VnxY03YLsKzM6Sfm?nUJtkV0+aZz5kUDs=?j3lo0$Z;aumiD+zJc{%T?LZ_ z_1p7d#xbeu=gzb`^AqpW)yZo>A8Jf_JRJyTOTMw#{_-Wn1$ zqF!2fn=15f+R4c1pGQ)&DoHO})-p<9oPuVl8ov_f8zJE!5eai3kHriL^Y8Kl+B^_? z>`<98^C`#Gzg{`KG;p*M5}za1w!7L!b}(BG9uu&$W(=bkw!zvX&qcsa#57+ zL_L!n{7w-@gJq3n@_y&s_f?f6aO(JF z-0vI^8QFhgKz6tQ%jHgfo82~CLJi;$|2p~G>AydCEp@?9O%x_ z5C;_s9Du+`s%L9ZDLy5KQ|E>P2Ce3p-%RYa6l{w9!xq>*)8c(d8_7#!TKm(h?LD=* z;m~F$C>_R8!CTKS<2n}kJi_F`kYPLv4)OPI6TcqqTPOBzVGq-`KW!s2rdKitJld{mky~Z ztI~COTs4D0&OH4*8HcpJ=~6d&Tkbd)Fi$ldXC2&V^N**6aMMiM%NoG|`*OYl&{WEM2N#!G?n5|Su9V>pT>p-b4I~&3eBwoqVvnO z_T}oUxO>U<>CWF(**IhDFW|k2s2B~9S3yzm4>)42)Mp2#)jE+X*NX>XF$Xy+fpvX} m`gucdz=nt delta 19263 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 B=ZOFS From 93ef7b83d88af85a6a8a15c9171d0b879062057c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Wed, 20 Feb 2013 20:36:16 +1000 Subject: [PATCH 05/17] replaced infestation slimes with spiderlings (with 0% chance to grow into giant spiders), reduced spiderling noisiness, made them less jittery (easier to squish) Signed-off-by: Cael_Aislinn --- code/game/objects/effects/spiders.dm | 26 +++++++++++++++----------- code/modules/events/infestation.dm | 21 ++++++++++++--------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index d357740a6f4..68f57112cbf 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -95,15 +95,16 @@ anchored = 0 layer = 2.7 health = 3 - var/amount_grown = 0 + var/amount_grown = -1 var/obj/machinery/atmospherics/unary/vent_pump/entry_vent var/travelling_in_vent = 0 New() pixel_x = rand(6,-6) pixel_y = rand(6,-6) + processing_objects.Add(src) //50% chance to grow up if(prob(50)) - processing_objects.Add(src) + amount_grown = 1 /obj/effect/spider/spiderling/Bump(atom/user) if(istype(user, /obj/structure/table)) @@ -134,8 +135,8 @@ entry_vent = null return var/obj/machinery/atmospherics/unary/vent_pump/exit_vent = pick(vents) - if(prob(50)) - src.visible_message("[src] scrambles into the ventillation ducts!") + /*if(prob(50)) + src.visible_message("[src] scrambles into the ventillation ducts!")*/ spawn(rand(20,60)) loc = exit_vent @@ -164,21 +165,24 @@ entry_vent = null //================= - else if(prob(33)) - var/list/nearby = oview(10, src) + else if(prob(25)) + var/list/nearby = oview(5, src) if(nearby.len) var/target_atom = pick(nearby) - walk_to(src, target_atom) - if(prob(40)) + walk_to(src, target_atom, 5) + if(prob(25)) src.visible_message("\blue \the [src] skitters[pick(" away"," around","")].") - else if(prob(10)) + else if(prob(5)) //ventcrawl! for(var/obj/machinery/atmospherics/unary/vent_pump/v in view(7,src)) if(!v.welded) entry_vent = v - walk_to(src, entry_vent, 1) + walk_to(src, entry_vent, 5) break - if(isturf(loc)) + + if(prob(1)) + src.visible_message("\blue \the [src] chitters.") + if(isturf(loc) && amount_grown > 0) amount_grown += rand(0,2) if(amount_grown >= 100) var/spawn_type = pick(typesof(/mob/living/simple_animal/hostile/giant_spider)) diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 04dc7d46a17..8cc42d32fd4 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -11,7 +11,7 @@ #define VERM_MICE 0 #define VERM_LIZARDS 1 -#define VERM_SLIMES 2 +#define VERM_SPIDERS 2 /datum/event/infestation announceWhen = 10 @@ -81,20 +81,23 @@ spawn_types = list(/mob/living/simple_animal/lizard) max_number = 6 vermstring = "lizards" - if(VERM_SLIMES) - spawn_types = list(/mob/living/carbon/slime) - max_number = 3 - vermstring = "slimes" + if(VERM_SPIDERS) + spawn_types = list(/obj/effect/spider/spiderling) + max_number = 6 + vermstring = "spiders" spawn(0) var/num = rand(2,max_number) while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) - var/spawn_type = pick(spawn_types) - new spawn_type(T) num-- - //world << "[vermstring] spawned in [spawn_area_type]" + if(vermin == VERM_SPIDERS) + var/obj/effect/spider/spiderling/S = new(T) + S.amount_grown = -1 + else + var/spawn_type = pick(spawn_types) + new spawn_type(T) /datum/event/infestation/announce() command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") @@ -111,4 +114,4 @@ #undef VERM_MICE #undef VERM_LIZARDS -#undef VERM_SLIMES \ No newline at end of file +#undef VERM_SPIDERS \ No newline at end of file From b1c20c32d74c408ce437fc4ae2da3f10675040a5 Mon Sep 17 00:00:00 2001 From: Uristqwerty Date: Wed, 20 Feb 2013 14:47:32 -0500 Subject: [PATCH 06/17] Fixed infinite loop in powernet rebuild. If a /obj/machinery/power wasn't anchored, it wouldn't get a new list of connections, so would endlessly loop on the old list, of which that object was the first entry, ensuring that the loop would never terminate. --- code/modules/power/power.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index f3418c8feed..b94901a6373 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -186,6 +186,9 @@ M.powernet = PN P = M.get_connections() + else + return + if(P.len == 0) return O = P[1] From 35bf0648ae838d16885fa8f6459fcd50e88a2210 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 20 Feb 2013 23:05:48 +0100 Subject: [PATCH 07/17] Fixes events being broken. The proc to get active playercounts was utterly broken, which led to there only being events that needed no specific requirements. Fixed, and made events more common(the only reason people were pissed about so many events was that only the annoying ones would spawn ever). --- code/modules/events/event_dynamic.dm | 65 ++++++++++++++++------------ code/modules/events/event_manager.dm | 4 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index 731cc56551e..4366293cd51 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -73,6 +73,15 @@ if(!sent_ninja_to_station && toggle_space_ninja) possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5) + // Debug code below here, very useful for testing so don't delete please. + /*var/debug_message = "Firing random event. " + for(var/V in active_with_role) + debug_message += "#[V]:[active_with_role[V]] " + debug_message += "||| " + for(var/V in possibleEvents) + debug_message += "[V]:[possibleEvents[V]]" + message_admins(debug_message)*/ + var/picked_event = pickweight(possibleEvents) if(!picked_event) return @@ -160,32 +169,32 @@ for(var/mob/M in player_list) if(!M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive continue - switch(role) - if("Engineer") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") - active_with_role["Engineer"]++ - if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) - active_with_role["Engineer"]++ - if("Medical") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") - active_with_role["Medical"]++ - if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) - active_with_role["Medical"]++ - if("Security") - if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") - active_with_role["Security"]++ - if(M.mind.assigned_role in security_positions) - active_with_role["Security"]++ - if("Scientist") - if(M.mind.assigned_role in list("Research Director", "Scientist")) - active_with_role["Scientist"]++ - if("AI") - if(M.mind.assigned_role == "AI") - active_with_role["AI"]++ - if("Cyborg") - if(M.mind.assigned_role == "Cyborg") - active_with_role["Cyborg"]++ - if("Janitor") - if(M.mind.assigned_role == "Janitor") - active_with_role["Janitor"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "engineering robot module") + active_with_role["Engineer"]++ + if(M.mind.assigned_role in list("Chief Engineer", "Station Engineer")) + active_with_role["Engineer"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "medical robot module") + active_with_role["Medical"]++ + if(M.mind.assigned_role in list("Chief Medical Officer", "Medical Doctor")) + active_with_role["Medical"]++ + + if(istype(M, /mob/living/silicon/robot) && M:module && M:module.name == "security robot module") + active_with_role["Security"]++ + if(M.mind.assigned_role in security_positions) + active_with_role["Security"]++ + + if(M.mind.assigned_role in list("Research Director", "Scientist")) + active_with_role["Scientist"]++ + + if(M.mind.assigned_role == "AI") + active_with_role["AI"]++ + + if(M.mind.assigned_role == "Cyborg") + active_with_role["Cyborg"]++ + + if(M.mind.assigned_role == "Janitor") + active_with_role["Janitor"]++ + return active_with_role diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 855e4d969ba..8cc24df6569 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 20000 //20 minutes -var/eventTimeUpper = 45000 //45 minutes +var/eventTimeLower = 15000 //15 minutes +var/eventTimeUpper = 30000 //30 minutes var/scheduledEvent = null From d477b7230fa161a22ab71aa2bc4aa6ce7e2fdbbc Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 16:39:42 +1000 Subject: [PATCH 08/17] reworked rust components to integrate more smoothly with each other, cleaned up a bunch of useability issues, made all relevant components portable, fixed some random bugs, added a mostly nonfunctional map to show an example layout (based on antiqua's engineering layout) Signed-off-by: Cael_Aislinn --- baystation12.dme | 2 +- .../Cael_Aislinn/Rust/core_control.dm | 142 +++ .../Cael_Aislinn/Rust/core_field.dm | 1136 ++++++++--------- .../Cael_Aislinn/Rust/core_gen.dm | 282 +++- .../Cael_Aislinn/Rust/core_monitor.dm | 78 -- .../Cael_Aislinn/Rust/fuel_assembly.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 125 +- .../Cael_Aislinn/Rust/fuel_compressor.dm | 156 +-- .../Cael_Aislinn/Rust/fuel_control.dm | 335 ++--- .../Cael_Aislinn/Rust/fuel_injector.dm | 460 ++++--- .../Cael_Aislinn/Rust/radiation.dm | 6 +- .../Rust/virtual_particle_catcher.dm | 76 +- .../particle_accelerator/particle.dm | 8 +- maps/rust_test.dmm | 372 ++++++ 14 files changed, 1992 insertions(+), 1188 deletions(-) create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm create mode 100644 maps/rust_test.dmm diff --git a/baystation12.dme b/baystation12.dme index 43610980ad7..adb5f39af0f 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1200,9 +1200,9 @@ #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\core_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm" -#include "code\WorkInProgress\Cael_Aislinn\Rust\core_monitor.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm new file mode 100644 index 00000000000..19d8e07dd85 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm @@ -0,0 +1,142 @@ + +/obj/machinery/computer/rust_core_control + name = "RUST Core Control" + icon_state = "power" + var/list/connected_devices = list() + var/id_tag = "allan remember to update this before you leave" + var/scan_range = 25 + + //currently viewed + var/obj/machinery/power/rust_core/cur_viewed_device + +/obj/machinery/computer/rust_core_control/process() + if(stat & (BROKEN|NOPOWER)) + return + +/obj/machinery/computer/rust_core_control/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/computer/rust_core_control/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/computer/rust_core_control/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=core_control") + return + if (!istype(user, /mob/living/silicon) && (get_dist(src, user) > 1 )) + user.unset_machine() + user << browse(null, "window=core_control") + return + + var/dat = "" + if(stat & NOPOWER) + dat += "The console is dark and nonresponsive." + else + dat += "Reactor Core Primary Monitor
" + if(cur_viewed_device && cur_viewed_device.stat & (BROKEN|NOPOWER)) + cur_viewed_device = null + if(cur_viewed_device && !cur_viewed_device.remote_access_enabled) + cur_viewed_device = null + + if(cur_viewed_device) + dat += "Device tag: [cur_viewed_device.id_tag ? cur_viewed_device.id_tag : "UNSET"]
" + dat += "Device [cur_viewed_device.owned_field ? "activated" : "deactivated"].
" + dat += "
\[Bring field [cur_viewed_device.owned_field ? "offline" : "online"]\]
" + dat += "Device [cur_viewed_device.anchored ? "secured" : "unsecured"].
" + dat += "
" + dat += "Field encumbrance: [cur_viewed_device.owned_field ? 0 : "NA"]
" + dat += "Field strength: [cur_viewed_device.field_strength] Wm^3
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + dat += "Field frequency: [cur_viewed_device.field_frequency] MHz
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + var/power_stat = "Good" + if(cur_viewed_device.cached_power_avail < cur_viewed_device.active_power_usage) + power_stat = "Insufficient" + else if(cur_viewed_device.cached_power_avail < cur_viewed_device.active_power_usage * 2) + power_stat = "Check" + dat += "Power status: [power_stat]
" + else + dat += "\[Refresh device list\]

" + if(connected_devices.len) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + for(var/obj/machinery/power/rust_core/C in connected_devices) + if(!check_core_status(C)) + connected_devices.Remove(C) + continue + + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
Device tag
[C.id_tag]\[Manage\]
" + else + dat += "No devices connected.
" + + dat += "
" + dat += "Refresh " + dat += "Close" + + user << browse(dat, "window=core_control;size=500x400") + onclose(user, "core_control") + user.set_machine(src) + +/obj/machinery/computer/rust_core_control/Topic(href, href_list) + ..() + + if( href_list["goto_scanlist"] ) + cur_viewed_device = null + + if( href_list["manage_individual"] ) + cur_viewed_device = locate(href_list["manage_individual"]) + + if( href_list["scan"] ) + connected_devices = list() + for(var/obj/machinery/power/rust_core/C in range(scan_range, src)) + if(check_core_status(C)) + connected_devices.Add(C) + + if( href_list["startup"] ) + if(cur_viewed_device) + cur_viewed_device.Startup() + + if( href_list["shutdown"] ) + if(cur_viewed_device) + cur_viewed_device.Shutdown() + + if( href_list["close"] ) + usr << browse(null, "window=core_control") + usr.unset_machine() + + updateDialog() + +/obj/machinery/computer/rust_core_control/proc/check_core_status(var/obj/machinery/power/rust_core/C) + if(!C) + return 0 + + if(C.stat & (BROKEN|NOPOWER) || !C.remote_access_enabled || !C.id_tag) + if(connected_devices.Find(C)) + connected_devices.Remove(C) + return 0 + + return 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index ec887bc1cc5..9442ced3a46 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -6,23 +6,21 @@ Deuterium-tritium fusion: 4.5 x 10^7 K //#DEFINE MAX_STORED_ENERGY (held_plasma.toxins * held_plasma.toxins * SPECIFIC_HEAT_TOXIN) -/obj/machinery/rust/em_field +/obj/effect/rust_em_field name = "EM Field" desc = "A coruscating, barely visible field of energy. It is shaped like a slightly flattened torus." - icon = 'emfield.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi' icon_state = "emfield_s1" - density = 0 - layer = 3.1 - anchored = 1 // var/major_radius = 0 //longer radius in meters = field_strength * 0.21875, max = 8.75 var/minor_radius = 0 //shorter radius in meters = field_strength * 0.2125, max = 8.625 var/size = 1 //diameter in tiles var/volume_covered = 0 //atmospheric volume covered // - var/obj/machinery/rust/core/owned_core + var/obj/machinery/power/rust_core/owned_core var/list/dormant_reactant_quantities = new - luminosity = 1 + //luminosity = 1 + layer = 3.1 // var/energy = 0 var/mega_energy = 0 @@ -34,420 +32,410 @@ Deuterium-tritium fusion: 4.5 x 10^7 K var/datum/gas_mixture/held_plasma = new var/particle_catchers[13] - New() - ..() - //create radiator - for(var/obj/machinery/rust/rad_source/rad in range(0)) - radiator = rad - if(!radiator) - radiator = new() + var/emp_overload = 0 - //make sure there's a field generator - for(var/obj/machinery/rust/core/em_core in loc) - owned_core = em_core +/obj/effect/rust_em_field/New() + ..() + //create radiator + for(var/obj/machinery/rust/rad_source/rad in range(0)) + radiator = rad + if(!radiator) + radiator = new() - if(!owned_core) - del(src) - if(!owned_core.on) - del(src) + //make sure there's a field generator + for(var/obj/machinery/power/rust_core/core in loc) + owned_core = core - //create the gimmicky things to handle field collisions - var/obj/machinery/rust/particle_catcher/catcher + if(!owned_core) + del(src) + + //create the gimmicky things to handle field collisions + var/obj/effect/rust_particle_catcher/catcher + // + catcher = new (locate(src.x,src.y,src.z)) + catcher.parent = src + catcher.SetSize(1) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-1,src.y,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+1,src.y,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+1,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-1,src.z)) + catcher.parent = src + catcher.SetSize(3) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-2,src.y,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+2,src.y,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+2,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-2,src.z)) + catcher.parent = src + catcher.SetSize(5) + particle_catchers.Add(catcher) + // + catcher = new (locate(src.x-3,src.y,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x+3,src.y,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y+3,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + catcher = new (locate(src.x,src.y-3,src.z)) + catcher.parent = src + catcher.SetSize(7) + particle_catchers.Add(catcher) + + //init values + major_radius = field_strength * 0.21875// max = 8.75 + minor_radius = field_strength * 0.2125// max = 8.625 + volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 1000 + +/obj/effect/rust_em_field/process() + //make sure the field generator is still intact + if(!owned_core) + del(src) + + //handle radiation + if(!radiator) + radiator = new /obj/machinery/rust/rad_source() + radiator.mega_energy += radiation + radiator.source_alive++ + radiation = 0 + + //update values + var/transfer_ratio = field_strength / 50 //higher field strength will result in faster plasma aggregation + major_radius = field_strength * 0.21875// max = 8.75m + minor_radius = field_strength * 0.2125// max = 8.625m + volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m + + //add plasma from the surrounding environment + var/datum/gas_mixture/environment = loc.return_air() + + //hack in some stuff to remove plasma from the air because SCIENCE + //the amount of plasma pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field + //at minimum strength, 0.25% of the field volume is pulled in per update (?) + //have a max of 1000 moles suspended + if(held_plasma.toxins < transfer_ratio * 1000) + var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION) + //world << "\blue moles_covered: [moles_covered]" // - catcher = new (locate(src.x,src.y,src.z)) - catcher.parent = src - catcher.SetSize(1) - particle_catchers.Add(catcher) + var/datum/gas_mixture/gas_covered = environment.remove(moles_covered) + var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture() // - catcher = new (locate(src.x-1,src.y,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+1,src.y,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+1,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-1,src.z)) - catcher.parent = src - catcher.SetSize(3) - particle_catchers.Add(catcher) + plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio) + //world << "\blue[plasma_captured.toxins] moles of plasma captured" + plasma_captured.temperature = gas_covered.temperature + plasma_captured.update_values() // - catcher = new (locate(src.x-2,src.y,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+2,src.y,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+2,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-2,src.z)) - catcher.parent = src - catcher.SetSize(5) - particle_catchers.Add(catcher) + gas_covered.toxins -= plasma_captured.toxins + gas_covered.update_values() // - catcher = new (locate(src.x-3,src.y,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x+3,src.y,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y+3,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - catcher = new (locate(src.x,src.y-3,src.z)) - catcher.parent = src - catcher.SetSize(7) - particle_catchers.Add(catcher) - - //init values - major_radius = field_strength * 0.21875// max = 8.75 - minor_radius = field_strength * 0.2125// max = 8.625 - volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 1000 - - process() - //make sure the field generator is still intact - if(!owned_core) - del(src) - if(!owned_core.on) - del(src) - - //handle radiation - if(!radiator) - radiator = new /obj/machinery/rust/rad_source() - radiator.mega_energy += radiation - radiator.source_alive++ - radiation = 0 - - //update values - var/transfer_ratio = field_strength / 50 //higher field strength will result in faster plasma aggregation - major_radius = field_strength * 0.21875// max = 8.75m - minor_radius = field_strength * 0.2125// max = 8.625m - volume_covered = PI * major_radius * minor_radius * 2.5 * 2.5 * 2.5 * 7 * 7 * transfer_ratio //one tile = 2.5m*2.5m*2.5m - - //add plasma from the surrounding environment - var/datum/gas_mixture/environment = loc.return_air() - - //hack in some stuff to remove plasma from the air because SCIENCE - //the amount of plasma pulled in each update is relative to the field strength, with 50T (max field strength) = 100% of area covered by the field - //at minimum strength, 0.25% of the field volume is pulled in per update (?) - //have a max of 1000 moles suspended - if(held_plasma.toxins < transfer_ratio * 1000) - var/moles_covered = environment.return_pressure()*volume_covered/(environment.temperature * R_IDEAL_GAS_EQUATION) - //world << "\blue moles_covered: [moles_covered]" - // - var/datum/gas_mixture/gas_covered = environment.remove(moles_covered) - var/datum/gas_mixture/plasma_captured = new /datum/gas_mixture() - // - plasma_captured.toxins = round(gas_covered.toxins * transfer_ratio) - //world << "\blue[plasma_captured.toxins] moles of plasma captured" - plasma_captured.temperature = gas_covered.temperature - plasma_captured.update_values() - // - gas_covered.toxins -= plasma_captured.toxins - gas_covered.update_values() - // - held_plasma.merge(plasma_captured) - // - environment.merge(gas_covered) - - //let the particles inside the field react - React() - - //forcibly radiate any excess energy - var/energy_max = transfer_ratio * 100000 - if(mega_energy > energy_max) - var/energy_lost = rand( 1.5 * (mega_energy - energy_max), 2.5 * (mega_energy - energy_max) ) - mega_energy -= energy_lost - radiation += energy_lost - - //change held plasma temp according to energy levels - //SPECIFIC_HEAT_TOXIN - if(mega_energy > 0 && held_plasma.toxins) - var/heat_capacity = held_plasma.heat_capacity()//200 * number of plasma moles - if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY - held_plasma.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity - - //if there is too much plasma in the field, lose some - /*if( held_plasma.toxins > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) ) - LosePlasma()*/ - if(held_plasma.toxins > 1) - //lose a random amount of plasma back into the air, increased by the field strength (want to switch this over to frequency eventually) - var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength)) - //world << "lost [loss_ratio*100]% of held plasma" - // - var/datum/gas_mixture/plasma_lost = new - plasma_lost.temperature = held_plasma.temperature - // - plasma_lost.toxins = held_plasma.toxins * loss_ratio - //plasma_lost.update_values() - held_plasma.toxins -= held_plasma.toxins * loss_ratio - //held_plasma.update_values() - // - environment.merge(plasma_lost) - radiation += loss_ratio * mega_energy * 0.1 - mega_energy -= loss_ratio * mega_energy * 0.1 - else - held_plasma.toxins = 0 - //held_plasma.update_values() - - //handle some reactants formatting - //helium-4 has no use at the moment, but a buttload of it is produced - if(dormant_reactant_quantities["Helium-4"] > 1000) - dormant_reactant_quantities["Helium-4"] = rand(0,dormant_reactant_quantities["Helium-4"]) - for(var/reactant in dormant_reactant_quantities) - if(!dormant_reactant_quantities[reactant]) - dormant_reactant_quantities.Remove(reactant) - - return 1 - - Del() - ..() - //radiate everything in one giant burst - for(var/obj/machinery/rust/particle_catcher/catcher in particle_catchers) - del (catcher) - RadiateAll() - - proc/ChangeFieldStrength(var/new_strength) - field_strength = new_strength - var/newsize - if(new_strength <= 5) - newsize = 1 - else if(new_strength <= 12) - newsize = 3 - else if(new_strength <= 25) - newsize = 5 - else if(new_strength <= 50) - newsize = 7 + held_plasma.merge(plasma_captured) // - change_size(newsize) + environment.merge(gas_covered) - proc/AddEnergy(var/a_energy, var/a_mega_energy, var/a_frequency) - var/energy_loss_ratio = abs(a_frequency - src.frequency) / 1e9 - energy += a_energy - a_energy * a_frequency - mega_energy += a_mega_energy - a_mega_energy * energy_loss_ratio + //let the particles inside the field react + React() - proc/AddParticles(var/name, var/quantity = 1) - if(name in dormant_reactant_quantities) - dormant_reactant_quantities[name] += quantity - else if(name != "proton" && name != "electron" && name != "neutron") - dormant_reactant_quantities.Add(name) - dormant_reactant_quantities[name] = quantity + //forcibly radiate any excess energy + var/energy_max = transfer_ratio * 100000 + if(mega_energy > energy_max) + var/energy_lost = rand( 1.5 * (mega_energy - energy_max), 2.5 * (mega_energy - energy_max) ) + mega_energy -= energy_lost + radiation += energy_lost - proc/RadiateAll(var/ratio_lost = 1) - for(var/particle in dormant_reactant_quantities) - radiation += dormant_reactant_quantities[particle] - dormant_reactant_quantities.Remove(particle) - radiation += mega_energy - mega_energy = 0 + //change held plasma temp according to energy levels + //SPECIFIC_HEAT_TOXIN + if(mega_energy > 0 && held_plasma.toxins) + var/heat_capacity = held_plasma.heat_capacity()//200 * number of plasma moles + if(heat_capacity > 0.0003) //formerly MINIMUM_HEAT_CAPACITY + held_plasma.temperature = (heat_capacity + mega_energy * 35000)/heat_capacity - //lose all held plasma back into the air - var/datum/gas_mixture/environment = loc.return_air() - environment.merge(held_plasma) - - proc/change_size(var/newsize = 1) + //if there is too much plasma in the field, lose some + /*if( held_plasma.toxins > (MOLES_CELLSTANDARD * 7) * (50 / field_strength) ) + LosePlasma()*/ + if(held_plasma.toxins > 1) + //lose a random amount of plasma back into the air, increased by the field strength (want to switch this over to frequency eventually) + var/loss_ratio = rand() * (0.05 + (0.05 * 50 / field_strength)) + //world << "lost [loss_ratio*100]% of held plasma" // - var/changed = 0 - switch(newsize) - if(1) - size = 1 - icon = 'emfield.dmi' - icon_state = "emfield_s1" - // - src.loc = get_turf(owned_core) - // - changed = 1 - if(3) - size = 3 - icon = '96x96.dmi' - icon_state = "emfield_s3" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 3 - if(5) - size = 5 - icon = '160x160.dmi' - icon_state = "emfield_s5" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 5 - if(7) - size = 7 - icon = '224x224.dmi' - icon_state = "emfield_s7" - // - var/turf/newloc = get_turf(owned_core) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - newloc = get_step(newloc, SOUTHWEST) - src.loc = newloc - // - changed = 7 + var/datum/gas_mixture/plasma_lost = new + plasma_lost.temperature = held_plasma.temperature + // + plasma_lost.toxins = held_plasma.toxins * loss_ratio + //plasma_lost.update_values() + held_plasma.toxins -= held_plasma.toxins * loss_ratio + //held_plasma.update_values() + // + environment.merge(plasma_lost) + radiation += loss_ratio * mega_energy * 0.1 + mega_energy -= loss_ratio * mega_energy * 0.1 + else + held_plasma.toxins = 0 + //held_plasma.update_values() - for(var/obj/machinery/rust/particle_catcher/catcher in particle_catchers) - catcher.UpdateSize() - return changed + //handle some reactants formatting + //helium-4 has no use at the moment, but a buttload of it is produced + if(dormant_reactant_quantities["Helium-4"] > 1000) + dormant_reactant_quantities["Helium-4"] = rand(0,dormant_reactant_quantities["Helium-4"]) + for(var/reactant in dormant_reactant_quantities) + if(!dormant_reactant_quantities[reactant]) + dormant_reactant_quantities.Remove(reactant) - //the !!fun!! part - //reactions have to be individually hardcoded, see AttemptReaction() below this - proc/React() - //world << "React()" - //loop through the reactants in random order - var/list/reactants_reacting_pool = dormant_reactant_quantities.Copy() - /* - for(var/reagent in dormant_reactant_quantities) - world << " before: [reagent]: [dormant_reactant_quantities[reagent]]" - */ + return 1 - //cant have any reactions if there aren't any reactants present - if(reactants_reacting_pool.len) - //determine a random amount to actually react this cycle, and remove it from the standard pool - //this is a hack, and quite nonrealistic :( - for(var/reactant in reactants_reacting_pool) - reactants_reacting_pool[reactant] = rand(0,reactants_reacting_pool[reactant]) - dormant_reactant_quantities[reactant] -= reactants_reacting_pool[reactant] - if(!reactants_reacting_pool[reactant]) - reactants_reacting_pool -= reactant +/obj/effect/rust_em_field/proc/ChangeFieldStrength(var/new_strength) + var/calc_size = 1 + emp_overload = 0 + if(new_strength <= 50) + calc_size = 1 + else if(new_strength <= 200) + calc_size = 3 + else if(new_strength <= 500) + calc_size = 5 + else + calc_size = 7 + if(new_strength > 900) + emp_overload = 1 + // + field_strength = new_strength + change_size(calc_size) - var/list/produced_reactants = new/list - //loop through all the reacting reagents, picking out random reactions for them - var/list/primary_reactant_pool = reactants_reacting_pool.Copy() - while(primary_reactant_pool.len) - //pick one of the unprocessed reacting reagents randomly - var/cur_primary_reactant = pick(primary_reactant_pool) - primary_reactant_pool.Remove(cur_primary_reactant) - //world << "\blue primary reactant chosen: [cur_primary_reactant]" +/obj/effect/rust_em_field/proc/ChangeFieldFrequency(var/new_frequency) + frequency = new_frequency - //grab all the possible reactants to have a reaction with - var/list/possible_secondary_reactants = reactants_reacting_pool.Copy() - //if there is only one of a particular reactant, then it can not react with itself so remove it - possible_secondary_reactants[cur_primary_reactant] -= 1 - if(possible_secondary_reactants[cur_primary_reactant] < 1) - possible_secondary_reactants.Remove(cur_primary_reactant) - var/list/possible_reactions = new/list +/obj/effect/rust_em_field/proc/AddEnergy(var/a_energy, var/a_mega_energy, var/a_frequency) + var/energy_loss_ratio = src.frequency / abs(a_frequency - src.frequency) + if(a_frequency == src.frequency) + energy_loss_ratio = 0 + energy += a_energy - a_energy * energy_loss_ratio + mega_energy += a_mega_energy - a_mega_energy * energy_loss_ratio - //loop through and work out all the possible reactions - while(possible_secondary_reactants.len) - var/cur_secondary_reactant = pick(possible_secondary_reactants) - if(possible_secondary_reactants[cur_secondary_reactant] < 1) - possible_secondary_reactants.Remove(cur_secondary_reactant) - continue +/obj/effect/rust_em_field/proc/AddParticles(var/name, var/quantity = 1) + if(name in dormant_reactant_quantities) + dormant_reactant_quantities[name] += quantity + else if(name != "proton" && name != "electron" && name != "neutron") + dormant_reactant_quantities.Add(name) + dormant_reactant_quantities[name] = quantity + +/obj/effect/rust_em_field/proc/RadiateAll(var/ratio_lost = 1) + for(var/particle in dormant_reactant_quantities) + radiation += dormant_reactant_quantities[particle] + dormant_reactant_quantities.Remove(particle) + radiation += mega_energy + mega_energy = 0 + + //lose all held plasma back into the air + var/datum/gas_mixture/environment = loc.return_air() + environment.merge(held_plasma) + +/obj/effect/rust_em_field/proc/change_size(var/newsize = 1) + // + var/changed = 0 + switch(newsize) + if(1) + size = 1 + icon = 'emfield.dmi' + icon_state = "emfield_s1" + pixel_x = 0 + pixel_y = 0 + // + changed = 1 + if(3) + size = 3 + icon = '96x96.dmi' + icon_state = "emfield_s3" + pixel_x = -32 + pixel_y = -32 + // + changed = 3 + if(5) + size = 5 + icon = '160x160.dmi' + icon_state = "emfield_s5" + pixel_x = -64 + pixel_y = -64 + // + changed = 5 + if(7) + size = 7 + icon = '224x224.dmi' + icon_state = "emfield_s7" + pixel_x = -96 + pixel_y = -96 + // + changed = 7 + + for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) + catcher.UpdateSize() + return changed + +//the !!fun!! part +//reactions have to be individually hardcoded, see AttemptReaction() below this +/obj/effect/rust_em_field/proc/React() + //world << "React()" + //loop through the reactants in random order + var/list/reactants_reacting_pool = dormant_reactant_quantities.Copy() + /* + for(var/reagent in dormant_reactant_quantities) + world << " before: [reagent]: [dormant_reactant_quantities[reagent]]" + */ + + //cant have any reactions if there aren't any reactants present + if(reactants_reacting_pool.len) + //determine a random amount to actually react this cycle, and remove it from the standard pool + //this is a hack, and quite nonrealistic :( + for(var/reactant in reactants_reacting_pool) + reactants_reacting_pool[reactant] = rand(0,reactants_reacting_pool[reactant]) + dormant_reactant_quantities[reactant] -= reactants_reacting_pool[reactant] + if(!reactants_reacting_pool[reactant]) + reactants_reacting_pool -= reactant + + var/list/produced_reactants = new/list + //loop through all the reacting reagents, picking out random reactions for them + var/list/primary_reactant_pool = reactants_reacting_pool.Copy() + while(primary_reactant_pool.len) + //pick one of the unprocessed reacting reagents randomly + var/cur_primary_reactant = pick(primary_reactant_pool) + primary_reactant_pool.Remove(cur_primary_reactant) + //world << "\blue primary reactant chosen: [cur_primary_reactant]" + + //grab all the possible reactants to have a reaction with + var/list/possible_secondary_reactants = reactants_reacting_pool.Copy() + //if there is only one of a particular reactant, then it can not react with itself so remove it + possible_secondary_reactants[cur_primary_reactant] -= 1 + if(possible_secondary_reactants[cur_primary_reactant] < 1) + possible_secondary_reactants.Remove(cur_primary_reactant) + var/list/possible_reactions = new/list + + //loop through and work out all the possible reactions + while(possible_secondary_reactants.len) + var/cur_secondary_reactant = pick(possible_secondary_reactants) + if(possible_secondary_reactants[cur_secondary_reactant] < 1) possible_secondary_reactants.Remove(cur_secondary_reactant) - var/list/reaction_products = AttemptReaction(cur_primary_reactant, cur_secondary_reactant) - if(reaction_products.len) - //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]" - possible_reactions[cur_secondary_reactant] = reaction_products - //if there are no possible reactions here, abandon this primary reactant and move on - if(!possible_reactions.len) - //world << "\blue no reactions" continue + possible_secondary_reactants.Remove(cur_secondary_reactant) + var/list/reaction_products = AttemptReaction(cur_primary_reactant, cur_secondary_reactant) + if(reaction_products.len) + //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]" + possible_reactions[cur_secondary_reactant] = reaction_products + //if there are no possible reactions here, abandon this primary reactant and move on + if(!possible_reactions.len) + //world << "\blue no reactions" + continue - //split up the reacting atoms between the possible reactions - //the problem is in this while statement below - while(possible_reactions.len) - //pick another substance to react with - var/cur_secondary_reactant = pick(possible_reactions) - if(!reactants_reacting_pool[cur_secondary_reactant]) - possible_reactions.Remove(cur_secondary_reactant) - continue - var/list/cur_reaction_products = possible_reactions[cur_secondary_reactant] - - //set the randmax to be the lower of the two involved reactants - var/max_num_reactants = reactants_reacting_pool[cur_primary_reactant] > reactants_reacting_pool[cur_secondary_reactant] ? reactants_reacting_pool[cur_secondary_reactant] : reactants_reacting_pool[cur_primary_reactant] - - //make sure we have enough energy - if( mega_energy < max_num_reactants*cur_reaction_products["consumption"]) - max_num_reactants = round(mega_energy / cur_reaction_products["consumption"]) - - //randomly determined amount to react - var/amount_reacting = rand(1, max_num_reactants) - - //removing the reacting substances from the list of substances that are primed to react this cycle - //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly - if( reactants_reacting_pool[cur_primary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_primary_reactant] -= amount_reacting - else - amount_reacting = reactants_reacting_pool[cur_primary_reactant] - reactants_reacting_pool[cur_primary_reactant] = 0 - // - if( reactants_reacting_pool[cur_secondary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_secondary_reactant] -= amount_reacting - else - reactants_reacting_pool[cur_primary_reactant] += amount_reacting - reactants_reacting_pool[cur_primary_reactant] - amount_reacting = reactants_reacting_pool[cur_secondary_reactant] - reactants_reacting_pool[cur_secondary_reactant] = 0 - - //remove the consumed energy - if(cur_reaction_products["consumption"]) - mega_energy -= max_num_reactants * cur_reaction_products["consumption"] - cur_reaction_products.Remove("consumption") - - //grab any radiation and put it separate - //var/new_radiation = 0 - if("production" in cur_reaction_products) - mega_energy += max_num_reactants * cur_reaction_products["production"] - cur_reaction_products.Remove("production") - /*for(var/i=0, i reactants_reacting_pool[cur_secondary_reactant] ? reactants_reacting_pool[cur_secondary_reactant] : reactants_reacting_pool[cur_primary_reactant] - //loop through the newly produced reactants and add them to the pool - //var/list/neutronic_radiation = new - //var/list/protonic_radiation = new - for(var/reactant in produced_reactants) - AddParticles(reactant, dormant_reactant_quantities[reactant]) - //world << "produced: [reactant], [dormant_reactant_quantities[reactant]]" + //make sure we have enough energy + if( mega_energy < max_num_reactants*cur_reaction_products["consumption"]) + max_num_reactants = round(mega_energy / cur_reaction_products["consumption"]) - //check whether there are reactants left, and add them back to the pool - for(var/reactant in reactants_reacting_pool) - AddParticles(reactant, reactants_reacting_pool[reactant]) - //world << "retained: [reactant], [reactants_reacting_pool[reactant]]" + //randomly determined amount to react + var/amount_reacting = rand(1, max_num_reactants) + + //removing the reacting substances from the list of substances that are primed to react this cycle + //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly + if( reactants_reacting_pool[cur_primary_reactant] - amount_reacting > -1 ) + reactants_reacting_pool[cur_primary_reactant] -= amount_reacting + else + amount_reacting = reactants_reacting_pool[cur_primary_reactant] + reactants_reacting_pool[cur_primary_reactant] = 0 + // + if( reactants_reacting_pool[cur_secondary_reactant] - amount_reacting > -1 ) + reactants_reacting_pool[cur_secondary_reactant] -= amount_reacting + else + reactants_reacting_pool[cur_primary_reactant] += amount_reacting - reactants_reacting_pool[cur_primary_reactant] + amount_reacting = reactants_reacting_pool[cur_secondary_reactant] + reactants_reacting_pool[cur_secondary_reactant] = 0 + + //remove the consumed energy + if(cur_reaction_products["consumption"]) + mega_energy -= max_num_reactants * cur_reaction_products["consumption"] + cur_reaction_products.Remove("consumption") + + //grab any radiation and put it separate + //var/new_radiation = 0 + if("production" in cur_reaction_products) + mega_energy += max_num_reactants * cur_reaction_products["production"] + cur_reaction_products.Remove("production") + /*for(var/i=0, i 0.1) +/obj/effect/rust_em_field/proc/AttemptReaction(var/reactant_one, var/reactant_two) + //any charge on the atomic reactants / protons produced is abstracted away to enter the core energy pool straightaway + //atomic products remain in the core and produce more reactions next cycle + //any charged neutrons escape as radiation + var/check = 1 + recheck_reactions: + var/list/products = new/list + switch(reactant_one) + if("Tritium") + switch(reactant_two) + if("Tritium") + if(mega_energy > 0.1) + products["Helium-4"] = 1 + // + products["production"] = 11.3 + products["radiation"] = 1 + /*products["photon"] = 11.3 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + // + mega_energy -= 0.1 + if("Deuterium") + if(mega_energy > 0.1) + products["Helium-4"] = 1 + // + products["production"] = 3.5 + products["radiation"] = 14.1 + /*products["photon"] = 3.5 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 14.1 + // + products["consumption"] = 0.1*/ + if("Helium-3") + if(mega_energy > 0.4) + if(prob(51)) products["Helium-4"] = 1 // - products["production"] = 11.3 + products["production"] = 13.1 products["radiation"] = 1 - /*products["photon"] = 11.3 + /*products["photon"] = 12.1 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 0 // products["neutron_quantity"] = 1 products["neutron_charge"] = 0*/ - // - mega_energy -= 0.1 - if("Deuterium") - if(mega_energy > 0.1) + else if (prob(43)) products["Helium-4"] = 1 + products["Deuterium"] = 1 // - products["production"] = 3.5 - products["radiation"] = 14.1 - /*products["photon"] = 3.5 + products["production"] = 14.3 + /*products["photon"] = 4.8 + 9.5//14.3 + */ + else + products["Helium-4"] = 1 + products["production"] = 2.4 + products["radiation"] = 11.9 + /*products["photon"] = 0.5//12.4 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 1.9 // products["neutron_quantity"] = 1 - products["neutron_charge"] = 14.1 + products["neutron_charge"] = 11.9*/ + // + products["consumption"] = 0.4 + if("Deuterium") + switch(reactant_two) + if("Deuterium") + if(mega_energy > 0.1) + if(prob(50)) + products["Tritium"] = 1 // - products["consumption"] = 0.1*/ - if("Helium-3") - if(mega_energy > 0.4) - if(prob(51)) - products["Helium-4"] = 1 - // - products["production"] = 13.1 - products["radiation"] = 1 - /*products["photon"] = 12.1 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if (prob(43)) - products["Helium-4"] = 1 - products["Deuterium"] = 1 - // - products["production"] = 14.3 - /*products["photon"] = 4.8 + 9.5//14.3 - */ - else - products["Helium-4"] = 1 - products["production"] = 2.4 - products["radiation"] = 11.9 - /*products["photon"] = 0.5//12.4 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 1.9 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 11.9*/ - // - products["consumption"] = 0.4 - if("Deuterium") - switch(reactant_two) - if("Deuterium") - if(mega_energy > 0.1) - if(prob(50)) - products["Tritium"] = 1 - // - products["production"] = 4.03 - /*products["photon"] = 1.01 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 3.02*/ - else - products["Helium-3"] = 1 - // - products["production"] = 0.82 - products["radiation"] = 2.45 - /*products["photon"] = 0.82 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 2.45*/ - // - products["consumption"] = 0.1 - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - // - products["production"] = 18.3 - /*products["photon"] = 3.6 + products["production"] = 4.03 + /*products["photon"] = 1.01 // products["proton_quantity"] = 1 - products["proton_charge"] = 14.7*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - if(prob(25)) - products["Helium-4"] = 2 - products["production"] = 1 - /*products["photon"] = 22.4*/ - else if(prob(33)) - products["Helium-3"] = 1 - products["Helium-4"] = 1 - // - products["radiation"] = 1 - /*products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if(prob(50)) - products["Lithium-7"] = 1 - // - products["production"] = 1 - /*products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - else - products["Beryllium-7"] = 1 - products["production"] = 3.4 - products["radiation"] = 1 - /*products["photon"] = 3.4 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - // - products["consumption"] = 0.6 - if("Helium-3") - switch(reactant_two) - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - products["production"] = 14.9 - /*products["photon"] = 12.9 - // - products["proton_quantity"] = 2 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 2 - // - products["production"] = 17.9 - /*products["photon"] = 16.9 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.6 - /* - if("proton") - switch(reactant_two) - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 1 + products["proton_charge"] = 3.02*/ + else products["Helium-3"] = 1 - products["photon"] = 4 // - mega_energy -= 0.6 - if("Boron-11") - if(mega_energy > 1) - products["Helium-4"] = 3 - products["photon"] = 8.7 + products["production"] = 0.82 + products["radiation"] = 2.45 + /*products["photon"] = 0.82 // - mega_energy -= 1 - */ + products["neutron_quantity"] = 1 + products["neutron_charge"] = 2.45*/ + // + products["consumption"] = 0.1 + if("Helium-3") + if(mega_energy > 0.4) + products["Helium-4"] = 1 + // + products["production"] = 18.3 + /*products["photon"] = 3.6 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 14.7*/ + // + products["consumption"] = 0.4 + if("Lithium-6") + if(mega_energy > 0.6) + if(prob(25)) + products["Helium-4"] = 2 + products["production"] = 1 + /*products["photon"] = 22.4*/ + else if(prob(33)) + products["Helium-3"] = 1 + products["Helium-4"] = 1 + // + products["radiation"] = 1 + /*products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + else if(prob(50)) + products["Lithium-7"] = 1 + // + products["production"] = 1 + /*products["proton_quantity"] = 1 + products["proton_charge"] = 0*/ + else + products["Beryllium-7"] = 1 + products["production"] = 3.4 + products["radiation"] = 1 + /*products["photon"] = 3.4 + // + products["neutron_quantity"] = 1 + products["neutron_charge"] = 0*/ + // + products["consumption"] = 0.6 + if("Helium-3") + switch(reactant_two) + if("Helium-3") + if(mega_energy > 0.4) + products["Helium-4"] = 1 + products["production"] = 14.9 + /*products["photon"] = 12.9 + // + products["proton_quantity"] = 2 + products["proton_charge"] = 0*/ + // + products["consumption"] = 0.4 + if("Lithium-6") + if(mega_energy > 0.6) + products["Helium-4"] = 2 + // + products["production"] = 17.9 + /*products["photon"] = 16.9 + // + products["proton_quantity"] = 1 + products["proton_charge"] = 0*/ + // + products["consumption"] = 0.6 + /* + if("proton") + switch(reactant_two) + if("Lithium-6") + if(mega_energy > 0.6) + products["Helium-4"] = 1 + products["Helium-3"] = 1 + products["photon"] = 4 + // + mega_energy -= 0.6 + if("Boron-11") + if(mega_energy > 1) + products["Helium-4"] = 3 + products["photon"] = 8.7 + // + mega_energy -= 1 + */ - //if no reaction happened, switch the two reactants and try again - if(!products.len && check) - check = 0 - var/temp = reactant_one - reactant_one = reactant_two - reactant_two = temp - goto recheck_reactions - /*if(products.len) - world << "\blue [reactant_one] + [reactant_two] reaction occured" - for(var/reagent in products) - world << "\blue [reagent]: [products[reagent]]"*/ - /*if(products["neutron"]) - products -= "neutron" - if(products["proton"]) - products -= "proton" - if(products["photon"]) - products -= "photon" - if(products["radiated charge"]) - products -= "radiated charge"*/ - return products + //if no reaction happened, switch the two reactants and try again + if(!products.len && check) + check = 0 + var/temp = reactant_one + reactant_one = reactant_two + reactant_two = temp + goto recheck_reactions + /*if(products.len) + world << "\blue [reactant_one] + [reactant_two] reaction occured" + for(var/reagent in products) + world << "\blue [reagent]: [products[reagent]]"*/ + /*if(products["neutron"]) + products -= "neutron" + if(products["proton"]) + products -= "proton" + if(products["photon"]) + products -= "photon" + if(products["radiated charge"]) + products -= "radiated charge"*/ + return products + +/obj/effect/rust_em_field/Del() + //radiate everything in one giant burst + for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) + del (catcher) + RadiateAll() + + ..() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 3a491b10770..7dadb4943a6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -40,80 +40,248 @@ max volume of plasma storeable by the field = the total volume of a number of ti */ -/obj/machinery/rust/core - name = "Tokamak core" +#define MAX_FIELD_FREQ 1000 +#define MIN_FIELD_FREQ 1 +#define MAX_FIELD_STR 1000 +#define MIN_FIELD_STR 1 + +/obj/machinery/power/rust_core + name = "RUST Tokamak core" desc = "Enormous solenoid for generating extremely high power electromagnetic fields" icon = 'core.dmi' icon_state = "core0" anchored = 1 - var/on = 0 - var/obj/machinery/rust/em_field/owned_field - var/field_strength = 0.01 - // + density = 1 + var/obj/effect/rust_em_field/owned_field + var/field_strength = 1//0.01 + var/field_frequency = 1 + var/id_tag = "allan, don't forget to set the ID of this one too" req_access = list(access_engine) // use_power = 1 - idle_power_usage = 10 - active_power_usage = 300 + idle_power_usage = 50 + active_power_usage = 500 //multiplied by field strength + var/cached_power_avail = 0 + directwired = 1 + var/state = 0 + var/locked = 0 + var/remote_access_enabled = 1 - Topic(href, href_list) - ..() - if( href_list["startup"] ) - Startup() - return - if( href_list["shutdown"] ) - Shutdown() - return - if( href_list["modify_field_strength"] ) - var/new_field_str = text2num(input("Enter new field strength", "Modifying field strength", owned_field.field_strength)) - if(!new_field_str) - usr << "\red That's not a valid number." - return - field_strength = max(new_field_str,0.1) - field_strength = min(new_field_str,50) - if(owned_field) - owned_field.ChangeFieldStrength(field_strength) - return +/obj/machinery/power/rust_core/process() + if(stat & BROKEN || !powernet) + Shutdown() - proc/Startup() + cached_power_avail = avail() + //luminosity = round(owned_field.field_strength/10) + //luminosity = max(luminosity,1) + +/obj/machinery/power/rust_core/attackby(obj/item/W, mob/user) + + if(istype(W, /obj/item/weapon/wrench)) if(owned_field) + user << "Turn off [src] first." return - on = 1 - owned_field = new(src.loc) + switch(state) + if(0) + state = 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures [src.name] to the floor.", \ + "You secure the external reinforcing bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + if(1) + state = 0 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ + "You undo the external reinforcing bolts.", \ + "You hear a ratchet") + src.anchored = 0 + if(2) + user << "\red The [src.name] needs to be unwelded from the floor." + return + + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(owned_field) + user << "Turn off the [src] first." + return + switch(state) + if(0) + user << "\red The [src.name] needs to be wrenched to the floor." + if(1) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld the [src] to the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 2 + user << "You weld the [src] to the floor." + connect_to_network() + src.directwired = 1 + else + user << "\red You need more welding fuel to complete this task." + if(2) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut the [src] free from the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 1 + user << "You cut the [src] free from the floor." + disconnect_from_network() + src.directwired = 0 + else + user << "\red You need more welding fuel to complete this task." + return + + if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda)) + if(emagged) + user << "\red The lock seems to be broken" + return + if(src.allowed(user)) + if(owned_field) + src.locked = !src.locked + user << "The controls are now [src.locked ? "locked." : "unlocked."]" + else + src.locked = 0 //just in case it somehow gets locked + user << "\red The controls can only be locked when the [src] is online" + else + user << "\red Access denied." + return + + if(istype(W, /obj/item/weapon/card/emag) && !emagged) + locked = 0 + emagged = 1 + user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.") + return + + ..() + return + +/obj/machinery/power/rust_core/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/power/rust_core/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/power/rust_core/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=core_gen") + return + if(!istype(user, /mob/living/silicon) && get_dist(src, user) > 1) + user.unset_machine() + user << browse(null, "window=core_gen") + return + + var/dat = "" + if(!powernet || locked) + dat += "The console is dark and nonresponsive." + else + dat += "RUST Tokamak pattern Electromagnetic Field Generator
" + dat += "Device ID tag: [id_tag ? id_tag : "UNSET"] \[Modify\]
" + dat += "\[[owned_field ? "Deactivate" : "Activate"]\]
" + dat += "\[[remote_access_enabled ? "Disable remote access to this device" : "Enable remote access to this device"]\]
" + dat += "
" + dat += "Field strength: [field_strength]Wm^3
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + dat += "Field frequency: [field_frequency]MHz
" + dat += "\[----\] \ + \[--- \] \ + \[-- \] \ + \[- \] \ + \[+ \] \ + \[++ \] \ + \[+++ \] \ + \[++++\]
" + + var/font_colour = "green" + if(cached_power_avail < active_power_usage) + font_colour = "red" + else if(cached_power_avail < active_power_usage * 2) + font_colour = "orange" + dat += "Power status: [active_power_usage]/[cached_power_avail] W
" + + user << browse(dat, "window=core_gen;size=500x300") + onclose(user, "core_gen") + user.set_machine(src) + +/obj/machinery/power/rust_core/Topic(href, href_list) + if(href_list["str"]) + var/dif = text2num(href_list["str"]) + field_strength = min(max(field_strength + dif, MIN_FIELD_STR), MAX_FIELD_STR) + active_power_usage = 5 * field_strength //change to 500 later if(owned_field) owned_field.ChangeFieldStrength(field_strength) - icon_state = "core1" - luminosity = 1 - return 1 - proc/Shutdown() + if(href_list["freq"]) + var/dif = text2num(href_list["freq"]) + field_frequency = min(max(field_frequency + dif, MIN_FIELD_FREQ), MAX_FIELD_FREQ) + if(owned_field) + owned_field.ChangeFieldFrequency(field_frequency) + + if(href_list["toggle_active"]) + if(!Startup()) + Shutdown() + + if( href_list["toggle_remote"] ) + remote_access_enabled = !remote_access_enabled + + if(href_list["new_id_tag"]) + if(usr) + id_tag = input("Enter a new ID tag", "Tokamak core ID tag", id_tag) as text|null + + if(href_list["close"]) + usr << browse(null, "window=core_gen") + usr.unset_machine() + + if(href_list["extern_update"]) + var/obj/machinery/computer/rust_core_control/C = locate(href_list["extern_update"]) + if(C) + C.updateDialog() + + src.updateDialog() + +/obj/machinery/power/rust_core/proc/Startup() + if(owned_field) + return + owned_field = new(src.loc) + owned_field.ChangeFieldStrength(field_strength) + owned_field.ChangeFieldFrequency(field_frequency) + icon_state = "core1" + luminosity = 1 + use_power = 2 + return 1 + +/obj/machinery/power/rust_core/proc/Shutdown() + //todo: safety checks for field status + if(owned_field) icon_state = "core0" - on = 0 del(owned_field) luminosity = 0 + use_power = 1 - proc/AddParticles(var/name, var/quantity = 1) - if(owned_field) - owned_field.AddParticles(name, quantity) - return 1 - return 0 +/obj/machinery/power/rust_core/proc/AddParticles(var/name, var/quantity = 1) + if(owned_field) + owned_field.AddParticles(name, quantity) + return 1 + return 0 - process() - ..() - use_power(100 * field_strength + 500) - if(on && !owned_field) - Shutdown() - return - // - luminosity = round(owned_field.field_strength/10) - luminosity = max(luminosity,1) - // - if(stat & (NOPOWER|BROKEN)) - Shutdown() - - bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && owned_field) - var/obj/item/projectile/beam/laserbeam = Proj - owned_field.AddEnergy(0, laserbeam.damage / 5000, laserbeam.frequency) - return 0 +/obj/machinery/power/rust_core/bullet_act(var/obj/item/projectile/Proj) + if(Proj.flag != "bullet" && owned_field) + owned_field.AddEnergy(Proj.damage, 0, 1) + return 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm deleted file mode 100644 index 4ced2ffb2bb..00000000000 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_monitor.dm +++ /dev/null @@ -1,78 +0,0 @@ - -/obj/machinery/computer/rust_radiation_monitor - name = "Radiation Monitor" - icon_state = "power" - -/obj/machinery/computer/rust_energy_monitor - name = "Core Primary Monitor" - icon_state = "power" - var/obj/machinery/rust/core/core_generator = null - var/updating = 1 - - New() - ..() - spawn(0) - core_generator = locate() in world - - Topic(href, href_list) - ..() - if( href_list["shutdown"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["startup"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["modify_field_strength"] ) - updating = 0 - core_generator.Topic(href, href_list) - updateDialog() - updating = 1 - return - if( href_list["close"] ) - usr << browse(null, "window=core_monitor") - usr.machine = null - return - - process() - ..() - if(updating) - src.updateDialog() - - 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=core_monitor") - return - var/t = "Reactor Core Primary Monitor
" - if(core_generator) - t += "[core_generator.on ? "Core Generator connected" : "Core Generator operational"]
" - if(core_generator.owned_field) - t += "Core suspension field online \[Bring field offline\]
" - t += "Electromagnetic plasma suspension field status:
" - t += " Strength (T): [core_generator.owned_field.field_strength] \[Modify\]
" - t += " Energy levels (MeV): [core_generator.owned_field.mega_energy]
" - t += " Core frequency: [core_generator.owned_field.frequency]
" - t += " Moles of plasma: [core_generator.owned_field.held_plasma.toxins]
" - t += " Core temperature: [core_generator.owned_field.held_plasma.temperature]
" - t += "
" - t += "Core atomic and subatomic constituents:
" - if(core_generator.owned_field.dormant_reactant_quantities && core_generator.owned_field.dormant_reactant_quantities.len) - for(var/reagent in core_generator.owned_field.dormant_reactant_quantities) - t += " [reagent]: [core_generator.owned_field.dormant_reactant_quantities[reagent]]
" - else - t += " No reactants present.
" - else - t += "Core suspension field offline \[Bring field online\]
" - else - t += "Core Generator unresponsive
" - t += "
" - t += "Close
" - user << browse(t, "window=core_monitor;size=500x400") - user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm index 681d38f9aae..d2f348b8931 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm @@ -4,7 +4,7 @@ icon_state = "fuel_assembly" name = "Fuel Rod Assembly" var/list/rod_quantities - var/percent_depleted = 0 + var/percent_depleted = 1 // New() rod_quantities = new/list diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index af1037bd724..d0e23e290c2 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -1,31 +1,126 @@ -/obj/machinery/rust/fuel_assembly_port +/obj/machinery/rust_fuel_assembly_port name = "Fuel Assembly Port" icon = 'fuel_assembly_port.dmi' icon_state = "port0" density = 0 - var/obj/item/weapon/fuel_assembly/cur_assembly = null + var/obj/item/weapon/fuel_assembly/cur_assembly layer = 4 + var/busy = 0 + anchored = 1 - attackby(var/obj/item/I, var/mob/user) - if(istype(I,/obj/item/weapon/fuel_assembly)) - if(cur_assembly) - del cur_assembly +/obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) + if(istype(I,/obj/item/weapon/fuel_assembly)) + if(cur_assembly) + user << "\red There is already a fuel rod assembly in there!" + else cur_assembly = I user.drop_item() I.loc = src icon_state = "port1" - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ +/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + + if(!busy) + busy = 1 if(cur_assembly) - cur_assembly.loc = src.loc + spawn(30) + if(!try_insert_assembly()) + spawn(30) + eject_assembly() + busy = 0 + else + busy = 0 + else + spawn(30) + try_draw_assembly() + busy = 0 + +/obj/machinery/rust_fuel_assembly_port/proc/try_insert_assembly() + var/success = 0 + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + check_turf = get_step(check_turf, src.dir) + for(var/obj/machinery/power/rust_fuel_injector/I in check_turf) + if(I.stat & (BROKEN|NOPOWER)) + break + if(I.cur_assembly) + break + + I.cur_assembly = cur_assembly + cur_assembly.loc = I cur_assembly = null icon_state = "port0" + success = 1 - New() - //embed the fuel port into a wall - pixel_x = (dir & 3)? 0 : (dir == 4 ? 24 : -24) - pixel_y = (dir & 3)? (dir ==1 ? 24 : -24) : 0 + if(success) + src.visible_message("\blue \icon[src] a green light flashes on [src] as it inserts it's fuel rod assembly into an injector.") + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to insert it's fuel rod assembly into an injector.") + return success + +/obj/machinery/rust_fuel_assembly_port/proc/eject_assembly() + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + cur_assembly.loc = check_turf + cur_assembly = null + icon_state = "port0" + return 1 + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to eject it's fuel rod assembly.") + +/obj/machinery/rust_fuel_assembly_port/proc/try_draw_assembly() + var/success = 0 + if(cur_assembly) + var/turf/check_turf = get_step(get_turf(src), src.dir) + check_turf = get_step(check_turf, src.dir) + for(var/obj/machinery/power/rust_fuel_injector/I in check_turf) + if(I.stat & (BROKEN|NOPOWER)) + break + if(!I.cur_assembly) + break + if(I.injecting) + break + if(I.stat != 2) + break + + cur_assembly = I.cur_assembly + cur_assembly.loc = src + I.cur_assembly = null + icon_state = "port1" + success = 1 + + if(success) + src.visible_message("\icon[src] a blue light flashes on [src] as it draws a fuel rod assembly from an injector.") + else + src.visible_message("\red \icon[src] a red light flashes on [src] as it attempts to draw a fuel rod assembly from an injector.") + return success + +/* +/obj/machinery/rust_fuel_assembly_port/verb/try_insert_assembly_verb() + set name = "Attempt to insert assembly from port into injector" + set category = "Object" + set src in oview(1) + + if(!busy) + try_insert_assembly() + +/obj/machinery/rust_fuel_assembly_port/verb/eject_assembly_verb() + set name = "Attempt to eject assembly from port" + set category = "Object" + set src in oview(1) + + if(!busy) + eject_assembly() + +/obj/machinery/rust_fuel_assembly_port/verb/try_draw_assembly_verb() + set name = "Draw assembly from injector" + set category = "Object" + set src in oview(1) + + if(!busy) + try_draw_assembly() +*/ diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index a1e28294262..3b0589008c6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -1,87 +1,89 @@ var/const/max_assembly_amount = 300 -/obj/machinery/rust/fuel_compressor +/obj/machinery/rust_fuel_compressor icon = 'fuel_compressor.dmi' icon_state = "fuel_compressor" name = "Fuel Compressor" var/list/new_assembly_quantities - // - New() - new_assembly_quantities = new/list - spawn(0) - new_assembly_quantities["Deuterium"] = 200 - new_assembly_quantities["Tritium"] = 100 - // - new_assembly_quantities["Helium-3"] = 0 - new_assembly_quantities["Lithium-6"] = 0 - new_assembly_quantities["Silver"] = 0 + anchored = 1 - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) - - /*power_change() - if(stat & BROKEN) - icon_state = "broken" - else - if( powered() ) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "c_unpowered" - stat |= NOPOWER*/ - - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuelcomp") - usr.machine = null - return +/obj/machinery/rust_fuel_compressor/New() + new_assembly_quantities = new/list + spawn(0) + new_assembly_quantities["Deuterium"] = 200 + new_assembly_quantities["Tritium"] = 100 // - for(var/reagent in new_assembly_quantities) - if(href_list[reagent]) - var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) - if(!new_amount) - usr << "\red That's not a valid number." - return - var/sum_reactants = new_amount - new_assembly_quantities[reagent] - for(var/rod in new_assembly_quantities) - sum_reactants += new_assembly_quantities[rod] - if(sum_reactants > max_assembly_amount) - usr << "\red You have entered too many rods." - else - new_assembly_quantities[reagent] = new_amount - updateDialog() - return - if( href_list["activate"] ) - var/obj/item/weapon/fuel_assembly/F = new(src) - //world << "\blue New fuel rod assembly" - for(var/reagent in new_assembly_quantities) - F.rod_quantities[reagent] = new_assembly_quantities[reagent] - //world << "\blue [reagent]: new_assembly_quantities[reagent]
" - F.loc = src.loc - return + new_assembly_quantities["Helium-3"] = 0 + new_assembly_quantities["Lithium-6"] = 0 + new_assembly_quantities["Silver"] = 0 - 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=fuelcomp") - return*/ - var/t = "Reactor Fuel Rod Compressor / Assembler
" - t += "Close
" - t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" - t += "
" - t += "- New fuel assembly constituents:-
" +/obj/machinery/rust_fuel_compressor/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/rust_fuel_compressor/attack_hand(mob/user) + add_fingerprint(user) + /*if(stat & (BROKEN|NOPOWER)) + return*/ + interact(user) + +/*/obj/machinery/rust_fuel_compressor/power_change() + if(stat & BROKEN) + icon_state = "broken" + else + if( powered() ) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + src.icon_state = "c_unpowered" + stat |= NOPOWER*/ + +/obj/machinery/rust_fuel_compressor/Topic(href, href_list) + ..() + if( href_list["close"] ) + usr << browse(null, "window=fuelcomp") + usr.machine = null + return + // + for(var/reagent in new_assembly_quantities) + if(href_list[reagent]) + var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) + if(!new_amount) + usr << "\red That's not a valid number." + return + var/sum_reactants = new_amount - new_assembly_quantities[reagent] + for(var/rod in new_assembly_quantities) + sum_reactants += new_assembly_quantities[rod] + if(sum_reactants > max_assembly_amount) + usr << "\red You have entered too many rods." + else + new_assembly_quantities[reagent] = new_amount + updateDialog() + return + if( href_list["activate"] ) + var/obj/item/weapon/fuel_assembly/F = new(src) + //world << "\blue New fuel rod assembly" for(var/reagent in new_assembly_quantities) - t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" - t += "
" - t += "Close
" - user << browse(t, "window=fuelcomp;size=500x800") - user.machine = src + F.rod_quantities[reagent] = new_assembly_quantities[reagent] + //world << "\blue [reagent]: new_assembly_quantities[reagent]
" + F.loc = src.loc + F.percent_depleted = 0 + return + +/obj/machinery/rust_fuel_compressor/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=fuelcomp") + return*/ + var/t = "Reactor Fuel Rod Compressor / Assembler
" + t += "Close
" + t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" + t += "
" + t += "- New fuel assembly constituents:-
" + for(var/reagent in new_assembly_quantities) + t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" + t += "
" + t += "Close
" + user << browse(t, "window=fuelcomp;size=500x300") + user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm index b766ab1e0b4..5218e386f72 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm @@ -2,171 +2,190 @@ /obj/machinery/computer/rust_fuel_control name = "Fuel Injection Control" icon_state = "power" - var/list/fuel_injectors - var/list/stage_status + var/list/connected_injectors = list() + var/list/active_stages = list() + var/list/proceeding_stages = list() + var/list/stage_times = list() + //var/list/stage_status var/announce_fueldepletion = 0 var/announce_stageprogression = 0 - //var/obj/machinery/rust/fuel_injector/Injector = null - New() - ..() - //these are the only three stages we can accept - //we have another console for SCRAM - fuel_injectors = new/list - stage_status = new/list + var/scan_range = 25 + var/ticks_this_stage = 0 - fuel_injectors.Add("One") - fuel_injectors["One"] = new/list - stage_status.Add("One") - stage_status["One"] = 0 - fuel_injectors.Add("Two") - fuel_injectors["Two"] = new/list - stage_status.Add("Two") - stage_status["Two"] = 0 - fuel_injectors.Add("Three") - fuel_injectors["Three"] = new/list - stage_status.Add("Three") - stage_status["Three"] = 0 - fuel_injectors.Add("SCRAM") - fuel_injectors["SCRAM"] = new/list - stage_status.Add("SCRAM") - stage_status["SCRAM"] = 0 +/*/obj/machinery/computer/rust_fuel_control/New() + ..() + //these are the only three stages we can accept + //we have another console for SCRAM + fuel_injectors = new/list + stage_status = new/list - spawn(0) - for(var/obj/machinery/rust/fuel_injector/Injector in world) - if(Injector.stage in fuel_injectors) - var/list/targetlist = fuel_injectors[Injector.stage] - targetlist.Add(Injector) + fuel_injectors.Add("One") + fuel_injectors["One"] = new/list + stage_status.Add("One") + stage_status["One"] = 0 + fuel_injectors.Add("Two") + fuel_injectors["Two"] = new/list + stage_status.Add("Two") + stage_status["Two"] = 0 + fuel_injectors.Add("Three") + fuel_injectors["Three"] = new/list + stage_status.Add("Three") + stage_status["Three"] = 0 + fuel_injectors.Add("SCRAM") + fuel_injectors["SCRAM"] = new/list + stage_status.Add("SCRAM") + stage_status["SCRAM"] = 0 - attack_ai(mob/user) - attack_hand(user) + spawn(0) + for(var/obj/machinery/power/rust_fuel_injector/Injector in world) + if(Injector.stage in fuel_injectors) + var/list/targetlist = fuel_injectors[Injector.stage] + targetlist.Add(Injector)*/ - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) +/obj/machinery/computer/rust_fuel_control/attack_ai(mob/user) + attack_hand(user) - /*updateDialog() - for(var/mob/M in range(1)) - if(M.machine == src) - interact(m)*/ +/obj/machinery/computer/rust_fuel_control/attack_hand(mob/user) + add_fingerprint(user) + interact(user) - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuel_monitor") - usr.machine = null - return - if( href_list["beginstage"] ) - var/stage_name = href_list["beginstage"] - if(stage_name in fuel_injectors) - var/success = 1 - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - if(!Injector.BeginInjecting()) - success = 0 - if(!success) //may still partially complete - usr << "\red Unable to complete command." - stage_status[stage_name] = 1 - updateDialog() - return - if( href_list["begincool"] ) - var/stage_name = href_list["begincool"] - if(stage_name in fuel_injectors) - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - Injector.StopInjecting() - stage_status[stage_name] = 0 - updateDialog() - return - if( href_list["restart"] ) - updateDialog() - return - if( href_list["cooldown"] ) - for(var/stage_name in fuel_injectors) - for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[stage_name]) - Injector.StopInjecting() - stage_status[stage_name] = 0 - updateDialog() - return - if( href_list["update"] ) - updateDialog() - return - // - if( href_list["disable_fueldepletion"] ) - announce_fueldepletion = 0 - updateDialog() - return - if( href_list["announce_fueldepletion"] ) - announce_fueldepletion = 1 - updateDialog() - return - if( href_list["broadcast_fueldepletion"] ) - announce_fueldepletion = 2 - updateDialog() - return - // - if( href_list["disable_stageprogression"] ) - announce_stageprogression = 0 - updateDialog() - return - if( href_list["announce_stageprogression"] ) - announce_stageprogression = 1 - updateDialog() - return - if( href_list["broadcast_stageprogression"] ) - announce_stageprogression = 2 - updateDialog() - return +/obj/machinery/computer/rust_fuel_control/interact(mob/user) + if(stat & (BROKEN|NOPOWER)) + user.unset_machine() + user << browse(null, "window=fuel_control") + return - process() - ..() - src.updateDialog() + if (!istype(user, /mob/living/silicon) && get_dist(src, user) > 1) + user.unset_machine() + user << browse(null, "window=fuel_control") + return - 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=fuel_monitor") - return - var/t = "Reactor Core Fuel Control
" - var/cooling = 0 - for(var/stage in stage_status) - if(stage_status[stage]) - t += "Fuel injection: Active
" - t += "Enter cooldown phase
" - cooling = 1 - break - if(!cooling) - t += "Fuel injection: Cooling
" - t += "----
" - // - t += "Fuel depletion announcement: " - t += "[announce_fueldepletion ? "Disable" : "Disabled"] " - t += "[announce_fueldepletion == 1 ? "Announcing" : "Announce"] " - t += "[announce_fueldepletion == 2 ? "Broadcasting" : "Broadcast"]
" - t += "Stage progression announcement: " - t += "[announce_stageprogression ? "Disable" : "Disabled"] " - t += "[announce_stageprogression == 1 ? "Announcing" : "Announce"] " - t += "[announce_stageprogression == 2 ? "Broadcasting" : "Broadcast"] " - t += "
" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - for(var/stage_name in fuel_injectors) - var/list/cur_stage = fuel_injectors[stage_name] - t += "" - for(var/obj/machinery/rust/fuel_injector/Injector in cur_stage) - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "
Injector StatusInjection interval (sec)Assembly consumption per injectionFuel Assembly PortAssembly depletion percentage
Fuel Injection Stage: [stage_name], [stage_status[stage_name] ? "Active \[Enter cooldown\]" : "Cooling \[Begin injection\]"]
[Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"][Injector.rate/10] Modify[Injector.fuel_usage*100]% Modify[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ][Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[Injector.owned_assembly_port.cur_assembly.percent_depleted]%" : ""]
" - t += "Close
" - user << browse(t, "window=fuel_monitor;size=500x600") - user.machine = src + var/dat = "Reactor Core Fuel Control
" + dat += "Fuel depletion announcement: " + dat += "[announce_fueldepletion == 0 ? "Disabled" : "\[Disable\]"] " + dat += "[announce_fueldepletion == 1 ? "Announcing" : "\[Announce\]"] " + dat += "[announce_fueldepletion == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "Stage progression announcement: " + dat += "[announce_stageprogression == 0 ? "Disabled" : "\[Disable\]"] " + dat += "[announce_stageprogression == 1 ? "Announcing" : "\[Announce\]"] " + dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "
" + + dat += "Detected devices \[Refresh list\]" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + dat += "" + dat += "" + if(I.cur_assembly) + dat += "" + else + dat += "" + dat += "" + if(I.cur_assembly) + dat += "" + else + dat += "" + if(stage_times.Find(I.id_tag)) + dat += "" + else + dat += "" + if(proceeding_stages.Find(I.id_tag)) + dat += "" + else + dat += "" + dat += "" + dat += "" + dat += "
IDAssemblyConsumptionDepletionDurationNext stage
[I.id_tag]\[[I.injecting ? "Halt injecting" : "Begin injecting"]\]None[I.fuel_usage * 100]%[I.cur_assembly.percent_depleted * 100]%NA[ticks_this_stage]/[stage_times[I.id_tag]]s Modify[ticks_this_stage]s Set[proceeding_stages[I.id_tag]]None \[modify\]\[[active_stages.Find(I.id_tag) ? "Deactivate stage" : "Activate stage "] \]
" + + dat += "
" + dat += "Refresh " + dat += "Close
" + user << browse(dat, "window=fuel_control;size=800x400") + user.set_machine(src) + +/obj/machinery/computer/rust_fuel_control/Topic(href, href_list) + ..() + + if( href_list["scan"] ) + connected_injectors = list() + for(var/obj/machinery/power/rust_fuel_injector/I in range(scan_range, src)) + if(check_injector_status(I)) + connected_injectors.Add(I) + + if( href_list["toggle_stage"] ) + var/cur_stage = href_list["toggle_stage"] + if(active_stages.Find(cur_stage)) + active_stages.Remove(cur_stage) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(I.id_tag == cur_stage && check_injector_status(I)) + I.StopInjecting() + else + active_stages.Add(cur_stage) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(I.id_tag == cur_stage && check_injector_status(I)) + I.BeginInjecting() + + if( href_list["cooldown"] ) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(check_injector_status(I)) + I.StopInjecting() + active_stages = list() + + if( href_list["warmup"] ) + for(var/obj/machinery/power/rust_fuel_injector/I in connected_injectors) + if(check_injector_status(I)) + I.BeginInjecting() + if(!active_stages.Find(I.id_tag)) + active_stages.Add(I.id_tag) + + if( href_list["stage_time"] ) + var/cur_stage = href_list["stage_time"] + var/new_duration = input("Enter new stage duration in seconds", "Stage duration") as num + if(new_duration) + stage_times[cur_stage] = new_duration + else if(stage_times.Find(cur_stage)) + stage_times.Remove(cur_stage) + + if( href_list["announce_fueldepletion"] ) + announce_fueldepletion = text2num(href_list["announce_fueldepletion"]) + + if( href_list["announce_stageprogression"] ) + announce_stageprogression = text2num(href_list["announce_stageprogression"]) + + if( href_list["close"] ) + usr << browse(null, "window=fuel_control") + usr.unset_machine() + + if( href_list["set_next_stage"] ) + var/cur_stage = href_list["set_next_stage"] + if(!proceeding_stages.Find(cur_stage)) + proceeding_stages.Add(cur_stage) + var/next_stage = input("Enter next stage ID", "Automated stage procession") as text|null + if(next_stage) + proceeding_stages[cur_stage] = next_stage + else + proceeding_stages.Remove(cur_stage) + + updateDialog() + +/obj/machinery/computer/rust_fuel_control/proc/check_injector_status(var/obj/machinery/power/rust_fuel_injector/I) + if(!I) + return 0 + + if(I.stat & (BROKEN|NOPOWER) || !I.remote_access_enabled || !I.id_tag) + if(connected_injectors.Find(I)) + connected_injectors.Remove(I) + return 0 + + return 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index e773939c9f5..69d4464eac1 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -1,210 +1,290 @@ -/obj/machinery/rust/fuel_injector +/obj/machinery/power/rust_fuel_injector name = "Fuel Injector" icon = 'fuel_injector.dmi' icon_state = "injector0" - anchored = 1 + anchored = 0 density = 1 - var/obj/machinery/rust/fuel_assembly_port/owned_assembly_port - //var/list/stageone_assemblyports - //var/list/stagetwo_assemblyports - //var/list/scram_assemblyports - var/obj/machinery/rust/reactor_vessel/Vessel = null - var/rate = 10 //microseconds between each cycle - var/fuel_usage = 0.0001 //percentage of available fuel to use per cycle - var/on = 1 - var/remote_enabled = 1 + var/state = 0 + var/locked = 0 + var/obj/item/weapon/fuel_assembly/cur_assembly + var/fuel_usage = 0.0001 //percentage of available fuel to use per cycle + var/id_tag = "One" var/injecting = 0 - var/stage = "One" - var/targetting_field = 0 - layer = 4 + var/trying_to_swap_fuel = 0 // req_access = list(access_engine) // use_power = 1 idle_power_usage = 10 - active_power_usage = 300 + active_power_usage = 500 + var/remote_access_enabled = 1 + var/cached_power_avail = 0 + var/emergency_insert_ready = 0 - //fuel assembly should be embedded into the wall behind the injector - New() - ..() - name = "Stage [stage] Fuel Injector" - //pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) - //pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 - /* - stageone_assemblyports = new/list() - stagetwo_assemblyports = new/list() - scram_assemblyports = new/list() - spawn(1) - Vessel = locate() in range(6,src) - for(var/obj/machinery/rust/fuel_assembly_port/S in range(6,src)) - switch(S.stage) - if("One") - stageone_assemblyports.Add(S) - if("Two") - stagetwo_assemblyports.Add(S) - if("SCRAM") - scram_assemblyports.Add(S) - */ - spawn(1) - var/rev_dir = reverse_direction(dir) - var/turf/mid = get_step(src, rev_dir) - for(var/obj/machinery/rust/fuel_assembly_port/port in get_step(mid, rev_dir)) - owned_assembly_port = port - // - - Topic(href, href_list) - ..() - if( href_list["close"] ) - usr << browse(null, "window=fuel_injector") - usr.machine = null - return - if( href_list["begin_injecting"] ) - BeginInjecting() - updateDialog() - return - if( href_list["end_injecting"] ) +/obj/machinery/power/rust_fuel_injector/process() + if(injecting) + if(stat & BROKEN || !powernet) StopInjecting() - updateDialog() - return - if( href_list["cyclerate"] ) - var/new_rate = text2num(input("Enter new injection rate (0.1 - 10 sec)", "Modifying injection rate", rate/10)) - if(!new_rate) - usr << "\red That's not a valid number." - return - new_rate = min(new_rate,0.1) - new_rate = max(new_rate,10) - rate = new_rate * 10 - updateDialog() - return - if( href_list["fuel_usage"] ) - var/new_rate = text2num(input("Enter new fuel usage (1 - 100%)", "Modifying fuel usage", rate/10)) - if(!new_rate) - usr << "\red That's not a valid number." - return - new_rate = min(new_rate,0.1) - new_rate = max(new_rate,10) - rate = new_rate * 10 - updateDialog() - return - - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - /*if(stat & (BROKEN|NOPOWER)) - return*/ - interact(user) - - 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=fuel_injector") - return - var/t = "Reactor Core Fuel Injector
" - t += "Stage: [stage]
" - t += "Status: [injecting ? "Active \[Disable\]" : "Standby \[Enable\]"]
" - t += "Interval (sec): [rate/10] \[Modify\]
" - t += "Fuel usage: [fuel_usage*100]% \[Modify\]
" - /* - var/t = "Reactor Core Fuel Control
" - t += "Current fuel injection stage: [active_stage]
" - if(active_stage == "Cooling") - //t += "Restart injection cycle
" - t += "----
" else - t += "Enter cooldown phase
" - t += "Fuel depletion announcement: " - t += "[announce_fueldepletion ? "Disable" : "Disabled"] " - t += "[announce_fueldepletion == 1 ? "Announcing" : "Announce"] " - t += "[announce_fueldepletion == 2 ? "Broadcasting" : "Broadcast"]
" - t += "Stage progression announcement: " - t += "[announce_stageprogression ? "Disable" : "Disabled"] " - t += "[announce_stageprogression == 1 ? "Announcing" : "Announce"] " - t += "[announce_stageprogression == 2 ? "Broadcasting" : "Broadcast"] " - t += "
" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - for(var/stage in fuel_injectors) - var/list/cur_stage = fuel_injectors[stage] - t += "" - for(var/obj/machinery/rust/fuel_injector/Injector in cur_stage) - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "" - t += "
Injector StatusInjection interval (sec)Assembly consumption per injectionFuel Assembly PortAssembly depletion percentage
Fuel Injection Stage: [stage] [active_stage == stage ? " (Currently active)" : "Activate"]
[Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"][Injector.rate/10] Modify[Injector.fuel_usage*100]% Modify[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ][Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[100 - Injector.owned_assembly_port.cur_assembly.amount_depleted*100]%" : ""]
" - */ - t += "
" - t += "Close
" - user << browse(t, "window=fuel_injector;size=500x800") - user.machine = src + Inject() - proc/BeginInjecting() - if(!injecting && owned_assembly_port && owned_assembly_port.cur_assembly) - icon_state = "injector1" - injecting = 1 - spawn(rate) - Inject() - return 1 - return 0 + cached_power_avail = avail() - proc/StopInjecting() +/obj/machinery/power/rust_fuel_injector/attackby(obj/item/W, mob/user) + + if(istype(W, /obj/item/weapon/wrench)) if(injecting) - injecting = 0 - icon_state = "injector0" - return 1 - return 0 - - proc/Inject() - if(!injecting) + user << "Turn off the [src] first." return - if(owned_assembly_port.cur_assembly) - var/obj/machinery/rust/em_field/target_field - if(targetting_field) - for(var/obj/machinery/rust/em_field/field in range(15)) - target_field = field - var/amount_left = 0 - for(var/reagent in owned_assembly_port.cur_assembly.rod_quantities) - //world << "checking [reagent]" - if(owned_assembly_port.cur_assembly.rod_quantities[reagent] > 0) - //world << " rods left: [owned_assembly_port.cur_assembly.rod_quantities[reagent]]" - var/amount = owned_assembly_port.cur_assembly.rod_quantities[reagent] * fuel_usage - var/numparticles = round(amount * 1000) - if(numparticles < 1) - numparticles = 1 - //world << " amount: [amount]" - //world << " numparticles: [numparticles]" - // - var/obj/effect/accelerated_particle/particle = new/obj/effect/accelerated_particle(src.loc, src.dir) - particle.particle_type = reagent - particle.energy = 0 - particle.icon_state = "particle" - particle.additional_particles = numparticles - 1 - particle.target = target_field - // - owned_assembly_port.cur_assembly.rod_quantities[reagent] -= amount - amount_left += owned_assembly_port.cur_assembly.rod_quantities[reagent] - owned_assembly_port.cur_assembly.percent_depleted = amount_left / 300 - flick("injector-emitting",src) - use_power(fuel_usage * 10000 + 100) //0.0001 - if(injecting) - spawn(rate) - Inject() - else - injecting = 0 + switch(state) + if(0) + state = 1 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures [src.name] to the floor.", \ + "You secure the external reinforcing bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + if(1) + state = 0 + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ + "You undo the external reinforcing bolts.", \ + "You hear a ratchet") + src.anchored = 0 + if(2) + user << "\red The [src.name] needs to be unwelded from the floor." + return - process() - ..() + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(injecting) + user << "Turn off the [src] first." + return + switch(state) + if(0) + user << "\red The [src.name] needs to be wrenched to the floor." + if(1) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \ + "You start to weld the [src] to the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 2 + user << "You weld the [src] to the floor." + connect_to_network() + src.directwired = 1 + else + user << "\red You need more welding fuel to complete this task." + if(2) + if (WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \ + "You start to cut the [src] free from the floor.", \ + "You hear welding") + if (do_after(user,20)) + if(!src || !WT.isOn()) return + state = 1 + user << "You cut the [src] free from the floor." + disconnect_from_network() + src.directwired = 0 + else + user << "\red You need more welding fuel to complete this task." + return + + if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda)) + if(emagged) + user << "\red The lock seems to be broken" + return + if(src.allowed(user)) + src.locked = !src.locked + user << "The controls are now [src.locked ? "locked." : "unlocked."]" + else + user << "\red Access denied." + return + + if(istype(W, /obj/item/weapon/card/emag) && !emagged) + locked = 0 + emagged = 1 + user.visible_message("[user.name] emags the [src.name].","\red You short out the lock.") + return + + if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly) + if(emergency_insert_ready) + cur_assembly = W + user.drop_item() + W.loc = src + emergency_insert_ready = 0 + return + + ..() + return + +/obj/machinery/power/rust_fuel_injector/attack_ai(mob/user) + attack_hand(user) + +/obj/machinery/power/rust_fuel_injector/attack_hand(mob/user) + add_fingerprint(user) + interact(user) + +/obj/machinery/power/rust_fuel_injector/interact(mob/user) + if(stat & BROKEN) + user.unset_machine() + user << browse(null, "window=fuel_injector") + return + if(get_dist(src, user) > 1 ) + if (!istype(user, /mob/living/silicon)) + user.unset_machine() + user << browse(null, "window=fuel_injector") + return + + var/dat = "" + if (!powernet || locked || state != 2) + dat += "The console is dark and nonresponsive." + else + dat += "Reactor Core Fuel Injector
" + dat += "Device ID tag: [id_tag] \[Modify\]
" + dat += "Status: [injecting ? "Active \[Disable\]" : "Standby \[Enable\]"]
" + dat += "Fuel usage: [fuel_usage*100]% \[Modify\]
" + dat += "Fuel assembly port: " + dat += "\[[cur_assembly ? "Eject assembly to port" : "Draw assembly from port"]\] " + if(cur_assembly) + dat += "\[Emergency eject\]
" + else + dat += "\[[emergency_insert_ready ? "Cancel emergency insertion" : "Emergency insert"]\]
" + var/font_colour = "green" + if(cached_power_avail < active_power_usage) + font_colour = "red" + else if(cached_power_avail < active_power_usage * 2) + font_colour = "orange" + dat += "Power status: [active_power_usage]/[cached_power_avail] W
" + dat += "\[[remote_access_enabled ? "Disable remote access" : "Enable remote access"]\]
" + + dat += "
" + dat += "Refresh " + dat += "Close
" + + user << browse(dat, "window=fuel_injector;size=500x300") + onclose(user, "fuel_injector") + user.set_machine(src) + +/obj/machinery/power/rust_fuel_injector/Topic(href, href_list) + ..() + + if( href_list["modify_tag"] ) + id_tag = input("Enter new ID tag", "Modifying ID tag") as text|null + + if( href_list["fuel_assembly"] ) + if(!trying_to_swap_fuel) + trying_to_swap_fuel = 1 + spawn(50) + attempt_fuel_swap() + trying_to_swap_fuel = 0 + + if( href_list["emergency_fuel_assembly"] ) + if(cur_assembly) + cur_assembly.loc = src.loc + cur_assembly = null + //irradiate! + else + emergency_insert_ready = !emergency_insert_ready + + if( href_list["toggle_injecting"] ) + if(injecting) + StopInjecting() + else + BeginInjecting() + + if( href_list["toggle_remote"] ) + remote_access_enabled = !remote_access_enabled + + if( href_list["fuel_usage"] ) + var/new_usage = text2num(input("Enter new fuel usage (0.01% - 100%)", "Modifying fuel usage", fuel_usage * 100)) + if(!new_usage) + usr << "\red That's not a valid number." + return + new_usage = max(new_usage, 0.01) + new_usage = min(new_usage, 100) + fuel_usage = new_usage / 100 + active_power_usage = 500 + 1000 * fuel_usage + + if( href_list["update_extern"] ) + var/obj/machinery/computer/rust_fuel_control/C = locate(href_list["update_extern"]) + if(C) + C.updateDialog() + + if( href_list["close"] ) + usr << browse(null, "window=fuel_injector") + usr.unset_machine() + + updateDialog() + +/obj/machinery/power/rust_fuel_injector/proc/BeginInjecting() + if(!injecting && cur_assembly) + icon_state = "injector1" + injecting = 1 + use_power = 1 + +/obj/machinery/power/rust_fuel_injector/proc/StopInjecting() + if(injecting) + injecting = 0 + icon_state = "injector0" + use_power = 0 + +/obj/machinery/power/rust_fuel_injector/proc/Inject() + if(!injecting) + return + if(cur_assembly) + var/amount_left = 0 + for(var/reagent in cur_assembly.rod_quantities) + //world << "checking [reagent]" + if(cur_assembly.rod_quantities[reagent] > 0) + //world << " rods left: [cur_assembly.rod_quantities[reagent]]" + var/amount = cur_assembly.rod_quantities[reagent] * fuel_usage + var/numparticles = round(amount * 1000) + if(numparticles < 1) + numparticles = 1 + //world << " amount: [amount]" + //world << " numparticles: [numparticles]" + // + + var/obj/effect/accelerated_particle/A = new/obj/effect/accelerated_particle(get_turf(src), dir) + A.particle_type = reagent + A.additional_particles = numparticles - 1 + //A.target = target_field + // + cur_assembly.rod_quantities[reagent] -= amount + amount_left += cur_assembly.rod_quantities[reagent] + cur_assembly.percent_depleted = amount_left / 300 + flick("injector-emitting",src) + else + StopInjecting() + +/obj/machinery/power/rust_fuel_injector/proc/attempt_fuel_swap() + var/rev_dir = reverse_direction(dir) + var/turf/mid = get_step(src, rev_dir) + var/success = 0 + for(var/obj/machinery/rust_fuel_assembly_port/check_port in get_step(mid, rev_dir)) + if(cur_assembly) + if(!check_port.cur_assembly) + check_port.cur_assembly = cur_assembly + cur_assembly.loc = check_port + cur_assembly = null + check_port.icon_state = "port1" + success = 1 + else + if(check_port.cur_assembly) + cur_assembly = check_port.cur_assembly + cur_assembly.loc = src + check_port.cur_assembly = null + check_port.icon_state = "port0" + success = 1 + + break + if(success) + src.visible_message("\blue \icon[src] a green light flashes on [src].") updateDialog() - // + else + src.visible_message("\red \icon[src] a red light flashes on [src].") diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm index 62b826532c4..155ef23c5c6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/radiation.dm @@ -67,4 +67,8 @@ //particle.invisibility = 2 // return particle -*/ \ No newline at end of file +*/ + +/obj/machinery/computer/rust_radiation_monitor + name = "Radiation Monitor" + icon_state = "power" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm index b45d28259c8..b87a12a9aef 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm @@ -1,49 +1,53 @@ //gimmicky hack to collect particles and direct them into the field -//byond multitiles are basically... shit -/obj/machinery/rust/particle_catcher - invisibility = 101 +/obj/effect/rust_particle_catcher icon = 'effects.dmi' icon_state = "energynet" density = 0 anchored = 1 - var/obj/machinery/rust/em_field/parent + //invisibility = 101 + layer = 4 + var/obj/effect/rust_em_field/parent var/mysize = 0 - /*New() - for(var/obj/machinery/rust/em_field/field in range(6)) - parent = field - if(!parent) - del(src)*/ +/*/obj/effect/rust_particle_catcher/New() + for(var/obj/machinery/rust/em_field/field in range(6)) + parent = field + if(!parent) + del(src)*/ - proc/SetSize(var/newsize) - name = "collector [newsize]" - mysize = newsize - UpdateSize() +/obj/effect/rust_particle_catcher/process() + if(!parent) + del(src) - proc/AddParticles(var/name, var/quantity = 1) - if(parent && parent.size >= mysize) - parent.AddParticles(name, quantity) - return 1 - return 0 +/obj/effect/rust_particle_catcher/proc/SetSize(var/newsize) + name = "collector [newsize]" + mysize = newsize + UpdateSize() - proc/UpdateSize() - if(parent.size >= mysize) - density = 1 - //invisibility = 101 - name = "collector [mysize] ON" - else - density = 0 - name = "collector [mysize] OFF" - //invisibility = 101 +/obj/effect/rust_particle_catcher/proc/AddParticles(var/name, var/quantity = 1) + if(parent && parent.size >= mysize) + parent.AddParticles(name, quantity) + return 1 + return 0 - bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && parent) - var/obj/item/projectile/beam/laserbeam = Proj - parent.AddEnergy(0, laserbeam.damage / 5000, laserbeam.frequency) - return 0 +/obj/effect/rust_particle_catcher/proc/UpdateSize() + if(parent.size >= mysize) + density = 1 + invisibility = 0 + name = "collector [mysize] ON" + else + density = 0 + invisibility = 101 + name = "collector [mysize] OFF" - process() - ..() - if(!parent) - del(src) +/obj/effect/rust_particle_catcher/bullet_act(var/obj/item/projectile/Proj) + if(Proj.flag != "bullet" && parent) + parent.AddEnergy(Proj.damage, 0, 1) + update_icon() + return 0 + +/obj/effect/rust_particle_catcher/Bumped(atom/AM) + if(ismob(AM) && density && prob(10)) + AM << "\red A powerful force pushes you back." + ..() diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index bb4bb6e7c4e..da4a32782bb 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -43,14 +43,14 @@ toxmob(A) if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/machinery/singularity/))) A:energy += energy - else if( istype(A,/obj/machinery/rust/particle_catcher) ) - var/obj/machinery/rust/particle_catcher/collided_catcher = A + else if( istype(A,/obj/effect/rust_particle_catcher) ) + var/obj/effect/rust_particle_catcher/collided_catcher = A if(particle_type && particle_type != "neutron") if(collided_catcher.AddParticles(particle_type, 1 + additional_particles)) collided_catcher.parent.AddEnergy(energy,mega_energy) del (src) - else if( istype(A,/obj/machinery/rust/core) ) - var/obj/machinery/rust/core/collided_core = A + else if( istype(A,/obj/machinery/power/rust_core) ) + var/obj/machinery/power/rust_core/collided_core = A if(particle_type && particle_type != "neutron") if(collided_core.AddParticles(particle_type, 1 + additional_particles)) var/energy_loss_ratio = abs(collided_core.owned_field.frequency - frequency) / 1e9 diff --git a/maps/rust_test.dmm b/maps/rust_test.dmm new file mode 100644 index 00000000000..3f6d35c9608 --- /dev/null +++ b/maps/rust_test.dmm @@ -0,0 +1,372 @@ +"aa" = (/turf/space,/area) +"ab" = (/turf/simulated/wall/r_wall,/area) +"ac" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area) +"ad" = (/turf/simulated/floor,/area) +"ae" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area) +"af" = (/obj/effect/landmark/start{name = "Chief Engineer"},/turf/simulated/floor,/area) +"ag" = (/obj/machinery/computer/rust_fuel_control,/turf/simulated/floor,/area) +"ah" = (/obj/machinery/computer/rust_core_control,/turf/simulated/floor,/area) +"ai" = (/obj/machinery/computer/rust_radiation_monitor,/turf/simulated/floor,/area) +"aj" = (/turf/space,/area/engine/engineering) +"ak" = (/turf/simulated/wall/r_wall,/area/engine/engineering) +"al" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor,/area/engine/engineering) +"am" = (/obj/effect/landmark{name = "LateStart"},/turf/simulated/floor,/area/engine/engineering) +"an" = (/turf/simulated/floor,/area/engine/engineering) +"ao" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"ap" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"ar" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_assembly_port{pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"as" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"at" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"au" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) +"av" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area/engine/engineering) +"aw" = (/turf/simulated/floor/plating,/area/engine/engineering) +"ax" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area/engine/engineering) +"ay" = (/obj/machinery/power/rust_fuel_injector,/turf/simulated/floor/plating,/area/engine/engineering) +"az" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"aA" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/space,/area) +"aB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) +"aC" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/space,/area) +"aD" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"aE" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"aF" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/space,/area) +"aG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/engine/engineering) +"aH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"aI" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"aJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"aM" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"aN" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/space,/area) +"aO" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/engine/engineering) +"aP" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) +"aQ" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/engine/engineering) +"aR" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area/engine/engineering) +"aS" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aT" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aU" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aV" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aW" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aX" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"aY" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"aZ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"ba" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area/engine/engineering) +"bb" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor/engine,/area/engine/engineering) +"bc" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bd" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/engine,/area/engine/engineering) +"be" = (/turf/simulated/floor/engine,/area/engine/engineering) +"bf" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bg" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"bh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bi" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"bj" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bk" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bl" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bm" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bn" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bo" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/engine,/area/engine/engineering) +"bp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bq" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"br" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bs" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine/engineering) +"bt" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bu" = (/obj/machinery/atmospherics/binary/circulator,/turf/simulated/floor/plating,/area/engine/engineering) +"bv" = (/obj/machinery/power/generator,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bw" = (/obj/machinery/atmospherics/binary/circulator{dir = 4; icon_state = "circ2-off"; side = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bx" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"by" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bz" = (/obj/machinery/power/emitter{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"bA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine,/area/engine/engineering) +"bC" = (/obj/machinery/power/emitter{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bE" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 1},/turf/space,/area) +"bF" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bJ" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bN" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area/engine/engineering) +"bO" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/engine,/area/engine/engineering) +"bP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bQ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bR" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"bS" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"bT" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"bU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"bX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ca" = (/turf/simulated/floor/plating,/area) +"cb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"cc" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area) +"cd" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor/plating,/area) +"ce" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cf" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cg" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"ch" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area) +"ci" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"cj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"ck" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"cl" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"cm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cn" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area) +"co" = (/obj/machinery/power/generator,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"cp" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"cq" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cr" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"cs" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"ct" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area) +"cu" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"cv" = (/obj/machinery/atmospherics/binary/circulator,/turf/simulated/floor/plating,/area) +"cw" = (/obj/machinery/power/generator,/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area) +"cx" = (/obj/machinery/atmospherics/binary/circulator{dir = 4; icon_state = "circ2-off"; side = 2},/turf/simulated/floor/plating,/area) +"cy" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cz" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"cA" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"cB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cC" = (/turf/simulated/floor/engine,/area) +"cD" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"cF" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area) +"cH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"cJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area) +"cL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cM" = (/obj/machinery/power/turbine{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area) +"cN" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area) +"cP" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"cQ" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"cR" = (/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"cS" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area) +"cT" = (/obj/machinery/compressor,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area) +"cU" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area) +"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) +"cW" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"cX" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) +"cY" = (/obj/machinery/power/generator,/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"cZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"da" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/plating,/area) +"db" = (/obj/machinery/door/window/northright,/turf/simulated/floor/plating,/area) +"dc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area) +"dd" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area) +"de" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area) +"df" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dg" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"di" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area/engine/engineering) +"dj" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"dk" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engineering) +"dl" = (/obj/machinery/compressor{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/engine/engineering) +"dm" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"dn" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"do" = (/obj/machinery/computer/turbine_computer,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dp" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"dr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"ds" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"dt" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area) +"du" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"dv" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area) +"dw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dx" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dD" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"dE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"dF" = (/obj/machinery/power/turbine{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"dG" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) +"dH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"dI" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"dJ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"dK" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area) +"dL" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area) +"dM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area) +"dN" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"dO" = (/obj/machinery/power/generator,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dP" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"dQ" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dR" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"dS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"dT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dU" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"dV" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"dW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"dX" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"dY" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area) +"dZ" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"ea" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"eb" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"ec" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area) +"ed" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area) +"ee" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"ef" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/space,/area) +"eg" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"eh" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"ei" = (/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area/engine/engineering) +"ej" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ek" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"el" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/engine/engineering) +"em" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"en" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area/engine/engineering) +"eo" = (/obj/machinery/power/emitter{dir = 4},/turf/simulated/floor/plating,/area) +"ep" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eq" = (/obj/machinery/power/emitter{dir = 8},/turf/simulated/floor/plating,/area) +"er" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/wall/r_wall,/area/engine/engineering) +"es" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"et" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area) +"eu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"ev" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area) +"ew" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/obj/structure/lattice,/turf/space,/area) +"ex" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/plating,/area) +"ey" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/obj/structure/lattice,/turf/space,/area) +"ez" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eA" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/structure/lattice,/turf/space,/area) +"eB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/obj/structure/lattice,/turf/space,/area) +"eC" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eD" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eE" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"eF" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on{dir = 8},/turf/simulated/floor/engine,/area) +"eG" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"eH" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"eI" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"eJ" = (/obj/structure/lattice,/turf/space,/area) +"eK" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"eL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area) +"eM" = (/obj/machinery/atmospherics/binary/pump,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"eN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area) +"eO" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/structure/lattice,/turf/space,/area) +"eP" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area) +"eQ" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area) +"eR" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"eS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"eV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area) +"eW" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating,/area) +"eX" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area) +"eY" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area) +"eZ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"fa" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fb" = (/obj/machinery/power/rust_fuel_injector{dir = 1},/turf/simulated/floor/plating,/area) +"fc" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area) +"fd" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fe" = (/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area) +"ff" = (/obj/machinery/rust_fuel_assembly_port{pixel_y = 32},/turf/simulated/floor/plating,/area) +"fg" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"fh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area) +"fi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadadadaeacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadafadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadadadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabagahaiadadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakakakakakalakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakamamamamamamamamamananananananananananananananakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakaoapapapapapapaqarararaparararaqapapapapapasanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakauauauakakakakavakakakakauauauakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakawaxaxakayayayawayayayakazazawakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaAaBaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajajajajajajajajajajajakatanakakawaxaxakawawawawawawawakaDaDawakakatanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakaGakakaHawaIawakakakakaJaKaLakaJaKaLakakakakawaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaNaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaOaOaOaOaOaOaOaOataPakaHawaIaMaQaIawakaRaRaRakaRaRaRakawaMaQaIaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaSaTaTaUaVaTaTaWatanakaHawaIaXaYaZaMbabbbcbcbcbcbdbebaaIbfaYbgaMaHawakakakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaNaBaBaBaBaBaBaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaVbhbibjawbkblaWatanakaHbmaYaYaYaYaYbnbobbbcbcbcbobpaYaYaYaYaYaYbqbrbhbsakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaEaAaBaBaBaBaBaBaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakbtaWawbubvbwawbxatanakaHbxakawbybzbAaRbebBbcbcbcbcbdaRbAbCbDawakaHawaVbsakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabEbEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWatanakbHbIbJbKbLbzbMaRbebebebNbebebOaRbMbCbPbKbJbQawbmbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabbSbTbUbVbVbVbVbWabababababababababababaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaakawaSbibjbGbkblaWatanakaHbxakawbXbzbYaRbebbbcbcbcbcboaRbYbCbZawakaHawaSbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcacecfcdadadabcgchcicjckclcacmaaaaaaaaaaaaaacmcacacncncncncnabaaaaaaaaaaaaaaaaaaakbtaWawbucobwawaScpcqaYbqcraYaYaYaYaYbnbdbBbcbcbcbdcsaYaYaYaYaYaYbqbraTbRakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcwcxcacyadadabczchcicjckcAcacBcCcCcCcCcCcCcCcBcacaadadadadadabaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWatanakaHawaIaXaYaZaMbabBbcbcbcbcbobebaaIbfaYbgaMaHawakakakaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcdcyadadabcGcHcIcHcHcJcKcLcMcMcMcMcMcMcMcLcacaadadadadadabaaaaaaaaaaaaaaaaaaakawaSbibjbGbkblaWatanakaHawaIaMaQaIawakaRakaRaRaRaRaRakawaMaQaIaMaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEcecNcucOcHcPcHcHcIcHcQcRcSabcTcTcTcTcTcTcTabcUcaaecncnadadabaaaaaaaaaaaaaaaaaaakbtaWawbucobwawbxatanakaHawcVcWakakakakbeakbebebebebeakakakakcWcXaHawakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycycZadabdadbdcddababababcCcCcCcCcCcCcCababababdddedadbabaaaaaaaaaaaaaaaaaaakawaSbFaUbGaVbFaWdfapdgdhapasandidjdkakdlakdldldldldlakdkdmdndododpanakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcucycZadabdqcjdrdsdtducaabdvdvdvdvdvdvdvabcadsdtdudscacaabaaaaaaaaaaaaaaaaaaakawaSbibjbGbkbldwdxdydydzdAdBdAdAdCdDdEdFakdFdFdFdFdFdEawawananandfdGakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEcecNcucZadabdHcadudIdJdKdsdLcCcCcCcCcCcCcCdLdudMdJdNcacacaabaaaaaaaaaaaaaaaaaaakbtaWawbudObwawdPawawakdQdRdSdTdUdVawdWbebebebebebebedWawawanananananakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycbdXdYdJdZeadJdJdJdJdJdJebcCcCcCcCcCecdJdJdJdJdJdJedeedJefaaaaaaaaaaaaaaaaegbhaTbFaUawaVbFehawawakeidRejdTdUekelemajajajajajajajemelawenenenenenakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFcucycZadabdHcaabcacaeoepdvcCcCcCcCcCcCcCdvepeqcacaabcacyabaaaaaaaaaaaaaaaaaaererakakakakakakakakaQakakakakakakakakakajajajajajajajakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcccdcEceescDcZadabdHcaetcacaeoeudvcCcCcCevcCcCcCdveueqcacaetcacyabaaaaaaaaaaaaaaaaaaewaNaBaBaBaBaBaBaBaBexaBaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabctcucacvcYcxcycacZadabdHcaabcacaeoezdvcCcCcCcCcCcCcCdvezeqcacaabcecDabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaCcaaAaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcDcEcFeCeDeEdYdJdZeadJdJdJdJdJdJeFcCcCcCcCcCeGdJdJdJdJdJdJeHeIdJefaaaaaaaaaaaaaaaaeJeJeJeJeJeJeJeJeJeKcaeKeJeJeJeJeJeJeJeJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacycacaeLcjcjeMeNadabdHcadudIdJdKdsdLcCcCcCcCcCcCcCdLdudMdJdNdscycyabaaaaaaaaaaaaaaaaaaeOaBaBaBaBaBaBaBaBaFcaaNaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacbcfcfcfcfcfcuadadabdHcadudsdtducaabdvdvdvabdvdvdvabcadsdtdudsePcyabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaCcaaAaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcecucacacacacacyadadabdHcaeQeRababababeSeTeUabeSeTeUababababeReVeWcyabaaaaaaaaaaaaaaaaaaeJeJeJeJeJeJeJeJeJeKcaeKeJeJeJeJeJeJeJeJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabeXePcacacacacacyadadabdHcacacadueYeYabcacacacacacacaabeZeZfacacacacyabaaaaaaaaaaaaaaaaaaeOaBaBaBaBaBaBaBaBaFcaaNaBaBaBaBaBaBaBeyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabeWeWcacacacacacyadadabdHcacacadueYeYabfbfbfbcafbfbfbabfcfcfdcacacacyabaaaaaaaaaaaaaaaaaaeAaBaBaBaBaBaBaBaBaBexaBaBaBaBaBaBaBaBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacaeQeReRababababetababababeReReVcaceeDcuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacacacacafeffffffcafffffffecacacacaeXeXeXabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaabcacacacacacacacyadadabdHcacacacacacacacacacacacacacacacacacacaeWeWeWabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaababababababababfgabababfhabababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} From 7f9c95526dff3e7d53db57924b027877539d840c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 19:51:04 +1000 Subject: [PATCH 09/17] consolidated icons Signed-off-by: Cael_Aislinn --- baystation12.dme | 3 +++ .../WorkInProgress/Cael_Aislinn/Rust/core.dmi | Bin 2196 -> 0 bytes .../Cael_Aislinn/Rust/core_control.dm | 4 ++-- .../Cael_Aislinn/Rust/core_field.dm | 2 +- .../Cael_Aislinn/Rust/core_gen.dm | 3 +-- .../Cael_Aislinn/Rust/emfield.dmi | Bin 8012 -> 0 bytes .../Cael_Aislinn/Rust/fuel_assembly.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly.dmi | Bin 251 -> 0 bytes .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 14 ++++++++++---- .../Cael_Aislinn/Rust/fuel_assembly_port.dmi | Bin 1122 -> 0 bytes .../Cael_Aislinn/Rust/fuel_compressor.dm | 10 ++++++++-- .../Cael_Aislinn/Rust/fuel_compressor.dmi | Bin 312 -> 0 bytes .../Cael_Aislinn/Rust/fuel_control.dm | 3 ++- .../Cael_Aislinn/Rust/fuel_injector.dm | 3 +-- .../Cael_Aislinn/Rust/fuel_injector.dmi | Bin 3886 -> 0 bytes .../Cael_Aislinn/Rust/gyrotron.dm | 2 +- .../Cael_Aislinn/Rust/gyrotron.dmi | Bin 6121 -> 0 bytes .../Cael_Aislinn/Rust/gyrotron_controller.dm | 3 ++- .../WorkInProgress/Cael_Aislinn/Rust/rust.dmi | Bin 617 -> 41308 bytes .../Cael_Aislinn/Rust/rust_computers.dmi | Bin 1076 -> 0 bytes .../Cael_Aislinn/Rust/rust_old.dmi | Bin 0 -> 492 bytes .../Rust/virtual_particle_catcher.dm | 2 +- 22 files changed, 33 insertions(+), 18 deletions(-) delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/core.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi delete mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/rust_computers.dmi create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/rust_old.dmi diff --git a/baystation12.dme b/baystation12.dme index adb5f39af0f..b01f9d9427a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1200,12 +1200,15 @@ #include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_turfs.dm" #include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\areas.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\circuits_and_design.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port_construction.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor_construction.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_injector.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/core.dmi deleted file mode 100644 index 3fa8c9a3696f27cd489e02fb495d7fb77237dc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2196 zcmZuydpy%^8~<$%i-pmFsmQsJ@=JwLV-bFO#hjOBnnN0yCdz6?dx%sHAx}af%Hz;e z!Yijt5upQ$a!lz_4BN9Fv;E%n`MiI;f4tY{zV7e+xv%T`Uf2Eo=T7r*cUDo>Rt5k- z#nr`;BtwqOsq5rq`*c}43jh#-9!I>L+S}WAn3}1msNrxp3jus9G8k+C42&dMOu zSrC~9;)x*smjS!af}NO~Y%4^PCC$g-9g91KFT0}U^0Rt?iKU>N~OB+`cA78o9f ze;Eyii8Q7?(TPZ+5oMfoF2t0r3_O`mr!$EpGQ`S&SU2=!!;?sO8WV@dlW253JOptI z3jpBhlWG_MTI#DI?u|m3a6kcY5CVWgfJg%RVIT|uWMLYh2NFRdNk>U=C-TTV{z95{mO0nTJxZM3!|S-!P|wiixk^Rm6Sd*N)_b`064U9mKJ zRH@Z%^?CY;8PxZ$-|9TQvC|$3kByA>nLO0s4R>$?UnZ5CA9! zxjH&{pG;~Yiw}+ZZfxy2t6%NE!w2L%mW%4T_9ywT_H-BgS)5m9`p@@)&3>ZFNGVMC zK7Px}(B?cNo;_FywB@;R~+@223{VOx~X+?%eEV+~sX*^!!Amor&Frlc$q3H*0(oly;Su zJ1c4TenS=H=6;)U$t;W9->aPY3d%0i=*AukS^j5;IJJ~xlC~TD+lhz%WQqaGzgXLS zU5Lp#9`oocxs7PUqNvD7JF|Q%D=WA1`o0xm?Y)$vn4258feZI<+cyQCUz&ERUlaD` z?{1(BQAYUF@Azppb>`2b3iETrtdWELs3s*a*m$hn&4!Bmmh)h?%OyAUA&`=*;#aix|dL8ea`qDvs zoL-xhx4CEr479OJ<{t{xsEFr8Iv;uUd)8>!CJ!a*o*49mRouk3;@IXEO6}NzgHa2a zawm;4($RwD`B+|*Wm~mE<3y18(}~fDY{@{s;-!v&TJwgu!Sl$}u28dGhOV(?*N&n2 zjGGk7*vHX`EDh7LU*iUy z_GKHDwo)EOnr~GzuHa%U3gE;TGp}{~e6-zCr(E=~s_;l@U1MZdR@}h0Xotdjj$Iya zWF#g`=|fmY#QdUSQ`XMsOIkHRW2e*@!9u@pQ^*0DvI=8a;f4vHW+Y*yS?8(`jyQIy zAZg|$uyIbOo&CzErI`HZJz&#_U;nogdw6#kAJT2>Ik6n`bl2Me#W8o_%g*=JerELz z1$`bzsne0>j80)aFU6pGIN)`lij!wHz9Bor8)&P}H7ovbYWUQTg?$fh-J(P6kiy`N zh3c5oJqd=|4#SGsMSBL1mGr@0HQrld9isO>m|bR--}F0dQ2HX6FSn^e{(S=Vs;XNe z9ph4w?^gaMSEs!GMAlXcs9`;WqFB353@g>mw(DdhF{++$#`}BH!>*#v|1PyRe`x9c zrlE!ZB&F24=co=bM?-u+#ZfC$V2bz?-f`RgtKXGga@mR`F(P4K(w1?>m;!Z+0YZeY zy*|3^FlQ+|YyV-1r>2FM6|&W)5AkZy=$nK=xX5ZaHym!v?nL~T`0cK2P4KMdCqsBahJ zI|LGIop%Hap{>t;R8;)M+5^7LGs+y>#eo3$QsX6d8@goCK#Yo$uwz}wllK;dFHWh+ zh;#l+=Dr%#`e=@2Vt1E7?JAJ^t(WxgdZTo)_S_sxELD|qHpTNb?Io(y>Jqtd30u>C z!da;HTwvR*-t-qsVjA~iC}1*q%cJfEHO8-jCQBw3k#pioX$QB}#GF3}k4riG(RPeb z?@ZRhch=p7J0~f@B2Mi|Eg}E zZXk?$*0JU=4x6q2yFE8;5xusNQ!7O&0gEDsM4&wwSsXcms;fE|I5BU%AzxLRG$OS? zEKHy{>yzhUduuI(poML){PQ674T0~*DVB=dwsWLvT(LfNEIq?0|&xrSaEbK-EUKbrfj1`|Hzmb#iyCAySk71OI#tK>z>% diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm index 19d8e07dd85..9cee19cea8f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_control.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/rust_core_control - name = "RUST Core Control" - icon_state = "power" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "core" var/list/connected_devices = list() var/id_tag = "allan remember to update this before you leave" var/scan_range = 25 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index 9442ced3a46..6127e8f9d7e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -9,7 +9,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K /obj/effect/rust_em_field name = "EM Field" desc = "A coruscating, barely visible field of energy. It is shaped like a slightly flattened torus." - icon = 'code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "emfield_s1" // var/major_radius = 0 //longer radius in meters = field_strength * 0.21875, max = 8.75 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 7dadb4943a6..a7cb88708f0 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -48,9 +48,8 @@ max volume of plasma storeable by the field = the total volume of a number of ti /obj/machinery/power/rust_core name = "RUST Tokamak core" desc = "Enormous solenoid for generating extremely high power electromagnetic fields" - icon = 'core.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "core0" - anchored = 1 density = 1 var/obj/effect/rust_em_field/owned_field var/field_strength = 1//0.01 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/emfield.dmi deleted file mode 100644 index 4f53b069c64296bd351539c81c63b2b198d9c94f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8012 zcmW-mcOcaNAICq3a#qgD3}@6)aak!G4o9{_sn8*1Wv_I&>^ceJsgHVY#kBLDy_w{$eI;8X3t0X+-;mO6S& zfsf|_W)|L>_Fi_Lj_%%$Zms~}pC#T=!5E5!ot?R{%c)uy@x$55O(OY)`hz?=PX);P zB)THE>AdNkZT~nU)mDR?b64e8g`g2VDc>{f^k5Ti4`2NDb2|NbJ`>%)SoP3quFO;W z;%_V*C!@#k>NfPOj0t5eoN)DimA*>*=vRZBpfS8q-_wAa#{eK0aZ6L(%s;F5*;C>} z^9<_h)ZvbWZ0h%SmIWVWLi68#EL2P8WR`lxM$^sQbrGUCb6+7~< zuTkR7H{V3Z@)HK%pF4MxAdH9_i6Wp=wAeFJG%>eH6(6LhJXf<-ZQ+uaogvvMFLE?T z2HXD1>S54s&*92$V3W3B(4I}!YWifbanADLH#>6DX3oFsJW8YMo)umDFeKFC$w)3e zl2({bZ8c~jfv&feHdq#dyPDgZl~SH2^P*(SLd=2WOKo}#Q)QQvUJW|A3nbF`AK}-@ zx@zQgr`8i;0>9VNeQuJ=@43&Ip10TUkG1J!U48GWYha>@z}3#a9tvtrNo%hnZ@$vR z$fO7+()GRs+`Vm{+StnqCDOfXUM~{x3e2S;6eE5OS5LilX{s74H{Ex6wC}Q+n@oUE zo0Lvly3IS%JWX=Fie=7f*@R&kb)grv*)66zHK34b>W?`AM!TbY71M1d>`T>Hx?WM~ z$gpLblWITJKf7y>FJd~o-m@bX^(6|GSx!~1TTNe@cNuxZhMd`ZR;8O_baM3PC~mpt z`%ig?QbsG&uZZwc< zmhG#}x`R0G;U2C!+253YCw6C3JUt>|G};8g7+Q=#4D<2CYni+ox~6oE5iZ{SxxJ_5 zPF3g~{+(w=S(c~XjTVAU8!3lt6HJ%b%9+Dx&tHs~OXo8P!N$D2uSIv21Hfh6tVz;| zPsDw)z>KfIE@8yhzv!GFUTYiJ?*bPAW5`@qF1HhN=?MPy2QTB00j0k}cZD|9QO%SK z*^azW4r95;6Rn**egy#VQZUAQ>CE>OYwv~?OB(ZPe40dEMoqeQVk(X*-Xu!L8O2}B zbCzsTXM*==I=S#$n8F7PqF95&6=GuY)BSxd8sxt3H2+g z-v+WVpKTsYw^qmXeO_F=_B}4KS!N3rQR0j+;|EOuO+S03RjpqRc}*a)#2I=Q01%~O^));QFv*-8pZ5SX$-;M7W|B+To}ISoGHcT&sa!aNfpV_Z!xoK z#s6ei-u!u9$-aeR*!rx0B#)JL=ij6}NybJGa^g2b40GIgz+S@=vz2z)vIrYX-tvLF zrBDJjjm6;VV&++^L7c&&(Z(y`hNX?62XVXLKY!ifOGt zWW3_jXmz!FD$1%y>G!mpzr3AEDrqd1oHpUI*D@LLDs8!F7QP?T;_6U;60z*xW&1vv z!WmK9Wg=Dp*I(5Y!SNzlE>z9^_;0$Qh`=So+0zN8%akgCG|)R#UKS`SrlAL2?OZ)M zNgem=id`K_Y0ORVS~dx#<vkd+ZOY zwMA`Jq-y=?>%!2p-=!DwUllPjrtnE_pJ%oTB{}!Y58dVxe}}~I*zKC=(!~8RGDbJ* zGVFiq?h?<&ZousR)wHA!c`EyrVXL{q^QN5aoaCZ2*4ZqPDiQldmYmJ^eW9m9ec-&s zq_6#Eac%hyH>5Be8t%$dPB%zJNQG{m`e>|Yx=DbNco-Iap0`M{Xx_7Zgr2Lt-&5Iv zaZ{T^gGVT#wO8 zG~!-lY;;H8;r5DUg`r(9g%KeH>;W65tI00z1Z$&j$`vl#jpR$r|KX5l=8P+_2=BOY zf3)*KW#IN5g^fkQAkbsuuF3sV$gBz_ZQ|ligfLwUx{H`=)qAV4wcnH&;IG1xjGr#F zDe;I;Ka2}fxA|uplRu*Cch0~xucX`eXbB+fu#9}yHft{|mh9&|6VvhWG{fiF&vY{Tdb zII5Ox5S#?6*Pl{J7fM46Yy$iJY7i^HUb2ORSf9Z$0ARIf#4Bu?iKINjb~B*o%Mjvs zWHGl2h9X*c+9U1!gPyX)wCH@EGAm;_T+!+OQo;{4{fsd+<;3t5y{-P21KM*KA+8rT z^I7=emzpo`a>=^W7=kY9)xMKVN)SEa!7W@4Y~vmf8-`24ZYbMreU87)pIIu*UWt@{ zp;lo3(y5_@hG&@rXfFNvYRp3BoUR1M&g7lTc^J}wZmyj?Cb%ypKJQQ2zeQttRyddZ zC@4q2Ncyb1k4%a+m}9MN16Fu-JJZG5^1_Z7ia6ugjnQ8bXNow7Fs9mV1XqlTEE z)g&NL^(z9J@9jl7k{5dz*4cf{Yr^M zXxqwS#Ia?YZHMbLxAC^mT-~eGCtWvdUxBP42}XcF(EPGt6*LAO^(upYZ3y&?6ivy% z8vv(QY%cBEE#NwBvoV5zFY=9XQ#s0E(hwd>9v`e6HUaLAGAXwKGmb&8wDvcTGzi3j*ZYP4 zE>!msjOx#Rk#xvtB+^)JS!Z*a>O2i6Zb-rxa@*ceBOt=bx(|}cj~ZX-7d;rwK3Q2g zWCoxTr>}?`!7jwo`T5%n`??p_bzq_u&@dS2DN+Q+HQNYZoNuP|2e;=;&*QOYl5s$V zJ1pF3E{eF3qVe+Cj^0d9wAq0%7@(jR?uwf(Ru`B847X-ppcQ1LpI;6qiekH0-Qn8k zREX5W=?{WIVh+Bpp(?bcEcMAzVGBA}LM#wKuGd~xsFw{C&Z-m54_|Pn4A@N$otp1X z8WjFGWE%Z0{mb-Iu$cJo@TApWmd#XwyNIdSiy$J0E?B02B~y1>)Z1A{S@Zbx?pL9kn2tep-g9u~FHqB}*4oa{oF zp1=3x%Axw<1K5OOJ96O1r>$KB50@(*Q=_R~?_9Xp7%ZT7&*J+s>>Xg}5p?%ua7k{L zAIc6*`9v?)j^AXvn7c$ec^n3dwTud0yP@4FQ*Mp0voDJRv1i63p)2{}HFmkvZDB}U zMSjN(4;3NOs$GL|L=roSN@Q9$g}1FT8?4kquu@y-xcTIG(tU+&slwN9_izcid+hC zP?EAFhqmxct18J~=Q)`?V}a$JD_Dn)CB!=Phrnn^tF4>ImjnA)`o7(%Ndl2!Wj~+j zc@-u9ES&femYaEO1#hdbNfH8Qt|0Hbl6NBm`>v((pyeFk=g-;72}115w$`4ntknDe z@*KX@zw^3O zrWeroTe`|u!e%U^_^(>|RNbqxet&(Sa@?U_YRvVGt`|JnK)L}J{rVxB@sklz0Ot^6+4(+ixyId+wc}G+xi<@m%%x%KSDzDH zKs}t;-RB;T9eUW@?+LN0AKg4wm6O|c(lDJpuyj+Bx|a~^-mLj)C}PqV_cyb~{n1|= z7k(8xDb=KeCn=Ji@al*mJlpnd{;M5Y;~oRP4M}qWNI9R}qOw{--W}!K>Dm3P0~Gmb zqv}GyiFm@&vaFB6)!Y1vIaXR_%UkQx>4GoE*AMCD>#Nhsq;9AwPj}#Ve z*?E9uok>`xV}7wl5~b{{=l0~Z{d5lhwxdm)GJh{vto=n65w^Y#sd=kh5tJR^Y?WMu@DOG22_xw1L|A7C-PN?0y8cY4edv2ylG=-!Y@|(h2 za759&QB_$7F)*)q267!15ohCJe}Q{BM|0d`eQ$snW6S1`(k_}JEZ5ZF0`x5dyC8Lw zi(fs4+jT%8!aAez*f|b(bN!-Odt11y=|T@{A;)-hphUs$>e^;OMvL#!qE&0)(bx9x zd+q{^1sh{M=W;#^xm(i#YM*UZ(Qm?h9@>irf9=Mg?mdx<5BOBXT2%rvtVc0ouCx&df;qXb{YXU;|n*3M4lf1;$X%7hN z)-s&safStz%YjN}W($F{n-Qr<_DpYMD~=>#hL+H@K9v!j}smPBp!P^q+HEvcAo zLGOJ9HbfM;UpiD2&7 ztR*=HCr3qq_Hg$QJ3lJpqeAfw93fFC^xq9u(6z(OPL19%DBPQ&j&lcu(8WoIdcp4a z^ZHhiB}=Z{;KsPT4V?Kh55n@CjWX&QUH;y5p=gvX=esJUznTbdDDhA}YWt+ZE~sDp zqrw#W=jLgib#PD_HZ;!}RJtviG7;DY1`SgXvhR$M-c(zi4#u>&nA;qVlXe$V=T1y| z*4gXX2edf`V3>#&q&G{K1N3uoJgAf3EYkWa-oZQ6qi_Lt*c-ZE6eCf5iAQ*`^Cx%5 zw@1JFz>gF~OEt~1vT=qJqTqNheMl1#k5hNQCUXAyT1wS0r2hH#$W$a(op5>h5 z+4%kS1Ya~2l8JZJ-EnCL$+J#^}=?k_}h)LQK@Zes=F{Eg|$&9b6@&ftE z4Qm66*?kj>;8Ua=S1~EOn0169_z|A&6GuV68J9svIH_bgb?(B4>MZZ~3t&;7cf~Ar zNWi(%?ij)_i>LX-i7uW)yYPz2QiMLm%pr4(Lhn!-0(L*vhU$gplV9%_J(O%H6M}%L zVFxtZBYdS@WpRtIWu=u+X}&T)a_fUEriqNWp(c@i`S*Dv5Yta?xzFL&>|wL3sD<+?SR5)XUug*C9oMxkC~-vHjK)BqZQvQrP$>t z2aIgMhox<*dAQBTXAnDPQ4Jdty zMKpYL^z(gEv^M3L0Y&f zJPgnDpNKU8j4iAcO)RZzxWm4rv2Up8E;iW{r4Vtyx!R4NRFyx*)7@Wi5^5SNZ&IwG z-#XlURpj(Q0BjfLm-jvz-%kviSp-+&6_zv$az`@xMlKL6N2gH#b==R^ z=_}@kdqgb26HWL2n3yzPt<}2Rs6Pj-6lPBqLWCB|W_?`xkU(Fc45Z(dOek346ix!MNYhV!(Bozn* z?9FxYYz!sPq`-i%J*>!o4TW0%ody;&@?+T)P^t}2352`+?rYnc;31e3l+U40NNHipc=K%kIFc=%`QWL4s!>}Ho)CXE{ERqcglQ`(oQb*oDRZ{Y8=)t6&=+i$xO(rbv>5Nj~uyt^CEWf z4)@25|Fqb67%_tQQL2y=G>D~6813(b1H#mw*~B)HY*eG>rEd$iABaE35#|pl@r2V+ zmg82iP<{o=FQr-T&iPdC)G*?7680Xtn*}buk#aLkITZE!*(_QSRvwt!Gw}#gc3<2j zr3`xStRlAueExA!TgBebcOnnOex+(k9-lzghNK4lbfYOua65HVzu2LhRo&)C0gm?C zfoiLU$S9$ui#M!}-oidM+$9BX{HLQpHGR%II=IleBR<+JQyjZkRzwV@SpB;Lg(rGR zjaf$JNX>jdAn5cTb%HRYFp}%1B9!ID9Dc6^m3sx4FCp7wU6j8`lO9iw8G}gUmGDRpagsiLwmwezrAvPO+M=F zzRgCW?yf%@2@KcypgOH*XGIC6dVw8)axgc01*uSfVWj2@VZT0rPA{}vel<~7V)`aH z36o_f#X}0U;B`WuN*YB`LGti@!i3tbcx-FtLZJt-)GBmu>6=WxI#a?@-k8hRA49Fh zB6LPJFBbE+RsfTkYDyw_n=}XuKyHp!}rNiQ-0EaJjmIrnO4o@2QcYh9`Ed4~Mu1BbCbrnmtP zV$zb*b*G7Q5*bOJ(o~UUFVwFClt718vs}NgfZVb|&a+uDo`Pd-iz;pmNG$GR4z8$! zpC(y&<>IBv!y8gea@tgYc4ysDX9faT<|T zh|?_y@3rMECc&$7I=b-da!00;=q|H^1JEDg0Dk#U^}l7d{`hhZfi~3z#?GjNFH7WT*PerBQ3jO#Y}~G zF>mUlk%TUdnj$WLf=j_QwQMag;oD38=EdaDoJfq{cuV9xuM-dTg5(5YAYWf{cwy=j-KUVPcFy*8{Hq=f=E~U zrRf)a0Phy*Av4-W%B?rJy?x3?g55m>YH9oj;-D>AzZU%|8jLZ$dQErot7yPh|jkVxf@RKZbu3?+rjb!q{q?q z4j$k^tm6Ts+2uZrE{=K4HeCs9KK+n5&?GQ%%CtA6qk|V7XaTRsfm>RJnj|zXL*6f9fcvG2r`Ggn0{ zxP^e?j3q&S!3+-1ZlnP@g;gODB`&GO$wiq3C7Jno3=9=>g2M`mO22;zF8KKMiI%sn z*10q1gExd4Tr__0Nawtd=1GR4p57f6#zDrHjlC4+JeqW5QiwvZ=2{a|b-Rr_EKJQc zmj`ur8>?@q=x_q6`c+vw4nB-VoCURLkJ$>gTe~DWM4fZsS?x diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index d0e23e290c2..1f881c8150e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -1,16 +1,22 @@ + /obj/machinery/rust_fuel_assembly_port name = "Fuel Assembly Port" - icon = 'fuel_assembly_port.dmi' - icon_state = "port0" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "port2" density = 0 var/obj/item/weapon/fuel_assembly/cur_assembly layer = 4 var/busy = 0 anchored = 1 + var/opened = 1 //0=closed, 1=opened + var/coverlocked = 0 + var/locked = 0 + var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires + /obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) - if(istype(I,/obj/item/weapon/fuel_assembly)) + if(istype(I,/obj/item/weapon/fuel_assembly) && !opened) if(cur_assembly) user << "\red There is already a fuel rod assembly in there!" else @@ -21,7 +27,7 @@ /obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user) add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) + if(stat & (BROKEN|NOPOWER) || opened) return if(!busy) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dmi deleted file mode 100644 index d2250e97d53b2752f34e79a1e3b4a04d03776c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmW+!3rrMO6dfVdjjae`t0=fDN-003%)s*7nYS~$xVs>*Z{C~5-L)S;k&o;LELNhe zy8{N%5@xBXDG0G5wAe~ggT(%56;o1_SgonrMn%!oinjhRZInKHlY7s7FE{7joO_## z3RcgZvv>|gQFF~E10)EDYgEA`ekgn}NKrvyMfu1$JUrYe`+PpRk$~SP%l_xEgSh{B z>LWlt<>!GE$TFM5LWo5xL=ZDhg|WA#*%fAO8{=$Cf1{nTD;Q#8&}zj9`(?R|-Lb^TR@ZO0t&!jmNgCH0Lo)-j!aic766!iMshVt!CO5T0IvOtos zZ7tzLacgEAb$9IUKhqomZAJ#*d81&IYN~I`0&xV-ZH_P9@dRrga9=>;a4=D2fmku{sVyYfMaxTCHXn znqe5DQ6K}7Os!F48|GLJBV@6dJRZ*`SB(+~D6IjH$L)2y&1N%%VlkmY(C7C%m5-|r z9Iov@%CRh=201JuU6DvM<^Zr_3|N3fEE1Lce!%Jg2PBb*N?f#9EN+*}>+vXx(jHJe z9v5kbu}Jm-04rjg$}k3=HwZ>Ll^CtoXk=d#004>*OQ_g}kqE62+Uz!ohykHQltL0& zA**Bc|2Na=I9AW)_ur3hB;+M0oEaMz2XM++`szf|cz*mS<=wq!D1(OdIohJ> zm{3kCNF#o#`L6FIXl|inzwBG|qxQx`exhY;P2+$SMNYt;!&h(L3L1=}R1quM`xjqvG-?7#sUGD+SO?{Al;8@CvhcE6N_)8UDm=vBD^T~nIlI!`ew-%c6 z=U45`f5#NwbEqe81Xh&gZjc6(Zsm=~X5W}>c@okXYP>KK65F#rMi>m8d|8F1(f+E+ z$<3ayO?-o1wojtCffgNIHm=!!I@Ez61?jy_cW(X5ciCN(LY z{Y!7+SV>$TyKYu}_j%Rn)2otJCLdv9jvhaC;q7h01FW5NT+aTgLFJjgm=zVZG`g!} ze`o)yvbn$g)L%6isy#o|Ir8+x_t($SkM7_9=hTIn>E7wkN&n@LjAx6R$t_T3V}aod H{w?2sU2nE( diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index 3b0589008c6..1dd5a77c22d 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -1,12 +1,18 @@ var/const/max_assembly_amount = 300 /obj/machinery/rust_fuel_compressor - icon = 'fuel_compressor.dmi' - icon_state = "fuel_compressor" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "fuel_compressor0" name = "Fuel Compressor" var/list/new_assembly_quantities + var/compressed_matter = 100 anchored = 1 + var/opened = 1 //0=closed, 1=opened + var/coverlocked = 0 + var/locked = 0 + var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires + /obj/machinery/rust_fuel_compressor/New() new_assembly_quantities = new/list spawn(0) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dmi deleted file mode 100644 index 75c6cde035056853f9cc9f1dec697bbfc4db6227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 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 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm index 83d43833775..ba12179bf60 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dm @@ -3,7 +3,7 @@ /obj/item/projectile/beam/ehf_beam /obj/machinery/rust/gyrotron - icon = 'gyrotron.dmi' + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "emitter-off" name = "Gyrotron" anchored = 1 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi b/code/WorkInProgress/Cael_Aislinn/Rust/gyrotron.dmi deleted file mode 100644 index 919503515fdb6e901aebfda9b738696920fe9a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6121 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
" + t += "- New fuel assembly constituents:-
" + for(var/reagent in new_assembly_quantities) + t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" + t += "
" + t += "Close
" + + user << browse(t, "window=fuelcomp;size=500x300") + user.set_machine(src) + + //var/locked + //var/coverlocked /obj/machinery/rust_fuel_compressor/Topic(href, href_list) ..() if( href_list["close"] ) usr << browse(null, "window=fuelcomp") usr.machine = null - return - // - for(var/reagent in new_assembly_quantities) - if(href_list[reagent]) - var/new_amount = text2num(input("Enter new rod amount", "Fuel Assembly Rod Composition ([reagent])", new_assembly_quantities[reagent]) as text|null) - if(!new_amount) - usr << "\red That's not a valid number." - return - var/sum_reactants = new_amount - new_assembly_quantities[reagent] - for(var/rod in new_assembly_quantities) - sum_reactants += new_assembly_quantities[rod] - if(sum_reactants > max_assembly_amount) - usr << "\red You have entered too many rods." - else - new_assembly_quantities[reagent] = new_amount - updateDialog() - return - if( href_list["activate"] ) - var/obj/item/weapon/fuel_assembly/F = new(src) - //world << "\blue New fuel rod assembly" - for(var/reagent in new_assembly_quantities) - F.rod_quantities[reagent] = new_assembly_quantities[reagent] - //world << "\blue [reagent]: new_assembly_quantities[reagent]
" - F.loc = src.loc - F.percent_depleted = 0 - return -/obj/machinery/rust_fuel_compressor/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=fuelcomp") - return*/ - var/t = "Reactor Fuel Rod Compressor / Assembler
" - t += "Close
" - t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
" - t += "
" - t += "- New fuel assembly constituents:-
" - for(var/reagent in new_assembly_quantities) - t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" - t += "
" - t += "Close
" - user << browse(t, "window=fuelcomp;size=500x300") - user.machine = src + if( href_list["eject_matter"] ) + while(compressed_matter > 10) + new /obj/item/weapon/rcd_ammo(src.loc) + compressed_matter -= 10 + src.visible_message("\blue \icon[src] [src] ejects some compressed matter units.") + + if( href_list["activate"] ) + //world << "\blue New fuel rod assembly" + var/obj/item/weapon/fuel_assembly/F = new(src) + var/fail = 0 + var/old_matter = compressed_matter + for(var/reagent in new_assembly_quantities) + var/req_matter = F.rod_quantities[reagent] / 10 + if(req_matter <= compressed_matter) + F.rod_quantities[reagent] = new_assembly_quantities[reagent] + compressed_matter -= req_matter + else + fail = 1 + break + //world << "\blue [reagent]: new_assembly_quantities[reagent]
" + if(fail) + del(F) + compressed_matter = old_matter + src.visible_message("\red \icon[src] [src] flashes red: \'Out of matter.\'") + else + F.loc = src.loc + F.percent_depleted = 0 + + if( href_list["change_reagent"] ) + var/cur_reagent = href_list["change_reagent"] + var/avail_rods = 300 + for(var/rod in new_assembly_quantities) + avail_rods -= new_assembly_quantities[rod] + avail_rods += new_assembly_quantities[cur_reagent] + avail_rods = max(avail_rods, 0) + + var/new_amount = min(input("Enter new [cur_reagent] rod amount (max [avail_rods])", "Fuel Assembly Rod Composition ([cur_reagent])") as num, avail_rods) + new_assembly_quantities[cur_reagent] = new_amount + + updateDialog() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm index 9f2e40d7e82..068301a59c7 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm @@ -43,7 +43,6 @@ else has_electronics = 3 opened = 1 - coverlocked = 1 locked = 0 icon_state = "port0" @@ -65,21 +64,19 @@ "\red [user.name] has removed the circuitboard from [src.name]!",\ "\blue You remove the circuitboard board.") has_electronics = 0 - new /obj/item/weapon/circuitboard/rust_fuel_compressor(loc) + new /obj/item/weapon/module/rust_fuel_compressor(loc) has_electronics &= ~1 else opened = 0 icon_state = "fuel_compressor0" user << "\blue You close the maintenance cover." - else if(!coverlocked) + else if(compressed_matter > 0) user << "\red You cannot open the cover while there is compressed matter inside." else opened = 1 user << "\blue You open the maintenance cover." icon_state = "fuel_compressor1" - else - user << "\red The cover is locked and cannot be opened." return else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card @@ -134,7 +131,7 @@ has_electronics &= ~2 return - else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_compressor) && opened && !(has_electronics & 1)) + else if (istype(W, /obj/item/weapon/module/rust_fuel_compressor) && opened && !(has_electronics & 1)) user << "You trying to insert the circuitboard into the frame..." playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 10)) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm index a69f4023e53..3c72a216a1f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_control.dm @@ -62,14 +62,14 @@ return var/dat = "Reactor Core Fuel Control
" - dat += "Fuel depletion announcement: " + /*dat += "Fuel depletion announcement: " dat += "[announce_fueldepletion == 0 ? "Disabled" : "\[Disable\]"] " dat += "[announce_fueldepletion == 1 ? "Announcing" : "\[Announce\]"] " dat += "[announce_fueldepletion == 2 ? "Broadcasting" : "\[Broadcast\]"]
" dat += "Stage progression announcement: " dat += "[announce_stageprogression == 0 ? "Disabled" : "\[Disable\]"] " dat += "[announce_stageprogression == 1 ? "Announcing" : "\[Announce\]"] " - dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
" + dat += "[announce_stageprogression == 2 ? "Broadcasting" : "\[Broadcast\]"]
"*/ dat += "
" dat += "Detected devices \[Refresh list\]" From bdf1589cc2bbd19160949c5ed6119ea35356039c Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 22:42:25 +1000 Subject: [PATCH 13/17] made rogue vending machines revert after event end, reduced chance of machines going rogue Signed-off-by: Cael_Aislinn --- code/modules/events/brand_intelligence.dm | 36 +++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 36aa9eb9e2e..31fe141ad10 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -4,6 +4,7 @@ oneShot = 1 var/list/obj/machinery/vending/vendingMachines = list() + var/list/obj/machinery/vending/infectedVendingMachines = list() var/obj/machinery/vending/originMachine @@ -28,20 +29,29 @@ /datum/event/brand_intelligence/tick() if(!vendingMachines.len || !originMachine || originMachine.shut_up) //if every machine is infected, or if the original vending machine is missing or has it's voice switch flipped + end() kill() return - if(IsMultiple(activeFor, 3)) - var/obj/machinery/vending/infectedMachine = pick(vendingMachines) - vendingMachines.Remove(infectedMachine) - infectedMachine.shut_up = 0 - infectedMachine.shoot_inventory = 1 + if(IsMultiple(activeFor, 5)) + if(prob(25)) + var/obj/machinery/vending/infectedMachine = pick(vendingMachines) + vendingMachines.Remove(infectedMachine) + infectedVendingMachines.Add(infectedMachine) + infectedMachine.shut_up = 0 + infectedMachine.shoot_inventory = 1 - if(IsMultiple(activeFor, 12)) - originMachine.speak(pick("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) \ No newline at end of file + if(IsMultiple(activeFor, 12)) + originMachine.speak(pick("Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well I didn't want to buy your mom either.")) + +/datum/event/brand_intelligence/end() + for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines) + if(prob(90)) + infectedMachine.shut_up = 1 + infectedMachine.shoot_inventory = 0 From 2c585fbcc44c24201fdd60b940fea5f9fbe100b7 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 23:06:14 +1000 Subject: [PATCH 14/17] moved shield files to folder, made circuitry for shielding gens/caps researchable, various tweaks and balances to the research requirements, made shield gens/capacitors orderable via cargo Signed-off-by: Cael_Aislinn --- baystation12.dme | 10 +- .../Cael_Aislinn/Rust/circuits_and_design.dm | 42 +-- .../ShieldGen/circuits_and_designs.dm | 52 +++ .../{ => ShieldGen}/energy_field.dm | 104 +++--- .../{ => ShieldGen}/external_shield_gen.dm | 72 ++-- .../{ => ShieldGen}/shield_capacitor.dm | 317 +++++++++--------- .../{ => ShieldGen}/shield_gen.dm | 0 .../{ => ShieldGen}/shielding.dmi | Bin code/datums/supplypacks.dm | 43 ++- 9 files changed, 362 insertions(+), 278 deletions(-) create mode 100644 code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/energy_field.dm (96%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/external_shield_gen.dm (96%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shield_capacitor.dm (97%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shield_gen.dm (100%) rename code/WorkInProgress/Cael_Aislinn/{ => ShieldGen}/shielding.dmi (100%) diff --git a/baystation12.dme b/baystation12.dme index b01f9d9427a..c6bbb28d78d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -11,6 +11,7 @@ #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/ShieldGen" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" #define FILE_DIR "code/WorkInProgress/Susan" #define FILE_DIR "html" @@ -1180,12 +1181,8 @@ #include "code\WorkInProgress\autopsy.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" -#include "code\WorkInProgress\Cael_Aislinn\energy_field.dm" -#include "code\WorkInProgress\Cael_Aislinn\external_shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\meteor_battery.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" -#include "code\WorkInProgress\Cael_Aislinn\shield_capacitor.dm" -#include "code\WorkInProgress\Cael_Aislinn\shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Accounts.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Economy.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Economy_Events.dm" @@ -1215,6 +1212,11 @@ #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron_controller.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\radiation.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\virtual_particle_catcher.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\circuits_and_designs.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\energy_field.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\external_shield_gen.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_capacitor.dm" +#include "code\WorkInProgress\Cael_Aislinn\ShieldGen\shield_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\LaserComputer.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\SuperMatter.dm" #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm index f1d874a68fd..06738785d63 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -5,15 +5,15 @@ /obj/item/weapon/circuitboard/rust_core_control name = "Circuit board (RUST core controller)" build_path = "/obj/machinery/computer/rust_core_control" - origin_tech = "programming=4;engineering=5;power=6" + origin_tech = "programming=3;engineering=4" datum/design/rust_core_control name = "Circuit Design (RUST core controller)" desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." id = "rust_core_control" - req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + req_tech = list("programming" = 3, "engineering" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) + materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/rust_core_control" ////////////////////////////////////// @@ -22,30 +22,30 @@ datum/design/rust_core_control /obj/item/weapon/circuitboard/rust_fuel_control name = "Circuit board (RUST fuel controller)" build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" + origin_tech = "programming=3;engineering=4" datum/design/rust_fuel_control name = "Circuit Design (RUST fuel controller)" desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." id = "rust_fuel_control" - req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + req_tech = list("programming" = 3, "engineering" = 4) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) + materials = list("$glass" = 2000, "sacid" = 20) build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" ////////////////////////////////////// // RUST Fuel Port board /obj/item/weapon/module/rust_fuel_port - name = "Circuit board (RUST fuel port)" + name = "Internal circuitry (RUST fuel port)" icon_state = "card_mod" - origin_tech = "engineering=3;power=4" + origin_tech = "engineering=4;materials=5" datum/design/rust_fuel_port - name = "Circuit Design (RUST fuel port)" + name = "Internal circuitry (RUST fuel port)" desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." id = "rust_fuel_port" - req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) + req_tech = list("engineering" = 4, "materials" = 5) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) build_path = "/obj/item/weapon/module/rust_fuel_port" @@ -54,15 +54,15 @@ datum/design/rust_fuel_port // RUST Fuel Compressor board /obj/item/weapon/module/rust_fuel_compressor - name = "Circuit board (RUST fuel compressor)" + name = "Internal circuitry (RUST fuel compressor)" icon_state = "card_mod" - origin_tech = "power=4;engineering=5;plasmatech=6" + origin_tech = "materials=7;plasmatech=4" datum/design/rust_fuel_compressor name = "Circuit Design (RUST fuel compressor)" desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." id = "rust_fuel_compressor" - req_tech = list("power" = 4, "engineering" = 5, "plasmatech" = 6) + req_tech = list("materials" = 7, "plasmatech" = 4) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000) build_path = "/obj/item/weapon/module/rust_fuel_compressor" @@ -71,10 +71,10 @@ datum/design/rust_fuel_compressor // RUST Tokamak Core board /obj/item/weapon/circuitboard/rust_core - name = "Circuit Design (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" build_path = "/obj/machinery/power/rust_core" board_type = "machine" - origin_tech = "bluespace=3;engineering=4;plasmatech=5;magnets=6;power=7" + origin_tech = "bluespace=3;plasmatech=4;magnets=5;materials=6;powerstorage=6" frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen." req_components = list( "/obj/item/weapon/stock_parts/manipulator/pico" = 2, @@ -84,10 +84,10 @@ datum/design/rust_fuel_compressor "/obj/item/weapon/cable_coil" = 5) datum/design/rust_core - name = "Circuit board (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" desc = "The circuit board that for a RUST-pattern tokamak fusion core." id = "pacman" - req_tech = list(bluespace = 3, engineering = 4, plasmatech = 5, magnets = 6, power = 7) + req_tech = list(bluespace = 3, plasmatech = 4, magnets = 5, materials = 6, powerstorage = 6) build_type = IMPRINTER reliability_base = 79 materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000) @@ -97,10 +97,10 @@ datum/design/rust_core // RUST Fuel Injector board /obj/item/weapon/circuitboard/rust_injector - name = "Circuit Design (RUST fuel injector)" + name = "Internal circuitry (RUST fuel injector)" build_path = "/obj/machinery/power/rust_fuel_injector" board_type = "machine" - origin_tech = "power=3;engineering=4;plasmatech=5;magnets=6;materials=7" + origin_tech = "powerstorage=3;engineering=4;plasmatech=4;materials=6" frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable." req_components = list( "/obj/item/weapon/stock_parts/manipulator/pico" = 2, @@ -110,10 +110,10 @@ datum/design/rust_core "/obj/item/weapon/cable_coil" = 5) datum/design/rust_injector - name = "Circuit board (RUST tokamak core)" + name = "Internal circuitry (RUST tokamak core)" desc = "The circuit board that for a RUST-pattern particle accelerator." id = "pacman" - req_tech = list(power = 3, engineering = 4, plasmatech = 5, magnets = 6, materials = 7) + req_tech = list(powerstorage = 3, engineering = 4, plasmatech = 4, materials = 6) build_type = IMPRINTER reliability_base = 79 materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000) diff --git a/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm new file mode 100644 index 00000000000..39ec7ac2d41 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/circuits_and_designs.dm @@ -0,0 +1,52 @@ + +//////////////////////////////////////// +// Shield Generator + +/obj/item/weapon/circuitboard/shield_gen + name = "Circuit board (Experimental shield generator)" + board_type = "machine" + build_path = "/obj/machinery/shield_gen/external" + origin_tech = "bluespace=4;plasmatech=3" + frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Transmitter, 5 Pieces of cable, 1 Subspace Crystal, 1 Subspace Amplifier and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/subspace/transmitter" = 1, + "/obj/item/weapon/stock_parts/subspace/crystal" = 1, + "/obj/item/weapon/stock_parts/subspace/amplifier" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/shield_gen + name = "Circuit Design (Experimental hull shield generator)" + desc = "Allows for the construction of circuit boards used to build an experimental hull shield generator." + id = "shield_gen" + req_tech = list("bluespace" = 4, "plasmatech" = 3) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$gold" = 10000) + build_path = "/obj/machinery/shield_gen/external" + +//////////////////////////////////////// +// Shield Capacitor + +/obj/item/weapon/circuitboard/shield_cap + name = "Circuit board (Experimental shield capacitor)" + board_type = "machine" + build_path = "/obj/machinery/shield_capacitor" + origin_tech = "magnets=3;powerstorage=4" + frame_desc = "Requires 2 Pico Manipulators, 1 Subspace Filter, 5 Pieces of cable, 1 Subspace Treatment disk, 1 Subspace Analyzer and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/subspace/filter" = 1, + "/obj/item/weapon/stock_parts/subspace/treatment" = 1, + "/obj/item/weapon/stock_parts/subspace/analyzer" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/shield_cap + name = "Circuit Design (Experimental shield capacitor)" + desc = "Allows for the construction of circuit boards used to build an experimental shielding capacitor." + id = "shield_cap" + req_tech = list("magnets" = 3, "powerstorage" = 4) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 10000, "$diamond" = 5000, "$silver" = 10000) + build_path = "/obj/machinery/shield_gen/external" diff --git a/code/WorkInProgress/Cael_Aislinn/energy_field.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm similarity index 96% rename from code/WorkInProgress/Cael_Aislinn/energy_field.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm index 4488fc3af03..dee4c063fbc 100644 --- a/code/WorkInProgress/Cael_Aislinn/energy_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/energy_field.dm @@ -1,52 +1,52 @@ - -//---------- actual energy field - -/obj/effect/energy_field - name = "energy field" - desc = "Impenetrable field of energy, capable of blocking anything as long as it's active." - icon = 'shielding.dmi' - icon_state = "shieldsparkles" - anchored = 1 - layer = 2.1 - density = 0 - invisibility = 2 - var/strength = 0 - var/obj/machinery/shield_gen/parent - var/stress = 0 - -/obj/effect/energy_field/ex_act(var/severity) - Stress(0.5 + severity) - -/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj) - Stress(1 + 1 * (Proj.damage / 100)) - - -/obj/effect/energy_field/meteorhit(obj/effect/meteor/M as obj) - if(M) - walk(M,0) - -/obj/effect/energy_field/proc/Stress(var/severity) - strength -= severity - stress += severity - - //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 - density = 0 - -/obj/effect/energy_field/proc/Strengthen(var/severity) - strength += severity - - //if we take too much damage, drop out - the generator will bring us back up if we have enough power - 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. - //Inputs: The moving atom (optional), target turf, "height" and air group - //Outputs: Boolean if can pass. - - //return (!density || !height || air_group) - return density + +//---------- actual energy field + +/obj/effect/energy_field + name = "energy field" + desc = "Impenetrable field of energy, capable of blocking anything as long as it's active." + icon = 'shielding.dmi' + icon_state = "shieldsparkles" + anchored = 1 + layer = 2.1 + density = 0 + invisibility = 2 + var/strength = 0 + var/obj/machinery/shield_gen/parent + var/stress = 0 + +/obj/effect/energy_field/ex_act(var/severity) + Stress(0.5 + severity) + +/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj) + Stress(1 + 1 * (Proj.damage / 100)) + + +/obj/effect/energy_field/meteorhit(obj/effect/meteor/M as obj) + if(M) + walk(M,0) + +/obj/effect/energy_field/proc/Stress(var/severity) + strength -= severity + stress += severity + + //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 + density = 0 + +/obj/effect/energy_field/proc/Strengthen(var/severity) + strength += severity + + //if we take too much damage, drop out - the generator will bring us back up if we have enough power + 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. + //Inputs: The moving atom (optional), target turf, "height" and air group + //Outputs: Boolean if can pass. + + //return (!density || !height || air_group) + return density diff --git a/code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm similarity index 96% rename from code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm index 1b3b7bf8506..08352989eb2 100644 --- a/code/WorkInProgress/Cael_Aislinn/external_shield_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/external_shield_gen.dm @@ -1,36 +1,36 @@ - -//---------- external shield generator -//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc - -/obj/machinery/shield_gen/external/New() - ..() - -/obj/machinery/shield_gen/external/get_shielded_turfs() - var - list - open = list(get_turf(src)) - closed = list() - - while(open.len) - for(var/turf/T in open) - for(var/turf/O in orange(1, T)) - if(get_dist(O,src) > field_radius) - continue - var/add_this_turf = 0 - if(istype(O,/turf/space)) - for(var/turf/simulated/G in orange(1, O)) - add_this_turf = 1 - break - for(var/obj/structure/S in orange(1, O)) - add_this_turf = 1 - break - for(var/obj/structure/S in O) - add_this_turf = 0 - break - - if(add_this_turf && !(O in open) && !(O in closed)) - open += O - open -= T - closed += T - - return closed + +//---------- external shield generator +//generates an energy field that loops around any built up area in space (is useless inside) halts movement and airflow, is blocked by walls, windows, airlocks etc + +/obj/machinery/shield_gen/external/New() + ..() + +/obj/machinery/shield_gen/external/get_shielded_turfs() + var + list + open = list(get_turf(src)) + closed = list() + + while(open.len) + for(var/turf/T in open) + for(var/turf/O in orange(1, T)) + if(get_dist(O,src) > field_radius) + continue + var/add_this_turf = 0 + if(istype(O,/turf/space)) + for(var/turf/simulated/G in orange(1, O)) + add_this_turf = 1 + break + for(var/obj/structure/S in orange(1, O)) + add_this_turf = 1 + break + for(var/obj/structure/S in O) + add_this_turf = 0 + break + + if(add_this_turf && !(O in open) && !(O in closed)) + open += O + open -= T + closed += T + + return closed diff --git a/code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm similarity index 97% rename from code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm index bd7ccfd7737..cf78443b410 100644 --- a/code/WorkInProgress/Cael_Aislinn/shield_capacitor.dm +++ b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_capacitor.dm @@ -1,158 +1,159 @@ - -//---------- shield capacitor -//pulls energy out of a power net and charges an adjacent generator - -/obj/machinery/shield_capacitor - name = "shield capacitor" - desc = "Machine that charges a shield generator." - icon = 'shielding.dmi' - icon_state = "capacitor" - var/active = 1 - density = 1 - anchored = 1 - var/obj/machinery/shield_gen/target_generator - var/stored_charge = 0 - var/time_since_fail = 100 - var/max_charge = 1000000 - var/max_charge_rate = 100000 - var/min_charge_rate = 0 - var/locked = 0 - // - use_power = 1 //0 use nothing - //1 use idle power - //2 use active power - idle_power_usage = 10 - active_power_usage = 100 - var/charge_rate = 100 - -/obj/machinery/shield_capacitor/New() - spawn(10) - for(var/obj/machinery/shield_gen/possible_gen in range(1, src)) - if(get_dir(src, possible_gen) == src.dir) - target_generator = possible_gen - possible_gen.owned_capacitor = src - break - ..() - -/obj/machinery/shield_capacitor/verb/rotate() - set name = "Rotate Clockwise" - set category = "Object" - set src in oview(1) - - if (src.anchored || usr:stat) - usr << "It is fastened to the floor!" - return 0 - src.dir = turn(src.dir, 270) - target_generator = locate() in get_step(src,dir) - if(target_generator && !target_generator.owned_capacitor) - target_generator.owned_capacitor = src - return 1 - -/obj/machinery/shield_capacitor/power_change() - if(stat & BROKEN) - icon_state = "broke" - else - if( powered() ) - if (src.active) - icon_state = "capacitor" - else - icon_state = "capacitor" - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "capacitor" - stat |= NOPOWER - -/obj/machinery/shield_capacitor/process() - // - if(active) - use_power = 2 - if(stored_charge + charge_rate > max_charge) - active_power_usage = max_charge - stored_charge - else - active_power_usage = charge_rate - stored_charge += active_power_usage - else - use_power = 1 - - time_since_fail++ - if(stored_charge < active_power_usage * 1.5) - time_since_fail = 0 - // - updateDialog() - -/obj/machinery/shield_capacitor/attackby(obj/item/W, mob/user) - /*if(istype(W, /obj/item/weapon/wrench)) - if(active) - user << "Turn off the field generator first." - return - - else if(state == 0) - state = 1 - playsound(src.loc, 'Ratchet.ogg', 75, 1) - user << "You secure the external reinforcing bolts to the floor." - src.anchored = 1 - return - - else if(state == 1) - state = 0 - playsound(src.loc, 'Ratchet.ogg', 75, 1) - user << "You undo the external reinforcing bolts." - src.anchored = 0 - return*/ - - if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) - if (src.allowed(user)) - src.locked = !src.locked - user << "Controls are now [src.locked ? "locked." : "unlocked."]" - else - user << "\red Access denied." - - else if(istype(W, /obj/item/weapon/wrench)) - src.anchored = !src.anchored - src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].") - - else - src.add_fingerprint(user) - user << "\red You hit the [src.name] with your [W.name]!" - for(var/mob/M in viewers(src)) - if(M == user) continue - M.show_message("\red The [src.name] has been hit with the [W.name] by [user.name]!") - -/obj/machinery/shield_capacitor/Topic(href, href_list[]) - ..() - if( href_list["close"] ) - usr << browse(null, "window=shield_capacitor") - usr.machine = null - return - if( href_list["toggle"] ) - active = !active - if(active) - use_power = 2 - else - use_power = 1 - if( href_list["charge_rate"] ) - charge_rate += text2num(href_list["charge_rate"]) - if(charge_rate > max_charge_rate) - charge_rate = max_charge_rate - else if(charge_rate < min_charge_rate) - charge_rate = min_charge_rate - // - updateDialog() - -/obj/machinery/shield_capacitor/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=shield_capacitor") - return - var/t = "Shield Capacitor Control Console
" - t += "[target_generator ? "Shield generator connected." : "Unable to locate shield generator!"]
" - t += "This capacitor is: [active ? "Online" : "Offline" ] [active ? "\[Deactivate\]" : "\[Activate\]"]
" - t += "[time_since_fail > 2 ? "Charging stable." : "Warning, low charge!"]
" - t += "Capacitor charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)
" - t += "Capacitor charge rate (approx): \[min\] \[--\] \[-\][charge_rate] Watts/sec \[+\] \[++\] \[max\]
" - t += "
" - t += "Close
" - user << browse(t, "window=shield_capacitor;size=500x800") - user.machine = src + +//---------- shield capacitor +//pulls energy out of a power net and charges an adjacent generator + +/obj/machinery/shield_capacitor + name = "shield capacitor" + desc = "Machine that charges a shield generator." + icon = 'shielding.dmi' + icon_state = "capacitor" + var/active = 1 + density = 1 + anchored = 1 + var/obj/machinery/shield_gen/target_generator + var/stored_charge = 0 + var/time_since_fail = 100 + var/max_charge = 1000000 + var/max_charge_rate = 100000 + var/min_charge_rate = 0 + var/locked = 0 + // + use_power = 1 //0 use nothing + //1 use idle power + //2 use active power + idle_power_usage = 10 + active_power_usage = 100 + var/charge_rate = 100 + +/obj/machinery/shield_capacitor/New() + spawn(10) + for(var/obj/machinery/shield_gen/possible_gen in range(1, src)) + if(get_dir(src, possible_gen) == src.dir) + target_generator = possible_gen + possible_gen.owned_capacitor = src + break + ..() + +/obj/machinery/shield_capacitor/verb/rotate() + set name = "Rotate Clockwise" + set category = "Object" + set src in oview(1) + + if (src.anchored || usr:stat) + usr << "It is fastened to the floor!" + return 0 + src.dir = turn(src.dir, 270) + target_generator = locate() in get_step(src,dir) + if(target_generator && !target_generator.owned_capacitor) + target_generator.owned_capacitor = src + return 1 + +/obj/machinery/shield_capacitor/power_change() + if(stat & BROKEN) + icon_state = "broke" + else + if( powered() ) + if (src.active) + icon_state = "capacitor" + else + icon_state = "capacitor" + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + src.icon_state = "capacitor" + stat |= NOPOWER + +/obj/machinery/shield_capacitor/process() + // + if(active) + use_power = 2 + if(stored_charge + charge_rate > max_charge) + active_power_usage = max_charge - stored_charge + else + active_power_usage = charge_rate + stored_charge += active_power_usage + else + use_power = 1 + + time_since_fail++ + if(stored_charge < active_power_usage * 1.5) + time_since_fail = 0 + // + updateDialog() + +/obj/machinery/shield_capacitor/attackby(obj/item/W, mob/user) + /*if(istype(W, /obj/item/weapon/wrench)) + if(active) + user << "Turn off the field generator first." + return + + else if(state == 0) + state = 1 + playsound(src.loc, 'Ratchet.ogg', 75, 1) + user << "You secure the external reinforcing bolts to the floor." + src.anchored = 1 + return + + else if(state == 1) + state = 0 + playsound(src.loc, 'Ratchet.ogg', 75, 1) + user << "You undo the external reinforcing bolts." + src.anchored = 0 + return*/ + + if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) + if (src.allowed(user)) + src.locked = !src.locked + user << "Controls are now [src.locked ? "locked." : "unlocked."]" + else + user << "\red Access denied." + + else if(istype(W, /obj/item/weapon/wrench)) + src.anchored = !src.anchored + src.visible_message("\blue \icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].") + + else + src.add_fingerprint(user) + user << "\red You hit the [src.name] with your [W.name]!" + for(var/mob/M in viewers(src)) + if(M == user) continue + M.show_message("\red The [src.name] has been hit with the [W.name] by [user.name]!") + +/obj/machinery/shield_capacitor/Topic(href, href_list[]) + ..() + if( href_list["close"] ) + usr << browse(null, "window=shield_capacitor") + usr.machine = null + return + if( href_list["toggle"] ) + active = !active + if(active) + use_power = 2 + else + use_power = 1 + if( href_list["charge_rate"] ) + charge_rate += text2num(href_list["charge_rate"]) + if(charge_rate > max_charge_rate) + charge_rate = max_charge_rate + else if(charge_rate < min_charge_rate) + charge_rate = min_charge_rate + // + updateDialog() + +/obj/machinery/shield_capacitor/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=shield_capacitor") + return + var/t = "Shield Capacitor Control Console
" + t += "[target_generator ? "Shield generator connected." : "Unable to locate shield generator!"]
" + t += "This capacitor is: [active ? "Online" : "Offline" ] [active ? "\[Deactivate\]" : "\[Activate\]"]
" + t += "[time_since_fail > 2 ? "Charging stable." : "Warning, low charge!"]
" + t += "Capacitor charge: [stored_charge] Watts ([100 * stored_charge/max_charge]%)
" + t += "Capacitor charge rate (approx): \[min\] \[--\] \[-\][charge_rate] Watts/sec \[+\] \[++\] \[max\]
" + t += "
" + t += "Close
" + + user << browse(t, "window=shield_capacitor;size=500x800") + user.machine = src diff --git a/code/WorkInProgress/Cael_Aislinn/shield_gen.dm b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm similarity index 100% rename from code/WorkInProgress/Cael_Aislinn/shield_gen.dm rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shield_gen.dm diff --git a/code/WorkInProgress/Cael_Aislinn/shielding.dmi b/code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi similarity index 100% rename from code/WorkInProgress/Cael_Aislinn/shielding.dmi rename to code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 045ab1d689a..904866d07c6 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -850,18 +850,47 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Formalwear for the best occasions." group = "Operations" +/datum/supply_packs/rust_injector + contains = list(/obj/machinery/power/rust_fuel_injector) + name = "RUST fuel injector" + cost = 50 + containertype = /obj/structure/largecrate + containername = "RUST injector crate" + group = "Engineering" + access = access_engine + +/datum/supply_packs/rust_compressor + contains = list(/obj/item/weapon/module/rust_fuel_compressor) + name = "RUST fuel compressor circuitry" + cost = 60 + containertype = /obj/structure/closet/crate/secure + containername = "RUST fuel compressor circuitry" + group = "Engineering" + access = access_engine + /datum/supply_packs/rust_core contains = list(/obj/machinery/power/rust_core) name = "RUST Tokamak Core" cost = 75 containertype = /obj/structure/largecrate - containername = "RUST tokamak crate." + containername = "RUST tokamak crate" group = "Engineering" + access = access_engine -/datum/supply_packs/rust_injector - contains = list(/obj/machinery/power/rust_fuel_injector) - name = "RUST fuel injector" - cost = 40 - containertype = /obj/structure/largecrate - containername = "RUST injector crate." +/datum/supply_packs/shield_gen + contains = list(/obj/item/weapon/circuitboard/shield_gen) + name = "Experimental shield generator circuitry" + cost = 50 + containertype = /obj/structure/closet/crate/secure + containername = "Experimental shield generator" group = "Engineering" + access = access_ce + +/datum/supply_packs/shield_cap + contains = list(/obj/item/weapon/circuitboard/shield_cap) + name = "Experimental shield capacitor circuitry" + cost = 50 + containertype = /obj/structure/closet/crate/secure + containername = "Experimental shield capacitor" + group = "Engineering" + access = access_ce From 3144de6a47eba827942cc3f637bd1d2b91236001 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:08:29 +1000 Subject: [PATCH 15/17] changelog update Signed-off-by: Cael_Aislinn --- html/changelog.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 7a6ebff0b4c..1f5ab8579eb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -58,6 +58,16 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +
+

February 23rd 2013

+

Cael Aislinn updated:

+
    +
  • RUST machinery components should now be researchable (with high requirements) and orderable through QM (with high cost).
  • +
  • Shield machinery should now be researchable (with high requirements) and orderable through QM (with high cost). This one is reportedly buggy.
  • +
  • Rogue vending machines should revert back to normal at the end of the event.
  • +
+
+

20/02/2013

Chinsky updated:

From 389be7d4cfba7c9b53a5691c9649a033733e8ef0 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:45:48 +1000 Subject: [PATCH 16/17] NPC mice periodically fall asleep Signed-off-by: Cael_Aislinn --- .../living/simple_animal/friendly/mouse.dm | 7 +++++++ icons/mob/animal.dmi | Bin 189514 -> 185597 bytes 2 files changed, 7 insertions(+) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 379ab571347..010f9e6d65d 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -34,6 +34,13 @@ for(var/mob/M in view()) M << 'sound/effects/mousesqueek.ogg' + if(prob(0.5) && stat == CONSCIOUS) + stat = UNCONSCIOUS + icon_state = "mouse_[color]_sleep" + if(stat == UNCONSCIOUS && prob(1)) + stat = CONSCIOUS + icon_state = "mouse_[color]" + /mob/living/simple_animal/mouse/New() ..() if(!color) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 81cf8d4de2bd6a18990eb259c56066afc15c5c30..88fb1e19fcfe5e1a9565d630e9ae858a6fcb1ee9 100644 GIT binary patch delta 118671 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 delta 122619 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 z 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 F{{?L8R0{wA From 43e58aacbb8ec814a830e3643e266f42af45acd2 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sat, 23 Feb 2013 00:45:57 +1000 Subject: [PATCH 17/17] new unathi hair styles Signed-off-by: Cael_Aislinn --- .../mob/new_player/sprite_accessories.dm | 30 +++++++++++++++--- html/changelog.html | 1 + icons/mob/human_face.dmi | Bin 36926 -> 37749 bytes 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 38d1d9cdf90..f3d5e084230 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -382,11 +382,30 @@ */ /datum/sprite_accessory/hair - tentacle_m - name = "Skrell Male Tentacles" - icon_state = "skrell_hair_m" - species_allowed = list("Skrell") - gender = MALE + spines_long + name = "Long Unathi Spines" + icon_state = "soghun_longspines" + species_allowed = list("Unathi") + + spines_short + name = "Short Unathi Spines" + icon_state = "soghun_shortspines" + species_allowed = list("Unathi") + + frills_long + name = "Long Unathi Frills" + icon_state = "soghun_longfrills" + species_allowed = list("Unathi") + + frills_short + name = "Short Unathi Frills" + icon_state = "soghun_shortfrill" + species_allowed = list("Unathi") + + horns + name = "Unathi Horns" + icon_state = "soghun_horns" + species_allowed = list("Unathi") tentacle_f name = "Skrell Female Tentacles" @@ -499,6 +518,7 @@ name = "Smallsatche" icon_state = "facial_smallstache" species_allowed = list("Tajaran") + //skin styles - WIP //going to have to re-integrate this with surgery //let the icon_state hold an icon preview for now diff --git a/html/changelog.html b/html/changelog.html index 1f5ab8579eb..9559cb76328 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -65,6 +65,7 @@ should be listed in the changelog upon commit though. Thanks. -->

  • RUST machinery components should now be researchable (with high requirements) and orderable through QM (with high cost).
  • Shield machinery should now be researchable (with high requirements) and orderable through QM (with high cost). This one is reportedly buggy.
  • Rogue vending machines should revert back to normal at the end of the event.
  • +
  • New Unathi hair styles.
  • diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index ce3cdb97681659fd0e423131276cab2fc65bbc0b..4c897039264e04a16989a41edb1db4ba6b91971d 100644 GIT binary patch literal 37749 zcmb5W2UJsC+btSE3>KO+l`1G8Do97Fg(e~hO0PCldhbad#+<-Y~6cjXRWoLGM_o0W#j`rEyk1QPeLFN#=F|; zh7bttH25?z90zCqy0@!AAapDKk4!z)pL;xYf92}=%EcK1@lDT2{oy=u{dD-^#KW^a z*5!AHuWGyzyhA*B{CU?IkMhqtrOe9%KHp)Bcg7c9R2|#jf0(VV^Bz}uu#HFW#4Rin zcOF;PxSsBLy0f`8fL-_r!}mP(K=@Q|eaI;3Qp+{009UZB*t|u{)b@oPtX+r9_&iS9 z*2d{o7k$7!R2cWwZ)W1m$Ew#Kvu|-QejWYvhWDewgZ7K-k@k@^EU1OYq~3>Tj1@*t z+cLLad~$W3kKiU5+|bQ_IFi!_b3FbXdPQ2O?(k&9P^aiGJx$4t-qjB#WtGJ^{21m{mE?p26jowwbY^Z1;gC}(x06vi)$Q{I8rjU45)#5ZmO($xs%ti#UD>px zxcRc~gw1OX6HWdpEiStI_lLs}!|gUtTq~Ol#$C%_3#*QsRKvw(YH8PAcCf}$-sDV{ z-!{*2kdlPo>G-+%YUUdR!P|``PTFsS&Yrn=rlp|# z+{vwT^hN{k69itN@^7tktvsFwA1k3_UNTCi@d0lh_V{OF&%DZB&O2>mrYrMC`sdGt zmz&EY67*ATe}0bHCHL)pev4c0KJ)34)%g`x@wXwlD_g+<#jJjln?Gw}ROq2`7h{E6 z11=d9`)b^G(;aL-k-5+p3EltkSf^n{`L%?f1^MHCs@i#;#z#d5Au|r-k0w3W5D(xz z{N-wxZ78hfJoaAe2er+fD$TiOmn=0=mDJO?L|MdiuVWW~zilT!OQvC*ZYfV0$14># zXDtCtv0sMjJK~7)H(d6vIlmHj1HZ;MZ@KSTdQb4Jd*yg<7-pC^=89z zAT_5p(u2Je3Mry*-Zn3wreOw%>0)wA+4aB4uRa)P zp5SlV{^lUM&h#Pp`)Ch8ZM_pj;vH?+rYpa9)$51R9Mg|Ku%+Ga5jLYKat;=``PeZS zs+maZIehj{K|9veZu*>|l+(5{;_VC1MfdPVnZ*euX&l$h2kAc!R0zG;hOB^v?wa2O z7!3$b)0#GejNl0I@BH+I8v+?s>f7-YPKY-wxR|1=sjhx9?6td*T2j~Y=2P+2G`Zw; ziA0?lB5L3eJJN*Tqgx7mb6K>B?3-D2EvWi5#9)Mr^#=MgqdZT=h2P@_UGwgT#swDz z1#>L0XjfL+`y^YZow7of^QSS*Fl;IOyK_m{<`;>k?zTAAHhNR>qycVjZb8A)>S|HJ zjo9XeeKjd5K|w(n45l(bsAYWkAPDx76Yk?*k6wv#WNyk*^~hVEm2*f-EgBz;QSKYS zHoelT&o%7y=fB>FkYNc7c|4)P@5qU|uVgvMj5?lIeC~t`r*2)$nC1Yk+s6dW7r1y! zeT7R+JPu)JK|DPCTvDPhl@k3->Rji%`}hLZjSSbhTAEKi z;Wi(V6x!kvw_F-WjT9-$1*NIUC7Gby7Tnc#w^a#rB8SsHCN64BjEw86Zs@%H{8cop zl`xce#pK(1#1)fbnPXYD>(+lAYwv%0@F4erf_L-$DHgEwPBHd}@dXa!XLwT9jf-gW z3NN$t?70<2Npb6r%4Vk@vL2;jMn}KIh39y9u3Z^+JXV@iGr`A^TV%P^Ms03nQc$~f3Ia$e0@*CPu{ z%l8f=#RY9`ZHGK-qA}6YgXqC^F2v-Qr*sPaQ40$Tg9-Yo2eKZ2&z(R2P9!UE+rh)b zLoY;ouvtV@&*{gtqvm_9ZFPorD4**uQy_7y>31yL8@>VS;3*aciOU8GY|Tgr7xJ$(=Xk`9Q6924w)&N%oxOWr%2;oj|+SU zQT+`zyyH1>+l2@H?2c;INKf9>ocoP+cMkUW04_RllUrNLC49cK+x}^Nd@q+LeV|rE z@R*$;1bGobCc7N{a#2ttUoaPTB%(@QQ(`NPpm!k9Af|q?Kpg(STarsjc()FT)?OV`KHAX}n(iSZG@EE_*+ec>Usq8n0#TwCOZ@sk zRMZ1HV3B(U#?s5$QZ;)gdFjN_A0hh;|GHoWPc!owJUzx^FiV$=JVPpB1*^w1^Mpk_Gzks@(73M3<6Z9J6mt6( zjt{J_>90Yy>i2z%6=q(7JU>rhTw^vTc|4k^u`uE+4HO)B1cT_nfr<6slMK_~AOHOu zLPD6pH3fCZfB&_;?j7ZZtoAxHp2{0cP7wcQXM{r~g)^tvjI6W^ zvsw3~nch}l$$zSsK3;0`n?R~O5*(0p#GN+rf;f(>;YyMy!a3u6)|f>sc_fN>Vd>lA zGI#7=aF_W_d8NT(o4FOp=ql7)K*x?f++g%RmV~v3v}j!Oj8%;&yK6N}TWf{}wz13f z+Eyqj=X>-%?af7@e^+$N`V3gF|Je6`w|Y*M1B|WXl}rk$Pdl$e8juw;G`ppf8_dm8 zp`5HJn%!(`)I*VMEy^7c+mmme7fty?f}Gh;tMO1+=rIHi60@5Yq^g7GShh3NpG!ml z0-1?`IRDX0z|nA3LykcN;K_8(tl(wu3NB0w>g=j{($ZEx4|N4UWb^>CD`k9(Y6d*$ z%b{%lzWaR^;s1{T|KD3lIS#VnmpRop3!Vtsczlcp62#O58C7u`T~H{e$%ul$At2QE zH{;6bm#$?lzS`mNvY2TaLfK}~{ZU#aIjm=p(p9@KPbP2ewFlGsDy-qn_v^gZQ{N2S zZQ4^aa|1yuaEm0FuuO z)t!_A>&eAt7|#S$d=EAeS~WIAKdtAq#LFLrm~{#8L{}*R>uKDoTKT0)4B3VuFm0(` zyVh$+Ea^H(%#|UVVW+ruXJ($XK5anZ0^Eo(qI-8rZ~?K17|Xo~Yh1u_B9^aA!jhlj z@7IXvC0dcH$e7ExZ}}wdhC2S!Wommw3a@BTlq=*q!_AvGtjqU!Ka-DWdzzqYP^M|> zGVR4NKc)r8|I;e>1Kbj{(RTk71cE&7@S&Z%i>2jc-%fcHHycgScWasK+nY4sx${1L zT<`9T*o^tYf?`dy-S>72@DzxKkDU9*y{$r7_z=_>93N)&k# zn9Eu?gvkLU4@l5U*9&J|{wr87{QnLUjm%i?o?Ua2K$27BfHw#-Yh3a(H$K`jM9+vn zG#Fv7YJRR%-3m-@=~+a!Gel8;Li1zIr1-R+T-s2gj)uBA04MKtF6AQvG8dO0i5XF9 z3=0$}=svr$@j*GuiVFay85TUk5X2qmUh-=;{g7~DtaEcRsq@RsPjh-&*j`rze}wlw zlV3T?c^XsjNasykwp4Jx5#?U4A^6_Kqsbu$fDaaK-@JV3-o1OnXxl?`h0qsL=Pt9K zRQUr9b_Q#*X2H{{$%7trR-#wI5E9pYgtLnqlf2cN=PR`e%=S51!M$P$ou-Hvj#U`k zjO?beK2)pWO5z*Q+-I(?55NR0Ydt&dxpf=miOOeN0zNU*PKH8aVUZ6vPegg3`}y3M z&bc{TC?z-Xp2lc`WFSr^cfa&`;CgYK_8#H(1op51g@nqITumtk31S$yNhuG+`4HHTwI z-xgot))s61-$NlR`fX1PR1W46Y@~(yz{+F>Zg-Z{Fko((yJQ}J@#2LMPfHbYcTlwY zzap-}rZTRulAvXqg%~o9Q7Dt7-?%9>{X#__Gp)l7VF|_sE-KlOw&D<$2Mriv!=QZQ zK@SC6x_7X%STQ`_iBt;Oe_1)&O1cVh`v@W5!1>@YhluuOY93MfG^S0sl@FJMQW3&v zi1#Ez{J(kTr&K67^S@6;R?*xa1en}wcwj6HwjAt`C7Ow^JO+|nK>*3045NjyuzJ8KJHjI(Rw=Q93~5ns!6U4!8It`MZvPBa>%h(EC4(VJKBvt* zfm!x6&&$hu@7JqreU&q@NG|!UlCttud6y}6)_9Rj-`l_EOOx9*)BzqZs<`#}Km+;M zgQ)R&9!c5U{I097UkC<8C?iFK=<%I-u`g?+8Q0J|4_|77sRAVR`T{!CWhechs*u%{ zHD3BfZwI$a{e{-nR=j|tbl~ESA8-pW0I|e3>`@v5kL#ZBRj;Z!se#ghhS3L4i zC(`gMHUmj=Ruh^Y zT~fg2kKEi#A~~BnlUF2_l(;+H)O;^|!7r%wXzyDiphDB&h5h;YGn5ITF`1{}`h(x! z%?6ArLofeQh8~5iN3l}OAd@^5C-)3C!9*h>BA&asxmoPXJv8V|zabPA74;+s#foau z&NYk=bBXVn&eF-fIGQ)@ncT3n1QMk693tB7Wylqf3ct7%QoT(!0EJF*l11}RaaA5$ zO~y5pVwMpxuZc}w6c00Lz1K9Zc6OSw0rgxd>s2-UmV?Ng<>gn>^K&IW2l^C$dwZRV zfb+-{^7c|r-0u|W7tfwQ&n2fH94z#tQBUdASXN3gwpoVq+;CS{mutl}HQlW1T0?^a zNpQL&UWkZ-EH7OaU6|${vgk7yiF>{1=l|@Pda+fVF=pWum-rH>XEMi`1qs%a_;^+` zOUom96pqqwFew2loTH(cnQUY~#lL|PS&gGJ7>@l5)=rLJ@m~JGnIoU;ZwaZ>@E=3` zx>>99u*sD>@Pvc}MFok851pNNNx!&V9J%S$JQkwy%rxea)OK?|>3Il|FBN_?gC1@VQ8g&ak&oSq4`MYE zB~(UgK=G?jY@FItdR-0iba8h#R96RX*xJ|7OMpG!i)0*gtb9S_seNd2%vC)k1glak z0kIl-lV*&b>LMO#wN zuG8#hT3dzXa3skK&g5x9Tqyv`_q!#ZVg{-7*rxc1gZ%HC^`rGSn6N}X)sTM6lF9TF zHy3SB>Tt~#Jy9YC}g^$`+$IE6YDQAQLAX92P~J2Zv{Jid;MAg!~$uEtwZ$4T=KxW?jSGwW(Z;I0Y4z&L#8Z&83LOu?pT0LT#z$f|8oNF&`YE#cGFrMI28D%%%aPhOma%h8ad{|h z8J|N3@Ai8pM8G3KYPGbckc&qLJBo=qLx|!>Vp2*w!>0Sl3~5Z3AbEO5Xs8pTFnbNs>u4*H<9t z>-QNpB0LqHNKb5^Jh=^BO_4*ocDXerPD_fuiNbgf;i@l-_9^c~>-__g)Ya!gm{s3C z5*w0XAGclMQ4RF9sIwe&F}jkd)0ulO>01>R&_Rq`YDyIaXy45I*5H9qlwrZ3OmcZ0 zs=#TS_4I7zYLpB!CXZKq1!_b0a3nfZKH$Yiv||{K|Bd7ErlJ!5+EGFt8O~Q_hB=1W zY;xYhveIjo>^&~7t^RpctEH#Ir7V6pBh%ppY5Ge*av|$W*2uOF4__JO-<6Pt zrqIdhFCJy>jw3D$0(d36W6Ech?{@@jwQ(gL0BCB;dxAN_g*85lyqnLc7C});b7F}U z2hn3=M;;USkPmUR72a;uz{Z+uM^o}Z^oyau+uE7!Fy?Ta;ZLlR=}387bZAaMV%PJr zWkCTkHz%%sraXo%RLJ|Y+s#n^j*bp( z^s0oo_;85b{zVtK+^6bE{C)1!7=`x8p7l5-uATnZ1Nu^*a5El*!C%`z!ic7dRFi2zI zK`DHvM}GdE&7q-6P`H+9&(bDHF@fZrtfaO!jhes%cMHX(`K~0dO@b;IUnvS@%{&S4 z-|)!DDt4f}%nFRGg=p*MCds)|1b}Vgm_%iznqDlg((tYumr#jP*xKfAQ8_^M{(M|q z@v61Ru;B3<-70$y1*_wKQc_YXGlH1R(MAmo+c2B9$LdpIMVo}yqIIu5nrVd{W&Ju| z(hEB~c4A$?Pt~Bt{h26xZ*ODL+6%RWu`x6JOq9e|91Iu0$V&>q5UojDS>O^r3vHyf zAHc=MHNRek`9S4Np{OZ1aot~lsj`e0j8|P9zE_qdTYmWnQ^uV!%N4 ze9yCD4scR^LLCD64%MUewN(8UHuc2#>2ix#C&ED{!HkpjT+g!)P7-Pi5XgAfT?h_` zO9BvAgJITnc6+{S{A%R>bO^I|53k~>u$B>x&;EsvbdcIkt95<=D|~!@AUFD)Stb26}ib+*djCu zYQnFE1=;{nf4#f(IPCVVl)B{O8+IqFcXK@z8=Ri;yc7Y1DnPXtNRBUh>GlT)-%I6S z0tMK_tx$nxY$(=CY%TY`S%x6rcg=rE3ldKPFwM?x0i!+{TOIX`cN4(rh2Yj2E}KAu zNaQ22#4l;D`H}$r!zvisn&)0~6{KkdU~Xo5{UGu=Q=u-SoYoX2z}&XTXM-n}cQhCo zK-%G=Ejr5Iy9h8N@ubF|UzL=~4li^Akf@P-Z4QvI{(Rd+~`7d4;pfoNt!S}_TAQAq4t^m09Mo2@=1 zn8!8Dt0{Qjt@Jc@ZtgRv-0*%FEWSC|yAFgN5XaT7sU39cKLZGODsbn1i##A*=tXGK zn_@(hSvLU`F0MHMoajaqy2kcsqHD{+HC?X&?Oa5D$ zRS$4*{VFX!BW&2?{1E?;njD|EU1_H@ts0G#0K@UMR*uJ)gS~I(y!Y$Xx;hOjH65&z ze*SfZ5?4< z3wd*hkE=x?I{=Bb;$&)R={bJ9j6@x9I{^2?Y$S=ZWU8INdR0J9j}myflBT2-h5T%I z`2|pf7^LOR%gw-RTAfy9Uim2i|9Dxnhv{YyU)iOVLxXK)Fr?-1c7QSl4DNFO`t_^4 z!)}R-_3p(pjB$1SYZbAzaEV>Dfp+_f)Is}-!`XRvv#BI5UBl`Z=$)OC?u#HnTE z`>y9^rlzj&BMVd0FC#t`xLJYftPq<1A+n26`}`{AYG4FE?$@}%spEZhKDghzyX7at zQO3>XllTy<(tcUg;XxqkRSfk~Q&UjSwxFQY_3QmoFM+=~1@M=nQFOkAbTM75LB+K=R{vcY7AiAJzK{415S2`!?3g=pi z%R2@X87FuuUaK%Kn&NUCbE4F)AcpLXz`QP=i42$E;tGEH^r@m{m2u(S3iI_t@{7to z0&Jd$ss+TQ6opCErH*_n%O%2C2xEsBE#{wE1PDz-u64noq`??7lA*9&Yg6=kJwwT7 zt~Wzzd)%R<03_f6emwN%z^AJzDDw5)-I#o(k| zBUWqq{2YIUZhk>ye>+3X(a;%NN>)mW!OqT(nD5s7jMsI15B<%-ZVjZiOZ_Rfikg}m z74`L&%#(I=0nX07%aTn)?-M4IFJCsOY7NWKtg(u&PQ|!r2K0<uVQ^3$KjXT|+ zVM@xm=bEiKPc$0<-tZSb))tH-;#pAj_1zd4^DB-$%kZX6F@Yju`X6n9EM=xwzlyfH ze1{h@NBrWYsc-%HxJJ^WMe^3f(b`JU7lq8tnNeYGbEo{mb(bNE)it`a6TRREIPmQ3 zBRGg{!U?Q_1mY}6;lK1a=jm_$FnuKc;k+^u@C>rb$`fum*ki6d$b*Z@BCyx`5>eZ) z6_~hY8-9EBuZ8-ISr%yyti}pa{?-A~>7QNzUZu*}KDjo@KyI+)SEyt%Q`7U&Xpen4 z#ZNIA#Q+FDZI6vS01BBg!7o4NYFhlE9;g8!w)_mKNJBu0GOO-?#BW~vnZ3?ef1%v!~WwL|q?sy1qCRb(7hdt%8Auu0TQ&eRa?LR)>OTkXz!aqD{1tV8yr z2g1|06*E4V7YTPhlUm7x1bJXN3{1oOSwUX4%gg#a@JbZ|T}_1zx9Q&cL}`}oZFY?T zBG90|YN$)~FU4u(`PCpHv2S!#h41IF{}KrQue87*SjXay;(o&jng%l3NH=++Y>c

    JM^DUUcL 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

    K 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 literal 36926 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 HF46x33+8n1 literal 617 zcmV-v0+#)WP)UZ#FJAxv00DGTPE!Ct z=GbNc0066cR9JLGWpiV4X>fFDZ*Bkpc$|&U!485j3ydG#H0WK0X9iQK~z|U?Uk`@!!QsDXMGXUPA4pLzM-s;$N4ds8V0EiZfPENz0qMLpE_z`G2 z;L~XYoX@ub`jx(%Br8b|4PR?23hx2eY5)NL{{SZcKtMpZ|4iQhBf!AGX&+3V00001bW%=J06^y0W&i*Hi+WU8 zbVOxyV{&P5bZKvH004NLQ&wAzGbOXA7|1o`;!G<_%uNNcO@N}QIf<1ZrVbb) zbfuN1=3v)ljL>ChpaVt-ZN0008_Nkl z;O3#h?#GE;AApx{8x#)U0G#}n2q=qEZDp}94hm*~fiH?*1uwrZjtYVPW_&{-2soWi zmH>obh;Io%{f`je5`b_xpU<{{Rv!HE2^e^f0M!3@_+tw|{oMkv!a;x_GT`RN47mAG zfWR3jJB@e^h|AUD@fvXPcn!GwoAHCIw2HuoPm_wD4_~P&eje^s?o0Jfb^)0AOx*6b zyM&vQgdNymSKjq89Uuy?aI3D@>ZbO3UNvCn^OmfY!WMa6cRTRNaAD{DPYaMAb)n$q zy^l*m$V(f5nb(lH%(C%gcL*9t8HbnZ`%xbea&<(=D7=7AR)X{)8G#pCj)_)bE&2IO z)ZTSkx8EHzuN%}tPF}SUfRTp=0Aan_gE9EPnJS|2nY}&+MBx*@0lqa7jrZR$WAUr} z{r^!PXbe0aj|K-Y`RDVwi1+$}PX#O$I1antt2e+9P&TF7O5Xr0c~n180^lNO3NZ1v z3C?gSZ)8BaGoa?s2at_D!xcQLA1uj$AZ9q9pDsU`e=9)X43ym*G{C_(*x#G{>-7rq z@Atd$)DKVwP<_ChfEF=M3BII4c}O|Dtqe@RJNo z{QFvdrU0CRsei{cp2Fep#|ntKhC2WMQ3jBIr~EzD{{sOUoBe;l909EUpA^9D|49MN z{(s*13OxRw9G~0&(*pdD6Px&dQh@)VeMA3Gf!qI+<1_nza(rh0Pl4V4lLEN?|11HV u{+|}W?Egstfm3-4o`k)A25iEAIsO44)B}-}!P1%l0000)|0H4bH2?qr0d!JMQvg8b*k%9#0G@hO zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1yRS7+;WIRDw&jvVyCh3phvs zdD2ustDMYD0002bNkl2AR<3~I|DQgf!K%u#8xCA$|4{Lf(V5X!xjt)il1OZz2+x?b{@+g0;r`g z3Ye%TxWw4wInkAb@x$d7x%Ne&&4jKbU?%jN3*wffL$iOYp-s)5<$|Spy(7Vq;MNMW zg=W1#w}wE75l$l55Fim;2;d6``=tJD{tE%ZGCgrc0r2jb9z|b!dMpc1&xbG!8w)Rw ipe6CpIe#e}ROb!ds!2Uw=l_ZT0000 Date: Fri, 22 Feb 2013 20:00:05 +1000 Subject: [PATCH 10/17] made circuits to construct RUST computers researchable, made circuits to construct wall mounted RUST machinery researchable, made other RUST machinery orderable via QM Signed-off-by: Cael_Aislinn --- .../Cael_Aislinn/Rust/circuits_and_design.dm | 56 ++++++ .../Rust/fuel_assembly_port_construction.dm | 163 ++++++++++++++++++ .../Rust/fuel_compressor_construction.dm | 163 ++++++++++++++++++ code/datums/supplypacks.dm | 16 ++ .../items/stacks/sheets/sheet_types.dm | 2 + code/game/turfs/simulated/walls.dm | 10 ++ 6 files changed, 410 insertions(+) create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm create mode 100644 code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm new file mode 100644 index 00000000000..3b00bbc7a7e --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -0,0 +1,56 @@ + +/obj/item/weapon/circuitboard/rust_core_control + name = "Circuit board (RUST core controller)" + build_path = "/obj/machinery/computer/rust_core_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_control + name = "Circuit board (RUST fuel controller)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_port + name = "Circuit board (RUST fuel port)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +/obj/item/weapon/circuitboard/rust_fuel_compressor + name = "Circuit board (RUST fuel compressor)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + +datum/design/rust_core_control + name = "Circuit Design (RUST core controller)" + desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." + id = "rust_core_control" + req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core_control" + +datum/design/rust_fuel_control + name = "Circuit Design (RUST fuel controller)" + desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." + id = "rust_fuel_control" + req_tech = list("programming" = 4, "engineering" = 5, "power" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" + +datum/design/rust_fuel_port + name = "Circuit Design (RUST fuel port)" + desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." + id = "rust_fuel_port" + req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_port" + +datum/design/rust_fuel_compressor + name = "Circuit Design (RUST fuel compressor)" + desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." + id = "rust_fuel_compressor" + req_tech = list("programming" = 4, "engineering" = 5 "magnets" = 6) + build_type = IMPRINTER + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000) + build_path = "/obj/item/weapon/circuitboard/rust_fuel_compressor" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm new file mode 100644 index 00000000000..81bec6781e3 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm @@ -0,0 +1,163 @@ + +//frame assembly + +/obj/item/rust_fuel_assembly_port_frame + name = "Fuel Assembly Port frame" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "port2" + w_class = 4 + flags = FPRINT | TABLEPASS| CONDUCT + +/obj/item/rust_fuel_assembly_port_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/wrench)) + new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) + del(src) + return + ..() + +/obj/item/rust_fuel_assembly_port_frame/proc/try_build(turf/on_wall) + if (get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(usr,on_wall) + if (!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if (!istype(loc, /turf/simulated/floor)) + usr << "\red Port cannot be placed on this spot." + return + if (A.requires_power == 0 || A.name == "Space") + usr << "\red Port cannot be placed in this area." + return + new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) + del(src) + +//construction steps +/obj/machinery/rust_fuel_assembly_port/New(turf/loc, var/ndir, var/building=0) + ..() + + // offset 24 pixels in direction of dir + // this allows the APC to be embedded in a wall, yet still inside an area + if (building) + dir = ndir + else + has_electronics = 3 + opened = 1 + coverlocked = 1 + locked = 0 + icon_state = "port0" + + //20% easier to read than apc code + pixel_x = (dir & 3)? 0 : (dir == 4 ? 32 : -32) + pixel_y = (dir & 3)? (dir ==1 ? 32 : -32) : 0 + +/obj/machinery/rust_fuel_assembly_port/attackby(obj/item/W, mob/user) + + if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) + return src.attack_hand(user) + if (istype(W, /obj/item/weapon/crowbar)) + if(opened) + if(has_electronics & 1) + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + user << "You begin removing the circuitboard" //lpeters - fixed grammar issues + if(do_after(user, 50)) + user.visible_message(\ + "\red [user.name] has removed the circuitboard from [src.name]!",\ + "\blue You remove the circuitboard.") + has_electronics = 0 + new /obj/item/weapon/circuitboard/rust_fuel_port(loc) + has_electronics &= ~1 + else + opened = 0 + icon_state = "port0" + user << "\blue You close the maintenance cover." + else if(!coverlocked) + if(cur_assembly) + user << "\red You cannot open the cover while there is a fuel assembly inside." + else + opened = 1 + user << "\blue You open the maintenance cover." + icon_state = "port2" + else + user << "\red The cover is locked and cannot be opened." + return + + else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card + if(opened) + user << "You must close the cover to swipe an ID card." + else + if(src.allowed(usr)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the port interface." + update_icon() + else + user << "\red Access denied." + return + + else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card + if(opened) + user << "You must close the cover to swipe an ID card." + else + flick("apc-spark", src) + if (do_after(user,6)) + if(prob(50)) + emagged = 1 + locked = 0 + user << "You emag the port interface." + else + user << "You fail to [ locked ? "unlock" : "lock"] the port interface." + return + + else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) + var/obj/item/weapon/cable_coil/C = W + if(C.amount < 10) + user << "\red You need more wires." + return + user << "You start adding cables to the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 20) && C.amount >= 10) + C.use(10) + user.visible_message(\ + "\red [user.name] has added cables to the port frame!",\ + "You add cables to the port frame.") + has_electronics &= 2 + return + + else if (istype(W, /obj/item/weapon/wirecutters) && opened && (has_electronics & 2)) + user << "You begin to cut the cables..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 50)) + new /obj/item/weapon/cable_coil(loc,10) + user.visible_message(\ + "\red [user.name] cut the cabling inside the port.",\ + "You cut the cabling inside the port.") + has_electronics &= ~2 + return + + else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_port) && opened && !(has_electronics & 1)) + user << "You trying to insert the port control board into the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 10)) + has_electronics &= 1 + user << "You place the port control board inside the frame." + del(W) + return + + else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) + var/obj/item/weapon/weldingtool/WT = W + if (WT.get_fuel() < 3) + user << "\blue You need more welding fuel to complete this task." + return + user << "You start welding the port frame..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 50)) + if(!src || !WT.remove_fuel(3, user)) return + new /obj/item/rust_fuel_assembly_port_frame(loc) + user.visible_message(\ + "\red [src] has been cut away from the wall by [user.name].",\ + "You detached the port frame.",\ + "\red You hear welding.") + del(src) + return + + ..() diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm new file mode 100644 index 00000000000..9f2e40d7e82 --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor_construction.dm @@ -0,0 +1,163 @@ + +//frame assembly + +/obj/item/rust_fuel_compressor_frame + name = "Fuel Compressor frame" + icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' + icon_state = "fuel_compressor0" + w_class = 4 + flags = FPRINT | TABLEPASS| CONDUCT + +/obj/item/rust_fuel_compressor_frame/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/wrench)) + new /obj/item/stack/sheet/plasteel( get_turf(src.loc), 12 ) + del(src) + return + ..() + +/obj/item/rust_fuel_compressor_frame/proc/try_build(turf/on_wall) + if (get_dist(on_wall,usr)>1) + return + var/ndir = get_dir(usr,on_wall) + if (!(ndir in cardinal)) + return + var/turf/loc = get_turf(usr) + var/area/A = loc.loc + if (!istype(loc, /turf/simulated/floor)) + usr << "\red Compressor cannot be placed on this spot." + return + if (A.requires_power == 0 || A.name == "Space") + usr << "\red Compressor cannot be placed in this area." + return + new /obj/machinery/rust_fuel_assembly_port(loc, ndir, 1) + del(src) + +//construction steps +/obj/machinery/rust_fuel_compressor/New(turf/loc, var/ndir, var/building=0) + ..() + + // offset 24 pixels in direction of dir + // this allows the APC to be embedded in a wall, yet still inside an area + if (building) + dir = ndir + else + has_electronics = 3 + opened = 1 + coverlocked = 1 + locked = 0 + icon_state = "port0" + + //20% easier to read than apc code + pixel_x = (dir & 3)? 0 : (dir == 4 ? 32 : -32) + pixel_y = (dir & 3)? (dir ==1 ? 32 : -32) : 0 + +/obj/machinery/rust_fuel_compressor/attackby(obj/item/W, mob/user) + + if (istype(user, /mob/living/silicon) && get_dist(src,user)>1) + return src.attack_hand(user) + if (istype(W, /obj/item/weapon/crowbar)) + if(opened) + if(has_electronics & 1) + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + user << "You begin removing the circuitboard" //lpeters - fixed grammar issues + if(do_after(user, 50)) + user.visible_message(\ + "\red [user.name] has removed the circuitboard from [src.name]!",\ + "\blue You remove the circuitboard board.") + has_electronics = 0 + new /obj/item/weapon/circuitboard/rust_fuel_compressor(loc) + has_electronics &= ~1 + else + opened = 0 + icon_state = "fuel_compressor0" + user << "\blue You close the maintenance cover." + else if(!coverlocked) + if(compressed_matter > 0) + user << "\red You cannot open the cover while there is compressed matter inside." + else + opened = 1 + user << "\blue You open the maintenance cover." + icon_state = "fuel_compressor1" + else + user << "\red The cover is locked and cannot be opened." + return + + else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card + if(opened) + user << "You must close the cover to swipe an ID card." + else + if(src.allowed(usr)) + locked = !locked + user << "You [ locked ? "lock" : "unlock"] the compressor interface." + update_icon() + else + user << "\red Access denied." + return + + else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card + if(opened) + user << "You must close the cover to swipe an ID card." + else + flick("apc-spark", src) + if (do_after(user,6)) + if(prob(50)) + emagged = 1 + locked = 0 + user << "You emag the port interface." + else + user << "You fail to [ locked ? "unlock" : "lock"] the compressor interface." + return + + else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) + var/obj/item/weapon/cable_coil/C = W + if(C.amount < 10) + user << "\red You need more wires." + return + user << "You start adding cables to the compressor frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 20) && C.amount >= 10) + C.use(10) + user.visible_message(\ + "\red [user.name] has added cables to the compressor frame!",\ + "You add cables to the port frame.") + has_electronics &= 2 + return + + else if (istype(W, /obj/item/weapon/wirecutters) && opened && (has_electronics & 2)) + user << "You begin to cut the cables..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 50)) + new /obj/item/weapon/cable_coil(loc,10) + user.visible_message(\ + "\red [user.name] cut the cabling inside the compressor.",\ + "You cut the cabling inside the port.") + has_electronics &= ~2 + return + + else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_compressor) && opened && !(has_electronics & 1)) + user << "You trying to insert the circuitboard into the frame..." + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + if(do_after(user, 10)) + has_electronics &= 1 + user << "You place the circuitboard inside the frame." + del(W) + return + + else if (istype(W, /obj/item/weapon/weldingtool) && opened && !has_electronics) + var/obj/item/weapon/weldingtool/WT = W + if (WT.get_fuel() < 3) + user << "\blue You need more welding fuel to complete this task." + return + user << "You start welding the compressor frame..." + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 50)) + if(!src || !WT.remove_fuel(3, user)) return + new /obj/item/rust_fuel_assembly_port_frame(loc) + user.visible_message(\ + "\red [src] has been cut away from the wall by [user.name].",\ + "You detached the compressor frame.",\ + "\red You hear welding.") + del(src) + return + + ..() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 33caf8f1164..045ab1d689a 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -849,3 +849,19 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet containername = "Formalwear for the best occasions." group = "Operations" + +/datum/supply_packs/rust_core + contains = list(/obj/machinery/power/rust_core) + name = "RUST Tokamak Core" + cost = 75 + containertype = /obj/structure/largecrate + containername = "RUST tokamak crate." + group = "Engineering" + +/datum/supply_packs/rust_injector + contains = list(/obj/machinery/power/rust_fuel_injector) + name = "RUST fuel injector" + cost = 40 + containertype = /obj/structure/largecrate + containername = "RUST injector crate." + group = "Engineering" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6c62365fdb3..6b95c453374 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -73,6 +73,8 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("RUST fuel assembly port frame", /obj/item/rust_fuel_assembly_port_frame, 12, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("RUST fuel compressor frame", /obj/item/rust_fuel_compressor_frame, 12, time = 50, one_per_turf = 1), \ ) /obj/item/stack/sheet/plasteel diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 37f71d1f3c7..5d055f1a8cb 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -265,6 +265,16 @@ AH.try_build(src) return + else if(istype(W,/obj/item/rust_fuel_compressor_frame)) + var/obj/item/rust_fuel_compressor_frame/AH = W + AH.try_build(src) + return + + else if(istype(W,/obj/item/rust_fuel_assembly_port_frame)) + var/obj/item/rust_fuel_assembly_port_frame/AH = W + AH.try_build(src) + return + //Poster stuff else if(istype(W,/obj/item/weapon/contraband/poster)) place_poster(W,user) From 08340bec34e1b42d9f095d66ee72222025988ef9 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 22 Feb 2013 02:19:02 -0800 Subject: [PATCH 11/17] Added a single positronic brain to R&D. --- maps/tgstation.2.1.0.0.1.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 665e180d8f6..23b4ef07a92 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -3062,7 +3062,7 @@ "bgT" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "bgU" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bgV" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) -"bgW" = (/obj/structure/table,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) +"bgW" = (/obj/structure/table,/obj/item/device/posibrain,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "bgX" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("RD"); pixel_x = 22},/obj/machinery/camera{c_tag = "Research and Development Lab"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Research Lab APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab) "bgY" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bgZ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) From 4052e987235304868cb10c6b9cb0590376e73a49 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Fri, 22 Feb 2013 21:55:43 +1000 Subject: [PATCH 12/17] made circuitboards for fuel injectors and rust core, made said circuits researchable, miscellaneous tweaks and cleanups Signed-off-by: Cael_Aislinn --- .../Cael_Aislinn/Rust/circuits_and_design.dm | 102 +++++++++++--- .../Cael_Aislinn/Rust/core_field.dm | 2 +- .../Cael_Aislinn/Rust/fuel_assembly_port.dm | 2 - .../Rust/fuel_assembly_port_construction.dm | 36 +---- .../Cael_Aislinn/Rust/fuel_compressor.dm | 128 ++++++++++-------- .../Rust/fuel_compressor_construction.dm | 9 +- .../Cael_Aislinn/Rust/fuel_control.dm | 4 +- 7 files changed, 165 insertions(+), 118 deletions(-) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm index 3b00bbc7a7e..f1d874a68fd 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm @@ -1,24 +1,12 @@ +////////////////////////////////////// +// RUST Core Control computer + /obj/item/weapon/circuitboard/rust_core_control name = "Circuit board (RUST core controller)" build_path = "/obj/machinery/computer/rust_core_control" origin_tech = "programming=4;engineering=5;power=6" -/obj/item/weapon/circuitboard/rust_fuel_control - name = "Circuit board (RUST fuel controller)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - -/obj/item/weapon/circuitboard/rust_fuel_port - name = "Circuit board (RUST fuel port)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - -/obj/item/weapon/circuitboard/rust_fuel_compressor - name = "Circuit board (RUST fuel compressor)" - build_path = "/obj/machinery/computer/rust_fuel_control" - origin_tech = "programming=4;engineering=5;power=6" - datum/design/rust_core_control name = "Circuit Design (RUST core controller)" desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine." @@ -28,6 +16,14 @@ datum/design/rust_core_control materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000) build_path = "/obj/item/weapon/circuitboard/rust_core_control" +////////////////////////////////////// +// RUST Fuel Control computer + +/obj/item/weapon/circuitboard/rust_fuel_control + name = "Circuit board (RUST fuel controller)" + build_path = "/obj/machinery/computer/rust_fuel_control" + origin_tech = "programming=4;engineering=5;power=6" + datum/design/rust_fuel_control name = "Circuit Design (RUST fuel controller)" desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine." @@ -37,6 +33,14 @@ datum/design/rust_fuel_control materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000) build_path = "/obj/item/weapon/circuitboard/rust_fuel_control" +////////////////////////////////////// +// RUST Fuel Port board + +/obj/item/weapon/module/rust_fuel_port + name = "Circuit board (RUST fuel port)" + icon_state = "card_mod" + origin_tech = "engineering=3;power=4" + datum/design/rust_fuel_port name = "Circuit Design (RUST fuel port)" desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine." @@ -44,13 +48,73 @@ datum/design/rust_fuel_port req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6) build_type = IMPRINTER materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000) - build_path = "/obj/item/weapon/circuitboard/rust_fuel_port" + build_path = "/obj/item/weapon/module/rust_fuel_port" + +////////////////////////////////////// +// RUST Fuel Compressor board + +/obj/item/weapon/module/rust_fuel_compressor + name = "Circuit board (RUST fuel compressor)" + icon_state = "card_mod" + origin_tech = "power=4;engineering=5;plasmatech=6" datum/design/rust_fuel_compressor name = "Circuit Design (RUST fuel compressor)" desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine." id = "rust_fuel_compressor" - req_tech = list("programming" = 4, "engineering" = 5 "magnets" = 6) + req_tech = list("power" = 4, "engineering" = 5, "plasmatech" = 6) build_type = IMPRINTER - materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000) - build_path = "/obj/item/weapon/circuitboard/rust_fuel_compressor" + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000) + build_path = "/obj/item/weapon/module/rust_fuel_compressor" + +////////////////////////////////////// +// RUST Tokamak Core board + +/obj/item/weapon/circuitboard/rust_core + name = "Circuit Design (RUST tokamak core)" + build_path = "/obj/machinery/power/rust_core" + board_type = "machine" + origin_tech = "bluespace=3;engineering=4;plasmatech=5;magnets=6;power=7" + frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/micro_laser/ultra" = 1, + "/obj/item/weapon/stock_parts/subspace/crystal" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/rust_core + name = "Circuit board (RUST tokamak core)" + desc = "The circuit board that for a RUST-pattern tokamak fusion core." + id = "pacman" + req_tech = list(bluespace = 3, engineering = 4, plasmatech = 5, magnets = 6, power = 7) + build_type = IMPRINTER + reliability_base = 79 + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core" + +////////////////////////////////////// +// RUST Fuel Injector board + +/obj/item/weapon/circuitboard/rust_injector + name = "Circuit Design (RUST fuel injector)" + build_path = "/obj/machinery/power/rust_fuel_injector" + board_type = "machine" + origin_tech = "power=3;engineering=4;plasmatech=5;magnets=6;materials=7" + frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable." + req_components = list( + "/obj/item/weapon/stock_parts/manipulator/pico" = 2, + "/obj/item/weapon/stock_parts/scanning_module/phasic" = 1, + "/obj/item/weapon/stock_parts/matter_bin/super" = 1, + "/obj/item/weapon/stock_parts/console_screen" = 1, + "/obj/item/weapon/cable_coil" = 5) + +datum/design/rust_injector + name = "Circuit board (RUST tokamak core)" + desc = "The circuit board that for a RUST-pattern particle accelerator." + id = "pacman" + req_tech = list(power = 3, engineering = 4, plasmatech = 5, magnets = 6, materials = 7) + build_type = IMPRINTER + reliability_base = 79 + materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000) + build_path = "/obj/item/weapon/circuitboard/rust_core" diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index 6127e8f9d7e..13c791b75a2 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -258,7 +258,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K switch(newsize) if(1) size = 1 - icon = 'emfield.dmi' + icon = 'rust.dmi' icon_state = "emfield_s1" pixel_x = 0 pixel_y = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index 1f881c8150e..67935b9ad1f 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -11,8 +11,6 @@ anchored = 1 var/opened = 1 //0=closed, 1=opened - var/coverlocked = 0 - var/locked = 0 var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires /obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm index 81bec6781e3..0e7aa477cd6 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm @@ -43,8 +43,6 @@ else has_electronics = 3 opened = 1 - coverlocked = 1 - locked = 0 icon_state = "port0" //20% easier to read than apc code @@ -65,47 +63,19 @@ "\red [user.name] has removed the circuitboard from [src.name]!",\ "\blue You remove the circuitboard.") has_electronics = 0 - new /obj/item/weapon/circuitboard/rust_fuel_port(loc) + new /obj/item/weapon/module/rust_fuel_port(loc) has_electronics &= ~1 else opened = 0 icon_state = "port0" user << "\blue You close the maintenance cover." - else if(!coverlocked) + else if(cur_assembly) user << "\red You cannot open the cover while there is a fuel assembly inside." else opened = 1 user << "\blue You open the maintenance cover." icon_state = "port2" - else - user << "\red The cover is locked and cannot be opened." - return - - else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card - if(opened) - user << "You must close the cover to swipe an ID card." - else - if(src.allowed(usr)) - locked = !locked - user << "You [ locked ? "lock" : "unlock"] the port interface." - update_icon() - else - user << "\red Access denied." - return - - else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card - if(opened) - user << "You must close the cover to swipe an ID card." - else - flick("apc-spark", src) - if (do_after(user,6)) - if(prob(50)) - emagged = 1 - locked = 0 - user << "You emag the port interface." - else - user << "You fail to [ locked ? "unlock" : "lock"] the port interface." return else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2)) @@ -134,7 +104,7 @@ has_electronics &= ~2 return - else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_port) && opened && !(has_electronics & 1)) + else if (istype(W, /obj/item/weapon/module/rust_fuel_port) && opened && !(has_electronics & 1)) user << "You trying to insert the port control board into the frame..." playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) if(do_after(user, 10)) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index 1dd5a77c22d..273d2298f01 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -5,11 +5,10 @@ var/const/max_assembly_amount = 300 icon_state = "fuel_compressor0" name = "Fuel Compressor" var/list/new_assembly_quantities - var/compressed_matter = 100 + var/compressed_matter = 0 anchored = 1 var/opened = 1 //0=closed, 1=opened - var/coverlocked = 0 var/locked = 0 var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires @@ -32,64 +31,83 @@ var/const/max_assembly_amount = 300 return*/ interact(user) -/*/obj/machinery/rust_fuel_compressor/power_change() - if(stat & BROKEN) - icon_state = "broken" +/obj/machinery/rust_fuel_compressor/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (istype(W, /obj/item/weapon/rcd_ammo)) + compressed_matter += 10 + del(W) + return + ..() + +/obj/machinery/rust_fuel_compressor/interact(mob/user) + if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) + if (!istype(user, /mob/living/silicon)) + user.unset_machine() + user << browse(null, "window=fuelcomp") + return + + var/t = "Reactor Fuel Rod Compressor / Assembler
    " + t += "
    Close
    " + if(locked) + t += "Swipe your ID to unlock this console." else - if( powered() ) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - src.icon_state = "c_unpowered" - stat |= NOPOWER*/ + t += "Compressed matter in storage: [compressed_matter] \[Eject all\]" + t += "Activate Fuel Synthesis
    (fuel assemblies require no more than [max_assembly_amount] rods).
    " + t += "