From 9837ad6ab7f1a3258bca6d2a53b3a57c988a6993 Mon Sep 17 00:00:00 2001 From: Maarten van den Berg Date: Wed, 16 Sep 2015 11:11:05 +0200 Subject: [PATCH 01/74] Makes clumsy misfires actually target a leg --- code/modules/projectiles/gun.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3f64abf3237..8db505cfcc3 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -133,7 +133,10 @@ var/mob/living/M = user if (M.disabilities & CLUMSY && prob(40)) user << "You shoot yourself in the foot with \the [src]!" + var/oldzone = user.zone_sel.selecting + user.zone_sel.selecting = pick("r_leg", "l_leg") process_fire(user,user,0,params) + user.zone_sel.selecting = oldzone M.drop_item() return @@ -359,4 +362,4 @@ if(src && input && !M.stat && in_range(M,src) && !M.restrained() && M.canmove) name = input M << "You name the gun [input]. Say hello to your new friend." - return \ No newline at end of file + return From d14c65d12bf4114ad8698e7f3902aa6d53e90e55 Mon Sep 17 00:00:00 2001 From: blah Date: Wed, 16 Sep 2015 10:22:52 +0100 Subject: [PATCH 02/74] Improves implant tracking by having it search through a list instead of the world --- code/game/machinery/teleporter.dm | 2 +- code/game/objects/items/weapons/implants/implant.dm | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 1cbf53376ea..c53ee120311 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -180,7 +180,7 @@ areaindex[tmpname] = 1 L[tmpname] = R - for (var/obj/item/weapon/implant/tracking/I in world) + for (var/obj/item/weapon/implant/tracking/I in tracking_implants) if (!I.implanted || !ismob(I.loc)) continue else diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 1522d73b8f5..e66a237807a 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -87,6 +87,18 @@ origin_tech = "materials=2;magnets=2;programming=2;biotech=2" var/id = 1 + +/obj/item/weapon/implant/tracking/New() + ..() + tracking_implants += src + +/obj/item/weapon/implant/tracking/Destroy() + ..() + tracking_implants -= src + + +var/global/tracking_implants = list() + /obj/item/weapon/implant/tracking/get_data() var/dat = {"Implant Specifications:
Name: Tracking Beacon
From ccbbf623bb77796dc1d1774bedf6220abb6595bc Mon Sep 17 00:00:00 2001 From: blah Date: Wed, 16 Sep 2015 12:42:27 +0100 Subject: [PATCH 03/74] Makes it better --- code/game/objects/items/weapons/implants/implant.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index e66a237807a..4e0387846a0 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -97,7 +97,7 @@ tracking_implants -= src -var/global/tracking_implants = list() +var/list/tracking_implants = list() /obj/item/weapon/implant/tracking/get_data() var/dat = {"Implant Specifications:
From 1fc4f2c5b23140d9d68fd45b44dcc499f64a23e4 Mon Sep 17 00:00:00 2001 From: blah Date: Wed, 16 Sep 2015 12:51:55 +0100 Subject: [PATCH 04/74] Welp --- code/game/objects/items/weapons/implants/implant.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 4e0387846a0..37560182238 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -97,7 +97,7 @@ tracking_implants -= src -var/list/tracking_implants = list() +var/global/list/tracking_implants = list() /obj/item/weapon/implant/tracking/get_data() var/dat = {"Implant Specifications:
From e976aa20b45bb951bb15850a0d218da5891088cf Mon Sep 17 00:00:00 2001 From: blah Date: Wed, 16 Sep 2015 12:55:36 +0100 Subject: [PATCH 05/74] God dammit timing is perfect for no one --- code/_globalvars/lists/objects.dm | 3 ++- code/game/objects/items/weapons/implants/implant.dm | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index aa1082cdf82..25454eefcff 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -14,4 +14,5 @@ var/global/list/chemical_reagents_list //list of all /datum/reagent datums in var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path. var/global/list/table_recipes = list() //list of all table craft recipes var/global/list/rcd_list = list() //list of Rapid Construction Devices. -var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. \ No newline at end of file +var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. +var/global/list/tracking_implants = list() //list of all tracking implants to work out what treks everyone are on. Sadly not on lavaworld not implemented... \ No newline at end of file diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 37560182238..a01bfb82ca1 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -96,9 +96,6 @@ ..() tracking_implants -= src - -var/global/list/tracking_implants = list() - /obj/item/weapon/implant/tracking/get_data() var/dat = {"Implant Specifications:
Name: Tracking Beacon
From 58e5354cdbc304847c9ef20963320d21f418b58e Mon Sep 17 00:00:00 2001 From: WJohn Date: Wed, 16 Sep 2015 22:02:04 -0400 Subject: [PATCH 06/74] Cleans up shitty paintjob on airlocks. At the request of xxalpha, this gets rid of the ugly little runny drop of paint on every airlock: http://i.imgur.com/Lqf8a7F.png --- icons/obj/doors/airlocks/station/atmos.dmi | Bin 4721 -> 4691 bytes icons/obj/doors/airlocks/station/command.dmi | Bin 4798 -> 4780 bytes .../doors/airlocks/station/engineering.dmi | Bin 4775 -> 4737 bytes .../doors/airlocks/station/maintenance.dmi | Bin 4690 -> 4670 bytes icons/obj/doors/airlocks/station/medical.dmi | Bin 4593 -> 4598 bytes icons/obj/doors/airlocks/station/mining.dmi | Bin 4968 -> 4931 bytes icons/obj/doors/airlocks/station/public.dmi | Bin 2227 -> 2158 bytes icons/obj/doors/airlocks/station/research.dmi | Bin 4643 -> 4613 bytes icons/obj/doors/airlocks/station/science.dmi | Bin 4528 -> 4557 bytes icons/obj/doors/airlocks/station/security.dmi | Bin 4747 -> 4718 bytes icons/obj/doors/airlocks/station/virology.dmi | Bin 4717 -> 4676 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/doors/airlocks/station/atmos.dmi b/icons/obj/doors/airlocks/station/atmos.dmi index 85e5f3c1094c5d227ca0cfb7492af6effc133081..21fe5d2aab83bca907525609f3506aff9c1bca68 100644 GIT binary patch delta 4469 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 B`v(93 delta 4499 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 Hx1atWi-0HX delta 4605 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 diff --git a/icons/obj/doors/airlocks/station/maintenance.dmi b/icons/obj/doors/airlocks/station/maintenance.dmi index 4b046afd7b62ccc0b4e0dc6e38732942db3939d3..3304e3f897026bbfd27b8c02a962ccdd64a42799 100644 GIT binary patch delta 4476 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 delta 4470 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 P)}yOsc&G5T^^5-kfYIBY delta 4374 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 XIq;a=-%rYbD3_aymvhZ2>W%*a4h@LL delta 1903 zcmX|BtkAICS7jreY%OI)^??yh1whwDeN#b!}qxKea2eJkRMn_HUMXZv#N`f+W( z$>euN!*xqF()DZPS1C=bc5xBk@}sn2Z0y%p`kwFmzvt^b&htFaFL z!lC5oL#>ZO!tM^ahHbgs~Qw$Ui-`+ba@4t;oJ2dVM|* zk!M;wWu&p2HEEz}eK$3YyPb4~rEA`TAie3n-?W#k&q&dEfXVg0inV1McwT3;ID#V% zqjm)1^B5vnRarXr21~~bDC)d_i`Urz3*b^|hRc|&tgF>^rKwh5N2T_)cXZiEm0Shv zD1jXMY;Tx)ZEd9yOI5GG9&J~09XuNEErmo??JzHCRKRj7TesF_9wAM&VX1ISDc!Af z{H-U8VS!|l^RL{-tWr=(c`)Y=x^~hOQ8;~8XM$)eyb6GHj4Zq9gB~s&8daBR8GNy?JJm7=0&+8fe{z^Cd zcRTBVT)nqqMogrQ&L(@plvLg7EgI@N8!xENeoXlPrHKv7iYgT-{0_MNJFu%nRAU{8 zf7NPQght)-{X;|k$8j!(zRIG;`RvSiY9l>nIOCI;75%_}`54Wg+1(@S8m;kJ*ArKO zwnt#RbkC25ilcRX;d;iLfRjK8|Im@@LmWGYx}_cFs+8`15-=F;_`~?(g?SBs1{>42 zQH}s_e$cn9^SoXnW~Bm^w7>0O8KN&@fb-_20#;Ia&MYe!j=9GZib>xvlJcW2qDFB} z-!7#key~g7;~0tg$a!syR#4R~f9l|(sfBitHT>;XebXAIU#0}eHU_QdX;^FUqyDt0 zd{9422JivO#&_sA^AP|Y|5gog!JV`hR9}<$zH{}?c5fCBulT3|8`Qov+Qpbs!{b~w zqX3!p$OL@)v3eV1S;8S3;!IX;*Muftk(qi`cyBQdU7?Q9?eAZu_c=9D_9 zMcm#BnCF(+nk(1+H&&fR)fkQNKA#$-sc?{#V)|4H(5nG@02^tUd>3-dJ-Gyh0UgX77-tgzm9x zCmr0bFHqsNBqj6;_8u>?(mT1mLq=yDy|~+FR(V7Mtq-7B78zh1iyGNW2%=p=_`8zVl1M2I6@uQi%J353WDF zyQ1gPHm`#Bn^?nwZN{KHijJcMXh%;Z#F^ab<*ukXlkmdf)SZC*r;wSUbr(ND02Q@z7e4QM)up)4r2K-pk&kW?YL6vV^S5A$JL&Qb~u3E-0ak zPGG79*I%iO<&fYN#eJ!#QxDHn5mYp5(dN!yxUHLNLXmNJx>A&~WmDk(qP1VRf(ppq?@9^fy?f^OaS zzc;0s>}k0je#_th?D>rkf!yUkpK;zej z$!o%g92dtvLiGd$D9SD0z5Ip*vt++u*MwCzJDkBc6CRw)eE&G-$1+d~d*}@Px1QXD zVhQtwiCDD{-2u&&dNPQb4Vx!n`g4B`Sa8lpXsgCGq_oBhqRlyBi*zH$or2&e71ahx zS3ObmgtwJ%wkJQlO8XqV`qP3Q7^rirRRB4rQ;oqQ~HMmfd&L(WD z&7SZEan%sM7KJ8v=F~x4L6d6RjC|J=jO&c}?m{s2qgiaZG(5StGgefsm~!col!BP~ZA*4mm3g!s$;%%SdFw`>3a diff --git a/icons/obj/doors/airlocks/station/research.dmi b/icons/obj/doors/airlocks/station/research.dmi index ba483f8d3cf6325cdf47ef1dbde81fd48bae0ce0..e2a834d133c2ccccf176384882f5785dc341b22e 100644 GIT binary patch delta 4327 zcmZWsc|4Te+rMRNAwrKHWGbRkhHPaUvL(xiL1B=D!9Tx^S!U@T;J<^=SoIOzFGn~4Ry5<{_mDE z9NZAr;w>bFAidYhSub$B6@&_lX`&89Y!rD>k#E6>Y93xmu!W3NBLok6iYE)$5d?H& zj(mDm7}*`2w5b2OzBj+}Rf<`}`7+Zxw$UZYT0){i>!+ehGD5C*&2(l2t-SMD`7-x- znh~PapQ<*u!}xL4bp-=nrD}Z1PGlj$F!sAb> z`d%L{9&dlj&F8exOzSbU)>C*X%y%n*x&nBKXU9z}pkG3EHk1}=s!>r+25y6T_|;OM!UzT(fhI!NFpJf`V;Ll6p3apR-X@XAP0Z zAxI?hxx3%`6enyuFfh;zhZwP!Q&o+LjN}wL407f*=Z^3{YmhsODj1K#;!@uGT82pC za8qZYLDcBzXrC#*u;kZEuAZL7%km%5AL4H0g=c1FcKd}3=NnFK8Y4;1vA?D|`;F{= zT+#GIr3IogA9If%eA7(YnmS@v;e8q*c^x6mzg%&GgG!}tvqo^Yf+Yi+_VuN_hDHXM zo|)OX5cs@Ew6W2^uH%Y*8hah=0)n%av0-~jr>qB0F%>Wy#JqQrhTC|+FbZ31D&?P_UyQC z;;Xt}?DPpXoPauWmwGOxy&`0Xc+*xkt6-eyA_g^__gkO5rqE`TlYg?ky?tvk8sg2M zd2H>*#on^Vo==KV8~`zYLA4=C7opGwii+|<$Jv;j!PfL_(UlN1bWD@pLiGAsE0X@y zzXmflX8%q-plqAz0B5?)LPBJ~8YBw6RP^!c_pYv%b9#KKt}%4c6mbuaHn}w?9hKyG z5~W9x)?3XrRQrJYC%)^Be+47LccuMmaOD=?Xz12>a?8Cru#Td#0tDx$keEM3t1IuH z#M5YOfaXawT85VlAZT47`K35p>m*^($_K$iy^1t}9ijO)a!OuTi33TzOJh@Pv9vY@ zWGujMkwR;HZM&%NI=C3_r}v~|>#P{6e>OLxO^?PFwnqu4-WP)q6-{c&?KnyugljFF zRqKNAzDq@<-qX?Yt&T{Q&x0D{(z zXG17jF2$@nS&$o}(I!Y}2b}V;4I?2s|EIc>D6M%FKbkDldyDiE+o9|^zer4tz{Xfn zR@t0=1IK(R<*%CQ=<>V0`U0z%4u+^O$tp8n*|ln~xNq0w!`o9re)i{d9uqU&)UJT? zF%Om9L>A%ZpAv=1m8d>Xakjty`isR6hqXfHczAdwCcZwsF?=Pb!|`%B>7?~1ZN{)x zKP}xos)Nh2V`eSre=AqrF;CF*M=+Lf2`klxBlI)&gaavf-0G*4&g(sN$<1wuB2T?fHgydN^5s)En18^ zA@TO5WHw-PbsXMU_p>9N?Y)Y4M$R6usIr?!bDY8E{vZ%4)-zF*_;N+!DG zkYnL?j{)R09u7`0HkyQQ77cjsZmqq|E1Wi$IqVL(2D`LFs;W|xhn6WP{t*~Z2CCQF zWMszKE83i0>$69hEJAy~y*p)9P)DP4hy&88zg~#7F`%I$*WYwOqS|SPu8~3rA!nh_ zVsNH6EC#p7nN~NIb&ZyZuXo<-B3i zO5B%C&Y?XKN?DU%(Tk^MS=+^Y@?3<2Cj z78#g(P;p0c#_;cn8?j=91PtiKD$62$0#xVN@76$Ku zlGXEWfridy?FZXY#x@pB`%uX{%x?>u#l?rRau>Sh__*$UvB%VTP!d|jlD2oX?MmTw z>|v*$I>jCMsQH!A@OW)CgKYIln^XDn@V$t81nCmo)Ki;rzNWqW?{o0_*iJe}Fz>4a zAuu5_@b7v4K;d)urK(;O6oVV@6)i)|mUgm-n3oee|F!?ZP73-|a`Sb7S3>L9q1#qL z327JhF;|Q-4NOTXL9R@-I0m$4U<2pTZe-@O(|oeRvf_DDQxmbm*VaBqk->^1k{#G! z0Wx#*Th}gGZK3U>;k!Q<7;+$!w+�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 T@|bBmz&g6xhSxA!4@3V4w#>NF diff --git a/icons/obj/doors/airlocks/station/security.dmi b/icons/obj/doors/airlocks/station/security.dmi index 8f42fcb4b3beefca704275a43cd61e9d767fcc82..c6f01195abb17fdfc78ae3c4f489cd6074631605 100644 GIT binary patch delta 4525 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 IZQ_yeA7;Jub^rhX delta 4554 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 diff --git a/icons/obj/doors/airlocks/station/virology.dmi b/icons/obj/doors/airlocks/station/virology.dmi index 12123fc71b5328cd7ce95cb73b458a97f2904df6..79ac14dffc37354be2169d90752d1b9d4b2f5ca3 100644 GIT binary patch delta 4482 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 LMmGt6JbL;cPqHz{ From f054521bbf59e0eb08ce816fbf25c06af1c44681 Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Thu, 17 Sep 2015 11:53:12 +0800 Subject: [PATCH 07/74] FixesAndSprites --- .../projectiles/guns/projectile/automatic.dm | 3 +++ icons/obj/ammo.dmi | Bin 18035 -> 18137 bytes icons/obj/guns/projectile.dmi | Bin 25429 -> 25336 bytes 3 files changed, 3 insertions(+) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index b76da0d0558..9dc38fe5ba6 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -119,6 +119,9 @@ can_suppress = 0 burst_size = 0 +/obj/item/weapon/gun/projectile/automatic/wt550/ui_action_click() + return + /obj/item/weapon/gun/projectile/automatic/wt550/update_icon() ..() icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 7f29bc82e7a76c69a8c2010ff4b7b7835d37a823..b658735912702a0e4bd851202678d809614afcaa 100644 GIT binary patch literal 18137 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 ZAWYi5ruc*e{K*>NzPh$rxr$ZT{{=X+qyPW_ literal 18035 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 fYTcStksr{ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 1c0e0a73d79b6155d71e88aacfafc90a678596f2..fb0163c091eaf1d7e2907dd04fb03bff3ffad3a5 100644 GIT binary patch delta 5012 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 ANB{r; From bd254d089e4fa6876a4fa3549fea7771f81cfcc1 Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Thu, 17 Sep 2015 15:31:34 +0800 Subject: [PATCH 08/74] NOINDICATORS --- icons/obj/ammo.dmi | Bin 18137 -> 18031 bytes icons/obj/guns/projectile.dmi | Bin 25336 -> 25245 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index b658735912702a0e4bd851202678d809614afcaa..c71e05f382a9de0018ae35f677cbe3b340185424 100644 GIT binary patch literal 18031 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 ZAWYi5ruc*e{K*>NzPh$rxr$ZT{{=X+qyPW_ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index fb0163c091eaf1d7e2907dd04fb03bff3ffad3a5..fccdd933c43f77ea1f73605b056b3b308a0b768c 100644 GIT binary patch delta 4690 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 Date: Thu, 17 Sep 2015 15:56:39 +0100 Subject: [PATCH 09/74] Added a self-repair module for cyborgs. --- code/game/machinery/rechargestation.dm | 2 ++ .../objects/items/robot/robot_upgrades.dm | 34 +++++++++++++++++- .../designs/mechfabricator_designs.dm | 10 ++++++ icons/obj/module.dmi | Bin 1350 -> 1406 bytes 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 48962ff51a7..9c069b9a75f 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -135,6 +135,8 @@ R.heal_organ_damage(repairs, repairs - 1) if(R.cell) R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge) + for(var/obj/item/borg/upgrade/U in occupant) + U.recharge_action(occupant) /obj/machinery/recharge_station/proc/restock_modules() if(occupant) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index e8e91caf7ac..9a0c1ea5f50 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -16,6 +16,7 @@ return 1 return 0 +/obj/item/borg/upgrade/proc/recharge_action(mob/living/silicon/robot/R) /obj/item/borg/upgrade/reset name = "cyborg module reset board" @@ -197,7 +198,7 @@ R.module.rebuild() return 1 -/obj/item/borg/upgrade/syndicate/ +/obj/item/borg/upgrade/syndicate name = "illegal equipment module" desc = "Unlocks the hidden, deadlier functions of a cyborg" icon_state = "cyborg_upgrade3" @@ -211,3 +212,34 @@ R.SetEmagged(1) return 1 + +/obj/item/borg/upgrade/selfrepair + name = "self-repair module" + desc = "This module will repair the cyborg when it is in a cyborg recharger." + icon_state = "cyborg_upgrade5" + require_module = 1 + var/repair_amount = -1 + var/repair_cooldown = 0 + var/msg_cooldown = 0 + +/obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R) + if(..()) + return 0 + var/obj/item/borg/upgrade/selfrepair/U = locate() in R + if(U) + usr << "This unit is already equipped with a self-repair module." + return 0 + R << "Self-repair module detected. You will be repaired when inside an active recharge station." + return 1 + +/obj/item/borg/upgrade/selfrepair/recharge_action(mob/living/silicon/robot/R) + if(R.stat != DEAD) + if( (world.time - 10) > repair_cooldown ) + if(R.health < R.maxHealth) + R.adjustBruteLoss(repair_amount) + R.adjustFireLoss(repair_amount) + R.updatehealth() + repair_cooldown = world.time + if( (world.time - 500) > msg_cooldown ) + R << "You are being repaired." + msg_cooldown = world.time diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 6f349b66ad1..b480ed8ab8c 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -695,6 +695,16 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_selfrepair + name = "Cyborg Upgrade (Self-repair)" + id = "borg_upgrade_selfrepair" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/selfrepair + req_tech = list("materials" = 4, "engineering" = 4) + materials = list(MAT_METAL=15000, MAT_GLASS=15000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + //Misc /datum/design/mecha_tracking name = "Exosuit Tracking Beacon" diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index e7fc43e610945c8bc592b14dafa4637b8aab8883..e285e380d19e9c54a9af45a18897f26424c8c7d9 100644 GIT binary patch delta 1272 zcmVV=-0C=30)6I$kF$@6U^Ykf--o@Xe7g5B6zQT}c<4mw^B&{p^ z_7;VOJxHgwqwiDG@l9*o>s<{ey{KS8*a}aK$qyZV%^3G3`QIf_r^gyBG{C!y(4oTQKl=3{k z9ZTOn?!AD;O1`M{%Sykh^y{LJX!5S38PG!_Q}jRr4#cnWd`W{}h{V zeyR_b{re7HD`)DLlX-s~SO5S6%Sl8*RCt{2TZ?w0KnxWyk(Dx4u%(t&x7yeK{||0v z29!zyQtP^Bo7-dUF_YoWoj^?pqme?PP$+l=VRTjd-zP90140EvgyR8&?UP~tBl|g7 z0AfGxc!0Avz}gXiKsXV^0$6e>xBjvMS?Cl9GsfQzFckqOCbL4*qku`Q|E);CWEmPF zKyQKq=oX2{Npy+=-e25;oD=}sf-qa~3IN=>gB!yu06hx8#QMuYnA6f}3m{_&*jbH# zu>=6R3D9RrpTBCR^DbV=@2G<9O0N&r%LxSSV3E1O4)Zp^>k=Rg8ZfoK)2Rz>m1rcN$#hf05e))pM<1Lbkc93OrU22-pdv7&z1iDgvDf2=#$2x*yoGTY%sN zNTnEnovjbZTL6t3OJ{um*dmgTfz`~rb1_iY2Ye8=&w^eBdh&OxfHkIZ%2-?e&o6BS zItm;uwDW&=uv?z_W>I3^Th+g6Om*U~|fu_Xg6F3uevA8Y)g+ifF zC=`nCfbZA9pae#ZDh*$v`2u^Rhk_$er9HlfgBftB;>dQWn>bi|qlZFLAg+2i`0SPl ztfG}rL8+@WzKMgiH(D431q@Uz6x@JA4TDYJoqvA2-wUw1`}f}Zvj*fNqm;Twky9U1#UdL6?n6WEgu6`#2ws6(SqwA zs28wfFDZ*Bkpc$}5e!3x4K3;@vc`V~d*;?%1bQN)A(!pPdV1=~i_ zs`&R71+VRHNq9+U=v?m($J0gc&nNXniNrx~^=7eD&5LXrbFyBkW<-A)#`H^Kf`mDo z#bi6rcBUFj5_6?h%~inTFaEpULAX^(15!8g&M%ZINp%A~Q0O_YFH6HA2|I^Ue$TsS z8M?=P5U@Crw-fzpqF+z+o1%|s@~xv8(L*9r^gsd*#CPb>7qil`>W6%evOB)?>T>|ACu%pi~m5 zuVv3R*JJHzCUChkP;Ur>fkL5BD0oEiu-EwCComcTLI5Jd;eey#$#MAu`*(@}q<-At z02i-;jU)bmbnFmiO#KLG*pV)SUc4tgH%WQxC?RYYsOs9tgY)(P( z8~Wh3AC3@>p*OdK0|kV*&6gD@Vy8e{F!^?X2?U&&%n_On1x#l1Z$$#8D9{iA`VbUA zcaVsjL|;+B=ZjNNk^(?e5Epm60s!}J=f>~~K!*a5*nD{rmUQSe1yHaA>{g9`vjhOz z3DDoNu6z>%DFA;l7k7&!Ksv&!#v6zx_r1nxK*y!@%5jB4p-?Ck3Pt~D|JK_1o%R|8 zf-y?11v;O=(e(i$fDaGVkm&K^1nhpFDscXN;C*8>8_l8?1w4H&zk`5P;A!ab%vmQQ zfO#&IC+hV9oD(qmc_aa+z;H2KEFK@9S?lDCI|Kz9Q?P%p56oYd%a{3~IdvTOlgw5~ z%n=GS2#kJJ^?~{F^>sOC6!>KDc?F&W1Oj#g(i+&;2Lgds1%&#*3f&7<>=Yn)0di># zz}nUa98AR{+{7doi^?|y?=My*+bg}4{fI^{AC=?3C zcfj{+U{C^sT9t+`(Oe*2>!IKX1l!|#IG6$ZDvlh7s)>V**Lo-<1=7&N!Mj@`uoy0c z3QAR_@l70Tyw<`XC}1G8P;dkGH4N6iyZj774+Vc4ueC5p3REo=!V$tsE@15PK~$jD z!XPN%7mzWM0jQRy-Q6Mg_(?RAz!?g(`2T(HL6^0^2%7$Vck{k4Yv22S eLxn=|zv2%mnL(~ImrKb20000 Date: Thu, 17 Sep 2015 10:29:03 -0500 Subject: [PATCH 10/74] Advanced Energy Gun fixes - AE gun can once again be researched more easily by forcing it to critically fail. - Fixed reliability rating being able to become negative. --- code/modules/projectiles/guns/energy/nuclear.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 40b6843c936..c61fdfd9de9 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -98,13 +98,14 @@ M << "You feel a wave of heat wash over you." M.irradiate(300) fail_state = 2 //break the gun so it stops recharging + crit_fail = 1 //So that it may be properly perfected in this state. SSobj.processing.Remove(src) update_icon() return 0 /obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity) ..() - reliability -= round(15/severity) + reliability = max(reliability - round(15/severity), 0) //Do not allow it to go negative! /obj/item/weapon/gun/energy/gun/nuclear/update_icon() ..() From ac813a0ced4bcb5c887bfdc6428b1bcc8858ccd6 Mon Sep 17 00:00:00 2001 From: AnturK Date: Tue, 15 Sep 2015 20:52:40 +0200 Subject: [PATCH 11/74] Display cases --- .../items/stacks/sheets/sheet_types.dm | 1 + code/game/objects/structures/displaycase.dm | 96 +++++++++++++----- code/game/objects/structures/lamarr_cage.dm | 91 ----------------- icons/obj/stationobjs.dmi | Bin 78671 -> 78673 bytes tgstation.dme | 1 - 5 files changed, 72 insertions(+), 117 deletions(-) delete mode 100644 code/game/objects/structures/lamarr_cage.dm diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 496654df1ae..88a89b6fcdc 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -44,6 +44,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("display case", /obj/structure/displaycase, 10, one_per_turf = 1, on_floor = 1), \ ) /obj/item/stack/sheet/metal diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 148202d59e6..64124566402 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -1,22 +1,22 @@ /obj/structure/displaycase name = "display case" icon = 'icons/obj/stationobjs.dmi' - icon_state = "glassbox1" - desc = "A display case for prized possessions. Hooked up with an anti-theft system." + icon_state = "glassbox0" + desc = "A display case for prized possessions." density = 1 anchored = 1 unacidable = 1//Dissolving the case would also delete the gun. var/health = 30 - var/occupied = 1 var/destroyed = 0 + var/obj/item/showpiece = null + var/alert = 0 + var/open = 0 /obj/structure/displaycase/ex_act(severity, target) switch(severity) if (1) new /obj/item/weapon/shard( src.loc ) - if (occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) - occupied = 0 + dump() qdel(src) if (2) if (prob(50)) @@ -27,6 +27,13 @@ src.health -= 5 src.healthcheck() +/obj/structure/displaycase/examine(mob/user) + ..() + if(showpiece) + user << "There's [showpiece] inside." + if(alert) + user << "Hooked up with an anti-theft system." + /obj/structure/displaycase/bullet_act(obj/item/projectile/Proj) if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) @@ -35,16 +42,17 @@ src.healthcheck() return +/obj/structure/displaycase/proc/dump() + if (showpiece) + showpiece.loc = src.loc + showpiece = null /obj/structure/displaycase/blob_act() if (prob(75)) new /obj/item/weapon/shard( src.loc ) - if (occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) - occupied = 0 + dump() qdel(src) - /obj/structure/displaycase/proc/healthcheck() if (src.health <= 0) if (!( src.destroyed )) @@ -55,27 +63,46 @@ update_icon() //Activate Anti-theft - var/area/alarmed = get_area(src) - alarmed.burglaralert(src) - playsound(src, "sound/effects/alert.ogg", 50, 1) + if(alert) + var/area/alarmed = get_area(src) + alarmed.burglaralert(src) + playsound(src, "sound/effects/alert.ogg", 50, 1) else playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) return /obj/structure/displaycase/update_icon() - if(src.destroyed) - src.icon_state = "glassboxb[src.occupied]" - else - src.icon_state = "glassbox[src.occupied]" + var/icon/I = icon('icons/obj/stationobjs.dmi',"glassbox[destroyed || open?"b":""]0") + if(showpiece) + var/icon/S = getFlatIcon(showpiece) //Guns got overlays + S.Scale(17,17) + I.Blend(S,ICON_UNDERLAY,8,8) + src.icon = I return - /obj/structure/displaycase/attackby(obj/item/weapon/W, mob/user, params) - user.changeNext_move(CLICK_CD_MELEE) - src.health -= W.force - src.healthcheck() - ..() + if(!alert && istype(W,/obj/item/weapon/crowbar)) + if(destroyed && !showpiece) + user << "You remove the destroyed case" + qdel(src) + return + user << "You start to [open ? "close":"open"] the [src]" + if(do_after(user, 20, target = src)) + open = !open + user << "You [open ? "close":"open"] the [src]" + update_icon() + else if(open) + if(user.unEquip(W)) + W.loc = src + showpiece = W + user << "You put [W] on display" + update_icon() + else + user.changeNext_move(CLICK_CD_MELEE) + src.health -= W.force + src.healthcheck() + ..() return /obj/structure/displaycase/attack_paw(mob/user) @@ -83,10 +110,9 @@ /obj/structure/displaycase/attack_hand(mob/user) user.changeNext_move(CLICK_CD_MELEE) - if (src.destroyed && src.occupied) - new /obj/item/weapon/gun/energy/laser/captain( src.loc ) + if (showpiece && (destroyed || open)) + dump() user << "You deactivate the hover field built into the case." - src.occupied = 0 src.add_fingerprint(user) update_icon() return @@ -98,3 +124,23 @@ return +/obj/structure/displaycase/captain + alert = 1 + +/obj/structure/displaycase/captain/New() + ..() + showpiece = new /obj/item/weapon/gun/energy/laser/captain (src) + update_icon() + +/obj/structure/displaycase/labcage + name = "lab cage" + desc = "A glass lab container for storing interesting creatures." + +/obj/structure/displaycase/labcage/New() + ..() + var/obj/item/clothing/mask/facehugger/A = new /obj/item/clothing/mask/facehugger(src) + A.sterile = 1 + A.name = "Lamarr" + showpiece = A + update_icon() + diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm deleted file mode 100644 index e1944e4d6bc..00000000000 --- a/code/game/objects/structures/lamarr_cage.dm +++ /dev/null @@ -1,91 +0,0 @@ -/obj/structure/lamarr - name = "lab cage" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "labcage1" - desc = "A glass lab container for storing interesting creatures." - density = 1 - anchored = 1 - unacidable = 1//Dissolving the case would also delete Lamarr - var/health = 30 - var/occupied = 1 - var/destroyed = 0 - -/obj/structure/lamarr/ex_act(severity, target) - switch(severity) - if (1) - new /obj/item/weapon/shard( src.loc ) - Break() - qdel(src) - if (2) - if (prob(50)) - src.health -= 15 - src.healthcheck() - if (3) - if (prob(50)) - src.health -= 5 - src.healthcheck() - - -/obj/structure/lamarr/bullet_act(obj/item/projectile/Proj) - health -= Proj.damage - ..() - src.healthcheck() - return - - -/obj/structure/lamarr/blob_act() - if (prob(75)) - new /obj/item/weapon/shard( src.loc ) - Break() - qdel(src) - - -/obj/structure/lamarr/proc/healthcheck() - if (src.health <= 0) - if (!( src.destroyed )) - src.density = 0 - src.destroyed = 1 - new /obj/item/weapon/shard( src.loc ) - playsound(src, "shatter", 70, 1) - Break() - else - playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) - return - -/obj/structure/lamarr/update_icon() - if(src.destroyed) - src.icon_state = "labcageb[src.occupied]" - else - src.icon_state = "labcage[src.occupied]" - return - - -/obj/structure/lamarr/attackby(obj/item/weapon/W, mob/user, params) - user.changeNext_move(CLICK_CD_MELEE) - src.health -= W.force - src.healthcheck() - ..() - return - -/obj/structure/lamarr/attack_paw(mob/user) - return src.attack_hand(user) - -/obj/structure/lamarr/attack_hand(mob/user) - user.changeNext_move(CLICK_CD_MELEE) - if (src.destroyed) - return - else - user.visible_message("[user] kicks the lab cage.", \ - "You kick the lab cage.") - src.health -= 2 - healthcheck() - return - -/obj/structure/lamarr/proc/Break() - if(occupied) - var/obj/item/clothing/mask/facehugger/A = new /obj/item/clothing/mask/facehugger( src.loc ) - A.sterile = 1 - A.name = "Lamarr" - occupied = 0 - update_icon() - return \ No newline at end of file diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index a0ad4429129c3ec28698963d6571b972fadd6a55..09e55039b5600b322c104f08c7d7164e93147a8c 100644 GIT binary patch delta 34531 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 Date: Tue, 15 Sep 2015 22:05:59 +0200 Subject: [PATCH 12/74] Adds icon for open but not broken case. --- code/game/objects/structures/displaycase.dm | 8 +++++++- icons/obj/stationobjs.dmi | Bin 78673 -> 79204 bytes 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 64124566402..5c10ce4676e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -73,7 +73,13 @@ return /obj/structure/displaycase/update_icon() - var/icon/I = icon('icons/obj/stationobjs.dmi',"glassbox[destroyed || open?"b":""]0") + var/icon/I + if(open) + I = icon('icons/obj/stationobjs.dmi',"glassbox_open") + else + I = icon('icons/obj/stationobjs.dmi',"glassbox0") + if(destroyed) + I = icon('icons/obj/stationobjs.dmi',"glassboxb0") if(showpiece) var/icon/S = getFlatIcon(showpiece) //Guns got overlays S.Scale(17,17) diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 09e55039b5600b322c104f08c7d7164e93147a8c..c70e2d59a801ac7441fcf4264ac88b76e5baca59 100644 GIT binary patch delta 15361 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 GzxjW!15+me From 8067597bebdce4660281f57fd0f2e6e73978233a Mon Sep 17 00:00:00 2001 From: AnturK Date: Tue, 15 Sep 2015 23:55:33 +0200 Subject: [PATCH 13/74] Display case chasssis --- .../items/stacks/sheets/sheet_types.dm | 2 +- code/game/objects/structures/displaycase.dm | 31 ++++++++++++++++++ icons/obj/stationobjs.dmi | Bin 79204 -> 79267 bytes 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 88a89b6fcdc..4f3d9f59eb5 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -44,7 +44,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("display case", /obj/structure/displaycase, 10, one_per_turf = 1, on_floor = 1), \ ) /obj/item/stack/sheet/metal @@ -104,6 +103,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("dog bed", /obj/structure/stool/bed/dogbed, 10, time = 10, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = 1, on_floor = 1), \ ) /obj/item/stack/sheet/mineral/wood diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 5c10ce4676e..f144112f45e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -130,6 +130,37 @@ return +/obj/structure/displaycase_chassis + anchored = 1 + density = 0 + name = "display case chassis" + desc = "wooden base of display case" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "glassbox_chassis" + +/obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start disassembling [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 30, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + new /obj/item/stack/sheet/mineral/wood(get_turf(src)) + qdel(src) + return + if(istype(I, /obj/item/stack/sheet/glass)) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 10) + user << "You need ten glass sheets to do this!" + return + user << "You start adding [G] to [src]..." + if(do_after(user, 20, target = src)) + G.use(10) + new /obj/structure/displaycase(src.loc) + qdel(src) + return + return + + /obj/structure/displaycase/captain alert = 1 diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index c70e2d59a801ac7441fcf4264ac88b76e5baca59..6ea13bfc621223d9ecf2f5402241f8882e310e82 100644 GIT binary patch delta 14483 zcmY+rc_5Tu`@lV885NR!H=>Y)vPVW=p-sq|Y$?gUWH;P{3Rz1`_M!;c_ibim&5|P7 z8GG4h#xld0dGEf@^FHtI{mXIBJ!iSjb*|-eu321V%3otjJ_B8Nb@n!p!c#Q(!`>d- zN{^YrV9Sjhvj5@U$fxdag!o&edgX_``M74zTI_PP6ixb~Ta%<+)Fs2AN~y6k?`?Vl zKf7k`(aC93lT@`^%y5AgyJx~B?L$0MpN-B$8O+(3-1BG9tkUR{B5iNBy$j73>G>yL zt3p5B&h=DX$HRLLwh9ZtfP~HU@;izOuM=n1=cik=kbXkvorEkpZDnMyoo^laTxyv- zh*G|@a%arUfyeA~uuE2%rBG$u-VaZG!|se?J+DWa1Cp>a$c)qUd~P+B7H+4lD;ewo zxRoEcG#R-E6G}F1H*QGGO8G6|)Y)RbLx|7q&Tq8waV6AWU!2xG1028iMW)z#^Z9Yz z_GfA^O)Zv3V^IPHx6bxE9&ein}IJt?rrn^V^Hf{n0p(<37m*v_hwBXhxaVV;_3 zPTSpkn$p!ep)Q0|-lBfx61yEoHr`EmyiHHSLg9O^=cNS+kv+N4Gx}I(MRw+DV?_?; zKsl=j&Fj;laPLe%YxVL+rFz}bq?o!t5rdJe{EF}LJwn7Me%Cw&tkh4?tX$?~$eA~- z)lbZ*gG~mHPz_gvMt^3|T$PUeO5+3P6EMb?+b@U-e_o``eOh~Vwyp?y)DUY(6fEWc zxk`{DALO*i13>ll(ERkgX9k(nY{mHgVR#=ES81A{Aj zgp*KAUSfEI!2Sc&*oo@eae2zXJG8zzFEXtD=^~Pj`M~ULt>4^LK6NT9f(=Gd7|!du zW7g6IJ)=y!VKMz_Zp$K~?4=hpY9K}*8~ahgq^z@==j4f*Lt!D~7tPb_r=icUUnlZ+ zuul_2g&y5!E#@gq`e)LEDrXS%%CLDX@kzn>HUc0ID9_9Rk0glp%UrIP(q7Kw^I@Jx z_7osu;LYJYih8*gUX~%J&qeZfnBVC_B2$L` z5xcp{J3r^)(=>A~|0d_9bAsk4?mzhyoLgRDZrC@R%DlqxLWM&}wPQshfGnPU&4q51 z#GT)W-E2JFBej9gEIJl)we^k!tIPO_6`sbputW?kDDLlJq%&LWT{eTlebTCrGfh!| zYuWwHXV2=LI46Db?C1w`M)|MPrQ;va!ZIGNHQKT4-(DoiTHi|!SX8fd;^aHi>H49^ zi{vu2_Xo1A?3h@}Rq4 z>9D_gum$lnbnytoR2fPlB6FM{2P|u1R{(bN(SPz`R-faFG7tL-3&da$q$7>psv-)z zva%AjWA;*rF^24xiM3E(CvxYKJEUo@i(ZuNZm5nIlks)68<#10`bOCJ=#yFr-C|7& zPxhTRTZL!C_hRu|f1f3J33nbhB)nE$g8ydvVhF)sS@f`~a8;#+tUkCsjkNWwSZ5#o zf~;ko`~>3wFrH!*IIY8ek~$*q6H;WDsru1cs`v>d)(APzkz{Yyk+ecO$=M`{nr{g5 z8TyLets!xtq_;b`rP3~*SQ%%8q!A|iPKs%6D~qh0Egc^Gcn({|zm28T*E@#OG9k+k zQcUQ4fGSYC+MljOPPM0ust0b0+{r<5v$C=lrHN|H8+v?Pm@`1ma|7zsJc;nj7?;fs zxAN9EHTPW8m%sH-t}U|s@gz-(-0#bqn->m@u>HjPl25C)U=R~9{)J19TOkAqSa(JOX ztk*~0ZgD)YCTl34z)gj!iH9Z1=XRZLBzg4`&z>uzzF1JVllq_m^*{e-ksI(JRsS~H zI^sDr!unoGq&_;{`gDarTr1pO!|tOShZUOFb&&s+9+oRuJY0)jX9NHl8iQh}#(huq zK{1>zOHP+Z;It(OUx&D>ID9jlM4vM^2h`2hV_v9t+)x4Ha6_y=gqR$c3QyHLTIV2bkg z*zjP%rTeN7R@}~xGUVOeBBr&FR=X#H^vqj!^7JceYWyE^Eu6C7%8)evtD=8ws)pO@4e=%dAbtUGm(er%&Q!OtrT-2Os<>M; z{1R%4>M`CTn4bYV&D64k8g6jg>K^AF48QNf5L~dx##dC#D;abz4?rSpr5#7hY$00C z@YLmsK5zm59ujTB=t)p&U@wzZ%(yDLeUiRGaFeuzp}3j>z<1!Oe#_tE&0@{`?YAqLELVL|&`maUH?D1dxD#Xc( zxkvbVu>DM5n|0*JSyH;v~63>okQQ>6E| zoJ+^Yr@9~b(!*bfEY;)F)kIy*N)#{APRIo<8?s`d0)mF`mvd~5j zlW7BE%fhu1kGDHqwn(+ZeL(|sNuXHr*jDY`u5G!tq_4{9W7SfnK|N+p3{WBgD(Y8|&wFrh zU8H?ZcqJi^Dkr6=2WVAz@O zc9*><5QsSB#Knq!O?}Sq<{XUleu4gA;=}L5F{)CFVIkQ! zo9}M1%SAu0d-A1s-eCDEBZ4Qm3N<4-6Jj3BLd28Y_@cnA7O~3_K{mVLs;nMSQiChL z*EPdj&BOja@x9li1+c}!7u!}(UjW{P`wm8{EldzNLNLwzH`G7`Av=AluwjYnZeA4O^ z&jsMk>mlBO;*)l7D2$L)%9_7yISd#h>jGH#V;4;sg5&_G%F(|Yni86ij%Ip?0*vRS zGZa2jqOh&AZ_nSFER_l0N<0yg{jy4=SL?}gd)Kv(Gnp~6TR7hYWJ!iQ4Muc$_+{2e z7?D7c%^Y;7%`amtBOJs#^O+KLzdZu=*_{wd_Y@TEtQ*K5Yy3#hrMG&J@PJQiL+e{R zo85BtG9Y1-u-~z>NO(GQ(}`x* zAZ$WC^ECg`4c`#GUU;XaU|Y))x}JYHm16SPaz>sX@rC+)kMs5{>Ku=ugLe1_N(vEQ zjETMtw(}@l4N+@)+-9iUM;M8Zuiz8%z?{{a0i$e|0jgag*CqR6t(cXbO`-3$w8y1_ zj@Lw4`kc63`rsL?WX$B=rKgjRTYUDkXb%Wlkj3H?d?n#fJh)#r^*&7B+zM08aV8u# zq9bj=L#l=;8xyr|@3>=%r*j+D$%F+)56Bh9F}-dhFHcWT)Pbl|u!U$S`rCM61I5&Au0&eSTu$0ARpyYcb|T53oZQE?Uh0-# z*dI>#0ff;H36^TpJR&g&Itejq5$3yATA#BpyMOr`Z!Yz#5qgvbDtfHlULkvSENlf$ zWr1GiU>_Teo9vlfoi8a4;n!qA>m7sY09XA(Z?hvW4p|iKOG!+IcNO6&{N;^eCtpYa zzGsZ@*^0I$WwVk~>(jiayEv!9R_;;vw~n}}Me8soTOXfI&eyl!6lDe3(dgIb^7URTEj05$k&Dot@*D1fGN6&;3yOd&`-Hp zqU^#AG*FA8z4Y&CoT8YLNH@RzY**W_SBOBIUA&r(0R}Uz8#H`{$EP}WPw~;0oib++ zEPtf)H1!%9UJ?0f>Cg5m-Pf)_3?oP)VR;AA$RVOr>3?E{!U_myj=mf!N%d= z(Dpa|hzplzcrIYSKoS|OzT|l1TiL;8)I-Jg#TrCLJ#4l|LpfVb`{V$!jooIFDEZ(O z^VFK%NxW9sq&nBN<0*beX}J(!$DnI=769h!?)i7}TG~J%h{I;=nokuogt2Ji=xbll zBm$!Te8&S4?V%H6M14S{+%iqG`QVW|w$kk}v(N4r;3UaA@=IP`K@3s!h@g^T@=7ON z!EW+N4MCLrG}6K##pzA%E%S}9*r%8Y)T#!}hWcDLkxjoa zI~UIH@um-6d|>!BDFKq0$ejXgoNj71Epj@=APC`aKL~eX0 zCJeDEwBWp4CyG(Pb`(5|5!H(04c(%OVG)C;7_BKF{NaA~5wlCNgZbpK*WJ`Ol_-~?#4#x^qvf8}6=kY5H_=eD zPf;uC)*TNV?>Fa@m?yuy)u|(6ODO+B-v&gFMz&S5LeArHbq{o{;uY$e zO$9HA9hsP?tl|qdf;c_+UgiSgUl%)W3=&p^$_JmJ2Uww}0e@iw>Y#V1_K!2Z*?Z2f zxiurs{2Afi>dxJm8Sp;v1Glp?6hj@~oL-?VJg|8s%_NgV;a5==N7;ZoDH?HF+Z@U= ziN=kZFw5Oc?2TP}#8^;r;%(stU-J#3p9QqfrEt#K5aH5VEcy<}LSZXZ{x~YfJBFM~&F6i*!hQ*(i^c{eGth^qg4r z#l5`Ckuht2iCF37(?zYhWf#ehI@y)DJ4e&`$Ena`#Ypq)tBYHDos(1oOX(QvTY#7- z?&Q*<9d)x+?V?@oam*q0dz32hM$X!Ih3nNIsUx*mS07fyX2F9PICb`3s`B2up3%;D zZb0qOF*VRk`7T=Sy_%wP>=J+dz~x8A?oT#5{y4ddJ^y}u@l8!9zNO7kI(b;IfS0yt z6wWXenEOjuZ4`~!`DkN~wJ~`}D@vQKIkHBMQbVT}sqUMqC{t6@Mq;{Z7?^(55;|2; z5{NaOF_Tw{Nx5b0;-};RGv_$vD}Ez?0BHh?a7uTrni+wGWE>AyTZV6mNCXP}=u~qU zjXWv#^2J^;Y&%NnInTV&Ck*3UjMc$THK9}HZO_UJgLO`kqiux%TBDiAMu(G0*ERlJ zgR4t9xJyqJh3;j+N9H7K2l0+bSc%8tMubRvlAp9@ef<2!{x_Cv9Xmu7YH7&{_=AAa zu;GuOe{GFd)|DhDxrZxhehJXV^!bJ1-x*wY?kM#3e|$Bzpyn#@c1!G#<(azM(-GZ2JPm*lkXq zw_p*ja3dbvY_*Jf&gebR&6S*QZES4psf48JS8#^w2Lx=KU_X`p;cuQ-g3jZB zo?$vV+~-I4azNo14yz-Wq>PoriUT6J=#X5)Gt#+9xxyL?x>GyusnVfs2|stl~DCVrp|P97&J56QT`el*?N9-Bc@+pxin+B`KpN9oP~@byzHHiYcs zG4qR!b`mx`Ln^&%vpVyLCZ1l90!fd)nn28gE`C~8f1L+Jbn7KS9N}EX; zw~2k8yu8c+`!YBD$#}Dj=SsNw-BbX~R(@q< z51{2ap~ApMA0T>Ld*P$gvHXe;%ZEPCf8B-B-VXAMnf#%czr%>eWj_oi2$XwupV?E& zPg@|fQsqn#m4;cK;dhNjQy06JbXgFqG_&2n*e&A3w?>PNZQ~G~LkJT+s6@+XwG84g0#T>si$k9LA*}D}G;W~0lS`9#0)n{(e45+Dd(QNoX!+o@|Fv+n- zC!W8@u6~dqP`eHaZw!ID?EH1`lvefz-yN-Ar3m;3(!?L9ti(TjpMARuT&g5q=?r7Z zDe68ivq}8GkEm!=X`h0(jovF2jjSA$}&lvV~j|k7Ur~NR=veHiC?#p?Pq;y}+qNZd1A^fAnE^y zVPJqbLjyetQ{;cjM!Y!|xmr}{=M0>#&H-q_8!iPN->>{%Xml&nOI@#N97I--=3@(>E=>C57LEfru zp7p zxB(|}1axs2eb3lP&~bB6Tks-FoQqGQ-2aQ5VzIK6L5j;PSEsp0eq634NJ}}`m@d3* zHhM}w!`dms{m43{KixwxaRCr8U{&@$^B>{{&PjI(!6FQYK)6#B^fw(?s4H3Hzb-V9 zAr6U#0e83Re-@LDREU5IBRzPU+HxpONQHeT28vC3RS5~KmqGi8h>~-?4@3FivodOm zboWg3Jtslu<_8_4H)u(y|B=0w`OxLTFG(mrP8~2Ihp0v9QFI(=1w)%&;3yzh>AbFX}{Rwe0v7j7g+^#XPESL8}gt_?y1U`fQNg~bly+w`gLhFJ!rY*BR-1xZ-#UyR(|Xgvg0d?df}y}jhcg(Ezqwf0 zt9zUZk_*s9@?Sm~?Ue=B;y=5c?r~M#dC^BE!YlA_pRv!0ab^Cm;o6im{d{-J@J$$P zBjZQnK-7rtJupC+ww`bnQ86s&)g52r--5mhmU&O5Qt!*NZtB9;kB>CUq$sRh^#?fu zjm@I@o?90@nrn-m)+faUkc_*Ix=W$cuHGCk2ckM_vH%EvIjONWGmO@aq@B*ic9#i8 z3wbhDNbirSEF?QsVj~kc9FD(NCT;7Hx*aZ%`%8(mfB~!Rq&5qPY2I5?VnKzeC zPRx+X6bXG{n0Td~i{$Vy(z0M}o>8aW12Q7dMKb1s{}vVxXEa{Es)P+RI2+VZ=~|lo zHkzx~9?WPN%92@@8o&3~H^VY&rPeck)Vb+{@~ft%^+nQ)wbnt<*0rYekr1pAntfAK zmLuZk{Gr82swN(0MT5KF-! z{gq$&vp@cl9}62enmEv zE>)GrWk)$w@U3T5LS~ux7SBrpX??2WDhq5SzrJ;>(>`EHpYP-RH^c!B z#vkdLvPWt@>_~`RV{>@pM=iFVL(aN5VrZZl>f}Ufh*zY!n@9fIUV^cWm@?tP!@Nk^ z<@~ifkVwvi-Y6-|vHRgCZz z!>bw>HFHz7i%7I~H@ir7YBc683r^{M9Q9Qpg-k-*;{eVyqGEDR0a0m^0k2mt2l*Yc zWVUoQp1~DEKU4@Ze0-wYx?i{4)Ws48jx(DJ4UMGNU7)c=@-99QZv*D3Xe9Uk#ayg3 zo^d7^<=?Xce?6?!ErsBFi_54~Vwu&uR$C5k#=L)baV>NHnrG?H(EDc}{!YhbnDn*H zCcSmF?{mr|2cJR@_{lmO*GI{`*H8`SaP4xp2+z2VKiPfJ`c_n*ba&2!(vM+B*Q*4> zXzblS|4cu>LMa!cb^~WD%5^*%u08)X8Xu6H^UnB_W<+jBa>>=8ob$Ug*G$5b?<8tL zzT1VTr&yh}PgXGCCo_7zn>aTw@JAk@;I*pt1Ru8?hlnv;ZmtE=Qh+O`QMq2il$&i1RZ)w#LeIN&;sIo&N+@}CQ*Bs?5#;3`05tO@t ztr~JrwgNp%E{bqqfz@vfa73;gz$92^ zj#e!l3B*_)S$|P&y|ZNeafWrvROuuyp2KYSM6i{yIWx!S5<%8`l!3?G3Hpr2W~9B# zsY;+?r3{(?7R=GVM&gyOh6qxSnbQUZk-IJF10X?W*Rkc5D^oK}=_DLx>)4#;xO@G6 z%O~<=nV<1Lu*!RGU-Xrzy2n12E7o%&NA#vac=Mv-^PKAUWKXlJXY$1D<(tn=@pNX= z8YYwFD;su(Nu4b3&T1vAPol2;0AF6%O^=9vIywiFg5ohhIe_d<$aM0fsm-RmSTF^YF>ag8oG`+`` z0o-Az7B~11N2MVdANx%kQ-XJjMvH3hO()$Qb#CE*F$PW|>f!V*(J^1}G7U7okIB2E zwNb|&ArB~n2u1SHSAe7C1;F6{zUz~?eLON&i$H7N!cL(WaCtTq%Xic~vme?&KFCHv zgeW>#>OAGiuZ&N}6mBz8WTLU%D{vwu)Ey!8Xqh*|fL{;o|;NlNP-r}uZaJV2hw z%G*Z$>cN=W_1)4b>Ncugps&XCh#0@xY*E##N1@&q&W@vxzx% zm=~-w;hpQDO!zG1*N312g>lq9`OGI|kBF1u0h~(q!f?g=tJmLNKKigL%cu$_?qW@L zwU&}KIfzfXYKd9Mi?)?bg`gC=wJ&M)`=qZ8(6)&R0Vg8^ zV;+nMF`~dVTx#z2~n;-O9Gt#HR_CA3Qh+k5@`nA<;fceg~;yCSojFi zCsD2DE&8cH+N}9WrlhaP=RqAty{4y*D?50--a5(?jK8Hhpz3(dsP=Ph&EVJ^|2pf2 zq&{q6i0?&2(K$6^!HUjrS0T85^hG%I3KQO$ABy&cLmxqZqetOTY0hXQP3+a6B)|Z0 zl>7o+%M~<-I8=sV(;2NH4rX)#Cr?g^v{!xH;e9z52a8t_2GzMmJ7oyMv(VRSlUe(? zXQ#(J(lN?k6iGv&*#%COtuA-x?x+21L$kkaxb+%3(zX&DgQ**mLCpFdw!-xY3wC?E z{BN2kfGEClte=!JBG*9Gy7ZnTUE}*x+C#~#7^Qa<%2o67jx@VUO<&O;P0d4nr9Q6yV{TfUM33~9 z4ieQd>uWy@qM|t4(Lnu!kqN=nIquQEzQtnvrfkM#_NhE%<%zp3jRk7ps!TW)DI(ju^Mxn12cxpe z1QOnmimOj(%Q6(q#|@b?!_AomyT82-9||#NihtT_S3YtVpy<$FT=G7mh;qM{Or}tZ zRUNW&|A;&(i+qz0=wv}h`c?{N{~?omJo5cXjg_(Uj0Yun4gTK-xIFSzXYpTp%m>Bq zmR8qKVb|{9Hday)+o}Mkfz|Tjjb2M_-Hq5F)u7!C43+4U-I}C^ucHu1VY9u z>b6{e`}y3@LR~%{J}hF(mFw(-#2{O=^EYhR;(Y|$ohv4&f~9MM{l&G(l!eE}cp!9v zA%v>?4>u~}{R3i*uvP@txM;ub1U2F!6zZ?yV+V#)@wQ6e$kcz`5e_lDW+oBJxb_`% z+t*0aG@AKCC~;%xgD7~1VZ+=RYEwKh{#;)?aQxcN^W2|Z{|xYVPBw0DwchCzMi)J< znVWbY7p@4Wkn<`R9)yceaRUj}^M*#@+W4aeim*b|i0ZSLLNyyRr8yQb)a|~q7@T>g zas6r%E)oe|b+IEZgkR`=W#^<>^w(9ek8!*AJGRws*}GYE5LQNeb(m^!1h`B|%N>6z z%L^7++Tj9nQrT*XU~~rop2CHt1uPfR{F%o`vLjDV*=`ax$Ow>&Q<%Bcxu8H=0H=Ym z3ZU5afo`_v&UFn+OEqs2t%R(UeN*@q*&7dmaB}>;e)ZS<{XtDp$_0v%OIN@ocd_W! z5cbJ`wm8XGCv}4FS%){UuU%f6V=v$xxG$g4b1XH3BS_ESZSL#Qttcy9=OE~KQ@Sy*jHZnmu(Ar z#AY#BCYVDRvI-ZAhjWL`R|o; zg~%=v!Fd`g4sKzz7=<6jLQ+05m+VZrv+^CO=&X;wSRF&P?_b0#sfB<6(5V%Y)3>{8 z%nj?n$1J3!O?mPB63poB(L;x9^c__im8ykjXA(WfxF?03y6Tr)GFp^1r`wHlIt1&S zlt>G($mMJuDKKC(Q3AF-7Iz+Ds!ojgh%nk&N$yGYNCLg7G?~SUDkJyL^L->_kprn)PlLwHrG1s>b8v%;XuC)8wEC$fkFib<)aZ z`njKf%}pB`3<%%a90{ZC93V?KBD2TSpsX`yI>)`fIPUb_a}DF*o1lf;U5YS0TG6yp2I)R zb!;o8>l97TwqOCya93`DYt)0L_F04)A_3$AY{3P|4H5ZH-*7fKq%~K!4;w$s^(ZrV zM_1rITqcU$iZ6Ak+_9{UUX^wdR0h#a*??I{NYr8L=e z_JrGJF7n$70O1SosK4+9+)@9h?p0AS!4Z-?mjGr;QYP>)WncWUorA->0eg`0UZ$Pn zaVEb8*%43n`ve*;@}%`K`7bp@1b=Qo3tQd=Wo&;q+Nn8>he))em3!y~k8_qzU zRMmz+q@?WQ7l~TdV_@-7z#lv#NN#WDQHDE!DUnR-2pbhg{e$N>;Q~>cOs}#bz!$=O z;~Zf?7vq^CqWC|yWv_x9WRkFD0wZ2qq`3R)&`l*e&Sgt-R8M2K1ze6mM40!ssf0`PdeN=1ne~BAb3xs8# z1>*lxxE8C7JSU0zmkg#}7*>wXX6AAkxT(Rf_@5#-u0KN~$KI8f_yBx*2~oP#)RmO$ z?L4-0@C!A>6XsA-8$)4XA@oz|+fO0rPicL?;J^Soo4!mOxqYcmcC9UIZ|)Ygw$t8Y z6nL}flHq4K`FGg!MG+D2piB?D-n{>msrdI6)+s}3fy2?Z_pUrxEJt%~rY-C|ovdGQ z&u>#z&FmW2kJ34s+S|BXrT_Qa#ou+l<9ZGCB>s+4vNwDro|BVvCsm3tDh8<7(r+9D zb|*q1s~ktrHS(;ep-T!_tamf*Jd_6jVXVu$(5B@Kw{0qEe0fNUHZfmbw}!Y0!t^G} z@!Qn-Ztv9r?ziMlgYPsNYs7eq)g&LSKH8#Abh-SBpO2U{*Ppw0*A*4@ydEbmfWWav zQiA49fm87;ad;@CI|)A6sz4Z31;$3Pa>L5wS2(mHyWwG{0_g|YzcEaJSztKN#ugS; zeuZL49hgPJ!Exh8m>9+?{>cioh|!gJ<@iAa*2VCy#DoL}4po@1V2J}Vb@9^;GoGd5 zM$0JrWj$(byM4kaLJi1A2iN!CNBFaf0XtWx4vOx7_n`^pwk}v8^C{8|D-i}ShDy>w zaaYMIqFP3?7Svw=n`%}U4J(~$lkb=+KLJFPda-aO@{c6R?n!s^)x zy;QR9BAtJLoBC);_bDa%oF}cUiFgxPK+rJjQq8OP&aoR~y`bkc0F~8?4Z@9yw8r3N}x4$@o0(E?c4q z_UPpeEOZWtR)b2*`e^sbeE=$%V};k59URzH{} ztv@Yd6&-9F#v%HU^@aIq*~SE5O+RimsXuA%uAwp8q4pHaBgMqzEEI&5R18 zaVl7=H0f;gAt)S5lClF+J(8czhO$C2mmmsQ=kjs5Xt zJ$`ZzJR}gjuG$m|PAAuP1OPXRGjorxu|cSeo?jr?ziOg} zh`8y*2Jv25+3Kb^0WUR**v0Acv@4ga+f*zQ=YB*3-1}Pi1nwTqSMFy>1`@9Q+onWZO{Qff*yNju6fgtMeX5hbm|B!fs9rK?~b)qWi79{3@`8Vi$R%; z)ekJEDJEGVB&K3b#EG1}Sy4@W6CJKtWj{TzjA7)N33rasolWP`U+XwupUDqkD#q>K z9zP#P8EH$p%Y$&6XkYHWF~X?q+Bmj%3oUq>_Hhs_^GGRnQLmQqm~doDUW=GL5Tz~@ zeKck|r6WU>R^XRJRsA(Ii7m{h!HbcEo1#!2_AyWu-N8D7UqjmH^9oQ^K;;^)F9s4| ze{h<%UpeZtG)O(AwUIC&rAG%1%=c8vxwc7+Xlc58bhUy2i}Ct1lgGRILg870!)MEf zqcebWH&xiKn?1T-PwDF&^$3s2O#mtr8D;b#n&0g6_u-G}zYVQ{PVj_Km^RHQWADmEh;w^ZTVay8ld2Z2GK*lTf=oB6s@y*U?uq6_l#i zuyXn4zb8ySJVzCkXVJF{Uh%fEJfl6&1rQkO$63SHEoY%z$$zz|HnQ+q&W$0bkLh_A zUgk%ksfy5JE+wh(!cP}xEqvvz=k2wqTFYLwcJ#dCEuhico*_EA3*!n0h5VjwRs8K&?yrl$`LsJ+ys&XMxp?1(3cow$}1gH>luU zN=87u(If<+@?rP(m%R-#3C-{sy zTiJ0$`r0X@xY?K#p*Mej5+D=I5x5+7>6x|>KKHp8&3DJZfafK-1ZD3Ll*|51TNnkX z(p+0YJG42=4WGy?yc2npV65DNQU3?U<<*s&wCVs-fr zb&j~8eC6oI7Aa-;{ow3dT5^po0C+plf~jNzL!%U}7;g^@9cpQa9%uDF4GsAUDcJ%@H2_(PIttWY^!Cibz>$`odRPT*hv!n}3Z^or9)TRX8=W%S`9 zv9HpzquE@EJkt6CstD^6khf_-Ep=9_)AuGD+>b&8)>>T`b|odrUG$Jd+e#OaH7Lp! z@(@=Ta8x2weE=jDL91~7p#4bx#ZWYKD~siqE#y~lI0qZ*K@j~xP~U7L#3qQN0pfKSC=Zc@ zRpfZFDtPy>LD5!T|x6qE$r!mz}9ZL>{3-$(uEi*SZt9G_unC0%p} zv}3OcC9-wA@ctLh3Q9j delta 14397 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 M{PG7@p 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 B1*QN1 From a668109c3d1f198c1eebb13a143da253cf462768 Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 16 Sep 2015 14:41:42 +0200 Subject: [PATCH 14/74] Adds ID unlocking Fixes directional issues --- code/game/objects/structures/displaycase.dm | 41 +++++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index f144112f45e..ed5325bfa6d 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -11,6 +11,7 @@ var/obj/item/showpiece = null var/alert = 0 var/open = 0 + var/obj/item/weapon/electronics/airlock/electronics /obj/structure/displaycase/ex_act(severity, target) switch(severity) @@ -72,6 +73,18 @@ playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) return +/obj/structure/displaycase/proc/get_flat_icon_directional(atom/A) + //Get flatIcon even if dir is mismatched for directionless icons + var/icon/test + try + test = getFlatIcon(A,defdir=4) + catch + var/old_dir = A.dir + A.dir = 2 + test = getFlatIcon(A) + A.dir = old_dir + return test + /obj/structure/displaycase/update_icon() var/icon/I if(open) @@ -81,13 +94,18 @@ if(destroyed) I = icon('icons/obj/stationobjs.dmi',"glassboxb0") if(showpiece) - var/icon/S = getFlatIcon(showpiece) //Guns got overlays + var/icon/S = get_flat_icon_directional(showpiece) S.Scale(17,17) I.Blend(S,ICON_UNDERLAY,8,8) src.icon = I return /obj/structure/displaycase/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/card) && electronics && !destroyed && allowed(user)) + user << "You [open ? "close":"open"] the [src]" + open = !open + update_icon() + return if(!alert && istype(W,/obj/item/weapon/crowbar)) if(destroyed && !showpiece) user << "You remove the destroyed case" @@ -95,8 +113,8 @@ return user << "You start to [open ? "close":"open"] the [src]" if(do_after(user, 20, target = src)) + user << "You [open ? "close":"open"] the [src]" open = !open - user << "You [open ? "close":"open"] the [src]" update_icon() else if(open) if(user.unEquip(W)) @@ -137,6 +155,8 @@ desc = "wooden base of display case" icon = 'icons/obj/stationobjs.dmi' icon_state = "glassbox_chassis" + var/obj/item/weapon/electronics/airlock/electronics + /obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) @@ -147,6 +167,14 @@ new /obj/item/stack/sheet/mineral/wood(get_turf(src)) qdel(src) return + if(istype(I, /obj/item/weapon/electronics/airlock)) + user << "You start installing the electronics into [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(user.unEquip(I) && do_after(user, 30, target = src)) + I.loc = src + electronics = I + user << "You install the airlock electronics." + return if(istype(I, /obj/item/stack/sheet/glass)) var/obj/item/stack/sheet/glass/G = I if(G.get_amount() < 10) @@ -155,7 +183,14 @@ user << "You start adding [G] to [src]..." if(do_after(user, 20, target = src)) G.use(10) - new /obj/structure/displaycase(src.loc) + var/obj/structure/displaycase/display = new(src.loc) + if(electronics) + electronics.loc = display + display.electronics = electronics + if(electronics.use_one_access) + display.req_one_access = electronics.conf_access + else + display.req_access = electronics.conf_access qdel(src) return return From a524268b4d5307135ed218a1b078f43cd6271e45 Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 16 Sep 2015 16:29:17 +0200 Subject: [PATCH 15/74] Fix --- code/game/objects/structures/displaycase.dm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index ed5325bfa6d..37f136b4618 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -73,17 +73,24 @@ playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) return +/obj/structure/displaycase/proc/is_directional(atom/A) + try + getFlatIcon(A,defdir=4) + catch + return 0 + return 1 /obj/structure/displaycase/proc/get_flat_icon_directional(atom/A) //Get flatIcon even if dir is mismatched for directionless icons - var/icon/test - try - test = getFlatIcon(A,defdir=4) - catch + //SLOW + var/icon/I + if(is_directional(A)) + I = getFlatIcon(A) + else var/old_dir = A.dir A.dir = 2 - test = getFlatIcon(A) + I = getFlatIcon(A) A.dir = old_dir - return test + return I /obj/structure/displaycase/update_icon() var/icon/I From 6ab5b88e6c7d24a4379cf8abc8a05c41df683f3d Mon Sep 17 00:00:00 2001 From: AnturK Date: Wed, 16 Sep 2015 15:11:21 +0200 Subject: [PATCH 16/74] Map changes take three --- _maps/map_files/MetaStation/MetaStation.v41G.dmm | 4 ++-- _maps/map_files/MiniStation/MiniStation.dmm | 6 +++--- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.v41G.dmm b/_maps/map_files/MetaStation/MetaStation.v41G.dmm index 6b8a848d759..51cf098c9f5 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41G.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41G.dmm @@ -3570,7 +3570,7 @@ "bqx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bqy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bqz" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) -"bqA" = (/obj/structure/displaycase{pixel_y = 5},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bqA" = (/obj/structure/displaycase/captain{pixel_y = 5},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bqB" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bqC" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bqD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) @@ -6526,7 +6526,7 @@ "cvm" = (/obj/item/weapon/folder/white,/obj/item/weapon/stamp/rd{pixel_x = 3; pixel_y = -2},/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cvn" = (/obj/machinery/computer/aifixer,/obj/structure/window/reinforced{dir = 4},/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cvo" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) -"cvp" = (/obj/structure/lamarr,/obj/machinery/light/small{dir = 1},/obj/structure/sign/biohazard{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) +"cvp" = (/obj/structure/displaycase/labcage,/obj/machinery/light/small{dir = 1},/obj/structure/sign/biohazard{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) "cvq" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32; pixel_y = 0},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) "cvr" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/storage) "cvs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/storage) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 702ab5ca619..a75cde649c9 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -20,7 +20,7 @@ "at" = (/obj/machinery/computer/med_data,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/bridge) "au" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/simulated/floor/plasteel,/area/bridge) "av" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/lockbox/medal,/turf/simulated/floor/plasteel,/area/bridge) -"aw" = (/obj/structure/lamarr,/turf/simulated/floor/plasteel,/area/bridge) +"aw" = (/obj/structure/displaycase/labcage,/turf/simulated/floor/plasteel,/area/bridge) "ax" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/item/weapon/hand_tele,/turf/simulated/floor/plasteel,/area/bridge) "ay" = (/turf/simulated/floor/plasteel,/area/bridge) "az" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/bridge) @@ -29,7 +29,7 @@ "aC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/bridge) "aD" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/bridge) "aE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/plasteel,/area/bridge) -"aF" = (/obj/structure/displaycase,/turf/simulated/floor/plasteel,/area/bridge) +"aF" = (/obj/structure/displaycase/captain,/turf/simulated/floor/plasteel,/area/bridge) "aG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/bridge) "aH" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/bridge) "aI" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/bridge) @@ -1642,7 +1642,7 @@ "GP" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "GQ" = (/obj/machinery/telecomms/broadcaster/preset_left/ministation,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "GR" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_s"; name = "south of station"; turf_type = /turf/simulated/floor/plating/snow; width = 18},/turf/space,/area/space) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 03d97f3faec..1fd94197430 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -2819,7 +2819,7 @@ "bck" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bcl" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bcm" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) -"bcn" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bcn" = (/obj/structure/displaycase/captain,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bco" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Dorm"; location = "HOP2"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "bcp" = (/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = 32; pixel_y = 28; tag = "icon-direction_evac (EAST)"},/obj/structure/sign/directions/security{dir = 1; icon_state = "direction_sec"; pixel_x = 32; pixel_y = 36; tag = "icon-direction_sec (NORTH)"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "bcq" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) @@ -3970,7 +3970,7 @@ "byr" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) "bys" = (/obj/structure/rack,/obj/item/device/aicard,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/crew_quarters/hor) "byt" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) -"byu" = (/obj/structure/lamarr,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/crew_quarters/hor) +"byu" = (/obj/structure/displaycase/labcage,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/crew_quarters/hor) "byv" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/engine,/area/toxins/explab) "byw" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/engine,/area/toxins/explab) "byx" = (/obj/machinery/atmospherics/components/unary/heat_reservoir/heater{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -6581,7 +6581,7 @@ "cwC" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) "cwD" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) "cwE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 4aa4b52a755f01577027ba0736c41a0a85297606 Mon Sep 17 00:00:00 2001 From: WJohn Date: Thu, 17 Sep 2015 12:18:07 -0400 Subject: [PATCH 17/74] Fixes and cleans up hatch airlock sprite intensity. --- icons/obj/doors/airlocks/hatch/overlays.dmi | Bin 4673 -> 4960 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/doors/airlocks/hatch/overlays.dmi b/icons/obj/doors/airlocks/hatch/overlays.dmi index 738f7e8fce5cd6ab3a1037df976f602cff817ea1..38f8b50f420c86a97aa7491a498f4c4b498d5fd8 100644 GIT binary patch delta 4713 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 E1CALG=Kufz delta 4424 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 From f13c142837cc3b913c1efd8330df9a6de6caf26e Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 17:17:31 -0400 Subject: [PATCH 18/74] Newcult update --- code/game/gamemodes/cult/cult.dm | 15 +++---- code/game/gamemodes/cult/ritual.dm | 58 ++++++++++++++-------------- code/game/gamemodes/cult/runes.dm | 53 ++++++++++++------------- code/game/gamemodes/cult/talisman.dm | 54 ++++++++++++++++++++------ code/modules/paperwork/paper.dm | 19 +++++---- 5 files changed, 116 insertions(+), 83 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 9c3bf83d20c..9e21d6db7ed 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -92,7 +92,8 @@ if(config.protect_assistant_from_antagonist) restricted_jobs += "Assistant" - acolytes_needed = max(2, round(num_players()/5)) //Scales the escape requirement with the amount of people in the round + acolytes_needed = round(num_players()/5,1) //Scales the escape requirement with the amount of people in the round; for every 5 players, one cultist added to the count, i.e. 25 players = 5 to escape + acolytes_needed = Clamp(acolytes_needed, 1, 15) //Max at 15 and minimum at 1 - before the update, people rarely got even 15 for(var/cultists_number = 1 to recommended_enemies) if(!antag_candidates.len) @@ -141,11 +142,11 @@ explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station." if("sacrifice") if(sacrifice_target) - explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. You will need the Rite of Tribute and three acolytes to do so." + explanation = "Sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role]. You will need the Sacrifice rune and three acolytes to do so." else explanation = "Free objective." if("eldergod") - explanation = "Summon Nar-Sie via the use of the Ritual of Dimensional Rending. It will only work if nine cultists stand on and around it." + explanation = "Summon Nar-Sie via the rune 'Call Forth The Geometer'. It will only work if nine acolytes stand on and around it." cult_mind.current << "Objective #[obj_count]: [explanation]" cult_mind.memory += "Objective #[obj_count]: [explanation]
" @@ -171,7 +172,7 @@ if(!where) mob << "Unfortunately, you weren't able to get a talisman. This is very bad and you should adminhelp immediately." else - mob << "You have a talisman in your [where], one that will help you start the cult on this station. Use it well, and remember - you are not the only one." + mob << "You have a talisman in your [where], one that will help you start the cult on this station. Use it well, and remember - you are not the only one." mob.update_icons() if(where == "backpack") var/obj/item/weapon/storage/B = mob.back @@ -203,13 +204,13 @@ cult -= cult_mind cult_mind.current.verbs -= /mob/living/proc/cult_innate_comm cult_mind.current.Paralyse(5) - cult_mind.current << "An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it." + cult_mind.current << "An unfamiliar white light flashes through your mind, cleansing the taint of the Dark One and all your memories as its servant." cult_mind.memory = "" update_cult_icons_removed(cult_mind) cult_mind.current.attack_log += "\[[time_stamp()]\] Has renounced the cult!" if(show_message) for(var/mob/M in viewers(cult_mind.current)) - M << "[cult_mind.current] looks like they just reverted to their old faith!" + M << "[cult_mind.current] looks like they just reverted to their old faith!" /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) var/datum/atom_hud/antag/culthud = huds[ANTAG_HUD_CULT] @@ -259,7 +260,7 @@ if(!check_cult_victory()) feedback_set_details("round_end_result","win - cult win") feedback_set("round_end_result",acolytes_survived) - world << "The cult wins! It has succeeded in serving its dark masters!" + world << "The cult wins! It has succeeded in serving its dark master!" else feedback_set_details("round_end_result","loss - staff stopped the cult") feedback_set("round_end_result",acolytes_survived) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 000120ef61a..effdf7a7b41 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -138,83 +138,83 @@ It also contains rune words, which are soon to be removed. Rite of Knowledge: \"karazet nahlizet ego\"
\


"*/ - text += "Rite of Translocation
The Rite of Translocation is a unique rite in that it requires a keyword before the scribing can begin. When invoked, the rune will \ + text += "Teleport
The Rite of Translocation is a unique rite in that it requires a keyword before the scribing can begin. When invoked, the rune will \ search for other Rites of Translocation with the same keyword. Assuming one is found, the user will be instantaneously transported to the location of the other rune. If more than two runes are scribed \ with the same keyword, it will choose randomly between all eligible runes and send the invoker to one of them.

" - text += "Rite of Forced Translocation
The Rite of Forced Translocation, like the Rite of Translocation, works by teleporting the person on the rune to one of the \ + text += "Teleport Other
The Rite of Forced Translocation, like the Rite of Translocation, works by teleporting the person on the rune to one of the \ same keyword. However, this rune will only work on people other than the user, allowing the user to send any living creature somewhere else.

" - text += "Rite of Knowledge
The Rite of Knowledge is a simplistic rune. When invoked, it will summon a single arcane tome to the rune's location before vanishing. \ + text += "Summon Tome
The Rite of Knowledge is a simplistic rune. When invoked, it will summon a single arcane tome to the rune's location before vanishing. \

" - text += "Rite of Enlightenment
The Rite of Enlightment is paramount to the success of the cult. It will allow you to convert normal crew members into cultists. \ + text += "Convert
The Rite of Enlightment is paramount to the success of the cult. It will allow you to convert normal crew members into cultists. \ To do this, simply place the crew member upon the rune and invoke it. This may take some time, depending on the amount of cultists nearby. It takes twenty seconds, with each additional cultist shaving \ off ten seconds of the conversion. With three or more cultists, conversion is instantaneous. Once invoked, only the original user must remain. If the target is loyalty-implanted or has a null rod in \ their possession, this will not work.

" - text += "Rite of Tribute
The Rite of Tribute is used to offer sacrifice to the Geometer. Simply place any living creature upon the rune and invoke it (this will not \ + text += "Sacrifice
The Rite of Tribute is used to offer sacrifice to the Geometer. Simply place any living creature upon the rune and invoke it (this will not \ target cultists!). If this creature has a mind, a soul shard will be created and the creature's soul transported to it. This rune is required if the cult's objectives include the sacrifice of a crew \ member.

" - text += "Rite of Resurrection
The Rite of Resurrection is a delicate rite that requires two corpses. To perform the ritual, place the corpse you wish to revive onto \ + text += "Raise Dead
The Rite of Resurrection is a delicate rite that requires two corpses. To perform the ritual, place the corpse you wish to revive onto \ the rune and the offering body adjacent to it. When the rune is invoked, the body to be sacrificed will turn to ashes, the life force flowing into the revival target. Assuming the target is not moved \ within a few seconds, they will be brought back to life, healed of all ailments.

" - text += "Rite of Obscurity
The Rite of Obscurity is a rite that will cause all nearby runes to become invisible. The runes will still be considered by other rites \ + text += "Veil Runes
The Rite of Obscurity is a rite that will cause all nearby runes to become invisible. The runes will still be considered by other rites \ (such as the Rite of Translocation) but is unusuable directly.

" - text += "Rite of True Sight
The Rite of True Sight is the foil of the Rite of Obscurity. It will turn all invisible runes visible once more, in addition to causing \ + text += "Reveal Runes
The Rite of True Sight is the foil of the Rite of Obscurity. It will turn all invisible runes visible once more, in addition to causing \ all spirits nearby to become partially corporeal.

" - text += "Rite of False Truths
Many crew men enjoy drawing runes in crayon that resemble spell circles in order to play pranks on their fellow crewmen. The Rite of \ + text += "Disguise Runes
Many crew men enjoy drawing runes in crayon that resemble spell circles in order to play pranks on their fellow crewmen. The Rite of \ False Truths takes advantage of this very joke. When invoked, all nearby runes will appear dull, precisely resembling those drawn in crayon. They still cannot be cleaned by conventional means, so \ anyone trying to clean up the rune may become suspicious as it does not respond.

" - text += "Rite of Disruption
Robotic lifeforms have time and time again been the downfall of fledgling cults. The Rite of Disruption may allow you to gain the upper \ + text += "Electromagnetic Disruption
Robotic lifeforms have time and time again been the downfall of fledgling cults. The Rite of Disruption may allow you to gain the upper \ hand against these pests. By using the rune, a large electromagnetic pulse will be emitted from the rune's location.

" - text += "Rite of Astral Communion
The Rite of Astral Communion is perhaps the most ingenious rune that is usable by a single person. Upon invoking the rune, the \ + text += "Astral Communion
The Rite of Astral Communion is perhaps the most ingenious rune that is usable by a single person. Upon invoking the rune, the \ user's spirit will be ripped from their body. In this state, the user's physical body will be locked in place to the rune itself - any attempts to move it will result in the rune pulling it back. \ The body will also take constant damage while in this form, and may even die. The user's spirit will contain their consciousness, and will allow them to freely wander the station as a ghost. This may \ also be used to commune with the dead.

" - text += "Rite of the Corporeal Shield
While simple, the Rite of the Corporeal Shield serves an important purpose in defense and hindering passage. When invoked, the \ + text += "Form Shield
While simple, the Rite of the Corporeal Shield serves an important purpose in defense and hindering passage. When invoked, the \ rune will draw a small amount of life force from the user and make the space above the rune completely dense, rendering it impassable to all but the most complex means. The rune may be invoked again to \ undo this effect and allow passage again.

" - text += "Rite of the Unheard Whisper
The Rite of the Unheard Whisper is simple. When invoked, it will cause all non-cultists within a radius of seven tiles to become \ + text += "Deafen
The Rite of the Unheard Whisper is simple. When invoked, it will cause all non-cultists within a radius of seven tiles to become \ completely deaf for a large amount of time.

" - text += "Rite of the Unseen Glance
Much like the Rite of the Unheard Whisper, the Rite of the Unseen Glance serves a single purpose. Any non-cultists who can see \ + text += "Blind
Much like the Rite of the Unheard Whisper, the Rite of the Unseen Glance serves a single purpose. Any non-cultists who can see \ the rune will instantly be blinded for a substantial amount of time.

" - text += "Rite of Disorientation
A somewhat empowered version of the Rite of the Unseen Glance, this rune will cause any non-cultists that can see the rune to become \ + text += "Stun
A somewhat empowered version of the Rite of the Unseen Glance, this rune will cause any non-cultists that can see the rune to become \ disoriented, disabling them for a short time.

" - text += "Rite of Joined Souls
The Rite of Joined Souls requires two acolytes to use. When invoked, it will allow the user to summon a single cultist to the rune from \ + text += "Summon Cultist
The Rite of Joined Souls requires two acolytes to use. When invoked, it will allow the user to summon a single cultist to the rune from \ any location. This will deal a moderate amount of damage to all invokers.

" - text += "Rite of Binding
The Rite of Binding is the only way to create talismans. A blank sheet of paper must be on top of the rune, with a valid rune nearby. After \ + text += "Imbue Talisman
The Rite of Binding is the only way to create talismans. A blank sheet of paper must be on top of the rune, with a valid rune nearby. After \ invoking it, the paper will be converted into a talisman, and the rune inlaid upon it.

" - text += "Rite of Fabrication
The Rite of Fabrication is the main way of creating construct shells. To use it, one must place five sheets of plasteel on top of the rune \ + text += "Fabricate Shell
The Rite of Fabrication is the main way of creating construct shells. To use it, one must place five sheets of plasteel on top of the rune \ and invoke it. The sheets will them be twisted into a construct shell, ready to recieve a soul to occupy it.

" - text += "Rite of Arming
The Rite of Arming will equip the user with invoker's robes, a backpack, a Nar-Sian longsword, and a pair of boots. Any items that cannot \ + text += "Summon Arnaments
The Rite of Arming will equip the user with invoker's robes, a backpack, a Nar-Sian longsword, and a pair of boots. Any items that cannot \ be equipped will instead not be summoned regardless.

" - text += "Rite of Leeching
The Rite of Leeching will drain the life of any non-cultist above the rune and heal the invoker for the same amount.

" + text += "Drain Life
The Rite of Leeching will drain the life of any non-cultist above the rune and heal the invoker for the same amount.

" - text += "Rite of Boiling Blood
The Rite of Boiling Blood may be considered one of the most dangerous rites composed by the Nar-Sian cult. When invoked, it will do a \ + text += "Boil Blood
The Rite of Boiling Blood may be considered one of the most dangerous rites composed by the Nar-Sian cult. When invoked, it will do a \ massive amount of damage to all non-cultist viewers, but it will also emit an explosion upon invocation. Use with caution

" - text += "Rite of Spectral Manifestation
If you wish to bring a spirit back from the dead with a wish for vengeance and desire to serve, the Rite of Spectral \ + text += "Manifest Spirit
If you wish to bring a spirit back from the dead with a wish for vengeance and desire to serve, the Rite of Spectral \ Manifestation can do just that. When invoked, any spirits above the rune will be brought to life as a human wearing nothing that seeks only to serve you and the Geometer. However, the spirit's link \ to reality is fragile - you must remain on top of the rune, and you will slowly take damage. Upon stepping off the rune, the spirits will dissipate, dropping their items to the ground. You may manifest \ multiple spirits with one rune, but you will rapidly take damage in doing so.

" - text += "Ritual of Dimensional Rending
There is only one way to summon the avatar of Nar-Sie, and that is the Ritual of Dimensional Rending. This ritual, in \ + text += "Call Forth The Geometer
There is only one way to summon the avatar of Nar-Sie, and that is the Ritual of Dimensional Rending. This ritual, in \ comparison to other runes, is very large, requiring a 3x3 space of empty tiles to create. To invoke the rune, nine cultists must stand on the rune, so that all of them are within its circle. Then, \ simply invoke it. A brief tearing will be heard as the barrier between dimensions is torn open, and the avatar will come forth.


" @@ -222,17 +222,17 @@ It also contains rune words, which are soon to be removed. rune inlaid within it. The words of the rune can be whispered in order to invoke its effects, although usually to a lesser extent. To create a talisman, simply use a Rite of Binding as described above. \ Unless stated otherwise, talismans are invoked by activating them in your hand. A list of valid rites, as well as the effects of their talisman form, can be found below.


" - text += "Talisman of Translocation
The talisman form of the Rite of Translocation will transport the invoker to a randomly chosen rune of the same keyword, then \ + text += "Talisman of Teleportation
The talisman form of the Rite of Translocation will transport the invoker to a randomly chosen rune of the same keyword, then \ disappear.

" - text += "Talisman of Knowledge
This talisman functions identically to the rune. It can be used once, then disappears.

" + text += "Talisman of Tome summoning
This talisman functions identically to the rune. It can be used once, then disappears.

" - text += "Talismans of Obscurity, True Sight, and False Truths
These talismans all function identically to their rune counterparts, but with less range. In addition, \ + text += "Talismans of Veiling, Revealing, and Disguising
These talismans all function identically to their rune counterparts, but with less range. In addition, \ the Talisman of True Sight will not reveal spirits. They will disappear after one use.

" - text += "Talisman of Disruption
This talisman functions like the Rite of Disruption, but with halved range. It disappears after one use.

" + text += "Talisman of Electromagnets
This talisman functions like the Rite of Disruption. It disappears after one use.

" - text += "Talisman of Disorientation
Without this talisman, the cult would have no way of easily acquiring targets to convert. Commonly called \"stunpapers\", this \ + text += "Talisman of Stunning
Without this talisman, the cult would have no way of easily acquiring targets to convert. Commonly called \"stunpapers\", this \ talisman functions differently from others. Rather than simply reading the words, the target must be attacked directly with the talisman. The talisman will then knock down the target for a long \ duration in addition to rendering them incapable of speech. Robotic lifeforms will suffer the effects of a heavy electromagnetic pulse instead." @@ -269,7 +269,7 @@ It also contains rune words, which are soon to be removed. "You slice open your arm and begin drawing a sigil of the Geometer.") if(iscarbon(user)) var/mob/living/carbon/C = user - C.apply_damage(1, BRUTE, pick("l_arm", "r_arm")) + C.apply_damage(0.1, BRUTE, pick("l_arm", "r_arm")) if(!do_after(user, 50, target = get_turf(user))) return user.visible_message("[user] creates a strange circle in their own blood.", \ diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 7ee742718c1..1b010cb0754 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -171,7 +171,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/list/teleport_runes = list() //Rite of Translocation: Warps the user to a random teleport rune with the same keyword. /obj/effect/rune/teleport - cultist_name = "Rite of Translocation" + cultist_name = "Teleport" cultist_desc = "Warps the user to a random rune of the same keyword." invocation = "Sas'so c'arta forbici!" icon_state = "2" @@ -210,7 +210,7 @@ var/list/teleport_runes = list() var/list/teleport_other_runes = list() //Rite of Forced Translocation: Warps the target to a random teleport rune with the same keyword. /obj/effect/rune/teleport_other - cultist_name = "Rite of Forced Translocation" + cultist_name = "Teleport Other" cultist_desc = "Warps the target to a random rune of the same keyword." invocation = "Sas'so c'arta forbica!" icon_state = "1" @@ -266,8 +266,8 @@ var/list/teleport_other_runes = list() //Rite of Knowledge: Creates an arcane tome at the rune's location and destroys the rune. /obj/effect/rune/summon_tome - cultist_name = "Rite of Knowledge" - cultist_desc = "Pulls an unstranslated arcane tome from the archives of the Geometer." + cultist_name = "Summon Tome" + cultist_desc = "Pulls an arcane tome from the archives of the Geometer." invocation = "N'ath reth sh'yro eth d'raggathnor!" icon_state = "5" color = rgb(0, 0, 255) @@ -281,7 +281,7 @@ var/list/teleport_other_runes = list() //Rite of Enlightenment: Converts a normal crewmember to the cult. Faster for every cultist nearby. /obj/effect/rune/convert - cultist_name = "Rite of Enlightenment" + cultist_name = "Convert" cultist_desc = "Converts a normal crewmember on top of it to the cult. Does not work on loyalty-implanted crew." invocation = "Mah'weyh pleggh at e'ntrath!" icon_state = "3" @@ -345,7 +345,7 @@ var/list/teleport_other_runes = list() //Rite of Tribute: Sacrifices a crew member to Nar-Sie. Places them into a soul shard if they're in their body. /obj/effect/rune/sacrifice - cultist_name = "Rite of Tribute" + cultist_name = "Sacrifice" cultist_desc = "Sacrifices a crew member to the Geometer. May place them into a soul shard if their spirit remains in their body." icon_state = "3" invocation = "Barhah hra zar'garis!" @@ -433,7 +433,7 @@ var/list/teleport_other_runes = list() //Ritual of Dimensional Rending: Calls forth the avatar of Nar-Sie upon the station. /obj/effect/rune/narsie - cultist_name = "Ritual of Dimensional Rending" + cultist_name = "Call Forth The Geometer" cultist_desc = "Tears apart dimensional barriers, calling forth the avatar of the Geometer." invocation = "Tok-lyr rqa'nap g'olt-ulotf!" req_cultists = 9 @@ -489,7 +489,7 @@ var/list/teleport_other_runes = list() //Rite of Resurrection: Requires two corpses. Revives one and gibs the other. /obj/effect/rune/raise_dead - cultist_name = "Rite of Resurrection" + cultist_name = "Raise Dead" cultist_desc = "Requires two corpses. The one placed upon the rune is brought to life, the other is turned to ash." invocation = null //Depends on the name of the user - see below color = rgb(150, 0, 0) @@ -557,7 +557,7 @@ var/list/teleport_other_runes = list() //Rite of Obscurity: Turns all runes within a 3-tile radius invisible. /obj/effect/rune/hide_runes - cultist_name = "Rite of Obscurity" + cultist_name = "Veil Runes" cultist_desc = "Turns nearby runes invisible. They can be revealed by using the Rite of True Sight." invocation = "Kla'atu barada nikt'o!" icon_state = "3" @@ -579,7 +579,7 @@ var/list/teleport_other_runes = list() //Rite of True Sight: Turns ghosts and obscured runes visible /obj/effect/rune/true_sight - cultist_name = "Rite of True Sight" + cultist_name = "Reveal Runes" cultist_desc = "Reveals all invisible objects nearby, from spirits to runes." invocation = "Nikt'o barada kla'atu!" icon_state = "6" @@ -599,7 +599,7 @@ var/list/teleport_other_runes = list() //Rite of False Truths: Makes runes appear like crayon ones /obj/effect/rune/make_runes_fake - cultist_name = "Rite of False Truths" + cultist_name = "Disguise Runes" cultist_desc = "Causes all nearby runes (including itself) to resemble those drawn in crayon." invocation = "By'o isit!" icon_state = "4" @@ -614,7 +614,7 @@ var/list/teleport_other_runes = list() //Rite of Disruption: Emits an EMP blast. /obj/effect/rune/emp - cultist_name = "Rite of Disruption" + cultist_name = "Electromagnetic Disruption" cultist_desc = "Emits a large electromagnetic pulse, hindering electronics and disabling silicons." invocation = "Ta'gh fara'qha fel d'amar det!" icon_state = "1" @@ -632,7 +632,7 @@ var/list/teleport_other_runes = list() //Rite of Astral Communion: Separates one's spirit from their body. They will take damage while it is active. /obj/effect/rune/astral - cultist_name = "Rite of Astral Communion" + cultist_name = "Astral Communion" cultist_desc = "Severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active." invocation = "Fwe'sh mah erl nyag r'ya!" icon_state = "1" @@ -702,7 +702,7 @@ var/list/teleport_other_runes = list() //Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo. /obj/effect/rune/wall - cultist_name = "Rite of the Corporeal Shield" + cultist_name = "Form Shield" cultist_desc = "When invoked, makes the rune block passage. Can be invoked again to reverse this." invocation = "Khari'd! Eske'te tannin!" icon_state = "1" @@ -724,7 +724,7 @@ var/list/teleport_other_runes = list() //Rite of the Unheard Whisper: Deafens all non-cultists nearby. /obj/effect/rune/deafen - cultist_name = "Rite of the Unheard Whisper" + cultist_name = "Deafen" cultist_desc = "Causes all non-followers nearby to lose their hearing." invocation = "Sti kaliedir!" grammar = "geeri jatkaa karazet" @@ -740,7 +740,7 @@ var/list/teleport_other_runes = list() //Rite of the Unseen Glance: Blinds all non-cultists nearby. /obj/effect/rune/blind - cultist_name = "Rite of the Unseen Glance" + cultist_name = "Blind" cultist_desc = "Causes all non-followers nearby to lose their sight." invocation = "Sti kaliesin!" icon_state = "1" @@ -760,7 +760,7 @@ var/list/teleport_other_runes = list() //Rite of Disorientation: Stuns all non-cultists nearby for a brief time /obj/effect/rune/stun - cultist_name = "Rite of Disorientation" + cultist_name = "Stun" cultist_desc = "Stuns all nearby non-followers for a brief time." invocation = "Fuu ma'jin!" icon_state = "2" @@ -780,7 +780,7 @@ var/list/teleport_other_runes = list() //Rite of Joined Souls: Summons a single cultist. Requires 2 cultists. /obj/effect/rune/summon - cultist_name = "Rite of Joined Souls" + cultist_name = "Summon Cultist" cultist_desc = "Summons a single cultist to the rune." invocation = "N'ath reth sh'yro eth d'rekkathnor!" req_cultists = 2 @@ -817,7 +817,7 @@ var/list/teleport_other_runes = list() //Rite of Binding: Turns a nearby rune and a paper on top of the rune to a talisman, if both are valid. /obj/effect/rune/imbue - cultist_name = "Rite of Binding" + cultist_name = "Bind Talisman" cultist_desc = "Transforms papers and valid runes into talismans." invocation = "H'drak v'loso, mir'kanas verbot!" icon_state = "3" @@ -860,18 +860,13 @@ var/list/teleport_other_runes = list() log_game("Talisman Imbue rune failed - chosen rune invalid") return visible_message("[picked_rune] crumbles to dust, and bloody images form themselves on [paper_to_imbue].") - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) - else - user.adjustBruteLoss(5) qdel(paper_to_imbue) qdel(picked_rune) //Rite of Fabrication: Creates a construct shell out of 5 metal sheets. /obj/effect/rune/construct_shell - cultist_name = "Rite of Fabrication" + cultist_name = "Fabricate Shell" cultist_desc = "Turns five plasteel sheets into an empty construct shell, suitable for containing a soul shard." invocation = "Ethra p'ni dedol!" icon_state = "5" @@ -900,7 +895,7 @@ var/list/teleport_other_runes = list() //Rite of Arming: Creates cult robes, a trophy rack, and a cult sword on the rune. /obj/effect/rune/armor - cultist_name = "Rite of Arming" + cultist_name = "Summon Arnaments" cultist_desc = "Equips the user with robes, shoes, a backpack, and a longsword. Items that cannot be equipped will not be summoned." invocation = "N'ath reth sh'yro eth draggathnor!" icon_state = "4" @@ -919,7 +914,7 @@ var/list/teleport_other_runes = list() //Rite of Leeching: Deals brute damage to the target and heals the same amount to the invoker. /obj/effect/rune/leeching - cultist_name = "Rite of Leeching" + cultist_name = "Drain Life" cultist_desc = "Drains the life of the target on the rune, restoring it to the user." invocation = "Yu'gular faras desdae. Havas mithum javara. Umathar uf'kal thenar!" //that's a mouthful icon_state = "2" @@ -948,7 +943,7 @@ var/list/teleport_other_runes = list() //Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby /obj/effect/rune/blood_boil - cultist_name = "Rite of Boiling Blood" + cultist_name = "Boil Blood" cultist_desc = "Boils the blood of non-believers who can see the rune, dealing extreme amounts of damage." invocation = "Dedo ol'btoh!" icon_state = "4" @@ -975,7 +970,7 @@ var/list/teleport_other_runes = list() //Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. /obj/effect/rune/manifest - cultist_name = "Rite of Spectral Manifestation" + cultist_name = "Manifest Spirit" cultist_desc = "Manifests a spirit as a servant of the Geometer. The invoker must not move from atop the rune, and will take damage for each summoned spirit." invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this icon_state = "6" diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 2a63281e1fb..bebcf0f2bdc 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -19,6 +19,7 @@ Rite of Disorientation var/cultist_desc = "A basic talisman. It serves no purpose." var/invocation = "Naise meam!" var/uses = 1 + var/health_cost = 0 //The amount of health taken from the user when invoking the talisman /obj/item/weapon/paper/talisman/examine(mob/user) ..() @@ -40,7 +41,9 @@ Rite of Disorientation qdel(src) /obj/item/weapon/paper/talisman/proc/invoke(mob/living/user) - + if(health_cost && iscarbon(user)) + var/mob/living/carbon/C = user + C.apply_damage(health_cost, BRUTE, pick("l_arm", "r_arm")) //Malformed Talisman: If something goes wrong. /obj/item/weapon/paper/talisman/malformed @@ -124,9 +127,10 @@ Rite of Disorientation //Rite of Translocation: Same as rune /obj/item/weapon/paper/talisman/teleport - cultist_name = "Rite of Translocation" + cultist_name = "Talisman of Teleportation" cultist_desc = "A single-use talisman that will teleport a user to a random rune of the same keyword." invocation = "Sas'so c'arta forbici!" + health_cost = 5 var/keyword = "ire" /obj/item/weapon/paper/talisman/teleport/invoke(mob/living/user) @@ -135,7 +139,7 @@ Rite of Disorientation if(R.keyword == src.keyword) possible_runes.Add(R) if(!possible_runes.len) - user << "There are no Rites of Translocation with the same keyword!" + user << "There are no Teleport runes with the same keyword!" log_game("Teleportation talisman failed - no teleport runes of the same keyword") uses++ //To prevent deletion return @@ -151,12 +155,18 @@ Rite of Disorientation spawn(1) //To give the keyword time to change from the imbue rune info += keyword +/obj/item/weapon/paper/talisman/teleport/examine(mob/user) + ..() + if(iscultist(user) && keyword) + user << "Keyword: [keyword]" + //Rite of Knowledge: Same as rune, but has two uses /obj/item/weapon/paper/talisman/summon_tome - cultist_name = "Rite of Knowledge" + cultist_name = "Talisman of Tome Summoning" cultist_desc = "A two-use talisman that will call untranslated tomes from the archives of the Geometer." invocation = "N'ath reth sh'yro eth d'raggathnor!" + health_cost = 1 /obj/item/weapon/paper/talisman/summon_tome/invoke(mob/living/user) user.visible_message("Dust flows from [user]'s hand for a moment.", \ @@ -171,9 +181,10 @@ Rite of Disorientation //Rite of Obscurity: Same as rune, but less range /obj/item/weapon/paper/talisman/hide_runes - cultist_name = "Rite of Obscurity" + cultist_name = "Talisman of Veiling" cultist_desc = "A talisman that will make all runes within a small radius invisible." invocation = "Kla'atu barada nikt'o!" + health_cost = 1 /obj/item/weapon/paper/talisman/hide_runes/invoke(mob/living/user) user.visible_message("Dust flows from [user]'s hand.", \ @@ -185,9 +196,10 @@ Rite of Disorientation //Rite of True Sight: Same as rune, but doesn't work on ghosts /obj/item/weapon/paper/talisman/true_sight - cultist_name = "Rite of True Sight" + cultist_name = "Talisman of Revealing" cultist_desc = "A talisman that reveals nearby invisible runes." invocation = "Nikt'o barada kla'atu!" + health_cost = 1 /obj/item/weapon/paper/talisman/true_sight/invoke(mob/living/user) user.visible_message("A flash of light shines from [user]'s hand!", \ @@ -198,9 +210,10 @@ Rite of Disorientation //Rite of False Truths: Same as rune /obj/item/weapon/paper/talisman/make_runes_fake - cultist_name = "Rite of False Truths" + cultist_name = "Talisman of Disguising" cultist_desc = "A talisman that will make nearby runes appear fake." invocation = "By'o isit!" + health_cost = 3 /obj/item/weapon/paper/talisman/make_runes_fake/invoke(mob/living/user) user.visible_message("Dust flows from [user]s hand.", \ @@ -211,21 +224,23 @@ Rite of Disorientation //Rite of Disruption: Same as rune, halved radius /obj/item/weapon/paper/talisman/emp - cultist_name = "Rite of Disruption" + cultist_name = "Talisman of Electromagnets" cultist_desc = "A talisman that will cause a moderately-sized electromagnetic pulse." invocation = "Ta'gh fara'qha fel d'amar det!" + health_cost = 5 /obj/item/weapon/paper/talisman/emp/invoke(mob/living/user) - user.visible_message("[user]'s hand glows a bright blue!", \ + user.visible_message("[user]'s hand flashes a bright blue!", \ "You speak the words of the talisman, emitting an EMP blast.") - empulse(src, 2, 4) + empulse(src, 4, 8) //Rite of Disorientation: Stuns and mutes a single target for quite some time /obj/item/weapon/paper/talisman/stun - cultist_name = "Rite of Disorientation" + cultist_name = "Talisman of Stunning" cultist_desc = "A talisman that will stun and mute a single target. To use, attack target directly." invocation = "Fuu ma'jin!" + health_cost = 10 //A lot of health because of how powerful this is /obj/item/weapon/paper/talisman/stun/attack_self(mob/living/user) user << "To use this talisman, attack the target directly." @@ -254,3 +269,20 @@ Rite of Disorientation qdel(src) return ..() + + +//Rite of Arming: Equips cultist armor on the user, where available +/obj/item/weapon/paper/talisman/armor + cultist_name = "Talisman of Arming" + cultist_desc = "A talisman that will equip the invoker with cultist equipment where available." + invocation = "N'ath reth sh'yro eth draggathnor!" + health_cost = 3 + +/obj/item/weapon/paper/talisman/armor/invoke(mob/living/user) + user.visible_message("Otherworldy objects suddenly appear on [user]!", \ + "You speak the words of the talisman, arming yourself!") + user.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) + user.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) + user.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), slot_shoes) + user.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/cultpack(user), slot_back) + user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index d5d378ee710..33add4905e2 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -51,15 +51,20 @@ /obj/item/weapon/paper/examine(mob/user) ..() - if(in_range(user, src)) - if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) - user << browse("[name][stars(info)]


[stamps]", "window=[name]") - onclose(user, "[name]") + if(!istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read + if(in_range(user, src)) + if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) + user << browse("[name][stars(info)]
[stamps]", "window=[name]") + onclose(user, "[name]") + else + user << browse("[name][info]
[stamps]", "window=[name]") + onclose(user, "[name]") else - user << browse("[name][info]
[stamps]", "window=[name]") - onclose(user, "[name]") + user << "It is too far away." else - user << "It is too far away." + if(!iscultist(user)) + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + return /obj/item/weapon/paper/verb/rename() From 9c165315c3dbcbfba9ad5a0c523bfef88538db8f Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 17:26:48 -0400 Subject: [PATCH 19/74] Reverts rune shapes/colors to the old ones --- code/game/gamemodes/cult/runes.dm | 36 +++++++++++++++++++------------ 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 1b010cb0754..a6caa2d9ff3 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -353,6 +353,10 @@ var/list/teleport_other_runes = list() grammar = "veri nahlizet certum" var/rune_in_use = 0 +/obj/effect/rune/sacrifice/New() + ..() + icon_state = "[rand(1,6)]" + /obj/effect/rune/sacrifice/invoke(mob/living/user) if(rune_in_use) return @@ -492,7 +496,8 @@ var/list/teleport_other_runes = list() cultist_name = "Raise Dead" cultist_desc = "Requires two corpses. The one placed upon the rune is brought to life, the other is turned to ash." invocation = null //Depends on the name of the user - see below - color = rgb(150, 0, 0) + icon_state = "1" + color = rgb(255, 0, 0) grammar = "nahlizet certum veri" /obj/effect/rune/raise_dead/invoke(mob/living/user) @@ -558,10 +563,10 @@ var/list/teleport_other_runes = list() //Rite of Obscurity: Turns all runes within a 3-tile radius invisible. /obj/effect/rune/hide_runes cultist_name = "Veil Runes" - cultist_desc = "Turns nearby runes invisible. They can be revealed by using the Rite of True Sight." + cultist_desc = "Turns nearby runes invisible. They can be revealed by using the Reveal Runes rune." invocation = "Kla'atu barada nikt'o!" - icon_state = "3" - color = rgb(255,255,255) + icon_state = "1" + color = rgb(0,0,255) grammar = "geeri karazet nahlizet" /obj/effect/rune/hide_runes/invoke(mob/living/user) @@ -582,8 +587,8 @@ var/list/teleport_other_runes = list() cultist_name = "Reveal Runes" cultist_desc = "Reveals all invisible objects nearby, from spirits to runes." invocation = "Nikt'o barada kla'atu!" - icon_state = "6" - color = rgb(255, 162, 33) + icon_state = "4" + color = rgb(255, 255, 255) grammar = "karazet geeri nahlizet" /obj/effect/rune/true_sight/invoke() @@ -617,8 +622,8 @@ var/list/teleport_other_runes = list() cultist_name = "Electromagnetic Disruption" cultist_desc = "Emits a large electromagnetic pulse, hindering electronics and disabling silicons." invocation = "Ta'gh fara'qha fel d'amar det!" - icon_state = "1" - color = rgb(0, 0, 255) + icon_state = "5" + color = rgb(255, 0, 0) grammar = "mgar karazet balaq" /obj/effect/rune/emp/invoke(mob/living/user) @@ -635,8 +640,8 @@ var/list/teleport_other_runes = list() cultist_name = "Astral Communion" cultist_desc = "Severs the link between one's spirit and body. This effect is taxing and one's physical body will take damage while this is active." invocation = "Fwe'sh mah erl nyag r'ya!" - icon_state = "1" - color = rgb(68, 47, 255) + icon_state = "6" + color = rgb(0, 0, 255) var/rune_in_use = 0 //One at a time, please! var/mob/living/affecting = null grammar = "veri ire ego" @@ -706,6 +711,7 @@ var/list/teleport_other_runes = list() cultist_desc = "When invoked, makes the rune block passage. Can be invoked again to reverse this." invocation = "Khari'd! Eske'te tannin!" icon_state = "1" + color = rgb(255, 0, 0) grammar = "mgar ire ego" /obj/effect/rune/wall/examine(mob/user) @@ -728,6 +734,8 @@ var/list/teleport_other_runes = list() cultist_desc = "Causes all non-followers nearby to lose their hearing." invocation = "Sti kaliedir!" grammar = "geeri jatkaa karazet" + color = rgb(0, 255, 0) + icon_state = "4" /obj/effect/rune/deafen/invoke(mob/living/user) visible_message("[src] blurs for a moment before fading away.") @@ -743,8 +751,8 @@ var/list/teleport_other_runes = list() cultist_name = "Blind" cultist_desc = "Causes all non-followers nearby to lose their sight." invocation = "Sti kaliesin!" - icon_state = "1" - color = rgb(0, 255, 0) + icon_state = "4" + color = rgb(0, 0, 255) grammar = "mgar jatkaa karazet" /obj/effect/rune/blind/invoke(mob/living/user) @@ -764,7 +772,7 @@ var/list/teleport_other_runes = list() cultist_desc = "Stuns all nearby non-followers for a brief time." invocation = "Fuu ma'jin!" icon_state = "2" - color = rgb(150, 0, 255) + color = rgb(100, 0, 100) grammar = "certum geeri balaq" /obj/effect/rune/stun/invoke(mob/living/user) @@ -821,7 +829,7 @@ var/list/teleport_other_runes = list() cultist_desc = "Transforms papers and valid runes into talismans." invocation = "H'drak v'loso, mir'kanas verbot!" icon_state = "3" - color = rgb(150, 0, 255) + color = rgb(0, 0, 255) grammar = "veri balaq certum" /obj/effect/rune/imbue/invoke(mob/living/user) From cca9138bc19dfb789bfd769af5415b0c92814edd Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 20:07:09 -0400 Subject: [PATCH 20/74] Conflicts 1/3 --- code/modules/paperwork/paper.dm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 33add4905e2..134eb2542ee 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -51,20 +51,15 @@ /obj/item/weapon/paper/examine(mob/user) ..() - if(!istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read - if(in_range(user, src)) - if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) - user << browse("[name][stars(info)]
[stamps]", "window=[name]") - onclose(user, "[name]") - else - user << browse("[name][info]
[stamps]", "window=[name]") - onclose(user, "[name]") + if(in_range(user, src) || isobserver(user)) + if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) + user << browse("[name][stars(info)]
[stamps]", "window=[name]") + onclose(user, "[name]") else - user << "It is too far away." + user << browse("[name][info]
[stamps]", "window=[name]") + onclose(user, "[name]") else - if(!iscultist(user)) - user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" - return + user << "It is too far away." /obj/item/weapon/paper/verb/rename() From 0203c3c8c1023601d3c074761cebfeb2031ac8c0 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 20:08:26 -0400 Subject: [PATCH 21/74] Conflicts 3/3 --- code/modules/paperwork/paper.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 134eb2542ee..280c90b7e00 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -51,6 +51,10 @@ /obj/item/weapon/paper/examine(mob/user) ..() + if(istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read + if(!iscultist(user) && !user.stat) + user << "There are indecipherable images scrawled on the paper in what looks to be... blood?" + return if(in_range(user, src) || isobserver(user)) if( !(ishuman(user) || isobserver(user) || issilicon(user)) ) user << browse("[name][stars(info)]
[stamps]", "window=[name]") From 1c4063f536b222169dd400d3edaa3590ec80061e Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 20:32:03 -0400 Subject: [PATCH 22/74] Changes conversion to a static 2 cultists --- code/game/gamemodes/cult/runes.dm | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index a6caa2d9ff3..edba2946f72 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -287,6 +287,7 @@ var/list/teleport_other_runes = list() icon_state = "3" color = rgb(255, 0, 0) grammar = "certum nahlizet ego" + req_cultists = 2 /obj/effect/rune/convert/invoke(mob/living/user) var/list/convertees = list() @@ -313,19 +314,6 @@ var/list/teleport_other_runes = list() if(iscultist(M)) time -= 100 time = Clamp(time, 0, 300) - if(time) - visible_message("[src] begins to glow with a sinister light...") - for(var/mob/living/M in orange(1,src)) - if(iscultist(M)) - if(M != user) - M << "You have aided [user] in invoking the [cultist_name]. You may now safely depart." - else - M << "You begin the enlightenment of [new_cultist]. This will take [time / 10] seconds and you must stand still." - new_cultist << "Your head begins to ache..." - if(!do_mob(user, new_cultist, time)) - visible_message("[src] reluctantly falls dark.") - new_cultist << "Your headache fades." - return if(is_sacrifice_target(new_cultist.mind)) for(var/mob/living/M in orange(1,src)) if(iscultist(M)) From 85ac323f8b43eb57c98909569cc87168f0a4ded5 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Thu, 17 Sep 2015 20:35:13 -0400 Subject: [PATCH 23/74] Removes deprecated code --- code/game/gamemodes/cult/ritual.dm | 5 ++--- code/game/gamemodes/cult/runes.dm | 12 ------------ 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index effdf7a7b41..33c36715fc3 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -149,9 +149,8 @@ It also contains rune words, which are soon to be removed.

" text += "Convert
The Rite of Enlightment is paramount to the success of the cult. It will allow you to convert normal crew members into cultists. \ - To do this, simply place the crew member upon the rune and invoke it. This may take some time, depending on the amount of cultists nearby. It takes twenty seconds, with each additional cultist shaving \ - off ten seconds of the conversion. With three or more cultists, conversion is instantaneous. Once invoked, only the original user must remain. If the target is loyalty-implanted or has a null rod in \ - their possession, this will not work.

" + To do this, simply place the crew member upon the rune and invoke it. This rune requires two acolytes to use. If the target to be converted is loyalty-implanted or a certain assignment, they will \ + be unable to be converted. People the Geometer wishes sacrificed will also be ineligible for conversion, and anyone with a shielding presence like a null rod will not be converted.

" text += "Sacrifice
The Rite of Tribute is used to offer sacrifice to the Geometer. Simply place any living creature upon the rune and invoke it (this will not \ target cultists!). If this creature has a mind, a soul shard will be created and the creature's soul transported to it. This rune is required if the cult's objectives include the sacrifice of a crew \ diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index edba2946f72..ff8f71c735a 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -309,18 +309,6 @@ var/list/teleport_other_runes = list() if(iscultist(M)) M << "\"I desire this one for myself. SACRIFICE THEM!\"" return - var/time = 300 - for(var/mob/living/M in orange(1,src)) - if(iscultist(M)) - time -= 100 - time = Clamp(time, 0, 300) - if(is_sacrifice_target(new_cultist.mind)) - for(var/mob/living/M in orange(1,src)) - if(iscultist(M)) - M << "\"I desire this one for myself. SACRIFICE THEM!\"" - fail_invoke() - log_game("Convert rune failed - convertee is sacrifice target") - return new_cultist.visible_message("[new_cultist] writhes in pain as the markings below them glow a bloody red!", \ "AAAAAAAAAAAAAA-") ticker.mode.add_cultist(new_cultist.mind) From a421402cb814cf0d0c0d89ca98ca4de31e37239b Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Fri, 18 Sep 2015 10:38:35 +0800 Subject: [PATCH 24/74] SABR+Sprites+Fixes --- .../projectiles/ammunition/magazines.dm | 2 +- .../projectiles/guns/projectile/automatic.dm | 32 +++++++++++++ .../research/designs/weapon_designs.dm | 44 +++++++++++------- icons/obj/ammo.dmi | Bin 18031 -> 18031 bytes icons/obj/guns/projectile.dmi | Bin 25245 -> 24804 bytes icons/obj/projectiles.dmi | Bin 32592 -> 32891 bytes 6 files changed, 60 insertions(+), 18 deletions(-) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 032da28f989..298e02a2cdf 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -173,7 +173,7 @@ icon_state = "smg9mm-42" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" - max_ammo = 42 + max_ammo = 30 /obj/item/ammo_box/magazine/smgm9mm/ap name = "SMG magazine (Armour Piercing 9mm)" diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 9dc38fe5ba6..cc7380659ce 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -127,6 +127,38 @@ icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" return +/obj/item/weapon/gun/projectile/automatic/wt550/afterattack() + ..() + empty_alarm() + return + +/obj/item/weapon/gun/projectile/automatic/wt550hacked + name = "hacked auto rifle" + desc = "A illegally hacked and modified WT-550 auto rifle, using a illegal burst fire moduel. Uses 9mm rounds." + icon_state = "wt550hax" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/wt550m9 + fire_delay = 2 + can_suppress = 0 + burst_size = 2 + pin = null + +/obj/item/weapon/gun/projectile/automatic/wt550hacked/ui_action_click() + return + +/obj/item/weapon/gun/projectile/automatic/wt550hacked/update_icon() + ..() + icon_state = "wt550hax[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" + return + +/obj/item/weapon/gun/projectile/automatic/wt550hacked/afterattack() + ..() + empty_alarm() + return + +/obj/item/weapon/gun/projectile/automatic/wt550hacked/unrestricted + pin = /obj/item/device/firing_pin + /obj/item/weapon/gun/projectile/automatic/mini_uzi name = "\improper 'Type U3' Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 371a0d7b01b..d835fbe5f88 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -135,6 +135,16 @@ build_path = /obj/item/weapon/gun/projectile/automatic/proto category = list("Weapons") +/datum/design/illegalwt550 + name = "Hacked WT-550" + desc = "A hacked varient of the WT-550. Has a illegally altered burst fire module attached." + id = "smg" + req_tech = list("combat" = 3, "materials" = 2, "syndicate" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 1000) + build_path = /obj/item/weapon/gun/projectile/automatic/wt550hacked + category = list("Weapons") + /datum/design/xray name = "Xray Laser Gun" desc = "Not quite as menacing as it sounds" @@ -188,31 +198,31 @@ category = list("Ammo") /datum/design/mag_oldsmg/ap_mag - name = "Submachine Gun Armour Piercing Magazine (9mmAP)" + name = "WT-550 Auto Gun Armour Piercing Magazine (9mmAP)" desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle" id = "mag_oldsmg_ap" - materials = list(MAT_METAL = 6000, MAG_SILVER = 200) + materials = list(MAT_METAL = 6000, MAT_SILVER = 200) build_path = /obj/item/ammo_box/magazine/wt550m9/wtap /datum/design/mag_oldsmg/ic_mag - name = "Submachine Gun Incindiary Magazine (9mmIC)" + name = "WT-550 Auto Gun Incendiary Magazine (9mmIC)" desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle" id = "mag_oldsmg_ic" - materials = list(MAT_METAL = 6000, MAG_SILVER = 200, MAT_GLASS = 800) + materials = list(MAT_METAL = 6000, MAT_SILVER = 200, MAT_GLASS = 800) build_path = /obj/item/ammo_box/magazine/wt550m9/wtic /datum/design/mag_oldsmg/tx_mag - name = "Submachine Gun Urnaium Magazine (9mmTX)" + name = "WT-550 Auto Gun Urnaium Magazine (9mmTX)" desc = "A 20 round urnaium tipped magazine for the out of date security WT-550 Auto Rifle" id = "mag_oldsmg_tx" - materials = list(MAT_METAL = 6000, MAG_SILVER = 400, MAG_URNAIUM = 2000) + materials = list(MAT_METAL = 6000, MAT_SILVER = 400, MAT_URNAIUM = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx //SABR Mags /datum/design/mag_smg - name = "Submachine Gun Magazine (9mm)" - desc = "A 42-round magazine for the prototype submachine gun." + name = "SABR SMG Magazine (9mm)" + desc = "A 30-round magazine for the prototype submachine gun." id = "mag_smg" req_tech = list("combat" = 4, "materials" = 3) build_type = PROTOLATHE @@ -221,24 +231,24 @@ category = list("Ammo") /datum/design/mag_smg/ap_mag - name = "Submachine Gun Armour Piercing Magazine (9mmAP)" - desc = "A 42-round armour piercing magazine for the prototype submachine gun. Deals slightly less damage by bypasses most armour" + name = "SABR SMG Armour Piercing Magazine (9mmAP)" + desc = "A 30-round armour piercing magazine for the prototype submachine gun. Deals slightly less damage by bypasses most armour" id = "mag_smg_ap" - materials = list(MAT_METAL = 3000, MAG_SILVER = 100) + materials = list(MAT_METAL = 3000, MAT_SILVER = 100) build_path = /obj/item/ammo_box/magazine/smgm9mm/ap /datum/design/mag_smg/incin_mag - name = "Submachine Gun Incindiary Magazine (9mmIC)" - desc = "A 42-round incindiary round magazine for the prototype submachine gun. Deals significanlty less damage but sets the target on fire" + name = "SABR SMG Incendiary Magazine (9mmIC)" + desc = "A 30-round incindiary round magazine for the prototype submachine gun. Deals significanlty less damage but sets the target on fire" id = "mag_smg_ic" - materials = list(MAT_METAL = 3000, MAG_SILVER = 100, MAT_GLASS = 400) + materials = list(MAT_METAL = 3000, MAT_SILVER = 100, MAT_GLASS = 400) build_path = /obj/item/ammo_box/magazine/smgm9mm/fire /datum/design/mag_smg/incin_tox - name = "Submachine Gun Urnaium Magazine (9mmIC)" - desc = "A 42-round urnaium tipped round magazine for the prototype submachine gun. Deals toxin damage, but less overall damage." + name = "SABR SMG Urnaium Magazine (9mmTX)" + desc = "A 30-round urnaium tipped round magazine for the prototype submachine gun. Deals toxin damage, but less overall damage." id = "mag_smg_tx" - materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAG_URNAIUM = 1000) + materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URNAIUM = 1000) build_path = /obj/item/ammo_box/magazine/smgm9mm/toxin /datum/design/stunshell diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index c71e05f382a9de0018ae35f677cbe3b340185424..e0acb281783ca63ae8986928b86e2d7adb513409 100644 GIT binary patch delta 669 zcmV;O0%HB|i~;YA0gyU>L2lbH5JlJ4DTriS1r$w+(!!g7BAX$~xfBIuMn0Aa(1&1zHDc!8%Y@PKOARaymqimD3@Dw44qR z_PKcntAB%6& z3F|&h61H08>pjHSXtf$8Wwi)tC@n&oQ;U#B*CL<^YLWGS@eMRPp$g5^Hb!^WQ9v#$E8GA%z%x zX~^{kUmCJ*RSW_vSw%LoiY#Om*~cofj#Z#+x7~}_w3Za6S%U&Pb036ive`Bs!cVnO z#iy%3^-#Qj{~z%k6yHr1cXzHt-}5sFy0kRlW_@Wuk@(Vpdh?|LrRz%rx`1_^FU{Xq zh9sZ9#L)Do7&;8H6TJLtYmt1O&gnv$biIva`W{Czo$Q4KU*D0$j<6x@Cv8Ux(+se6 zhpDYwiwq>wT4W%Jp1E|MwFvQ4iwtaW{Lp!k-KzT!$E8|6tg_$tJr<2Guu4L+!~&~B D#W+Vt delta 669 zcmV;O0%HB|i~;YA0gyU>&2HL26ouFLDMrb*j>f}`$6m0hh+3p3UE~P{7>p%uK(>>n zefloIjf9%c=k9{^ahP-NPwuVyeE((jsFn|_>@{|Mdwf<4W$$!0`_XQPy;`Wb$!7c5 zHv8fHp&!B!)k59Oo&WxAnd_Tuwr#s!EmV=sc3qHo{`(p%C}=2uIH#bcprc?(L7xP> z%{Iw2{XQNJ5X%qkYfQ3hCb^y>d4QUS38MY*^2}uakW6^PR5ueOTPE2~mQ0Vtg=3-v zd#6mn*e{=$WgYNm9f-<0kh*oCfYyOtunx49(;-NX+RFL1s>e2vT!8M37tkR@5iZhi5LW*Gp52a2(vvWf=`Avn>2O9eU6hf;j<6x@2iw7J(q=q_(r$w|FeH00c>7z9qTidBsn!le6 zNj_b~(DbJmIt;QGy!>iwk$j%c=|Y-xzl~(Njw6{)_CkXHz9WepVMEwY+Kv>a8Q|y+ zQ%AQJ8AztJ$UqW3bLl*55#p&98Q9_Yq4OfURrik%OSODhWxoL&qZW{zU>>Hk!~&~B DJmgE~ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index fccdd933c43f77ea1f73605b056b3b308a0b768c..89f6f6547f560a0233d3ef6ec9353146c900a6bc 100644 GIT binary patch literal 24804 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 literal 25245 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�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 From 3fb3b491344503e810282fdff5df49aee37299b4 Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Fri, 18 Sep 2015 20:09:57 +0800 Subject: [PATCH 25/74] Fixes --- .../projectiles/ammunition/magazines.dm | 2 +- .../research/designs/weapon_designs.dm | 4 ++-- icons/obj/guns/projectile.dmi | Bin 24804 -> 24802 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 298e02a2cdf..db38846ba80 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -170,7 +170,7 @@ /obj/item/ammo_box/magazine/smgm9mm name = "SMG magazine (9mm)" - icon_state = "smg9mm-42" + icon_state = "smg9mm-30" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" max_ammo = 30 diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index d835fbe5f88..43df41fd1c9 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -215,7 +215,7 @@ name = "WT-550 Auto Gun Urnaium Magazine (9mmTX)" desc = "A 20 round urnaium tipped magazine for the out of date security WT-550 Auto Rifle" id = "mag_oldsmg_tx" - materials = list(MAT_METAL = 6000, MAT_SILVER = 400, MAT_URNAIUM = 2000) + materials = list(MAT_METAL = 6000, MAT_SILVER = 400, MAT_URANIUM = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx //SABR Mags @@ -248,7 +248,7 @@ name = "SABR SMG Urnaium Magazine (9mmTX)" desc = "A 30-round urnaium tipped round magazine for the prototype submachine gun. Deals toxin damage, but less overall damage." id = "mag_smg_tx" - materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URNAIUM = 1000) + materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URANIUM = 1000) build_path = /obj/item/ammo_box/magazine/smgm9mm/toxin /datum/design/stunshell diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 89f6f6547f560a0233d3ef6ec9353146c900a6bc..415ce62a79703ad6591dd1940a3551b10e8d1cc5 100644 GIT binary patch delta 781 zcmV+o1M>Xj!2#mI0gxnr?s`;MbVOxyV{&P5bZKvH004NLotVpR+b|GC*Vb1E$+jva zI!@z-H-&>Di{uvyS{hSCC6OR0Kl=4uNOIDJ%sblIz`0kP;S67o>Ce|+Zy)LY{Vh3> z^V)RjE`9o*C#$orLY?l?wMbSqX;p{ej}J0Xx=SA%olJ8g_mHfAD(!r_ON(T6bh4%4 z_YG`ipo5HJ6$L7TJ`qm-wz3N~FoaJ@L_w!b zSiojpp5uZFb*@;pULKHC$pg78UK#_p&S4Pt^u4u?yr+0EjDzJ%*7+h0>q})#t+!5I zp|+8#A%${4E(fxIl&xW)urG)Kex=Cc=_y5y)MP1gmx*{umLhjq@eFbT<6bcA3B$l3 zkgh64&T6V5*=&ViwbVETe2HL7Uf7B!wt^o!b1`um+Y;2(8LNFT4FheAtbj2z&t+pg zRT;H5Tw%P(o1pyLZ}08fS+a^rZsv-pFrQ}E)DRR(qDtgFvf-&o{_#x+!#f;nSY~Rmz)E21fZ4QmK-RAH(m7{o_ zwnqEV^-59P(_4}bDSm%-x>E$*lBLxZgTLKn>E6`Robj(9^YBP`xqL3U*F zipe)j-eSCT$YoYKg*-J380Hsm2;J$d{|mI@2m;@Ky`k&)rSc2Qab}#1J_o)?wPsz# z{tJgCEQAW+J|BR6-cyOJFXynCI|a_I@8_`DPR5fRl)8QoXS+n)bg@u7HW9`C*m=E{n)4b_qXI9eG(3`e)dNT L001DfAOpl*ra*ke delta 781 zcmV+o1M>Xh!2#sK0gxnr@Oo5ObVOxyV{&P5bZKvH004NLotRB-+b|G?*VZY7WLp&y zZ721@n<7DxMRJ9Lmc|rONhC+K_bd4Eez z&q$UP)~t4cec?$aV!9i41x z`1=O7GSERrv5EqfL7xaGe_Ppw8d$=oq9J3Ys~8Gp8V+trmek5Wz^Z(0g6g{{SE8WP zCM;kxFVAs7g*sO(TQ3hts^o!O7B7u~+XxthJ$-MjBkw6*4C7+?l8soTVf|8BQ|qmh zSEy~IYDl3RkjsI8EM;pLDC`SjfL|%{czQ~aBQ;ry++`xixZ(-q;w4^+++{y7Y=dE7 z5ILF^PTh)}*;8ZQ*^=UkFJU$AurX}KhOOYop7T=dG&T~{)fuaOFbxB3jI4k)G*4w? zJXIOBHe6x6$m7L4vCmr=-QunScSTH%r4G)4vD9H1FqS%hD1Kw9gQ7QET`*a*hWCh?_?QW%ZLg~DG9bHOSRmAi#%<%ChrVel6F)PI+?=CGRuwh! zn(ou$+xp98q7do;OtpcFC#)@m@}Qpw{f?mD5%ANj!?Z@v=o9E0-NpB+Ep|nLQRsQv zQ>!uZ&^sT0py>s9mLdl&r=o{!Cm6FHiyv|xSM!G5Fiv7kDz5&?AllSFs6=PsAH)8Da6>3bG@U zS4_TP@)qNzLoTz@scao@o&m%B;tioYo%Mf#RvbZp;CFB6I)17A!g8D$C!^1WFH)^p zSF!)XVF?SN0yyUbFy}p$$oJ(OwsWVzx$pZqY`6LB`@? Date: Sun, 13 Sep 2015 02:02:36 -0400 Subject: [PATCH 26/74] Side antagonist tweaks --- code/datums/spells/bloodcrawl.dm | 11 ++-- code/modules/mob/living/bloodcrawl.dm | 43 ++++++++------ .../mob/living/simple_animal/morph/morph.dm | 52 ++++++++++------- .../simple_animal/slaughter/slaughter.dm | 55 +++++++++++------- .../simple_animal/slaughter/slaughterevent.dm | 15 ++--- html/changelogs/Xhuis-DemonsAndMorphs.yml | 13 +++++ icons/mob/actions.dmi | Bin 43443 -> 44749 bytes icons/mob/animal.dmi | Bin 195820 -> 195828 bytes icons/obj/surgery.dmi | Bin 13088 -> 13272 bytes 9 files changed, 119 insertions(+), 70 deletions(-) create mode 100644 html/changelogs/Xhuis-DemonsAndMorphs.yml diff --git a/code/datums/spells/bloodcrawl.dm b/code/datums/spells/bloodcrawl.dm index 0e5db631223..320661b61c7 100644 --- a/code/datums/spells/bloodcrawl.dm +++ b/code/datums/spells/bloodcrawl.dm @@ -1,13 +1,14 @@ /obj/effect/proc_holder/spell/bloodcrawl - name = "Blood crawl" - desc = "Use blood to travel." - charge_max = 10 + name = "Blood Crawl" + desc = "Use pools of blood to phase out of existence." + charge_max = 0 clothes_req = 0 selection_type = "range" range = 1 cooldown_min = 0 overlay = null action_icon_state = "bloodcrawl" + action_background_icon_state = "bg_slaughter" var/phased = 0 /obj/effect/proc_holder/spell/bloodcrawl/choose_targets(mob/user = usr) @@ -16,7 +17,7 @@ perform(target) return revert_cast() - user << "You need blood to blood crawl." + user << "There must be a nearby source of blood!" /obj/effect/proc_holder/spell/bloodcrawl/perform(obj/effect/decal/cleanable/target, recharge = 1, mob/living/user = usr) if(istype(user)) @@ -29,4 +30,4 @@ start_recharge() return revert_cast() - user << "You cannot blood crawl." \ No newline at end of file + user << "You are unable to blood crawl!" \ No newline at end of file diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index 3f7bfba90cf..c185a60a582 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -35,7 +35,7 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction) var/turf/mobloc = get_turf(src.loc) src.notransform = TRUE spawn(0) - src.visible_message("[src] sinks into the pool of blood.") + src.visible_message("[src] sinks into the pool of blood!") playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, 1, -1) var/obj/effect/dummy/slaughter/holder = PoolOrNew(/obj/effect/dummy/slaughter,mobloc) src.ExtinguishMob() @@ -45,41 +45,50 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction) if(istype(src.pulling, /mob/living)) var/mob/living/victim = src.pulling if(victim.stat == CONSCIOUS) - src.visible_message("[victim] kicks free of the [src] at the last second!") + src.visible_message("[victim] kicks free of the blood pool just before entering it!") else victim.loc = holder - src.visible_message("The [src] drags [victim] into the pool of blood!") + victim.emote("scream") + src.visible_message("[src] drags [victim] into the pool of blood!") kidnapped = victim src.loc = holder src.holder = holder if(kidnapped) - src << "You begin to feast on [kidnapped]. You can not move while you are doing this." - playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) - sleep(30) - playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) - sleep(30) - playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) - sleep(30) + src << "You begin to feast on [kidnapped]. You can not move while you are doing this." + for(var/i = 3; i > 0; i--) + playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1) + sleep(30) if(kidnapped) - src << "You devour [kidnapped]. Your health is fully restored." + src << "You devour [kidnapped]. Your health is fully restored." src.adjustBruteLoss(-1000) src.adjustFireLoss(-1000) src.adjustOxyLoss(-1000) src.adjustToxLoss(-1000) - kidnapped.ghostize() - qdel(kidnapped) + if(istype(src, /mob/living/simple_animal/slaughter)) + var/mob/living/simple_animal/slaughter/S = src + kidnapped << "You feel teeth sink into your flesh, and the--" + kidnapped.adjustBruteLoss(1000) + kidnapped.loc = src + S.consumed_mobs.Add(kidnapped) + else + kidnapped.ghostize() + qdel(kidnapped) else - src << "You happily devour...nothing? Your meal vanished at some point!" + src << "You happily devour... nothing? Your meal vanished at some point!" src.notransform = 0 /mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(src.notransform) - src << "Finish eating first!" + src << "Finish eating first!" return 0 - + B.visible_message("[B] starts to bubble...") + if(!do_after(src, 20, target = B)) + return + if(!B) + return src.loc = B.loc src.client.eye = src - src.visible_message("The [src] rises out of the pool of blood!") + src.visible_message("[src] rises out of the pool of blood!") playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) qdel(src.holder) src.holder = null diff --git a/code/modules/mob/living/simple_animal/morph/morph.dm b/code/modules/mob/living/simple_animal/morph/morph.dm index b8d9d8e3230..c815f567578 100644 --- a/code/modules/mob/living/simple_animal/morph/morph.dm +++ b/code/modules/mob/living/simple_animal/morph/morph.dm @@ -1,9 +1,9 @@ #define MORPH_COOLDOWN 50 /mob/living/simple_animal/hostile/morph - name = "Morph" - real_name = "Morph" - desc = "some amorphous blob" + name = "morph" + real_name = "morph" + desc = "A revolting, pulsating pile of flesh." speak_emote = list("gurgles") emote_hear = list("gurgles") icon = 'icons/mob/animal.dmi' @@ -28,16 +28,25 @@ see_invisible = SEE_INVISIBLE_MINIMUM idle_vision_range = 1 // Only attack when target is close wander = 0 + attacktext = "glomps" + attack_sound = 'sound/effects/blobattack.ogg' var/morphed = 0 var/atom/movable/form = null var/morph_time = 0 + var/playstyle_string = "You are a morph, an abomination of science created primarily with changeling cells. \ + You may take the form of anything nearby by middle-clicking it. This process will alert any nearby \ + observers, and can only be performed once every five seconds. While morphed, you move faster, but do \ + less damage. In addition, anyone within three tiles will note an uncanny wrongness if examining you. \ + You can attack any item or dead creature to consume it - creatures will fully restore your health. \ + Finally, you can restore yourself to your original form while morphed by middle-clicking yourself." + /mob/living/simple_animal/hostile/morph/examine(mob/user) if(morphed) form.examine(user) // Refactor examine to return desc so it's static? Not sure if worth it if(get_dist(user,src)<=3) - user << "Looks odd!" + user << "It doesn't look quite right..." else ..() return @@ -57,6 +66,7 @@ if(istype(A) && allowed(A)) assume(A) else + src << "Your chameleon skin is still repairing itself!" ..() /mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target) @@ -72,11 +82,15 @@ else overlays = target.overlays.Copy() + visible_message("[src] suddenly twists and changes shape, becoming a copy of [target]!", \ + "You twist your body and assume the form of [target].") + name = target.name icon = target.icon icon_state = target.icon_state overlays = target.overlays + //Morphed is weaker melee_damage_lower = 5 melee_damage_upper = 5 @@ -93,6 +107,8 @@ //anim(loc,src,'icons/mob/mob.dmi',,"morph",,src.dir) + visible_message("[src] suddenly collapses in on itself, dissolving into a pile of green flesh!", \ + "You reform to your normal body.") name = initial(name) icon = initial(icon) icon_state = initial(icon_state) @@ -108,7 +124,8 @@ /mob/living/simple_animal/hostile/morph/death() if(morphed) - visible_message("The [src] dissolves!") + visible_message("[src] twists and dissolves into a pile of green flesh!", \ + "Your skin ruptures! Your flesh breaks apart! No disguise can ward off de--") restore() //Dump eaten stuff @@ -148,7 +165,7 @@ var/mob/living/L = target if(L.stat == DEAD) if(do_after(src, 30, target = L)) - visible_message("[src] swallows the [target] whole!") + visible_message("[src] swallows [target] whole!") L.loc = src adjustBruteLoss(-50) return @@ -156,7 +173,7 @@ var/obj/item/I = target if(!I.anchored) if(do_after(src,20, target = I)) - visible_message("[src] swallows the [target] whole!") + visible_message("[src] swallows [target] whole!") I.loc = src return target.attack_animal(src) @@ -198,15 +215,10 @@ player_mind.assigned_role = "Morph" player_mind.special_role = "Morph" ticker.mode.traitors |= player_mind - var/info = {"You are a Morph, a shapeshifting alien creature. - You can assume the shape of anything in sight by Shift-Clicking it. - You can only transform every 5 seconds. - To return to your basic form Shift-Click on yourself. - Base form is slow but strong, you're much weaker and faster when disguised. - You can eat items and corpses by clicking on them,eating corpses will heal you."} - S << info - message_admins("[key_of_morph] has been made into Morph by an event.") - log_game("[key_of_morph] was spawned as a Morph by an event.") + S << S.playstyle_string + S << 'sound/magic/Mutate.ogg' + message_admins("[key_of_morph] has been made into morph by an event.") + log_game("[key_of_morph] was spawned as a morph by an event.") return 1 /datum/round_event/morph/start() @@ -214,11 +226,11 @@ /datum/round_event/morph/proc/find_morph() - message_admins("Attempted to spawn a Morph but there was no players available. Will try again momentarily.") + message_admins("Attempted to spawn a morph but there was no players available. Will try again momentarily.") spawn(50) if(get_morph(1)) - message_admins("Situation has been resolved, [key_of_morph] has been spawned as a Morph.") - log_game("[key_of_morph] was spawned as a Morph by an event.") + message_admins("Situation has been resolved, [key_of_morph] has been spawned as a morph.") + log_game("[key_of_morph] was spawned as a morph by an event.") return 0 - message_admins("Unfortunately, no candidates were available for becoming a Morph. Shutting down.") + message_admins("Unfortunately, no candidates were available for becoming a morph. Shutting down.") return kill() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm index 5f39ad01d46..07896ec81fa 100644 --- a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm +++ b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm @@ -1,9 +1,9 @@ //////////////////The Monster /mob/living/simple_animal/slaughter - name = "Slaughter Demon" - real_name = "Slaughter Demon" - desc = "You should run." + name = "slaughter demon" + real_name = "slaughter demon" + desc = "A large, menacing creature covered in armored black scales." speak_emote = list("gurgles") emote_hear = list("wails","screeches") response_help = "thinks better of touching" @@ -31,10 +31,11 @@ var/boost = 0 bloodcrawl = BLOODCRAWL_EAT see_invisible = SEE_INVISIBLE_MINIMUM - var/playstyle_string = "You are the Slaughter Demon, a terible creature from another existence. You have a single desire: To kill. \ - You may Ctrl+Click on blood pools to travel through them, appearing and dissaapearing from the station at will. \ - Pulling a dead or critical mob while you enter a pool will pull them in with you, allowing you to feast. \ - You move quickly upon leaving a pool of blood, but the material world will soon sap your strength and leave you sluggish. " + var/list/consumed_mobs = list() + var/playstyle_string = "You are a slaughter demon, a terrible creature from another realm. You have a single desire: To kill. \ + You may use the \"Blood Crawl\" ability near blood pools to travel through them, appearing and dissaapearing from the station at will. \ + Pulling a dead or unconscious mob while you enter a pool will pull them in with you, allowing you to feast and regain your health. \ + You move quickly upon leaving a pool of blood, but the material world will soon sap your strength and leave you sluggish. " /mob/living/simple_animal/slaughter/New() ..() @@ -52,10 +53,17 @@ /mob/living/simple_animal/slaughter/death() ..(1) - new /obj/effect/decal/cleanable/blood (src.loc) - new /obj/item/weapon/demonheart (src.loc) + new /obj/effect/decal/cleanable/blood (get_turf(src)) + var/obj/effect/decal/cleanable/blood/innards = new (get_turf(src)) + innards.icon = 'icons/obj/surgery.dmi' + innards.icon_state = "innards" + innards.name = "pile of viscera" + innards.desc = "A repulsive pile of guts and gore." + new /obj/item/organ/internal/heart/demon (src.loc) playsound(get_turf(src),'sound/magic/demon_dies.ogg', 200, 1) - visible_message("The [src] screams in anger as its form collapes into a pool of viscera.") + visible_message("[src] screams in anger as it collapses into a puddle of viscera, its most recent meals spilling out of it.") + for(var/mob/living/M in consumed_mobs) + M.loc = get_turf(src) ghostize() qdel(src) return @@ -67,23 +75,28 @@ boost = world.time + 30 -//////////The Loot - -/obj/item/weapon/demonheart - name = "demon's heart" - desc = "It's still faintly beating with rage" +//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl +/obj/item/organ/internal/heart/demon + name = "demon heart" + desc = "Still it beats furiously, emanating an aura of utter hate." icon = 'icons/obj/surgery.dmi' - icon_state = "heart-on" + icon_state = "demon_heart" origin_tech = "combat=5;biotech=8" + beating = 1 //What did you expect? -/obj/item/weapon/demonheart/attack_self(mob/living/user) - visible_message("[user] feasts upon the [src].") +/obj/item/organ/internal/heart/demon/attack(mob/M, mob/living/user, obj/target) + if(M != user) + return ..() + user.visible_message("[user] raises [src] to their mouth and tears into it with their teeth!", \ + "An unnatural hunger consumes you. You raise [src] your mouth and devour it!") + playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1) for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) if(knownspell.type == /obj/effect/proc_holder/spell/bloodcrawl) - user <<"You already know how to blood crawl." + user <<"...and you don't feel any different." qdel(src) return - user << "You absorb some of the demon's power!" + user.visible_message("[user]'s eyes flare a deep crimson!", \ + "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") user.mind.AddSpell(new /obj/effect/proc_holder/spell/bloodcrawl) + user.drop_item() qdel(src) - diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughterevent.dm b/code/modules/mob/living/simple_animal/slaughter/slaughterevent.dm index de3e477ab6d..cbc845bc69d 100644 --- a/code/modules/mob/living/simple_animal/slaughter/slaughterevent.dm +++ b/code/modules/mob/living/simple_animal/slaughter/slaughterevent.dm @@ -44,9 +44,10 @@ player_mind.special_role = "Slaughter Demon" ticker.mode.traitors |= player_mind S << S.playstyle_string - S << "You are currently not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest." - message_admins("[key_of_slaughter] has been made into a Slaughter Demon by an event.") - log_game("[key_of_slaughter] was spawned as a Slaughter Demon by an event.") + S << "You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest." + S << 'sound/magic/demon_dies.ogg' + message_admins("[key_of_slaughter] has been made into a slaughter demon by an event.") + log_game("[key_of_slaughter] was spawned as a slaughter demon by an event.") return 1 @@ -57,11 +58,11 @@ /datum/round_event/slaughter/proc/find_slaughter() - message_admins("Attempted to spawn a Slaughter Demon but there was no players available. Will try again momentarily.") + message_admins("Attempted to spawn a slaughter demon but there was no players available. Will try again momentarily.") spawn(50) if(get_slaughter(1)) - message_admins("Situation has been resolved, [key_of_slaughter] has been spawned as a Slaughter Demon.") - log_game("[key_of_slaughter] was spawned as a Slaughter Demon by an event.") + message_admins("Situation has been resolved, [key_of_slaughter] has been spawned as a slaughter demon.") + log_game("[key_of_slaughter] was spawned as a slaughter demon by an event.") return 0 - message_admins("Unfortunately, no candidates were available for becoming a Slaugter Demon. Shutting down.") + message_admins("Unfortunately, no candidates were available for becoming a slaughter demon. Shutting down.") return kill() diff --git a/html/changelogs/Xhuis-DemonsAndMorphs.yml b/html/changelogs/Xhuis-DemonsAndMorphs.yml new file mode 100644 index 00000000000..1862bea6f80 --- /dev/null +++ b/html/changelogs/Xhuis-DemonsAndMorphs.yml @@ -0,0 +1,13 @@ +author: Xhuis +delete-after: True + +changes: + - tweak: "When a morph changes form, a message is shown to nearby people. This also happens upon undisguising." + - tweak: "Morphs now have an attack sound and message." + - tweak: "The Spawn Morph event now plays a sound to the chosen candidate." + - tweak: "Slaughter Demons (and other creatures with blood crawl) now take two seconds to emerge from blood pools. Entering is still instantaneous." + - tweak: "The demon heart's sprite has been updated." + - tweak: "Blood Crawl no longer has a 1-second cooldown, instead having none." + - tweak: "Creatures that can Blood Crawl now take two seconds to emerge from blood pools." + - tweak: "Slaughter demons now store devoured creatures, and will drop them upon death." + - tweak: "The Spawn Slaughter Demon event now plays a sound to the chosen candidate." \ No newline at end of file diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 23f5e04c7db0c33626725e65fe2ba4dec4fb7207..343654c58108a277f13ff7c9c0a990cd56d5c33d 100644 GIT binary patch delta 23492 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
7Fi7 zg&BEXBh5+}EW{m_evg5zzTB`d$;6taR@AcYQ_RVt+93%$ZN2BZMI+(E)@QePvs&jsEtBveuM>TYJ`vuF(@52F%)A3zh@*ov!YnJzaQ{Z+8vb1Zpl%N)lVBd#N3cO|kCmpSXB&9B01o=!JE|&JO{)PuDN-42wDBNIq zv{(^={zbXUV_-jh8n_qafc2U;Td1#m&jQyZMb}WfY2>%oqP0 ze53^7Znce!ReUWz`A7vMXnrdbfjOPFJ_t|5J=xdk-5i})mrqS-r8=LqP7vD#S?~*2 z+;fjr7gY1}9SGwH3|>wVxyQReYpZcAl4~qYRH(WmpU{yHzz2XBgp;yTCBygHh3Pz0a;p1>82OiImYwH zi~vhSCh%9;lurMf`3`*WKMbnKVuPhl@?$s?7onj*(S*B>Te4E`&FwlnMtN; zg9T0t`GO+;b4nPa^Oj8kt>8^KJ9IXQ4*_PjKtEeS?}M>xjYxQrCA+l)s$Uvq)q(N=sez1*5+3o`?x0Nud=G zX3%4hTIbf*L@!pKdu6Gro=R9?rC{6xwq&^EZ{}!(elaF& zm9M1I+S@8J^OEv%0y7r#0nP{7^8uRE?|v^Olji4;k>-y?;YloK@Rlw_;nC57{-vlw zCgntofzta$L;oN-X}-q4vmhm}*mfO~PJ^e}%qFWC62|5aj)m~v+l?_!0VjoRq^=#8 z!Od%YNVb8@Q-7@VF+jkq<5`h%M2n{gm9p3`UwKZQk6ckP7fm^&9BdW*0ZPGV>~GBF zRpuqzUTzqEl}z5sB4<_z7Om|qOiPeEO2*6#N->YuI~2%3LrS?4PBcwR4~)P@a&Z(C z>!7+voIR43faUBV;>r8yq-%1}zE)T-%t~thN#$!1-B%I1^?>;hcwC2a!Ej8289b6i z{B*h^jTU-v8b@4n@5<)EkfDnVoA32D_KC;`3mKEgO53ZTN)JuYIH2M@Y3B51_6EH>&=%rJS- z^wUCY=D3yY>STJLV~r1oov($huO+dbi6aW|ER*tkypw5De=kFdD2iDdLBdF)uaY{S zAf_Z;B79|Wge?#emmqqm(v^=%$ZsF6NURVSwYRtLWSQIW{}2?ytODiZV2%`#*qfUV z9X?n0`c@xdCLsN6UwRE*zJfZ=6ZN|ZXhatnqF8P|7Yn{VJdygCgG9t_r7#7tZv&|j ztmO!0IaukKTLTdt6~I-Ryl_yI4We@(uA12A-BwE{#~k<7t5;zIjp-n-jlP218vZIC zn*5=iu6CWbIZJZ;;&fNBmm=Cq@1v*o)SR5kxLkyh;RH8aY*PbIP9x^`7m~pOEobz8 z)VNYe6Urr!Ze&38-muZpg@{um@GL4IG%}MR{UDpBqr~^9ou1mA1Z*vwUH2h4>eRgZ zS*w5MBV*@T*0G1Q=X)Z7G8QDCPKnCqpqtj4QmhmLHl#Z4t0PGhy7HOD%HuO&Lae7a z50vQqeYdkZ&yCE)KYba$LeN`*uG?FTRopdX&y|-Ul@Y^#$2ayKLM|^Q014-icrE2| z0ep)JVfMqTv^;3N$l|ktBw@b8Kx!C_y!;`ak}k3{b69^AQH?=u^8`EAy{)07J3Bj!rZocZdsx1AU-*pz{r%7N^IkixT=Zm*1hiv$o#wlr`)#Lh%{^mR5=Uaw)>K#b zD=!y8A7V{AX*$bME%-6_BJ{@D2A{BfSoO~bmCVenXHGDg24-r$U|LyO+2y4ik?vSO zOf%O$#;BN zp<{4zN`a8@h(C|a>miAk$?kzCCs!WEj*gCsyT3kHeeohMtm>{w8SoB$Y(NH`U?b+B zBtIUdXwRcj{cw#>`v(~hUtB0tLK}Zc^)ZIdZLlc{@kdd!Z_8--pkvh_F#$d3+;ttQ zOqH+oz&Sb>KjXcPFb*a)WQ^GeU^C%n{I$`;qRmhNKLB#QJxmlO;_lO4?Bf_eh2bOs zs1aJ_L9ieUXTci1e(iG{AS*-%FI@|Z3sNc%f3C}4K?PmS%@v1(PrjpArhj1zyt>U@ zk~-cG-W6=fJTcojZ;@A(gH&F;?5ZUid_^?Qriw|3GfNs%h>cc%UUW8@`|4y7;N0Hs zd+Ck>M3@%Zo`s_76$3>AQN36Ef0|WOz-uRWzb_LTZgfvfe;!PO`@QS$qdeDt%1C?m zpN5_e6wE1(k+8n*xh)LEVE*Zmsn#=>58V~R9!$n)5 ztl`w@8IgnF+@-RNpwpwLm(DTc8c5Kc8C3>Aquj(mqG)*GK|x8CFDp}$hm+Zjn9OMG z3c9%zq%+-v339H#{zAR7*aqQ;frP~PhPl< z%|f9h$7reB;c|qUAS8wjL>`tFzC9oIt{NWhmccaV?J?9^%>-*pAhO&`GeCN;H3FO` zom1|6?KG;i?ekHd+wIlO693O)8iiRl;xJ@K*Y6q6w>JSqwZa0E`A&>c75DtMd2P1z z=1%J={kE6x+-17JC-{nn#}6UPwk;O6)s?ER&r@X;&)3XMaZ1a4E@tBq@$&+-=reVO z9aZoB6OHE2w8KR1TYyLm%{0MMo%e9-1m1_j_3v-yYCPTy*=@BS5|vc6daq<&AxBvr zVZu!2y57Qn(pgBEu)@>+=mb$WYlw;O=;u$>oO6r)po;1{Dq-yh_*BZiq1;r{uarbP z@fupygrJ#ls<VIWzK_CT`|EUe%pHZ8 zeH(Ogq$$fxw;&@M%t3ln+VDuIin*8$6XV(+Z9+p^>m3dRW}d5`Epc1V5=UOXc=6)R z(CXrHyqA|(l}4IR6`cylg0nIwD(<(*t7YMc%-eZA3)hJ;f`_#5Q}l_Q|@e&1*srvSo0&H3ZLg+TU?1j?38iaBi03QllNtkt>+nBI8@3U zp9*QHxa#KcWqxichX1;AmN=g;FIU#C^v&B7QX@4bt^wd z`W2JnPe4;2Lh}jxu732ohCgf%)gr<4AXhgUKLUV9*G}^fqdIMXMmQB^UQM+Q2*eK3 zQCEFRh1+rJBTe;m%7~g3Bx>j)tYA27Ncb&v-)B zrvfSr=)5n8!Yn;c?Rb+Chlpi(>oDlq9N~IrwW)YvyXTNN2D65lUz^Y?a*TJ?b6YW6 zpzB4>*1_59laB^+6Z|ZuHP_(DYvQTyzMIiXeYbjWtTSZym0Nv?aiZsTdHW_6CVwcc z>aDRJ?x)O4iUbN*OV!?zsL)ddSPF&#ZP^`)-)30K-E4kanR!@V(?>j{T4>>k>!@*B ze&Zzi+@Qgru_Ropd%D{1u@X#C3O3|9t~Fk!hQn6I_Qw9>=a0-k?dqOJ#eIQEJnmr# zr^SpX_zRl`JLMh?yUB@Pr1Jd{OuES40_pq~SqfdXqacg5&9i^(%J)f+Y*UNqQ<$cOjD;GiqPArxBNdq&6!mkf|I-2iF#_%LOZE?L z?+_L@00R+6VJDMn;OJVomv99Ovb6dMdcG%qJgfxsM$Zf%fh62&Z2LyGb z_>=2HpI39?%64`QlqNdV+*GuF&O0Kw!rUnO@Ac-2O%GU;A1EkHr&527hW_c7$C^Pp zX2!81O&W5N!`d&Bi#%1<7Y<#+-80-drelk^9$CCM*a5e zMmnBY#Cm`pyt(Y~I53QP`xdcmKHNMsu9|xB2YBQIO0G87J9nW`)_VO~^?;GH1?{`@VTX38F zLPW$BkGM^&%m@u50Gy*33chK?zs=@w{j}%z0xZiBiBm6%iRC0WC_Hs>La z!TF#H#QMMLUhlF=g27-(#ntwc7=(tFwx-vlh#C5zLlJu+aD`~M{t{&O*GDw%-QTnq zGz^=-_v1x>yT8V=|6}MNtW*AL&7jCk=*Xow?2=8b62$an-wYXbgb%Aa!-gojH=S>Z z6rj1RA`;=qEL?YS_Vzq!eJJB4CC~@#Pw&yTOG=r%dM~D( zC3ujK8WV)2BK#sYO*sqC5CV^7eZLdfEhp^D6So%j46lz!Yn2wUj#szjSz0o!+}@8Y z&qNe-(E$$}2PyWB!M|_ozfk|s>`+H8_aQ@B$p=M4$K*|APjyP zk)~Wrp0*Z-f$*=4#zsd2SX6#~|ISn7Zj=B99*6(K?}Qwb3%;Q6EDU}pqJ&j{Sm}RB zf`?>mRY&xD86*@h^nJqMd181pB<8XF`5eZA8wWS=(zZrND95O%K#%{#{QD*CEsFDn zhjXG5nuDcYnf=Al6VqqBxANZ^w>3n*^b!Q2rWk*t4v+pWDTR~RKmZBvFck2jqB8xD z8F}iB4KUak+t^Zpl|~7tiU5(=#|| zZ}z9&s3n4>X)TdW=kylHrjjq)*<>SqXksCVpRu3HwGs((pDjZ6Y}{=P{e^)Jx=M~q zZnyHGAgBGMz#wONjclzUgy+eC=cnpXpRqa>>WXO7P0CPjC zYd0}0Mg^_|n5&}$!K9?{tv!`S*~i+>Vdg=MmLaEa?(m&o&=Xy9&&BOl27|7C%gA3u zBQFCyll%cWc{zU6nW&6(W6wS|T9zrsYsw?@?Ukc`e0|Wg2Dx7ue%BaM^8A?PVt%@w zW50c6eH?u_g4t&z05twl?sWhl?r+n0JP&gH(@ zta)~+^4k39Bj^_JWUnokSN$IGnl;5q%*c^SCi!M;(LHY=VvZQ>rH){!xs9b~`K^2j zk&CCAvcK18l?}T!%(15Fd2h&fg`#k~{~Ua_EPC?1uJD5cCw_)Fzh|AfpRb|bY)*^x%K(?frfE;VnK2pspr`~b@-B!j+tWyNwr+PRsL*f8lTZg*J%#Xo;Dj(t4bj|6MiI3CSYn< zZR;Pgg!1n2tT7j7(aJGkh}-H9Ah9<=#AOGZZtEVq$7q~QM}%nY=m)~!SetF!2I;Hd6XWZ$iL9ay<#I)- zq1qwu0rwzI@|H{f9uqbQKjo77p{q*gBHo`buo^>AdX#61@h{xwcw1rQGIPlnB4-*^ zenbAH^J9_ALC9se$|mK(P5L13@X2l4b|6Tke*JBo$9pWD#@{PVj8f)K-}l^nZEsUg z_5eMwc2l%$|Gk7^6jKH@ ztXMI6VJgD0`MStudx#pOgk+kI3t&-ixt6Cgr*aowoJ{1hS7rl&C!nQBWI#Xr%VLa>|Jtla!Feo zo#f12e}<)U>DQe1gmw)004$hUv-Amj5{t!hz+?PWI)aBucTUGQ2}M&Z5*{qY)Vs_j znIyCiHhzmn=5uEHMXK%QvCPsD^7>@Gc#X9d(95)AcfWh(?~4vgJ_xQFRsM8LTt}in zKvW2q>Zjr>e@dvP2!>C9lL>W+9&i7Jc*l&<5{pGRtKpoAu?i_}H=)7=p|?Lo^)_gqiH1-#gN-|mWm1l=rB$p28GURhdg zY8-+_D96x*#C!j3hmo<<_%9zVym@u%+%Z}EBd~%juP#XMl#_kkUXgY}Wv{wHsy6H3(Ed|?>%2_BC#y#&B22ZD3npHS21KT>g6@+b)Y zH6=47Peo+50 z39SN(mli6jn9>*#WHMruoYtz8j@qd#hgVWH8OW5m1TFU9j|b>kF9{B92d%=!BpxB) zte~HWcN0`Go9^h@O&GXlEU50TXE(>TRZJGRVV)6jbEB&{7Mv!`I2ne$JHUwek_HFA zK{|9fn?6Q)pVeGTc6N%>@VtklD}j`I&75xvkgo^E%w?!%xu&G$E9%ItCHY-GH<^Z2p#tt*<Ai%4m$?<@0n9S zZk38aoF!_AzO&t;(2(qgS|OM|3q}D!zhonj_Timp9tQS&a!@OH>-zydIc5G?MGAjY z8!xCkOJT@uJAAgaNXzl?86R-0gS&BiFXHLoV?N04>$AU*S&d7qLa!hnFDx!3j@zkj zEly9_k;ISNpNVTb)yhLIu|zRClo5$oKm9IU&i22WV|@4Sypc#($ZhJMumCob5RFOO z&e;4eeD`iMwvC92)mWak1=|Y4lsR0aQJ%1Vt8Ks%zE`Yq_IH=}!LLiaZ*BK-(K|E8 zU%q`d3Nj%B>K7^nvxe`P;Me6>B8D6#Qp>`fXI$3zJ*=us`N* zPGUo)N*FLmSLn#(XC>7<3}_S0C&(?8ozT4RB`hLIZS))^Ufyxr<8_Ga6zlya(ZhVY zg`y`esdI?j!}V$!#hxNs*^{SZ_#zyP*v2?-imE@S|&lUR1@0R&H~M2@Rh&uau$1yv3#!dtj`)Js_N|*S@SYTxV?Xd(KWo%1TLX3O~3pkJb+ zp-5)z^-vWA0U)Z7i?*=kh})^IsTpo!6!@~G_z}U-d0yTy*<M zVF{7z&#jX0&l66F4TxA~KcLKlUog4VPzz@#8kN)IkcY}m3VvIzo>1u=!fJLpKl&>U z_Zry?lAW~U7x;OJVF%_)8ta$zBtrvW2zfPzkSVp^EO5R z4Ct1dAupJT9NF=GYG(Gim3Q4%+^Q~(T$E{-`6D&4aK!Guz;`n3;W-m7EUs;rHj5@1 zVO+ojIlaGqMgtT0{_j{?!$va)BCI6LzkdD~+f!toJZ3e?c3cfD!h_s#dnYyA9o>HE zxEJg=rR15NgZGBroWPl->AVaOc3gP-Do)@vN9^24K!iJo1Y0pm;A6TsfhrjM(5L<& zK;Msj-3I%Q%0o+eM&zeeJ<+v41y(4>_Ur?;d@IPe6YgKvhNu5I(bbDPR9;rE31e@i7`^ce|?Rq zfBPv3UH)%B0YD!LMQ@d;Xnx~dT_&>r(mRLU&$ziVx3lzXPY*l@0x&!nEV|?Wkh}wf z!$<@}h8LwPT- zyOU80k1b&>;W?%p;OgNK&GapH!s`cq`)UE~e&v`e&H68H6gApuTv=2;&cA$Cn>CgF z49u3Xb_&0F)O33z4J84&(&^_2j3#w9gV+H9<-_yzMkwh}|6#y6qaAdksIe&SBlQA? zgG%hrV*g)>rEMHshP@3NV=D(`!u62ZLg<@%Z$9E6BIXK4f0rz!2x?uvt)>_vzB;_# zr-;~jT*Mtp=U@p(?t&=^G)&Xbr1C&`(Gq|Z7-I^Igk=Bz3;O&gxp_~BA%dK{% z@#qQp*K&1wu|+lSZj=m$TqU>H9YOG69+&!m&| z!8pMBD>tBYera=I(1^pm%}FtZ^#G{wV6zO}P`j1$lE^+DDWXs!M$W%qfB_+Afc-lH zK?|-QxZClv+b{-u7(0kiHAJZOm{8*}p;mNpshv8*{jV0d`hp1-NveXZ zj}`vC4pKPbdJRMkws>j+RXBp0+*f78M&Gp+Wo6@HK|fiUhSWd=1O$zQprP^l*eU{L z)kQ(&6c%N??2&jxvMClwOFnhbuGt>8U_=|E?ATNibVQsaS%VL}Xa=3)b57%*2IcA) z2hTB$5rUe(#t7VO#0t@U%L2!-0k_W6;B(Wbf-mqu2_9eQqLjf_N67Dt{mb(Qhy#gi zLxON&FoZ7ao>UySy*A~*HrnVDZjwQS)AI&f)ySx?u2JvA`)x&|KJqc};gI6vkYNIXDqs+*7sw1ebGi=&uj9O zfUE6w)0ej1ize0xw`!6DXK-T4n`hcjWwvfU;3KbRXnYttPfuNQM(%`6ed4?ZK^DUw z_?+{-BeT9sUnJyS0Q-%XInZG;_tR%cK8oh$q@nef_FF(EcP`v-ON2`p59OwJ^kvmw z-s{E7Ik)LT876vpKL9N_W$)U;hQaoY>ZCBt3zs*TDDoG~+W!45tgOP3_x(o|te#Cq zQq3GvO$IU^22y;;BMnAd@z0L+yCA8v`pPam3_H{C@)Dxs_9&(!avn22R`c7d&)pjv z*Tyvi60sD+?|N==A`1H;f-eiBPi;iP-g#^AR%AiTL#Q;5>NE$Xm}F+9wn^U6pI!aA zr6P@OIKNt@N|k^g@>+zgK24O_ZWc3XXO^1g`<%+W6k8PG53#yiqv&gAMR&du35$-d z*x^0QXC^2V5q<{QM(Tf__FX@?nXL|tGC>Lg5t9k`MH~4Z=;P`uBv>fCr&gAZ#HGj8 zA0fy{wJ@W^{**?mf|G<#GtEOH$U~y9DUqbfnS{@Y9l3C$#7$7~4%~5C>BFdM0PqCxVMM}9Z|ysE}`%1e5CKTHZ`YqV03aA zQ-XNEtLUKp!{}wl$O+e|bR1xzALzI>K#2{Bx;+TCuXx-_G98Ql0SmNRR$wDQ zugxYF{J=^-xiqa36_rdFF)d3i&jMNm6&vmR<+pq~*#+6}@or5{c{YtrUETl}Z-L=d zD4AsVjR(l&;tR%AUO24%<@<0TW1vXHZ!a~UV1K%(fDX->BbSHKyyozM$4@Hi@}qpX zVvM;6<#jm=<9zEx_#yF***|PI?ID6w4+`U=ooI^r9*d(~Vj{OsHP0G(rtwl5s#1*!zDfdLC?nx zQ7}h&pC}jB7pZQ^B(^mAAeFP7mo9x;y$BMbXUNk2B<^|No1uB+=j99M9pqQ!#_g{k zlo{a2hk*0j<;>h%K^FqJ*_;w)cI3=BV>Gr9&F(W;r-!4>>%%+j^xq2oQ4Amumy-lyyNhO6&&%;!{NIUsr+mQCf#VF z8i@|{2U;ZLaPKqHl_Z&Tq&vv0$>% zvUw3-ZDW>Q-^?7Tl=Tu17`tyqITHl?b!0-K@{lQaO!V1R+s>*DGBrkmQAZOnKLOVA93+d za^sx4tjB%iVJK=D2-3@m;5thyaQnlU>;MyESATmrCX+ERc10lc)~ZrCV-sO0-n2;+ zvFg=c?rIRo>3?hDWS>Dv1^_81Em3638>(b2iQ(j_Kx0u8eBo14!gMYxG7go2oZtAo z=@T?KP9O(K4%S3Ys>G7%%-n((892y`%DaR?t^THb?!{HCUwA^u{gO;Lmi7xGyJ4%lN&-Szkz5W#h; zH`AMdrn=9>GzI@Uu@p%|DN}*Fjg0ZCF4y15ki5w5n9pbTt=~XyvHAC*gV@a4rKbu6 z_FSUzTfjis?|KIJrh#ur+A0ALJ92}5^*k!42Uc?W3U6fdKp^4o+0$qD`8ZXuJRfvY z<@JUan}YIfU-yXC1uDaDGb>w@~z7B;Kr{Ow!r zVw41u;}MT~v_z$)N9%(?5nzf%SIN)ZYU7eynx*eH0vT4^=eeeEn5mYp)W*s$J1ke? zSvKk0JO|FcPy!b^sv-n@b+??R!p|_sTWGrWEe=6{kVBRz@E~XTMch#(S;Uu;zQ2-h zw8GtdA9K4@1oV;zo(w(ADwQH<{aM!Kh2e*@M#P;9culrq;_`9Ek}-sjqvQQc<*DOk zEqw8FV%99USnQ+p2A|L-Wm4fsM+UvojK*xKk~k6=Xf(LghTIKjLTV+0X-Y+f!Skl4=Pj8!xx*7klo<=OwsqP%C$p)dArBNupjZ=!g>CJ#y;t5t1QA|dFpy8G~QAwYO zeBT%p%`#I6TtkA`e#SmBuX{|^)ZLHS4iyM2ZP}hnnSAlP<0lsVFr6b8+U0mbtf~Gyi-n-e1FDJL0G%YJMDf~$%n)oQ%!Lr_6%o; zhAK@qf{tJJX{_2RI}TG8;THpDVfH8P!}c8ca`Vw2vKB2mw}ewdg9(H8RAy6*r(a6v zsm@E*muE zmT4m+(XTB~{4HlnVjR0F=7z{Ra-`bEM2*+Jh;MnfLIjNhJ2wQRc0!;^fRppRBZA&= zwdq-Z<+T_P&$NySPAhO1K5{{TJNt5>d=iiPy4@XSIb&!%EfN3-l1#hm&!G~;LVtQT z2x8W}Tx<5JCV+vFNu7&MH4`cJWSB;*Z!luvl4_m9SJ^~>Fd>TLIf1s7gCJcr{~>ni zllyk2gl2kjb9w7n zSmF&vl9v-@7ve~-$3ahWKDx(J;X_Mo*qizeB2pDg7RSkzx=L~0&9E}p>(T_qw}&)d zOzmTjq{k88E84M-)b&+K*lz0oWM({zHwo*0Se3yR#}7C+4!R3#CF#sqWG-Tn!^3hc z!4w%2nH-Q^xri1oUEWIE&L!DH*`A*gIZ_@XpqGolh}zPBCM%Hs~f3q zWMqt9St(_USn%j|*^nBVcy;Dx=b0hIMK1#*%Ru^bf1f~4+<$}rVt~@~Wy?-<9fjy- z;>XYO0OWJ_Z9}b@x8l<#=_uOq?39*LH_L1W+Y@GQRVEW$GRMGZBJJz!xKBgQBM1~g z#Qec^$iO^YoEI``I~vi8Uo%0>MNp{R=tMGm`8NXZY$)4C7r=4?c{B~$)<-rw%L~R& zizI!YgN97DkVd9Ie2ZBjj6AH^I}0Mn@l9q^&q%f-{!1b{k(}U0l5k#AvHsn@!W8L$ zSPL0bjEf1}0dm)>IQ^F9dK74pSFtMqOB2Y3yRj6BecuOlzGLT*k0X3M#2__9N#-lo z|EW@!t9bx_GOdPSH=!`{se} zFFynX|Doq@RoF*PSt=Z`DQT}ydZN|&`dY0-G?!im$AR--YTZWzhqSY)h$c2Y95hCf zD`~wJLWxZf(-3B`gMwJhraQ?`4*n^hn3k{zLGY(~vS7B3^Mu1NYp_A9guyQ8>~=VH z?%K$9U@%rRPcZoIZmFT?iQEwXzKj0euOgUOaCs zMpFVz;M)G#ez%Hw6O-ue*b#}Qn4oqV^;jDb5P}$LhvF$rXn-ccrAuz>t=XT#(;wsr zhDwLJ&NocBEp`?XTZ$j0$%%jZTtzPPbe#uaeTV=9XepZ>rC$mUmkT$;&@sDL`}<`K zEC7q<^XIQuV2g!lM8b21oJQ)#Nglxhn-t!MsF;zB72K;~qNm)e4WLmhbu8NfY~-;r z8hb+qf~~bp&r$?r*N%KNQcVae}K$C^dQn3N4dCMBT!fg?CX)+fT>#Zv72+q_DX z@E7->Peg78&sdb-FdDORd<>X-*xB!yVg!)Zl2dLrb*psY)Kpdt+5T407ri)%b%<>p z1yw&RXJ;U1AN(S!F{C3*2UEw^SIB)5{8AD_UwzJBS24&xXU)jhO8W?Ep1^+5$zqsC z5^quU-ux8{J7R>9Qs2b@VrM2~BhYCr(1fx~`fN0Wy4^ssDacsISJ(M*iusd=%mG&) zuO*Z37N!T!I2BR6f(iH?!WK%4NQ`7Wdx>Sy;KPyQN{R(#^WUG2o*BJc3Dk|V^Y?d0 zDPzm4&JRD4A$uZ2or#?^H-Z{HrxsqKSB`i*iGfKg#ts|HDfDY*P957 znvZ2?Da)PGgJ#(-?N-t=Ia^}97~W9e=gc#2#*%|qJX&l6!Wg!+K*h}`03I&qlp*X|6dOR-3Nc%mdFUZFZj^8eO8qz#| z5U7?-PpIF&RS_|CIQ(mzkm1e1uV13MdD+|Ay!0ebLs2b4p$1OUKRi=t$xJ67tKFiT>mz>1R<7l|D!-h9u@LoPp%{zve`*FlGK1hPkJB6$x1y4l6M%DwE|P(!{1 zgw@bqvN!Xg=TN@fh0oR?-VYY(1-TB9dxz&#xY#sqM2zS8m>VB(kB>fY2e4%;$N?xp z%*j3+#m-{3ts5W1n#9zvi*L)yeJ^`~f3$yT|z!%QB!Bxno72-)ZwrQ7VTcc84XE8mw5*+5&C5GYq7nrA6{XCI>Pb3^E?Sc*Tiu``o#vZnf8h6$4RuVM3yvKMZi z%9joRNU{7$oDDk0uwz$Z^LKYdXVb{D2Z<}IT z?Spmj=s%k1xUeYEwgyeMnxQrNU4UnvF)(@R6JYlu0iz&1Ie6*!yw>& z?0_wHe^l9aoY)iGC>lPA16igdn+`_+>uo+Z^RvVBJ6#m(q+mqF*XjokOx z(+ekAicR)b%ImovmO12bl>8(G9T1_oTvzmJ`_G`v&WR2F=+}%K2nv)t+GX4P9P34w z(3j(jrPWCA-|LN$VUfU)hxuS>h`ELo{c++LrQWBm21h5^$KPgPM5*cu&-c@-$Q+;3 z>0=&rc`kj3nr_IcAInfvn81w%s2mgxl{(SzS9)DhR>>bTHGHb;b#aY}3 zz+I&{9XBdl(p&!9XT$ZX;G>SIt@ro(Ng-HOS}DNCdCy3C+Lf`g@(uA(Y}XDS${9|r zC(i9ySJNVKg++icIntyDElh_Re=STh-K{7zJ7PCH3aycOK88rw*HO8lvQAi zX23ag{&0AZU(d(B0tW(Bc7Udn^eoI4u{*aEw;$5QoP6{6m`Ok&RvwBe2UP5$!r(fc z6G(3F7$gLeiRZiTxYoAuXYQz9WbqjNI?Fdewxawb&K=a2CNv zk#8l#080B!mr*B{mCyg?BWdvQFjk>5U;yG}+9omHhT_7>G#%@(wED5*JEr^A5Z&Mq zd9RNq4t)O5kTJNcBs4*XmzNjcyEa*M*lQ(y!50&i(fXvvv`o{~^k#;%+ zN=_@gT(r7h=rNC`>&(ei;VtvL6ehAI(ioXV|9tm<0<08M>wS9h0>UG+rb!8x2TZ`_ ze{F#YKPhmw+wBMjgK4EDQV{aL1x&&Kcb zY^9oT*62bd`as92mhWZ!C`WF8keWFYmcc=`a>9>9IAR^IYk6EU*to{yp}r4Lo|YE* z2@6Xo0irDMWCuaTC?@~d*ci{>5j=wFf77R9PKEURa2?(wu-olv+vFDD>76)O-gJ%Uyjfzf2RsIgM;z-&ssG8ri32Ovj53SEB8FauONhwdbusZTX;_Y6Fo+KC5%f-+%=lj{es;TEvR#Mw2!g?2hB#d8 z=dT2^PBQ(z1xBM0{&y*u&1Re!>d2XY0+g8oHOmCUw<4gP@WGxj>m~~XXU(L%Gp14J zE6Ui;^FRIRC;&|N{6EuF&qFmQe?i9p{D}hYVnO}*^MIuLYw$d9T=g3*;UkaINDvwR zHC5c&5~SNI{NHZ3<73s;cxPmU|6i&d0Lk@f^*H}u^dH4vPF<>L7La`T_aEEKO#*u` z0xUFQ?Cm(P(8xVsGy#TDUXNFfe>%zo!-x(sFbsHsS1Fic;(2JiTemJ2e;=p8^U!=2 z>}(3`{|Dem4AeEgmM0U{o`afR=UjNq=NOL5re!(B_4;+>HZZodlmlMg=t?2aTbe;66a>ssY|{8o{V}nJ1O8m98~|9=b=wTu_#d2vNoE%~KZajerl5+7!|V?kZ;!_eJtk1GI7~1AN5=pge-L+}gv%b;9bi((YO3n^ z$JrokoA0V@qQ`Gn>3;Iz*Teng!+*H@P5v>%Fli!qVyHv43se%y z{+6wY#hx$T%vM(Ic0}1VfrO!Yf(fvrp1(a*)$*gXSz)~`|CIoc5Q^W3=OKy$rdLHvq64zBU+KDe)$pRr#G zZSU?&IlltLzzPK=eiHu!xU8>G08J)S+Qgh%N@%(Mu zP|J@LYx}BOe#VAwedv?jJ&8k<5id`vFnl*oVbH|}!jYB-5(&@dn*q!ifyJBueAgvh z>QEm8RO$ZI980YOc{{ieO)KsL01WiKi~7cEWRH2|%^%{XhWsYplzY$nkL~3%zp_Z~ zduL<>e;r=sY^YZL-H`+aM>})Q`sT||vcEv)DtP3%@P94m@AGV?TyQzhBF?ZL4^6eS zumCXh`=9&k@B8bgt%$y9j!_LTGKmw02}jujUysBo!;!@-j$ios*1M#RZ`<>;gyH4~ zueVs@hJ?+;27(DT1}j_P`5t9NBp8RadkJb1f9JDZs1iQ%kad9Kc%RVyz5e=P0KiQ* zt(1K3zGgn!-c2udRTB#o@^@QSrHP;L|N6#j_{Ze=@*BR5*WdghmRozW@~Gh_AVtq4 z^P3HKEnSLtfSjC=tOK)6QQof;}s^nEsF9 zf7%aT@pzcJpoKY`&wcrzc)Xt*AA#@3V;y=CiDYHBfIT9oPEDClde? zanJWCd&~FOM$eb2D17r0D0{84<;kX!_>}-CIKV*ivE!`tr~$PI%;bt*wXRIxom_iy zpzmE=5&A=V!>&K19q(8lcz1Y&o}bkTf2wsr#Q6c>GrmHQ5*Q&4`+P8&Ot9PSvQ9{g z1Jm36Y2`N$rNj?F+ESoGH%RsiMNrMEVB;vW+kyLSFn0ALc;Rl~!hS*9Gtc}oaR#76 z8#hul0cXWLdpto=7>~2;*wp(Uruv_HLUAlR)$%>I*0b3df&Ft7*e3vG;Vj|ue?rz6 zp!C$2>XB<5ToZigZUvfF+=pRiJ_asu&W^Z0p$n{^HXmR{F>T(Bm>4{U*S*Ne2@3f; zyhl)0R)$zC29wEzNF>6G8vwpLOiEw?E;}5FL|`(R5R1i7R#v9T2})k8NpgQu939>x z7#kZ)n{tXQ#$+@a(-I+MofMk;j5o1x%91RshH?h+8)Bg9fyAG>aK--u$e2^h zYB3oc2$dTslh?o^!6ssTba|Nx0G}8c@oavrx@BwHY_JPFTc}Ymb_#}J7KX2sA^t|4 z=j#R^mq01uGKcCcFp$0LD}F9_Of?RKkN+{;T731>l3j3SlovdH8-Rh+e}^zJK7#c( z1+jDIOXv;(>({SG&s&+()hh9mWClreL?RJHA`z^);ud}%5kUa_ND$Ii*siRsjCX=S zDpRb*f!zsUcU3c9NV-5hpqf9q4l=_qxMAsS*!$j#X}d|+m^=o+pFeqBw$DESQ=CCO z7z0}o1?mhixB!fZUo!#Ye@j)vY=hm5qikKGmjV?{WRyv>!4c1czpHL}@@}%_1e}-w zQ)C$Z@7Yih>2LX2q}H>!s58)%aPi=xb%3xeM0e}2GTKzQq!SS-@!N@8Z@m=&uyf~5 ztY5z#e}45nRs6y(FA+52-iAkgd=1>nx;j1{_`=bnm|9=Ywe^lm}95b66l)F}| z0357p#xMGha#`R4LCkM9oB5fRhev(9$Qg~sw74JJ+R#IUi<~mW{LuiH8AycFdCbP{YlpyN>rDA_VXQ$>lkV>YISRjzyfgBuf0%BYb z<&G6+vEgmbS>A10hvDI&wAYwT++h#{hl4 zwD(UyMotL3#2wxvvLdLIIoHz(s&;^aOHHPpCzFl}sAXrdy2YykBWAn{knD9oC_Ahux%+fMmXt2@B9eLHLW`i6<6U4#BVO`SV5 zzrQg)j$_7Yp3Sc(fX|_2>)4>@fdfnf^>sGJzFZliMrfei>)BM^(6UX-!gM8EX2_Za zCTM$COCfYmn&SgBW`VuHk%Le1+mFBk;3+I$bw8%f=C)mbIQ=#NVA||!(cS(M-}d}@ z=>iAgxk>RaX;{v;*?(-WY#m$KNEuevrC*zsb#*xG^GUiL;sURo=TYPrzehRf;RMz4 zGrgRskp1UmzI8B>S%g_kkYC>%FbkBn)(DL*1majkf*WJ@FJhKl& zl?*~gIP5JR5A8|T7M4(g7^-K3(dr0u$y$=vEVue_gr1N3nak4l3q=tC>Sr#)h0|{% zFyTcTR>18B_UzficZ2ur*#o!Rjfvhcpkjqu!Y?;}uC>E^1Z!u`wR+vDT1Od1h;EFldq5WJdzcQZMbLwyT`Rc@-n@phD zYIBVJ3(CrVIbkxrFcFLWBYH(>&= zpKX_W-@G^uB-;cgyx2c69cz*z2mo%k8|E=5YO2y_m&@6KdBM*F17to{b&P!Y1<1z< zYT>`7O0d4M7incLK<3DhnyNb7P<2~Q{M1!{C*!e>#i4}7Xip?CHNj$o!)f?<{pQX8 zj#dpj000K0NklFq1;k$|hskAv)jWi;Ee)uxIF2hF{ac^#SA6}U zI|7cxoH9#{wnYuhS?q-so3mY#5-wAy9t(_7AMXM)Ms>W)iJedg^%)CXA=`F9MjZEl zcTERuTpVzsw+CvRpFF=bgcG3dOHPog^%(i^6X@*(Rn0~ti2n(Tq5&=mlF#{5-)mt5 zU)(TYiQ4~?0AB z_%q;5e=4l`Q+=hW|J{nO-od$=!TzJDt!hS1nIX%obl?{_z{<)>+_3aEUC$o? zEdR43GW-ACcfc2@ybue=zjo#fJD&yUnwG8id0DMzi_1V(W!o~n5;rUwG1swky z4}eCGhuSX?xvn{L;xk&_V{iU{-j~_^o-dcguLN1>J0rBh9DqVxvhx9Y!Pg1$?USyM zOpi4g4)CjYZ2te-yVlUQ$}s$VIk~j6XG>1HcI(YqhIOqtn42J7-N!^6GFfp7WeTDw zMbiqhe-3nibi@4+aTAJChPbU*Gt6MZhK|!EV?V5wie?nnR=V15GfCTjoSZbblg}U7 zInAY)q;1N!|FVA_u_X3Bj7s{^Zu+h?lR+A2n%e{E}Wm{hPm2oAd9jMh( z0cAY#8my+vErD5VfZkyW<0bGwI0 zX$Vh*adb-zV(LC0wY3O;;wfh~97R0*Sk;~&3n|2`_dg&CFuekFa&5qTDL_@-Io)k& zY3$L)TY?@qF3&%=n*6|AIE?E5^G@B>LSEFs=Ul)45IsbK>#cl^HEIsT{omAf9)6R_ z-l_5K(-}dNRkTy50~mv1nMJ9|4^nCZCy(h`WFq5=qoiZ{3Fnpq80?18%>?%P3$eklvhcm zQTKbG>er_yCSuj}9Rl&&eS7Fp(l<}@^&$!n#jbEG;9pB0U`t~UobJR02w;aG*fsSh z2=)~zzijx`6gL%;B*8m%7m_5Uj9(gXVCQ4c=ETdzxhQ9Uh<_B8nayY0+(+;kdepohy@P^H_Gs+P0AgP*65rqeR`ar%_*ir`KzUH5Vme;GT zy{7=x{Nd$)`ac)rPZ&L*wb_QBuFZ`*-E9Eu@c9nH;W`Ka+U@Xa@?RQofaiHl<%L2a z@H`Kzr2@PsbG(1_I$qpyAmf~c_|4*1A^+YF{*bwd%UH@$V+r2X>lBYvRn>>22Ip~b zgE26x5o81)lO}LuPho%H=jfF`B|o!UYmK+XAH}PG>U!?eQ?q_RizVQ}wnh-S5CM_> zV6Q1+R}_>k`g;`daD&v;*Rk=DF#y2sZJ9yK`GD(2BA~jaz77EJAn>b|p;gGTtW}4Z zZ+x}+9j;ygiC5udq$@vl9e@RIgmdNZAHA-nx~ZQ$&!eIINep@Zf+R^9^NXp#Wd85F zzsstBG}R_*;|SQlV<3J3q|Xd|c1t`ts?K|9M^9~aJQh6j^&9i;ucGg*pM`GlHqh^f z{*#U3mu>){MFUvSNHKtGjr2d@{mO4Pn={H}0l@V1w00|MGMTj7VOf?_QpQ%w@AZ0M zwU&diE)dcV#u6!kgtTkbaje$zCHa=ipD*NPVgReDjrsLX%$S}T5_>Yz+oov8 z8H;%G^<18zXaEZvq^7>E=nP&00pDCecA2nnc1pJE@`1tM5;YIE@7l4Zyembv1~6YJ c8oH5G?sy>w-$?7X#GI{L09Rfc{Y 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 delta 24496 zcmZ6ybyyVd7dF1Tbf*H+NJ}Fj-BJQliYVO;QX=diC|!yYA`KGK-5}lFEg&7zu*KUAXr#&bEr3f14SH>*vajOe zF;PTHq-NqSvQ4dcLL_V>X2SA4-&BmI(xvlFPktXfp2pwW=mj5bu%P@^W_Scsm^i() zz6`xUcnT7KxvfKoj<8d{L6fIY6Fe`wXCP-xC-qxt7#Ucv9{VB++?+^7 zit=huUh6k6n;+UeX?vAgA^w@)3Rp^>_23jnS`FB(@bqf*$e1nL7>>Lw-z5+xKNq|N zCS@)Gz+!(Nt=T&>I8y(1%R+s5pIp|41Q_D@k(LxFq_0BubAHI0E6rh~ZlfJ81j-%5 zAnh>FA`anOgiu2aOJ36?jtMZN95>JGRkI;gk!;Ut2(ga`OmD|MGM#(9YXZ!w(1(pj zyIZRtFmTo?gez@FR0OE2yi}?-H*LrWu?2zm7fu26*Kb$bppf}@cVp-M_LY2EZr{V^ zJ?m_IfT4bu$?+f1uthA<>k^4neyoq-3|~}7J?l4S-i}CzmIA0fL2IQHpB`|sb4QFZ*Q(48JCR?0|f>71LgZ? zp{_XP#|H;~_2l2!oRi*3)Z>(usIqW{p@>Kzg2cFxiS_!Ge_l!%w3;v^eGjn zbRA^Xf&7RGI2X=FIraxSr_!oOAS1FyJj(GQ z#V`$Fqq#sMr2y(#ImU@|Ld_9>|dU~v!zvL-hmy(ApI(xCZda^LqOAGEyDcOe6GNI1!-yA zF{f3DIA8pwO9_bUm)G&`tqxqIsHQu}l0@X;yoSAM%f!Bh9&ovk?GPXY)xk%q>rg(N z|2*4j?oWUpsaK&M!N-tu%(QnJ1VNK#_+i)zwjnW5$!y%u+p;YP;pA9ta-OKZ)9_%k zdzDP_K~n3s-GZDBZHR85J|EQz|1M>hjVeUGB>S?)URsj|GxJ(d%6C?upwNRj@jT1Q zIKOkgQ~=*0^n4N#8Dts+y2{GItu1wkIdw=MRs#f9)wm}2*iO^4CpCzFo!(!LAdpiv zC*%I;bb-(26pAL;RE{9aPO`Es{^pqoHFj0T5YIm$?96T^Kuh|krz+*5i7p*|QfW=( z)N#D5jdO`i{3o5G-d{c!T>nJdQH&sDYEdJ1GbfCHWPuq+ftsE{lq>%t`fhZGz~L8t2xz|l?(OiT@^xXqli56pPs!2xq&yoS z?0DG$3%fhjz(j{Btoi5nOtW+u#Nxj(*f{c03xmAtZ%28r5F=@rvHVtdQ)V|krjOE+ zv$!AC;@h2!r{0^OhqO&n;21mKm*iA#!ObYSX$=&XyL;=zr@q{)=a)k?kPvt5%001_ zlG+j;IAr)gnKTnW0YPz=sbgOCzQfazwmH4Efl)hf)_%`?8XYmW`C6)xPMMbOC|0^n~*t<_R%D@4C-23BrjW6F2b@wnEcM|8(X95R@5l0#9Fg~uBk`(fH zZzy(xU#DYCUJi83Ba7+BMwa)=E+07A$3|pWrhdoe26AqFP9)a1{wELBAGP#2k+f~( zU-Q)hx3d7{=ZA;=o4YP&@iKc%Ve>36nJ{)F^d$j!Wra`Eq@kyyK^b69n^Mb^LNAXGR(HE4fGhq z_D~XD3}R@d=~B!Q_lL1^tu1U#J>XybuAk&{4DE*l9k1ecJNI8!nPy)>tKQfT@(Q!D}X2Da_r$?*awC6CX(-xkhgXjVXXeWI5QF}&pPl9+kp;$Y#qfx)-3H?Lm3 zvI1{Q+h#;3I|MsDKxIOT3YAnvXytyVN`(Bbi@vv1kB0I(W+k}Rdl8FIUD{A^fkLDrsj|W2!UU17 zD2#rrZcWV^ol#vqF4kv&6Cr#uFw|eCejWH|NNmOPCTlfrSuZYsnfa%jUT$~x(wi3; zmf6olI7PABZ7?oZG%APk(X~|}tAaad-r`rJi&IF(vMsv&PA-)8*M2C1HR zq{o%1@#)YX#ke;qB+1?F*i*14>kL&|vjy{GFpq>l^!4>K%F6{gSUz^ft{lxc1Mizn zP{Q}+!3jm_6`}t61d`N3dQq-gb(zq#u1My+z3fM^49eiq%jvI=#5^6O+6?2vq2qrp z47s9&n|MhuwAt!THRR)tO9ij$*D=cikls>)d9POZN%7bpB2!M8&)PmK4e!6G4X%KK zF-S%Y(`Zf;Ry_6K+L|6MDi9h_x=thGijnu3&H+K#Xl_!sqc=t#o3p} zi3(yHdjerSd_SLdk?gWUi`6$Bv)|q8*|V2k@<}7YvNT>PnX$11UDXZ2fX=!N%{m!r^; z%E!6Dn~-v{+8gMW;b2b{;@m|?upH3kBa8wDS0Y$um(eOwmH4mDfuEHm^X|lxzEv$k zhdsM=s<}tC-gd~M4=n6*STG?TO?|WZ>J@CzMiE-VU<2iIflhYSFgm zh!qVMA9=1oyXdbZ)|LxJo?GkYZO?kv_fR{isoeQJPsX^}S2XA-MoWRbn8vaOj8eD{ zpf0%9{dU{hiXrwerDvVY_?4nAFSA~&?LGYm0RjXe2CBHZ5*IjON5C(x!~o@s%U1mG z2Lb5&C~ZLao!n33t-$yI*TL603;Zr7Xzoe$V`z{8I^|m$wCzCc!Zm?wNO>iXH4t>< zro)E4)zfPMu(MZ#p-j8saErWvL=(ic^>DI_h z*Ndm2)9Ux`-Kzud)_MIp>Q6^#CGK5rux}ZAVf(w?w%nml84_4)a>K95-ArxDaAUnN zG3p28$%^}5z^nQ$) zw5eNu>Mm_=BmQ4P&$FcgjuLbZjFS|%_g87ltC12qX+O$f9Fl2SSCAwEb@N@sadeWh zSpKn1XazGh;qF?5&Zn2+bTP-#>`%?eI>nX2;OH=V+CE0*%dQZzGd%bs1dAYj%H$}V zp5Wumfr#>N5|rJ9-sUfLi{R(?yhi^`6GQAVjcxKtEFM$HcXI(j28=skp0VZ>IH%ts z=QL_X_sG%!o1$`M_$mN4Cb#f{w8Q)f=!qB_mI96{6>`b*?Y@MMX<*Nio!Ej- zGSSdyo%z2x=Q7OBsZiNlAIi}yd#Z0R!DtVecjQ3cvX{mcwhnak3A0>}qHWfm9suOj z-DsT7Y2pKbPSq3ji{fK```G^c^Gkx+x2U|YP`{nr#5=H zCg2mDo^gD{SZ!wmbzMyo1;u`oUy5V^TJ-(}Nxq2B*ifWBJvR;XufzJ4@TN38BYDE@ z;1bCG);)w04UBaX&c>Fdq)dvY6(q=*f;>)PQl;-XPGeq$fF+2?%V$q9uZh*m4c@tg z8I?JSmq;n79(wRumP1f5!VBlg0zpS*0Zb9wORhEMVopCVq z~@O+_|Iwl^b{!2VDO_p949f=~mlB5^g$3iXJZ1t?H;6Vt0UH>2{#l z$YKfY7T;a@A^298;Wc8n=tno8ayqiCwW&YEOgnC>HYW-=>f zZZ;vgs?g80 zl1>6?`1c%$`+@ktLS|J}Z8P-!e}i0j6LYg!glq33Qw+oWRYBfh*}#&h zT?*rZMkKx~g|R}%6VpmzbOH^cLe%I2w<2-2@^AKy#sQ^Z>T`aR#gxLXC1CS#zjyfW z#Cdw}(`?-Dx<%hqhOZNM!Dj$Zh&EymXS#XYwlP;Kp{Seeavbj9pXScz_g^DN`Fi%z zsOyyM00unFsTzUv0X~_f&`rsk$arW&qDleXJ1FnRIRKFg{)Zd%o0>r@Zi*#RC!)Y6D z!nv>v&k+nsL~2IHRE7S4g^KvPj}Q_3gWbZH)tpvO88FS}5X7D{OvYw9Z5gTElcgZ5 zk{XxUg^za?9!1|;gZ_$Qn)K&6?yc9RgX~@4b3vw)3$WS{fp(BPPb&5~xiXk!lA6h{ zdFbp8x)cVJ2ON+HbJNh(?O{GAar=0c5-Kh)-zz;url8wX?rm=-DnSh0H>=) zPhTwg^(7Z**9VoNxA$Omw~dXxnc2wI`Yxc?)POefpp9-;kfOrcbEvj4_ zWT+_rotvuWLv32tJ>~kLuD4kcdK}1|F5xk`1-#EoZ_2W7gx&}p5HMT2{0eR01~X~h z1MqqFetCLCAQSq50~x;wm$ZlMD>13&G8qCs?@|c^`&w?5yeT*ZJa%Vy>PiFb5_iN2 zoinO7)0ckNEnGymJ5pwAoVN1=P z#u1>pJ6WofmpssSbS0Y8c3=`xA9l?yuQ58m2ORx*6|tj@B4>EFPcR3*!7 zxi_g*ezWF_U*o;J#zC)NX_~K-FXuhbt*X)>bHZoggbC3R8zW!5u#MD-piN3qJf2F$ zn`V=#4f0Z8UjY8&U`}9MZ2U$%j3mK>PmwPY6$&GbFE}V2HEO(F&g9@ygeNMoHT)IG zV*zIr1*+JY)gd@GR30|Z;^@eGDepbhQaaDk`u$JroXnE9Zx%4g!E{?ET%PXnp2IFw za|9u6=F{=nr0R6UTQZ)DyoA=| zYYIweeLX-b!q6sGDvFS2S)nv8M7b$qNHJ*l_fS$oY2-*DOx8953Hw*cB^cIkZ=&bx z<&FT1XVvZtqBEk&hrulacV@oEOl-3bf8hD+uZj1!02)DF488q{JE9BbR#0_x(GnA%5-{f~D_5SqMC0cJn|M*C=KkCzZlX^CT zaDV@cQqY1gJPubBYkeOh5X`S1--f8KrvYclQSuS9mop=wMa7?rqDkE1$tdSFU;AAf zb=p=aU+8g(3}Wp>F+TD<8?Rv^9qX}EB9;8^IHvmO>&Q*CZrQ&(zU<^dt)9-Cch3i$ zqu6YFz7o<%wIa{2y?&96CDk^Li{>EzC?C&@rL z9q(R6PZ-f|DPC7xrVi(@ShKWH*%)D~Q;2NC3TDrh5)h0+_$>_6n>1XEzb2U55B;i} zHAjLssh(k|er5geMz_7R)bZlcf(IVmoe>H6-!-}6y}l1}LOYV2pWNdl<8l`JZS;}e z3jyOCR?!^p$?4^U(T51zjYwSy;GQ0FLe5|u0>tS!zhyesNse}JUOQN#`1e=Q@h*-+ zM%KF2gvEA!AiVLGXVR8m`v{}pch63FK^vdj_xD;o;BScYLzjgkbxaHe?4at|vDcB$ zK1dAOxlE#C2p(t7m0C-qh8ENA+!-EkfcHbh9jQurLkSJN6x{tz@Y%HMp^Q!>w{bOZ$nmd_r%phk|(q zCU>vWC6c7}z=w-45tt5pVG@q~aYwBaPTcF|#86rb3DOc?`b9HVCC$rsiN2%Ny6m9)MC)h zRxEiKjy)c~ZRbQOPZqbr7ZVe#R)x;F_=ftq@vushES%~A0bu#9PpuDbncWslqE06r z;TfQ&Vqzt=yPGo+Z^`MYt)4j1(se$!z!g2GINv$mlfBj;% zE`kWnzrbiL1jv~yFS-h&BGiW+P=fM)8XA#{0(lR7egqymPP1vNb&`Hd{Y3kq3_!y> z=VHH>8Spx`H_}g6{`j0UKmK6cR%arXOqE-uQ2nEm(aT8C3BT3^G}N4>;COkF2je_^ z+1i~pUKjRH)$@ihK1yf(Z^cM4#rb6(fD&!;TDbDJ0Pdzh$VHH$Um;^GS=H)|&veg# zu%LabK)_8+P$2i^duNG>1cje-Tm~Pd#$+3AV<_4{zN_3^tJ;#KH!1qviO-l(w?5M6 z2SkS9{yo1*o8+tU@o|=&m+AOVg)|_evz!(`C1Z*ruPZ7{aG7geS7Hhaxs8La#NXp} zK5v-N6p9aoW?6bndOWsdA5;~mOW2*9;97|FA5O+&H?2p_j12V2){%*<_pA@bVjvI| z>7tg`$fNb4^wQ4wS~xGq)?os#u?4*D=d+ZAM2!X*9pE_P0K|GZuxvNS_(F3KPpw$S z^~r=X#T#yydT$N>{GnFQD4Ne}y8#Ji)-WeBI`)g;XY%=Mw&?i&u;x@txR6oHNuoPh0BUhkIsKb6 zYA+1P>fMzA4GsDywKYz2EF+*mIOt%X{kGv$NsxwE-9OuLPsVFJh^L1L!kp%-?2|;D zUuhjsyig0ToXE>IZH31y9L*pP1MLdk8g4Y;1xt1MRPT@AFTyQ|tVUVqZC1uVwj-@hts}jda~m zxFr`^Hc7~kzx()_y*KH`>YaT-5h%Wp2OyttA+NU)p2r%L(2AC^vS&PaE2|?6Z?a?w zo2`G#(cLU`f8B&8GF8&2JB%!^UR_=9JwL&FzJkP0aaF7prSr5+mN?*`>HA39aO%tc zmxRmZisvHc3mlROPJiS^0~U9Knf?VOdN+dw&Ou^EGwhxi4ff$u(;F(;jg;>Os@T?W zPHG%TzXvG03P@{9Q&>?IhH2QOW7o;<2oDY?e0rAU6+n@;U7EPx45Pu@IQpK&<^uX+ zB5@0h4(98Y$kPI2Cc33_kr87MOQ((1?oLm9)dJ(enON~Yyvl1$jBbI^2)`z%JC<$I zadzAo@Ujghk%pQLhmN@mQ?~sIMkR(;AM@(NRIFXQTR(nhF61T~chVe=NStedadACP zr{X=>NqzcwA*rY|wnWO0@=pl1Su&BesZOT?M__{lxGHrWK+?DqAGN~R>CbS8=}y+! ztsC49kmHjr<(<3+s$ai{Ph{ZsA~h0ST47WIOjU$Byf=0Vq|vu#8zN_fqr%PA&Rhig zZ!e09o#`IJTNvlg`PuFiFIh%m*&~ry-3nvG)xD!Vghj6p6=bi2N`R|sR@h`nzwTjizR=}I0II?$qeN@`_RCyr>*J(J zc>i1kVZ{UZ91q-k+MiI5FU&p?fZjUE^ zNqJ+$(v{sWC}mUV0D#u8mPax|T)d0;7dGis-ogx1H`Q7PR!0b1uu0~rFn;WET zz2EM_b|8VbW<=%Ze4g3LuB*gF^c?B0%iI*Po}rujb9^PzqS~IDR|S~FVKuczh7RCh zgc4C-%%k_r8w?6MR~yTM8^I)m69(ZFa@}*2s)IUat~|kdf?A=^j1n{mlUbNdFlo9* z%7=lgaD06-OuL1`_MRe4t)a6Vr2oDCsC+$V+JWP!9u4nO-s<~)$yqg@4=$oveNP4?!42}T zZCMcrzFAqx8Y{JiKR|uQZSb0WNG-C@g85YDLsrCqj^Xo9qoxUSh(LXEW_|)P;q4Xs z^DBejnKhvlYfr0XQ3v+3?tiuD=*9SkL-k`?C2<+S6&}Em z4t#lx(Wxb2#v}bOibZY7@SXrzBaOa!@5O@QbzfZgI9nH7D^D|+mS;m8+O&k*lD~Oe zN048Um;X8%U?mu@D7()P`;>ZM*#c-eT@5BDk>NBzQiY0UfVIr-#on&f>w-71HO$EH zfLE~%4M}sG{-+KUM*~m`%a-$;|S~zxeSmMHKN|=>S_-KK`U^; z4xKA|q)T>-%yL3U%~USU?Mvj7s^SHo-!3nVwa|WFz6O3>xYbL$J!ievJX$^>xRiR> z_2Mvbtq}O4tVgBlJ|(Mm{0;e+>hPV4%tT{tjWp9p%MCwpa#qSQx7?B<=9+N#tE+x( zD@We%_jF-nB+$k5-28NN=uF~Qz%Qggix@-e7@RLgHuXaLudnZ)PgEw0ug=KD+jpUv zAn_;@I4M5xy?ipdJ3r^U*K=o^6Z&tS!qPVRbLmPwLNAh^3=WEMb7g1zVDHhqpgke=NfIf z*VvK!91jxjiM8}WHxux#*Tfv34ID3Wh7yE!j92=)J4}R0?gaOA_+&rJIF>bi=MQVD zZNd65DI6*!Bx?8WXc@9ki<4vVV|T8gf?wDKxUZ1lvP>xV9%5(ZACqC9E(Rc`O37=j`CQk8An za3MM9kLJEDciZIp&$cD;`;nc5uo;14|U5G$zAE{ktrFn3Q2xO+QeC(3t1A^2|br{vC_d znhmAZ3BCbjihb@v3v&#oOQ{h^QYNvsl;`AFv+}(z{>h@SRpyH@uN?KqRFxuY;(^D8@YUsCzLtN>agS= z(F*T;JND$MP()iaE&4R$i63(MDI)oaedB;U!< z%w_+>A3LI@7=l^bG&mfxy*R#v;6A73OehxVx_DoO+Kx@yV1G4v0LPe&J$6l!yE7iU zk&dvA)yzJ$%;>Yzmr(thzW8z(l@t3-kzu9W819ecV{epWBfgEALp#A*+Dlae?8T^H zON~$OZ&9VJrcvBM{E5QQvpswwX-iC;hp{G-48S-N zr}|-10H;P!8^I^LlsmGCx|`^P`PQ8Aq$gB!dmPq#ph5!Uzxu#W_1!s}(FJ+e>qE)@ z>4sK6U(D?Ezkvgxnk|Xd5RW|;x7M*wgt+d!OjhP|F>7!}C6wDjs6y94jn9Hi2c^U( zI$WyV^2UY3Yf^L>$@Q9|=$3^cthX76Y(uHwfBynjAq~7ZUla=>-Dp^#*Qu*p!8uF| zmNQ@Z^tSe3spiNV*?0tIpEiuRm!Gw+0#F@>E@3so={bi%K4KC9Ijg&KH1)k zH8V#;8eLaV7yPfGYw(3i5;78eacs^FOWUMFIYY1=44=M*;6)u}31q!3B>?0`cIN-< zUfT&OyRx~{{Giz#FhP)jmi;}Nn~w4SjtJw46Ic3SFYc6We)mTO$jn^Hpjvxp(iLK(>OQ`0bDk@QLC92+yd1Y*TN`Dn(iUZ{NPzfy}lReJ$dl20V@= zMb!C=VkmL+byMRU4rwLew{*vw{9yedfs+p$g`b?9)OkN2QIqUT+#7keO+EGYV52Wy zaLa-(K=2g9ZS&?W67hCHMrU>g?8J;(vXaK;OkB$=E+*p8PMbvkaRKESm;DPzA^w23 z3EWc8LYMv)78P}lW-2~6F^Tcoo8FPd-kUCt|NHkZwS*@p_oGK+dD`i9joIF1_P_)? z*tZgZI15Lb_hW&Qjvx7wgA*vZ(#55F;(-aiL$l!xC#A<=sQyL3$%YzuveU5fPG9Hf zP$wdK2}%P4gN9;o1Apz`pAN)U40X*vEC?~9OcZ!(7t8<*K4mI~o}eK(oEv-Tpi|*h z3_|c|NCUsd1$y2P0~?@LJ3&szsuhkJ&C_O-p3RWE0iP7Jh;ndr4F2xLjHLV+O)JKC z$VZLE?oE#W$pR)&Ig-jwiT``={5#wml&QxbG(Z)6(KGS$JkT4*Ea<$}Nv~RaKpVg` zKRAi}*dEK4245wpG8^r{;y_a1n;@dG(*VDnCj1Kdr-fvij~K zz`4@-i0_(?sdVO7ELO%mz;P(?eJ*!Zqj~*K%ld|f7NB@Bh;sW0b~V|@&d$!Dh2)Km zQy%#&meg-P$V7}zPlqrohKRpHm)6K;;PK&0c#Pe;EaaW02BrIh5WTZ%1E4kUeu~gT z^`4{CX@qTX`CdoElF_T7sAXAj%<*{lYcg0t^pdiF9*M@8Lxb)l`2{aqww;I ziA?|1r8-yY`ou4rW7*f468wia=k1xYu&O=uabJ%5GGPH37CK?wo&T}D#1+xWdd*`Ffe z^+26g%x}nJ=CE-O67~`CKru0*p1B$Uhd(`h{!tI==ci6fk5Ya5^bSu7gM~qy zysPpgHk=LuS?rFLYsadyRssVK2F0>%Lrizdr(_=bkoqaK;a@A$o|iYL^oqyn+MUC7 zey2eez26==pWe;sUG9x*6Pp7R!d&(6BQc~+!ap$9o&8V}wCLL_!bC&Yr;a#0$~uXZ z|8>ZB2-F7#9pQB2UAqGDF29AfL(fNCTDpSK$mt1RyHLs)d`O}Y;Lu)6Q+>bKltIm3%H93#q}6!@_PRO)W29&twt}wf3T{Cm%oSN5PEwMd#E%3r zHa+}=nAc)daxT7^8qcOCVr=3Z6P9DHvLtzR+&mviH`E4fNMNY`wQRBAP4Tcl_kKd!`snAqvNpBAS zuC`K=U;z` zKkw71{ea#zSyHo?W~!-#5YrdRl3sxMRE$jE%dP`*PPr7U{hvm~2svLlTEf;f5k`|Q zNT+6`w$JVR>^$q_F_A0K8-37FvoB8VkJgN9tRX*mKB(WT)nJ-JMKt^u%8n9E+w-YP zy8l)yj7ZH{%cdjJ-Le48FaNjk;@!aAviJOIwDaM|36|ai`F~0!X&9$%;>;vRQH(ET zmKX!j^{X)dg9M9=Y>c5_h*ha7U!jlQ##nKB!K)KpLuvw^j2>rnoc(Fh^o&iyX8lkz1EC1J#t zrXm>qnd#HOdT2`ZCJK0mfW)wTB%OE9I$%|>>v{h1AHOzZTkCX;d%q`PsVifo#;@A- zshJSV20+qeMP^#iSh2?;Xf5^N)ec2?y4fh>QhpBRNGWXIjTmw!$mFenbn18_)v8{p z7RL{4&|a&zEU5hrgudkU2?G~_5c|rD%zL)wuMSDSVeIqE3J0q*J8n1xlsBGz&L9^u zEoX;2q~vlwg7Iw^SWg-b&|B=#E4t6{wn=M;mg5xH`OEjZh{Ob7`BU=ePp*YLlOe?aU# z#~KDvz$)vRWPTD_!g*`-|9wcLC-9FI_kT4NSa%Zg{P*?8oquyt`!yUu{xjxvEa`_F zkyBk!NnrwG@&&EAgJIm?&$=o3q(Fi|$f|FN_HT3S@P;WVNT`Ug%BZX&a)5=yo=WNu zd*#}@`EPA1zabNvvP ztXJaELnS%&xv0-;pQ~C^G@#Q42bB;Dd>V%TReYL+3Ye_nj9e+}GAkUw*MCS|(L8;j z#NL+VC9617@LfWBz_DBuWo$3X_dcY|?pUAam6S;Fk&UJ7($TNmgPuwn0*(+aO0buR zrgGyj`i3L{{HP-(6QAl4Sp|5Uu#y+`>?e!rJy{wXK;KjdkxI@&`VbB=v+tmtjkT5E zORXq{b0m+l0tuo`Wb1oysg!RJ>!d?sf;(9J)R3RU173N&t9_s2tMuSttKXYXfI_wq zH#6|2C8Tj}y1V#gF?6to}t#KB02)^RAdB zV)ta_9s{S@HX%hpo`^%-*Xg>n1*pXED?zvz1zC>EQ%s^ozEH~~Ur;}q*niK3g!t1Ti`FkQTOG*kB`=$j)FG`$CANe}L8MnH@d z1_vyO!My2E(0+4)?sxhG%c+*q5wbdC43jQ!4?Ig)dM*E#sfB^PQ zPtKqbl7pO93;CS+;~DXO_=$VZ@#!~`%wt=i^9fDJWe{_n)3(mLo2!-4%G$Q;)2%Tw zk6}i!1=FFRe2mI(a}9LoUEE}zXz6<>{wtGzg*M8)(9fXkG5r`!0(aQ`e`{s!v%JC6n z0G)uD6JCq&HKuXE^H}G!ij6|lrz>}`>45a~drkR@x6{upP;*^8h6~n_$1%;xSK(3o z(2Vd5d>A^3?LxcJ*hgHLg^q+sDh8 z)|QhqeJ$B8t~bN>O+d14E02kP-VQ>aLmrZ0i)rtUcyHKZL{9+HbVhjpr-iEyi|Py7 zyGToSFCmDaQa=Id5NVK9MCp=7Ixk2F2m+FVbcY}zp}hA@dWcc%}Q(T*B7)xqqr;P!6dxp zv?C)}y>ZEP;rx6)ekgt+q*4g-%v^}=Op*Lsx(u93GsisI|7^>0MjB={g*K9Oca=?( zf&UhP0;0`o{k7p5o5MA)-?=UM^0r?jB>!$|6&n38_WP%?AM1&ba^3AtF6POg6OtEgIflX~&~~((&zfU&L#pir)F~2CM-h>auu}Kokr-6+=jrd2^QBs%LWXD3OYdyL1MIi^Hv!g#1Ie?3Sg7!%JrGDm)ZmIPKJH^B9p&==uUw z;Xy72gPA0dR{wTQqkMf^KUnuATz?p3`j*BRO_*LuCAbA?#x+c}U)SSoH?xd#X-F5lJ^IX)|9 z63r(QYnKyWUx$G#ImC0-y1TrJiiG7}mWaMg0nv(Mo_0smr{ZttGDWANkdie)t3TA3 zf$jumFA13}eF3!V4_|CNH~+F8W{}Au`F9Iy{If`bD)!Z46z-FQeh)1o*Dj*a`wor4 zz;W3Ev)GgJPmT=zYCyr+*sLq)Yo`{X=55E<%1Nvvd41hd8er!??J%R=svy@jpaw~T z&~!S%e20UD zLrT}Thn@w``NdVU#I71)kCRK=i($F}$iRNfC62cT=|T#Zd1h#|`ubfiD&iFc!fm~K zmliliBG*>Jx+Le&BoS0QM*0ysZL!bvr)h%;Q!G}>Xz;6XGVMWAj2nq&ZTd(>mus8O zKC+(?iJ8G%(1J9(@*|#G$6TAb*6ms3pAW(hUo2Rf%QhP3o6JoT8QYz*F`(N`rUj|( z@V*NwhNFx+l(%zEYS1kn?7;wtQP3|KfI`l}6vKL@xl<8}p4QU#M|ReR9R)h!+P^oL z?YJkJDeI38ljUP+4WG)#%|ws;-l(Gj|6#gfO{@uF(eLB`{)4C{I0Bx-L#zOSuJWxX z2DCEdj0qsT#F{q#%pyvY=Qcz9; zSutsqMN<6V%PkN@mMwEbzs4WQcN?yv@MzZ^Mi7gUcwu10Tbr4vIt3RIO5|0nIqx;Wz zKe_Gs-Dn7n{U!?whwjgR_Zfft=f!>vgk>}PR#*19PKAWNNe!La;4Y~ds1}Ioml(wp z(Q>rm4dv$?c_gRX;u;9Lqz#*^_n)x?z-*Q$rUEhGmOW5TX@jZwyxg@Rf1mkoa$>(Kc8X%y?=<3p>Q}*(`mgdEjX( z>=uT*eCL1rn-A9(u>!675Qlk*n`&;UW{+Xmpr%lF{y>|s*ApO)LypB- zHBJQ-D$`@HI}{wU(OXSf<0rc&UJbqlZCEk2dmdZB0rNkB-N=av{eOE?x51LAqxS2E z0sa&6xFlMkZfZc6tn7I0lqCHYgzz7GXo7A?9C(tkdhx#WWE6?|-P*=18+fh&53}7d z2!RG+G1kW`q+lbRe}{{#wzjtXf`VN$ZdXMAc9Q0cUO8fZ#;{D{JbGM%Wl3NzGQaPN z_{MRf)=h#JoCn9NobSFHgyX&i`A?g0dZSmo?Ee(xeZvi;M{MIM10NWdnZ;cDiRCGy z!3FRFaw)Sp>%HYS+VkG=x>Iv&<1Y>jZ0I1r+0YP1Gf|?Ed`hcn>5;7jOHx$94 zBQV5Br2m1GC!4MH-904-P)&Kx2T#BoGItvXIAXq4+J)$%`qW`n&eEG*t^Q|TC(6w1 zG>VneH4{w+eE?MN@t47h^U8nv&4wNbAmz6Q$n**@w%piIl;4RBnm#>lm2mAp5>M%w*P**`CMz8QGm#_!7fS^!k zVt%-Y-7pgwn9Y9Snm2w4i5#p1#YNA?lGXwjAM>oU5B*+<0GiNK5YzyHL( zw(ckQchLy_4$sD3;E%_RKl;Hm5aryi8wUJch=)m>OYX)wJC^`TSy|% zUq}K5PaQ<&HC2hr4fI*-#mey!Bvzs&^&{9eKV-PB)^_<5A+5kGM zw`Zz>wU>o$#J)LrZKG3?Y<1UbwRREGy1;6W^~mF z_w9SZ`6wNwK2>C(y+PIo#~}FaJCKGiB=t{So{mtVcR|$GK-sU&=j$<8f6OV2Q|`UJDP0 z?WnN0!Lj1)$B{zdp0?K6VdjT%q$Rj%gEL!eP1NYJ5QW8{3R_#*ZjN4h<5^EerQJ%s zuOvctpAKg}qU}q7_2r6VN!mUH7OwxHV3T|cxnUyM5Xv=XvhK)a3NIfYtJ9)^W|vi$ zX6H^@{yn`2B+>_n=(7AGSoS|VyDMzLIMj80Q{vvxcq(doHSw)otUes%*?ntroCbJ-B`~0JUR9QCVQ*C z_6c@*o9_FS%3@F&P1dD;hblTtI(r`(INxjJ`dkKNaTKsv)Ouz@qF;IP#BRN1vXOy1 zj}-Uh@XilC$4h1~EjK5A4sHUN#>;xXt)lDlQkh^-K*>oNRQaQ&L7=SgW$seEH-)@A zvlPzrHWkV>dJtr4{+7h{rCh*~(an$Gbt>arN3m1)yY`2@a09%eM}MOj6CUj&WmSUD zBM$($U)3CvglpJ2nYfVmum2!5OurTpakFZ=Qs&OSSuEk*4-7IHwjlyjp34-`;N~^S z$o+?=dG}B0`j*=@EyLnB;&aqwVM7C*6Rwr;{dEY_LX%rxG&PSfDz+uVyXXGDqh(mB zoLqPpMrWlTmn>O#eMhNu6biXH1@r}${D~l(e;i_NF#LS#jK%5<16X;8Wh(6|t#$2^ zqC4kTa&i&`%l*T~0Nfdq42a)z(uNb({}obw%-pBg>Y zh`RS*fE`)|QI0x8{NuF+{#SeOs{|ZRY9*1!#F?+SYaqRw0P?OmQkyxN?3b?+u|6k- z1E{~R=#>_mj~spryQ)sj+Cm6!%wEc$e>obfy|Xsy9~Xv^%w3IkayEY`c4r&Ah#p}e z4nXN}&U@*j*JWdegii=Y)-}_1mDFez=fz>J1fi58T1C!qpsb8&5S`m6(S8oNPo?t} zUXCz)krz6df#c}e+1Y2C_W5z>q@z| z8x+)^$$)CP*zmKT?~~uwH18@nS`KADLUeremH*X0-sQgYn``)o6~&fTcI5Kak=t=c zPOzje(%=iwdGBgBRlZ~WBu_PgL(+SXZg6PG<8m|I8cbBZ*htnrcyk?{v5R#&6E~xD zAxj#S-aU_GATy(-7TN#S5N5Y*N|Z;4IU(UNyXwi%=M@+iIqjqW$(!2!X0B*b_;!V% zUJ9{T?Gv$C66(a>iMxW6>&#-s>^~dR?)+W4Kco);m=7RF=P`s>?vZfQ6v}{aB9E-_ zt5vZGq0D*pG+w>nQ5ykQqv)sIl}kv}qrZ_L8(;^okndG^Jmr&+R<1HrUQan;!(i>Mjpl>gTG`=`pV9GoyQ@44 ze6fJhnq80~>J2(_=Q}-07ICeF9uu?5P~x(NZZOz&6!G=GwGIU7#bUkC*30y3YMmI^ z)S>D^h!dDq`hFli*gyyVHVLtw6qNHe4*Jbwp;81Hw~!4kd^`&6s60D#Kk`dv-$v!o z5lt^bCVjYev3*=TFGi;l*B`YLL9}lTnEj!fxq&(M;T-05WT6b-oI0dqIF&gm9`x(- z-a3up~S7YL31j(#g7HtP&c@K&>^=F7(?vr{JL&(l^xB-lG)4e zstq(c%3ET_Oe4w7O$i|)$wp)WcNdUwLg0m2p}ot0t8d8*3ixC7E||hkYo@C{1o^TT zIWrh)*wT{;*0+;z;eG0rf&k`!Zb^wz+q^ziHGQbkyu6Nh z`A+TKM8=}X?G2-oa?%pDIm6ENQk=iviFI?$YPF=|o8c!J1b_E@o&wY*a#b_KsH8RO zVCRtu!W~))8`jpWRH2EM6bg_ZiN4`D!LV^MK|7fI2|QYCv^(9%LLWs{(L$Jd zC@(!gma1sXz||DUeUWOC7N70V5-i0%oDrP2jV>!Q$%*uR7?*|6eh^&vD+|x#C2H09 zjPtLHw#CkX+{Ja1uXwHA>*s9O%O@Ao z9fTU>4Mp8*gp33lHmP|}@8~I~CW1b&pkgUc!zhiHmu8gjwy`0}UO`sb{R$1H{HKZ$ z4T;>({?J9d{-#H4p{#Vwh+_+MPLR#%SZ{gV`q*vsXZz7e7Bj0>@U@`bR$Jg`n|1zK z*4c@aEaD6cq|>G6RqSE>aFMxd^4E^Nvpe_{S2!24D5CL;83TSnp`JgFjCSDi?{Zj^ znOec-IpU6~f7Lk?(XfZq1n(jv+mT18D}cVf-@O}@|}U!eQ-QX%D#br2u2w@vrE&CDEdBl?MNOZV!!)`QZlMz@O^YiiV3 z?B04`Gg_*Ow#Uap-8$8L!H3vBv#Rz?pbUbqZ^5~3PFJ>^N)$;2)1*kpSG3R6vEKIl zd6F=6B>m3(_N2~2yJ_IStAJv`=YgfT6moBTYR6Db6K>A)CW9jx%2SD3S9ss}V%cRs zjXrz?1T`<#zgHiLE?XO`pjoqK^_sqCc6<~)dfY_RXi3tzHTknMFxo+=!L{*N8I@2t zm!zj5J3E=v**g}KOMrOHdJ=f?@-JcbgY2nso^*D(QCrxTr19&*h~W~+<$ee1n86jf z3y1XMEJXhPl@b$Wd-)8$8l`Za8EomgkQSB!C^-7wgBSd2)z!$a7mE1xkzLw-cY^m| zv5j#`zN)up`a`pKJv%!}>Uf=;^;iob7Okc78>!9uLn=T-L@NCA6Fl1FWXK&nXqehE z8K06EF&$nHJpAcKRkd15^Od(9y*rWxpd+Ntj4;KeM1>MrFJXX;?V6A@ig)*D z4ad*{klPME0=_4!#3}h|%SRGt`DeV@k#*hXXU_el@$r78I68>Eux6vb&p?e!&Kp0M z1+E4Odg))$qDo}OlNPURoYEKUQR?3TvN&hG-uH4fy;-xzul`1HHxktlqD%~q{E*T1 zXkz!r2X8ONQ#D#rs^)N1OnO@}3aiyJ(OpL&19zL|IvQQc{Ll&Rc8z8Ct{&dTv29z`bba}15*{FV4FRfCF&q(>eJkC$bBV~{`DM> z7kI$W3=tI#h$w&r0bT7TV<;{?DhdT@V#RDK)q-IvSm{W;N~@vfccF;Tl$#tjzx8xC z3xg59poPl^56#-5ak!9fE0HRbHo^fLn%Z3^M@L6tF|qLJY2!P|>U4B;c}>z0nAcqR z;nU$7GsZP4G8{c4X*yckIy@e5n$-?K?`v@Nb8~?QN@P`}v>cW~qeM&=BoX5$6ZXz3uk622+abYc`oJ}gNoU55{Cj+RnOXL zR^-DS5(N6yI1H27DJWvKNse|+T^rdGAw{>maxN`8(D&tceT0-9ck>aUC9kw1^9xlU zE^H&Fa*J7IM-ZM1gOAap8D)wRfLSUj?4MiR*mcPc2SqkpsAQ<0`t!Y~;@*&MSo;uH z{c0EDC1f4>ID#saimu#Z4G9#^uKL1L1ROkwja=LpDxx;jiCXoy_zA)ZL*wEsApQM2 zNgtky!Q{S=Q9A@`dldf4B--|Zt&p|*`zSF6?H|D8J=wNLvu{CC($cK_H{ariD?VA* zd(vAOQGT6;c;j=rAG%Uzc2?d|Al1-7ZH^hMy0%>W_)f=&SbpsV9VCJGhXNAAMDw|+0nfP(LL5`cWA^R zj~+eBM+8WO7`~3IFdDi^jGVq+QZm;oujM|NN-PMAi$;F>q%ZT+RxD@v2R+CqP*FLwkH;M!2VscCpF{6fr7 z#w5%_I6AG70W|8u@5S^41$4C+cfg*~F+`Mhzo*9IKbG*9+zrE=93aL}mzDZqeLvrK z;pHsC&4hLy!9o%RA!Tw@_~peeUh$-mtEE>5KQFt7))NO?Z3f*poXpRF&xS*PTdzhZ z8rl0Rc%5BMn48|-o7P=}^h~~dDQvNPb{|rRGMJG*aR2GW7o;r@`Bh^?hZLNH`PPUKs$#J zv(5f!-TqeLj6VPYmm)*cjm^nEJtZCW9=y9Uy&DgQ%snK=yIUT#te3{OAmFQQ(XFw>te3W2c&@B6Ui#z>%aU)HAJXA@?=Tge`Tfuw* z2P+^%JdS`KDvJ~?%(Yw=1`^k0$?tJML0kD?dgG*S21DK?hhUSFR~JJoCqE3LFBV#{ z#eJ6Cm05i(JQH%P?%^uD$7prh_B>i@SA2CO0Tku~I|7dHx1RprXwjUZXJzm*+S z?<>c0v@KJC9G4cG;gc;6RHdL&UNx?<3(RCE$l| zUTR-m#LS#coGcw&EbZ+;AdigbnJ&9-mN&20ogeWCbVusC>vWiLEjB?_O3l&BVzP$AK9z5QiEx^w43>9 zgeffy@~m~`LlxVN_pQK9nsc)V3KD=i9l_Ai;NQ9_^aT78_g~23Z11Tu1I5#bbk(~wtSOidl-q9%gktS z3!liN;^5$fKf@fg-?tPFIvL!xB_@$wHi-Q&=mph99+Y^&XdD->GIu9?#N?5GCz^Sd zpq`+!y|3B+ROORW8zdpV;zh&;@2qCe5MH_`Q<45HRv5DB-VkkW9Q%;{%fy9}ZzFbm ze2N6@a?U-^-fR}2;{A@n_Vok`ex7xCUm?EckhI+H=dY_EkSGsSinIRw#lah&O?J2MM=$tK4WL+pBk&#H>sGfkcHnZx!S72m{BeCHwET3w+P2hopQ4njhUw?8i*P41%DxYzyJ5PC9p zx4HsAgKSWd8kl8ZvJHZhso8F`2CbrtCx#GJcYO4z}U3 zqmY8D#%Vz9QQxf^ACmmCfEMdU4du)TfhZgvpRQj1`*=bo&idRBR(Te&p^`3!0Xld)1xLx)@ zLqoeL=%l0OBXjR$U>w#OYqP!(7FL;{prFZdD0z;}@lrj4s;cUi0r>g)B56h~HR3~n zhQ_M{Ow2En=}_((_&E3+Uem^tfHodFxdlHI7^TCnLrLTq;TQ!cxd0$fP;`*C(nf-l&n0*1mRuL`XTj zFS(*fps#0Z@csNGmeZl^6giPh%$S|Gtptpr7^FhaWpat%V4Si8j8$zadrK|l#q{c| z$ooxn*)HKxQ8NUEA3lkf$OL+Yki>t_TS5~G3I^-_=g%r-r(`ac zSgU~n9lq$n;wt^DeRtmKYOcD#Rk}o0>m2#;?ak?Ad5#T*=gv-jhe9A0$YfX0nK#^S z6~Pj^ub=gkW$e>22zshr?gK#sHs_h{tljF~NrpWTO76F?&|abN*xgHC<2^w(!x?Z* z%t=p4N!i=i$Lg>ylp5g%FRq+)QE2VB2PXwk(8mmUGQJZq4coshefznfYJsO3YvR#o z2$B{ske45F+<+61NB2Im{QHpZpMtobsXb-Tsz0Y5o7PhcDK7X34<|(#x}XbXF)pADRdf%fsVrBWDOkQ+@Uj2M$~)zQ6u$Xt=-sr=XCv(#z%P z`)tn#Y-73lZf+o;y*AftaP>RTAAn>lj(186!?Wj^C;qP8V(qJHdG+=9 zxd3)Qi5EG~Z|3hB222a*?zAx&K*_|9S&t)XLZ`^5qtBgx$6v;uAT_=tRZnjFnmuk? z34-h{EY@@7rhf{M)2}fWi0f?)-3wKw1_naAyF~)G9`EiPU{Cj3&{M7HMg<%%LJ}S) zL{PMZ$pQfxnO!Y2H}}H&N~6UvSK8+shPTJR&GkVum z<^YOn+~tjSw+S)8A>v(_+$-XRFp1ij?7l3&d{G}7SB>)KR{3(9TGGa|D=$i@w`09x zo4@_fCet{Kj4!rJgbLo`!?@C+?q)tdJ|0HKNoVKhxw5IB?(Xkv?4bf6K<5)eC1Q@I zOVyLGM8eEiBTrjWb6Wbjt$BYQ+#PTr_&!De!>0h#`5qW(Yt`D1x1EbD+&mc|o3Cxq zzkx_Wkt56R;>T}gL54LMoS4cgMn6YXU=mdv$jTi_$m|AKCwmlVbbS2%hYwckdE${6 z=H})IaS5fEqKu`esA5)dDSaO+Zy3<8jv3R~Ek&fI!xx`h-Hy9gSDzb>MMGAa3(4d% z)$#GRY}I+3zkPd8%Im_C^uX_ZQ-0&&t$gxV;%1-b%hJ8_TFa~LnG;?NTF}F%YGhC= zui#!LAJ4g1@_3c8F8Pb!yfH107E~iX!)MKE+&(r7_lz9C`{^L@Nw^|^D<_r6w-p`rP)@Iw$R;JiCt zzn8^9gpPoOK?9f(8NU~c+tC8AyPtnLvAffkeZ1RUyv>)c<@$~oQ4}E|q15Gv`{RwL zEwZ`LrRByauiZdK#|x)&r;A$GX_HFI$*kh>)2%I0M@L7D^$I%!z&9Xby?a-p9&EVY z8Blk5>mINyF6278_}l#Qe1Kfj+8rSO^?>F(Zik$qm+?$KgvlBcNg?vWC*C>I!uYi# zVR;5W{Kt>EfNi^+u4Pu}G~$qw>M>`KcXF_$Ys3nQoWOeSip*B;gFX~%fMx`2bc`)a zia9H1#RVaSg@T>QP&V64l0@WnIIv*)a#_^D6R6$m`eH5?DGUcNPnDU}piz{rf7l%$ zrMKf201$@2!cEgl0l%@aakScc%ekBlhVeKs!ryHtD*j+Gf@fuAjUpG!0=PK^0fQTC zmnD>xu!y2VzI)rpDb3;ei^;QwqY-@dslt6P*Ev6*8Wx5OyUZrStZ#f*m@gSu)vS<6 zM>g=>(csYRMm71i)ctBGvFKv+%F(Ce>G8u$D8`9iM)J>4g(7F>k1PhEWut{q@T1wW zyLISSr}A@9IsoSPfDLMM6mSl(8QF&m_&zx9O~QR-cow{S zSBoVkE^a9-Xf?QUE-o&9wKpA_?RIK(d$M}8*1l{CQ7AGwTBvCh2mSo{(`KnId~{T9 zu0lsrK>>q-fnj@h7nht|(anuBmgI&-;T`M~*T;^DA3xrDUF~%N!MZI`?1`J#P&=`CF?sREF6`oy`ot7s95U*W*7022&$ms2C(mDZ#XD} z*Dr%~xiLQ}IZy-5%q*$7`H%Y~#pc%5`So?*>T2f2g;S+oYluWXYuy^LJG7*!r5P@n z`1qqWchCbdT%E;C5Ym#nkg&u0yy&`C>mmDV-?wBBIRdC2_8Tu$E~xXu`ZUhm&xQzIi@){eSwJBDa?kti)lfLy-LVSHcH@O<;Ds3T z?va&&>W`hJDpc^FAEa8i$@_)iGt)0B8w+-sp$D~T*BM^^9ec`hlslI?V07Un)vVOb zRWH+MYH7)v-shvS(q^t2I=|+CKfAV#tZG2iC7wpnH2$QiC#4<=NWzmxW8W40;|JR# z6DX0g+}+7ZCwQ~{WF9i!`Yrld|M1lv?+qB=LlzI*nm9Sx^?v-N3p$VDOWX?ud6=Id zffQ6PG$oi{&q~6%8*g+6gQCdz)5v@uKo4R6$g){$TXfKMa=NhHU20Lbd%8Qn{tWMN z71t3lv+x_m_QbXV>Or5?>P0BzTKmtZ0%4x9U3R;&c;}kiH5CwtwA9-^gB#G!w$rO# zVmBk)s}GmX%gVAA5}TU1msZmRCyi$s_tmg1meinM8$B<-5q#3Ma5!tR@_jjJJ>3IL zwLKh^W~WpaL|*m4)IhI~wly^H|4k z=k7c|1UdIpi9MB;79z>98HLFa$5T^fJiHRZzhR*3?)yW=m?zF0HmX-bRF1~mK6W_a zxYYk$7l5Q_6r%7z;l1JU@D%aftpA+}BvAduHhZPu;-oU(GJyUcgQcT?@V_KUF%WB- z0|$!7xq9YTLMqhb$FiH*i*)~fri-CC)|v0X14&0)o}WfPu{|Ol>q4p$=Y0!(4;QOu zyD6}pHNTdBVcbeWCdlw(2$keJ~UpE#i8{e_SGe9=z>dx&e$9 zm=V^|?yc?Dy@H=d8Qw|fJAgdjzw>@sKMZQs`1m-ol^-0LzTbdP%(dJH`@BQRN;{dI zvypu^d<5QWY+jr|IY{(XdvqfRs1G1Uzv+?DS-F0mmjXp)3POsH8lJP{_2fIq`QjH0 zsr(BOU^F1uQ<2e;Y}4Qwj8r+zlM3}BK=2(El}>n99i0T4e~lu)$Wwsoo3|?nsS+o9 zb$y){fxbGCUA+Z#dsq96LTI3F86AJ?>s@xS#~M5QhMH{T3iOph!KJp`SpN?vFLpH^ z5)`xdV>}(KrN|_F@lxq-u!6#ZB{f8XF+J^Lbg?n;Mx`wn>nhA*^~SIN%Uo!?Al>Ip zMNAR>Pk9vCfqtlgvO4e-wV&@H6@of?h*|eN)ZJCC#AF!c{Tt7c9uC_q!y{-@mXXrZ z^0}g+cA%uxom!(+h4k=FfH#Ry-txLvFQWoos8BRF#(={_U+nE{(oRRAZ0g*gn`@M3IVMsX;d_nI(d*25$HG65{iP|U62WV9x)Bqe?Q!DL24i(M!H zr!C6*DY7zFsK-ystcFTls2Ah}(4!@@Yb2+Tg$lWmy^jx#R+vKN%ktLg4)l*!L`Sqj ze*ym4LX|;Oe=D($0r)K7&VGNA74ni?a`a@$Q1TkPI!W9)HR6C|iDY*?ldYAXo_^3_ zY#5k~k4K0f=XdY^8VU_Z0HcQJzAeD^Dw;RVtFs)T7~{ZrVDNZyfw#4kh(6hfxrvmW zw5Xiy@HOvgaDyGcQ8=C3CR@4}1&Gz+s-^!pQD5q7qH(9Mq=Eb+WlF0UYWuC6Y}w$~ z7aE*OgDLx~dWi2e>~zkp9zG}Ksb6jPi7^$HDoGc$)5{$CW*l;S=*~0@=s=m%-mq?q zOUbbBznIO3lbK#tTwaVqkU4aES22Hf|Lx2MT%}%1=U7Ji`h0~5q8-o6&~G|vh`!Z+ zArn;N9xVQ3G;{i^JM_^IZF*4D2S7@oqpvlP+&)!@AIWs4DKzjA+ zUAH^_Y(NFm8;*@<;-VxTIxnJ9ToL3J7rXxbNOOiymp!ZMq63e-39i504(p)dnFF|Z z;`{cdHX>m+S@%;y~Jaw+faJ2K$=4g(pq6#;_ z@+hdNpPO%*op-HBUV++DlP#QVwiiKD?T7sSYxm6h?Sp-?eILhV8>Bs2w!VHJa+OTE z#v_H-QC2E;he7=yGX1lWrNGypMlg^IrG1z;W;%c>4s zz#1A<6R*Q!NLSFu?G=GJY7&1`@7Cs5)}L^s<(o{HJ6CzHGK*L4%vbz1NjdN%hG$W& zYq*)U!rSmDq9Dt?O8CW8hEJG1mUvao9U3Mu;+n!l)&u2Gw$H^7sjZr8bkC4?!Io4;npX|?UZ;Qj z?0e&hwRQ?bR8;t`!FXzPctey{_tU?(N2-4oX%l2-(BO(kb2dC_H)bvGqd`D8fOi$ny78E1L%&@KQ6U&%6!iW3iAAlTkt{9UAlG%+~Ha+E4X z^S30`7H~ej0y87XK)z}L>HqGEr8E^`e6=z4^*Pd(fOb){V&a8xB zcJXDd0SUFUzH+k%T+vk@NzQXGXrZ>J>HUCloAu z6N_YdKG5~?{u??d(T7|Jl$q)~YR{&>6JSQ}Y}8){@+sh<7Vm_M!}j0ioKXP}nIBH} z`pA!0iXsas8xC<2egB+^5tOqiN@;q^+be7PouZ;Fj!Fpv z5Xd@GMC=Aq%A3WxyLri}yWae>#8G`hMJsZ8R46jAV?Q7F`;i4i#gVFF%Tp*Kd1@y6 zquveOhfzF70C3*M-7^=JRNakik}%%s>SGvXKF`Jc&)&5*RR4i97!CM$f=Vv+R#70x zBlc})a61%1>Ag$XjP7uqHkA*bXb4`wL+9K&o!F__hy~$Fe;i>gv62(i2GU()A^VK&9lcfv>}7~_`GmmZt9@|4HsPIZETiFsNQErEBpFzP)# z#q7j{X=@aSwEy_)z>;GQ%VE_`ILNJTjM)`g1M5X~}n}UvzK?2qf6Ou-^(=;bk^3 z8W%&9Zi+s@8y4dQEf4awB)E5^4;L|~*;UnmNc7nhuRfkmU~dF|_Qpqf#@)NvO=Wnx zK#E`ZYGAzZ=iT8F3{bbt<1j5#yZg+G9Ek!SM-u-e<`^~wF2w2%(<1 zzO9(wIrj>`=fTa3yut8aFM3ps_xLll^hPMjw2)%+L1Q9bN>nZ$=zA!wl~dFCuV{Hm zvncroWBGzLrGlm23TTFXZ^%%|B!DYlu37yMulyUw01gY-ij7VAPzNkuq6Q*@2)Zd+ zdpH^`E(GWPr2*Y`G#xcS3nbtjJjTAn7n*iT43cNdjbQe(gs~=#d!@HOAjhY4yD`2e zTE^_aLSxd|yt!%x9uRB4kH7wwBY#YsA$UWjX{W#2ueoU9YF5B-?{Tow#83{Q-yJ%6 zVRTYhGu5*qVXXC2w}7P>L1)*&kpK_a(J^xNq&|~E9wOnrD7giXOlr98@`~lvbJX^* zgoZY7k@0lvAIvuN9$jgfH`wi#oK_x?;yv$ZD9(N+ zoqa4Bd>F6=KYzryf`=E+&du* zxGp$A>KR{G**Cs-Z=Jkoe8$xMb@mNzrQ?Tlz0cxZxrn|d_DVVJ*n=xVPMt1VXS9c} zv=j9w>{vfN$75WnjVZR3FhwzW-QRwC4BTD>v3{!y&E~P{%i?OgNQ1+}d1fOiUvS?J z&M!AQzY|}v-#(jjg9$-9)caMX-wk}MHS0>;gKkI=POdY8c4J#pZ(M14qC+D z)sFoB{#}GNI?FeG6&ygMR7Q_(pNc+gqSib6$&$2r&sR1zH91i85sOcyOG!(Y+^h^Y zwYIA2>dNKV8yGQTTWrtA0@!Et3AOqw=(R$GhMHv6k!gd=!|+XDebpcGvmXylUBCE` z0z0lC#nQPy&DqASeh(5BZl`{$5xjiMUhBu)St(oO>2*iJ?PjgB_3h+6wp3-qkF4Fg z5afc7?kt+$d??-gyki#i)2))Tn2EF1e-XIh3(L2|S|%tuT(>y^$Uk9_eHqLV4qRxoC+`WxG@q~3>$O|#P9RIg zCbJdR9G%1`Y}(E8ZgSj`uuar4(fy(mU?BMW(FzZ4VPxu{%-8>0)))xbYXN6F{6giU zz3^qG3G-}H1MkR`^##qGH} z-&zF3@cejdzT9Ao`07=BMn;rGe(w4jF-;N&t+J}zR)2$S{^wuUZQQi{ykbe}KAi4R zc>Y96gjt32!yfQ|vrO@N;8~-o|Cw*mNW1ef4Kf z!yN8}Bsn?==QiP@yR?grs*0naj5=*SmWPK&&h&mLxBdT1zR%H-b#ZZVl=s(;m$ZOh zJ4=Q+bE%ULJ_87&b3DNmcNa!pMe3@*w`v4_ETE?(|pudQY9gR}mQr6(pNsJN_!HPeSqGaft&Uf#fhcQEdM^LZf3NX3$Y z*^C|gXZA!K=677mOQ;+7D7Sy==d`e3h!67KE_bNTDQ}TvXqbfGb7|(Y+UCOGQzJSC zHOR1KSQ_xg+GEN>g8R9V=8VrXl9HOkp*aCmm(U09nO4vNo+L>BnW}TbW%lRhm%}k( z<`OV4SpWkc?rpvRa&r8^DG6|ofx!q$NHekX^$2&~!fFR4v=)_KZ_tj*C)39oZoyBtKtnXn80DaMN-A zjllN@NPfc@Aw~51;NdKV;t~qWSV*F%+}U+z63j*~5q86c`wgEnOCp{MUe&jZTR@hb z3*`zO1wT%E%Yh3kis<^Ne_a-Hn{%~(dzAwifjFrtrK67(uZY55$g?uFzhocJ(IN(g zHyllZS7$DpIXxNcYUMcQEIT}BsWFdH_*QNurv3i;=a=J=i&xfS7LAqjxWOP04&}dI z0J|?A#uw{hnBNeEe5Z$ds!~ZbSA`tTZGsCim;g%Uz|IMOp0d0bauFSUuXVGg?`HL= z*ZH;}V#k~b+yYkC9fhu5zJL=dv`xAKst#7-NhMnw7usr0)bvBd#0N^f!DM;=Aj;+DdU`t zj(@_u=v&to`Vr;Zk^2*<_?t-!8&Jf zVo(2U{Sr>?D>zNg@}%?Sy5id60kl)*|hw=6^~_*n<5&rI;qI)_LKd$dPmsxMnGM<4YuUnd>tGoII95k_1}33 zv9mp$v!;J68VH`P&LcT+1_rYJo6x53P6x1}74N+Y=p)6BRGQTFFQ%ecy(rZQJVt!XdQEY+Aoo`hv)A|3sUza!=I;9< z?$5Lm9o*FMGpwB6q}&bO*qFP8HBUXFqp|3wzArSD&m3g_gv%$}ol&}HjmfUkw(+=` z+=QIC{wQf4WI(x(E_K%h8HEU>__! z7JNkFc6mqp4o%zz2u_NfvwSz`GNIVTPiw6O8%EO-oi(uCq|pjnj}n@nISY(`?n$xs zpU{cZ-4WabTeMK-J)Hp+2bK>xCcHIB;)iqFEJKN>+BN=pXC+ebG?p26Z~^_~3?FkX zSoDQ(gYI>u{$R+EaNfk}vK)bE+(Hc4g^Uuz*DY>4Uvh}o1IveS-Zg>7ZCl~qzA?Ac z;Lb8hBXJinWXY3g;*SQ^5-AdHIU@lGpoh^^Zc_JQaBBw|%iK#wttiUogUqFLy+- zw%I1}$Ruib4bfh)H4s13&?M<2Vb^xIr`}UG*=6)X1SRReV-?8yF?fk^X?GBgeScJTj5 z{WCYMDgnCA0LTr0I+qkNAK%ULrtX?yDU<_s$`~xAov>7!HehXUE+k3O% zD?t(KHmK64FgRbCNi2H-5oX39+Ts!l%Cyry?88U1e}h}I8fnwO{+o$afAG&cWpY?6 z>99@3;R3PjB}5ptGh~JWj>YF1@ytqe?49-0F^t_4Qgtcl0V@pV3`IJ#o=@YwcTv%Twk z{YPBu`~1L3n->5_ z_|3&1eHhm^+}m~Q#43SeJ8MC^?0zD?TW4E>P1BCX?+zd7SixQtnt6H1n%~d8R-a?$ zZ@gAB9cX_rDl3m>S7r|tZ}ol_fCc&q1Rj>{0;oFC>t=*1QsE|LBYXFFO5D#-OuYhx zi=!~D$kNJ}g&Up_%4sGfbgHN4+lp_~`rNvR4#ukAn^GVdq%v5+n;B;op|zA8Qo081 zae#XN?xPJoTVQOv62+M31^Yj)!EKMF_1W8M$KCpHj+Vh5Jjn?zb!^bcesG{wwU0F4 z%-`v-y=&ga67Up2&}63ZsTIIclH_hV)f-2dK%^YtUPxiGZ!_|!*~!W4EWWkT$ETNF zvvYf_OpQI9_J^6J15X3;U9)*-F4lt?!nT7D0lzvuH=SsGe~%aYV?2M8gfEFglzP>f zND#a7^6&JgiRu2|NS}sHo~)NZk%!_|971#r@hRYl)bW=A)6a>31V!riJKUQonQZy_ zQTCt)Zmu#UuS0P_$++oPw8!D{|5;~{+o8mz_X+DylXafxY-Eo%x@>cPm9lqX)A^!e zXQe1@3r=)Hf;4HPrY?>z;_=>FuS;z?m};+5xrzQYuxND{M*o2QrP%@8X7^V_&VtwB zT_b7pE#hB*0GH%Py!D^wq9r9;ZR%$nX}u{5#D9%*7@{Z7*Bg&aQItGL6fAe9#`U!vS_&ZdTX3jDe@fgursfE%5#! zg|7g92spC+JrjrAXPzgWg<#~BxxKv|J=@vIsdVM_q>pLs#$}rO7+OS+Jo4sf zT^3=Hsh@x-No31tpXV~qYI_*dCNe;C^-fQ*z?~}Sh9BL~!OLV9$=Aiub|y@+{pB>l zkIvbe*pEzm^sZCk{rJS0{f1~6T^EJFDoCQUG`FvSt8q1|s~>}y-#OsN?P5AdE%tv` zCoik#B#UV4hCZoRe73D2e^|Znv~abtDiMEMZIJ(*>34HI_kF>Z`}v$NK7g@&8dHBb zuo`Qpp>RvgWDLm3MEUSt12i)`lz`2w7q`iyf$DbeLw>J-EiQKHXcD$!Tys5o^wR@2 zz`n1Kx6E=V1glH*dCPjb^9jy{AZ{!G{6u{3gkP{qUwV=a(-$*y!ZnQp0~uyA5LsNg z^H0le>_@MlUc;PgsFc46EqAOi&u)62B3oak!@7whD>=9XoX6&(su@*<>V ztm&G=FL(=q`@R8n(#|)UU5i#HE7FkGsJa`qYCu!PpJMe&8WPJNdz5Egi10m^)$U(0 z^?HeL$s;UpZAi!YILfg%8^mTQ!jt$OFV^jEm2*01@OtBrYYTyIm2=A$*w_9`^S9bD z4Lvm|?X#awJ9M=Sy&~J*x^`>{JrS4vT*gK`U2^0{dT+;F;o=s6pU96s9}e7y9 z83m|s`k3uo?f+v~sfkfhy7qBnV*&B09jnf(xWk@#K|qAa_4Tdno}oh>f3`_oqR9Fl zbjeXw@g4Il{j1%OD?i&nTBT9Sc{fiyQ8=xiHGB5|#YUd+rt%g>VLrh7`KoWsIzifv&oOVmvU1Q*cd@hzIPA7OA{3hZp8DR(GbOV=ZJ(rt-r|u z&N_5G$Nm`RX~Eiab2zW56l@4^&<48!n}h|ui2o_r$?!N9*cokbTB3yjuix@%Zj5v_ z0U1nWC~dNv27ZvgWtajPP?7D;wqspB@2~|zNO@v_R{ahq+<)5(5v-~P)R>9)W;eIb z;|{G)qi_fV(L2jcsObO`tul~MtE6g4#cZRx3tOTrb#XZxGb>M^XH_^+6uW$@d&A8{jJ?j&n5$V}s~zBKqM zBoCy}+BeGJcXAl2B|kO-5nEt{$cS)Y7!Xdi@wLdn#c{vEAcO;ykrwB0!vWi0jH-t0 z!qxD9qx}D$&WZo);QkH$*9UWd=kmhM|JVrHw-g2maw~&u?pC#Y~Lfa;u|I~4r3LcT#Msr)0MZ}29- zIqpx{F}AEL9*vw`c>>%o&J+9tF{FGJGsW1dMGCLpqcXrZP|h8{N13mR+f?O>S(rSU z_l6r>;Qo3i;Mg>rUT%#&$@d_(aeO=mq}~>4Oa?L)6ISqF&i2Oye=AmZ--={zdyCfE zJK`ITP70#g+uMUQ20pP_dpIq;fs0E_?D_TVuAkn<`L+?RcouG}Sct!WEe{KpqmNko z`*%1$mWlK7JLy+wJ_zaUmezdN(PqPj$A;^l;+mcL`iP25h{LoCTw{hHb%|j>h0SWXIazu`?;2-x zrs8wiN93DY1J87RHJH@}q!ESVb-#N_$6#!^;ARn>rK>hPQwd--c)ddNioxP>Cn(!q5o7BrIp)dtGH z)x9;g`%nD}_IBClH!Tr}HbZNPg7nm0{GYPGuzMbmva+(X#FdwB)ZTT|g7*bdpUJ4x zzfXE-!Gyr0jkiD7nup2n3S0Hy14N)FLs?UrrGRqd0l#&*F2y#K1bL=HzFO&Jlt*yo zfXas6lm`Ffpwx%2>&M5oIMMa?(5%yr#}j^UHKc#dW8gBv6`W7EhL;k;M|2TSSGVzAogt-;xaI4xDguXbW9;I^?P5el} zqMaA!Qh#b$`1+KK=NN+cF;dN*Q{M$yfl@j?*Wrh`YJ+;{iP4z$n*Ig-^WJf7D zmU;Sx$qWOk8YCdp>^HR``FMd=|JEH>h6ZQE!2>9p)6@@862sBrguBN558YRnFL3xI XkKf&}~?i#90(4>Y~iwOu95 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 From 01005f6b82624a0d401783eab4954131896b070d Mon Sep 17 00:00:00 2001 From: Xhuis Date: Fri, 18 Sep 2015 18:30:44 -0400 Subject: [PATCH 27/74] Prevents blood crawling with held items --- code/datums/spells/bloodcrawl.dm | 6 ++--- code/modules/mob/living/bloodcrawl.dm | 34 +++++++++++++++++++++++++- icons/effects/blood.dmi | Bin 107369 -> 93817 bytes icons/mob/actions.dmi | Bin 44749 -> 44944 bytes 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/code/datums/spells/bloodcrawl.dm b/code/datums/spells/bloodcrawl.dm index 153bac6b24c..495a2335baa 100644 --- a/code/datums/spells/bloodcrawl.dm +++ b/code/datums/spells/bloodcrawl.dm @@ -8,7 +8,7 @@ cooldown_min = 0 overlay = null action_icon_state = "bloodcrawl" - action_background_icon_state = "bg_slaughter" + action_background_icon_state = "bg_demon" var/phased = 0 /obj/effect/proc_holder/spell/bloodcrawl/choose_targets(mob/user = usr) @@ -25,8 +25,8 @@ if(user.phasein(target)) phased = 0 else - user.phaseout(target) - phased = 1 + if(user.phaseout(target)) + phased = 1 start_recharge() return revert_cast() diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index c185a60a582..38c89f9a3c9 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -31,6 +31,18 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction) /mob/living/proc/phaseout(obj/effect/decal/cleanable/B) + if(iscarbon(src)) + var/mob/living/carbon/C = src + if(C.l_hand || C.r_hand) + C << "You may not hold items while blood crawling!" + return 0 + var/obj/item/weapon/bloodcrawl/B1 = new(C) + var/obj/item/weapon/bloodcrawl/B2 = new(C) + B1.icon_state = "bloodhand_left" + B2.icon_state = "bloodhand_right" + C.put_in_hands(B1) + C.put_in_hands(B2) + C.regenerate_icons() var/mob/living/kidnapped = null var/turf/mobloc = get_turf(src.loc) src.notransform = TRUE @@ -76,6 +88,13 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction) else src << "You happily devour... nothing? Your meal vanished at some point!" src.notransform = 0 + return 1 + +/obj/item/weapon/bloodcrawl + name = "blood crawl" + desc = "You are unable to hold anything while in this form." + icon = 'icons/effects/blood.dmi' + flags = NODROP /mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(src.notransform) @@ -90,6 +109,19 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction) src.client.eye = src src.visible_message("[src] rises out of the pool of blood!") playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1) + if(iscarbon(src)) + var/mob/living/carbon/C = src + for(var/obj/item/weapon/bloodcrawl/BC in C) + C.flags = null + C.unEquip(BC) + qdel(BC) + var/oldcolor = src.color + if(istype(B, /obj/effect/decal/cleanable/xenoblood)) //Makes the mob have the color of the blood pool it came out of for a few seconds + src.color = rgb(43, 186, 0) + else + src.color = rgb(149, 10, 10) qdel(src.holder) src.holder = null - return 1 \ No newline at end of file + spawn(30) + src.color = oldcolor + return 1 diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index b81a0e941043adc8180216ce9ee10d63bf8fccc7..250ed8f3dc4f31dd0b241118a51fac246e170376 100644 GIT binary patch literal 93817 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®vHFoNx}^>vu_cUd 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 }CJC}u9>By=vyHV1^xp7I56(8p_ zIk&dlm(2n&e^2q-k6QFxX8E(vx2)7!!u>m}0$frfcDQc0Xtt=@b4UyB>1Z0CXah(4 zkW`~)Sd2&T#Ez@xw3t1Jw>}xtP^YFY_!^#|rR%9Lxt$}(jr@@GY{7Q0KStzGJ8IE> zukNH`Wwqxa>ajb@4T4OJouz}eotb)p{<;O4KiwDi;2rDQkmotloS%r5`X6veY|DVY z;GZ)db(1jE7C0L-3L8(`v4w~zkXb4D zOpL;Su!$2^_r=q1a&k}`Iwx9%RfpN)r$ffR{Gce*ev1e>Z^(CXexUZxe_wE zb+Llh1G|<1Dqj_=ix+`cZ!>^Fw4Eu$<><(3XvkTWC-X)%mxG6*Cul)cvTv+I-R&~p z(PRLrfY`szkMhxB>5jyx{ubdme2}wyADmnUtMrRu=LttszwOz}w~!O&2e_|8U%?+g zKX>G9@-WhERt1Rx)TBnDlRizT^w?;D-!k6r1cB<^d4f|`q9tHUh^--r47`g;=Js9! zi;K>DlfVL8&|D+Cr8tYOyU|?uyPPHg-pQ$mHrAzCb;F?TJlEKXvFSbRV&#y zAD};DPu{d$zuluDl_7PxSqB{QYCFt~o#Wod5=`>=!>)5@&b(j0MzRzky}%mIKo@82 z7u&Q1>#GYH{Cg$unvXFwz-&y8SVzOTEGpf3L}?-6?d<#dhZVKCWjh^ZOGHr-#*SzNCr9%U^z32%Ba3 zG}g}>q3E%%RI)c(im@>N%5oo{VjFl~$$E6ahC=mvtQuguMcQse1Ksv~g`LJR-B4E* zk(LMzN3l_r~t!E00G_Qnw zPUhX<7FlcTqA+Y8({9?EzBO*;*Fl#|jVZlhx5X5_llnOKpBVDBMC{&C7ymP#FbPk^ zqoLej$5}n`WFOFmQRDtiK^--YBTh<==wa-|_!j$0q z&|6g0MEC|S+T?`eo+wKMX+m5E+l-Iv8zOXJ`)|T5ALWoFE7j?zF4u=tKczNPrf|Qw z6SwJ>&*Q!tBsJgeu&lSXlg+vF%;NOF4`bonim}&XKWbHd+EYt(9R!_+nmss>TDJvU#wACPy3HR4SJU0ZTtpaRP*Pmqev5$IygMOretMXR6IFO3 z=w;vN5PRZ0qIjK(SG6sjkzCi*)H>mkL;~R{D4isE^$WK^-==91K4)=j?jmB5gD|4<1hhK_n%mO3-lr$P7~b+!iN`hw-aoWqxBpz(>k1+}iz^ zTp2_e*#m}XqSDal@c)SGyf!`jolOSg1zJ{4{$uwp(Q zUQotEnj_xIY56_JPgj#a{rzi>=!90_V>Nz{Yj8_;4_K(a)0lyY-K7eB&k*1in$`ZW>+9I+66DA?Dn#`AIL3 zGR_g%;j&FDuf}^9@Z>sG!{37wd_t`p<2QQJqq(%?xfLtq2>S(%L~}4i0_iQUlo{M~ z$0d!a$0Q<%+-<7TSZkw?O`Nm~+3SpNnsV*HYt&u6H8WR)KSao9?Jpd#9OhZ4cyW# zpG1s(V#ztlnVnQ~{Y)+DPQH0Ceh~IEXS>DN~Wkb90Cn>LJ1DR7w+NLrjJU>>jPm1t5IPECW}aiM?yTxWWHc>=hAJd${%Db}D`h)?8Mjsk z40c8=5%%Gg2L)V0XyNP?HZ;!Es4}H=XnLG@;Paee4{Gou&C?#Aaa;8X3jY0SFtzbk z3k!SLZnQNo@qfnB`Z%4z-K9a76es^IdCN)0?-rS65{Srz@(tIFi%5^UvSt!TErgn6 zZa9}*6USgq$#B1slt-2Ly;`giCt;8TC^C4r#s3mNv))sECL}3J9$AgdWai0n9(+DV zet+}NZ)fLw>qeR4hbVf@r>Px5w_YQhox>eBH(}DV(O`<4KJJ0;!$55jy>YlwMJ0Z` z()k~H2A%w@m_Zy_%LLp)3{KQ{^gk>JFs|86yHEFzkIhWp3YLA&*aRQ&?xX)dh(PEV4kNaCe zhf+A-Me4#5AQ|gE0+Nb0+>1Ok1OlzSL7e(g!ztypshMwn-KkT;`O;#FUv+S~Oeh+& zi`@yQ)sFqN7bydt-CmQm-e^m`;~>_>E-K>D`^n*-+#-w1wqyOw;m)g9sj%0r!2aao zksTJ}rqN7q;35Rcoyvvvh2vtk5?@_4xxV?3vP(YVk<;3e>W&51tx1CyFATx0=UE^0 z-oKyk7U)6p7ux|npMdfdmSkn2|ATGeI$)*j_ter5u;;ETe}{e|?{e33#AaoUAvNtT zVte~v*X8BYPL3+QHGaYbC;3+}bQ7A`WcAO1e zKy-8FvKZ(?3o)6L{i(FN;TaP=$rEaRicICEx$FPhxNahkz0* zO%z@n8~D8$`l?J56jQxT2+=zEGZ%#6qfA_<6tanvauETGH`k zDjj9YaUYLZ+2bxt;|?5#erYRnfdCQ%PqR`V^?VDqp%&3oZ-e*n%rLgKl|sQi1N|mx zoJfS%$3WKHpuUrmOiZ+{c-lVR*NK_KFj;;hf$(3y;JXHR-pUA6xFGj_JDdKXXK4vL z`pf~>`nUh$(vbg=`-Kl%l8Fid!Rr^H7`>`T?rgZtxik=cs-IM;QsHk3bhn3Os2Euh z?~-?O9mZZGsG-(3jfmv_QUAF?X7#1AaI6vG9oplN%g(t0svg&cD*E7bTS@o>K86)K^yY3`z7gIQiOH5~7R}!V zV9?vI#7Fgd%$sc@etuR`G-+kB45q&PX;!qfGNk9@0icek0Px$b zh;Vc(u78r{69VEZVW#{d9)-POjFh9eaypjvR%bFHmwO~7rZkf`JBfU(cPX1@18MK2 z)D?@xbLPcT#VA4XLs_)Ob@~$hmd3Qy)=N~tT2Z9VqkDlW60qGw#)+v z^^Mwvg~6D}+g}g^i}&<2`5Q?=->)tYnY5c_kc`efuR-Wd>PF4_!pqwi$|#OMhjxmq z6x`EBZuW6RMDpEKC_Vc&?re(96d6a0;aI#2We&T0bu<0^e*i{J1>F+npTo)ic4e8w8e3T|u(4FvLJ6 z!?W8LhG(^0MCe)>(OrkiYo``D;@Oy>=Gg^+C{R`G6qpbMJ&R7Yq<6%!BZ^`qf;VfV z>Q}w@)QL!@7~-k6^si#xx}^u^xShaK&xhI-duYsjhmGh;lzE^3(9Q=$lLPsNN1m1? z3b9Rh_~!2pr&pj5NJA+-g;;Z!y~BdKp&!2Z35&{(StZbCo?Uy`NUgwHJnavM*DEuf z8xw_34#?G%&JEDbngwGas~Tgh)x?x5JW$!4FCXHp-?%;A{gJzS@6mA`K4f;&UG-0- zOj$`p58OFwso6r-tqMHnp|9+mzWA8PWVyrdsN;**w!;nW`Oq8>9-5o&0wg6< z+t;#M_Fd1#PEIU>gGbAN&!SwLc4yvD%>!3|pwHn^p1v;cQ~chmj)=Zlm3j?we zIP+x$d;VmhfL7BHSn<84{DmKke2jxD+!Npo@?%S5g(%XBmN@foyLWA@c$d|@(p)+g z<0lpp@ciKLt)skziR{U)jo8HYJ`C^!_)TS5VE4@^t9%v)rSo{O`=agHBcBKR8)*mC zxRx3FmPxA`=mcRLT-3Zqx5uuU4kT(7A?2^_NFl>n@I)Tb33%p6Nj~JU9Xv=#OPPUz zPnPfBt6I>UxfQ|Z^=ySf=^hOp27Pxqg(4y!TJK;e7D45tqHkCZM22VQ`kR}lKuGp5^h0N>c;jW{g%E!c6GDjU=bD+wUK|y^k+1Z^WwjNt$4P zmY#YhC`Nc>P0P!W3hymI4zWG?RZ_ofMx6Z*(%fM(9M@73J9{TLz?mj+A6~>k4`drQMWHNE_0C;Fvj(uwcfdy*lJU9{9-0Ka=5tbCX47gqlLWvm-13|wzK!=J5{T2=CmJ!v}hu&V^P%@Yt;P)(PXv5Hsk0|BJ zJ3zF6P-2lzah~9v=9O+jWI&M>ACkJV_<^^*f zF90)gN}bq+Z-GEJXmB_Hx>vQdps}fmsuJ@wx>w0CHFWWvctvZaWy*W&&fs zV7=l1?QEQ-Qp+;K0 zkdGu@yd?S(B{Iz{&t3m_HE>jyJMj6%H~X6#Q0@~j z&X_1=*Vznv4X7_)>677RH_s zD)a;o1#v}@mSDwmYHu^R6v1@`%Y2Jk@hQ<%^IM10ed+RYL|q=WpSZIW&`T}(H8&O) zuzSdz->ASQ4}aLkWbN{D zBwLw>FK|cy1n~&O8Nrr^dq?Dol-YtawOD5;M9=s89H1u;A2~PFb*#;T<9eWTX>t#h zJ?1_Jr;5IfYDY?GBNk=O{5k-5ioF(-ox0lruB0p!F_69Zafvti+mYV%MCE8WnY=h= zt4i`g6H57PRe;7G`PeR;5fQ=bCtyU}0c@NH^i;0r1{HB;1S4#vTB92IRN*~w*62di zYqpuQK8lfjLO;LaCU;mHbJ&KqCYh=m_>=A03*4SP++n|=vs;9<+pNq>&w7WGy*ayY zwh=^~_bpZ?tD_6JJue8?om9z9Pkdj-txR;*eLjJPmq+OGllhUSdt|xtGnd8n40tRY znKJZz;$aZU#IrxyOVBT)`Ix-WRLhreyYm4Cb3h3Y<0soObcZ?fP-CDV@^THHdC#sn zi_~$v^ywYsUhoy2CWts~gI|A_GYc3#!a+W+1IJMUxb_lM3o;p8eKX2Vd2--$8P(L3 zH6s0;yKNKQX?`L|?{Hp?Y88>lCwpqs6r5Fk=c`0Z2^a}pdC|yVC$<^gG=7U0xU$lk z{0|EO9cK;Sa;)8{~WFTDSbVGD=RA5nDWm>KUq!8O}L(qi#FX9dBnqc?h+R%rAXR z;(Z&(fzkiHH*B}^$BT5Ax|F{tEX>F3KmV|s%_pZ-EeueM2wg&pXM7HH%93CFdWsXw z$bz-*HEIaE2bQDaDlxjHM5p37wj7={b_9-~AgEkHC-;1FAm_k=aF^m4A$y=vqu&ag zb|i~rvO8v%Zhm%2acGN-q_cZY?T=QndHM>K#w;X-zSSZSBG>&1SD=RZMH(Aa_ z&93b8wo{Sc& z-;$dTdhtScmyA92+Ei_MiUfN~XaBrzk*{b6kim|kI$TJY0!k(~5kTg|e=G;u5ZJj@ z@q1KNFqBEYaBsJVW*~_z9k`Edh!gLSk=4SpM`}`$#8?$X16a}gn&rtXi5HD)XO7%m zTA}Us@G_0$G0R1F{*03`xQTSvhE89Of2dibrcra|aFrn0qQaacMY9qKc-*^j{p`?l zZo`X(5+`~xU=!pds8u++eIWpVziOvxj<|`8B5fiNU8SnsIslt3S0i%o;fFxL>_#*)0?3R_xgx3T!fD)Gi*9!(C zb@vud__X;EV0AHdfWq}a++9NENc?E&08G>Yl|Au&uSS1ghFKEIb&TQ1JjDSalxThf z?4uyxF4VI<`l?rIE(q0pEBj>4p<(^Z2{3@Vs$HKh{7=pvoB&(dj=?r_?aR&K{8H&T zCVT?mvte{k8>P3UiHXc#`otH&OPdI(Hy5=ON5KE_8oA8}$A#DpX8-ulRp0wU-9ONt zXXW;%g^ffN!EwAZo-M6_2m&Xam0B$)7==Y=C;V|I-IlGOE z%HT&HaTJD36bI+tHh^Ur*4S2V_x@V{1i0yWMV6OvtM!MIy;(pDM4WfZO+}Q`%SK$w zI=4{teTVn;UZY+lCZo#S2mAoZi^`x;q;VHs<=)@-Ab0|And*jz6|b&VN+V@Pgn6wr zY%nSrK5{A;!sC=v|NUhqxoXxjh6g$x;)6(yfa_QS&Y}ID$@r6Jp!w|ANMCdtGZBQ< z_UBj;F#0@H1pnOx0^9#O0FhTEEy<&TsFfTd4fTJv1TFwUiZS22Y7&6|o5hIu`R+bI zF92-%{cruNNB^gvD_NXJVAJP7&FmY!smpuf5uGxb{d{omeR4b_Md^~YvY05@*rHLY z#W!SHGzhuDAHA=Us4Wfk4V8IKfZq#=T909dFliQ%vY;3Ifnr3guQx43Uu`5Ksblau z>R=MkVDzH5jh!#P6s|f~^!-OYQ!!Xo`bSQ4x}~bton>P`aK{-EPD^AtRkrLV6A}5| z(s!WVUB?#qo*eEj353Hn%vA;riM zY$5Bl_$%S{k_V$a@hgzWMfk(f25SASn0%^O#%F5EuWy9Ahh!oOxCUpo`r*djO}^u~ zir=>+rs1c7-j4k;qHJLZ*4*vr7)+>lw!TqLD=>R~HRIx*c#nKHT+yo7K|@&V+MgXm?J|K2X6S5Kz$li||R zpOv+EQ4syQbW7Ha5Lsyda*^|qk==N!kq@VZ+{ zfBWHi&Reiawo&c>)&gWfyIH2KD5XB-$Z~h`{+#~4xuEhdJhwX>D9&29yBS@X{NwgEL zKT;}96tgX>{HD_{Atamx_x11BX}q+vt?%K)TP@#tkw@vN_xEPp5nvtUP|*HEoh~GW zoSaNH>)6Eid9-2~nF^zRxo0t$RItQHer;6*Kj>43qg^WF*GWc!B1z(I98}p|Ueo?j zb5Uk1mxv~43+Bro*Gj^t%59Rn%ne5;*L7HLvc`!}Pa16C%aseaOtiAMFepJusY-LA zAvLSUpXlHI&HS#Mw3EHb$lp*EFZO$~1sS%{C9IB%f=>kURnD>kM~40W(EwL(yIn42 zTSHbyavJK-vFe@9{aU&g3;oQ$tGWYEpzHbq~A(O{%j77jhe9-vT05s zDPjD^v|V~^Z$62kgDVQmQrE>H%YKf?86_>Sf;TPjADk!|rdgScaC2<^!Wn&gXPGg> z6}QQ(`ZX!)_2-91e+sNGj4Rvn43zu#qw{>J?s-1{V)s&tFRv>T@WjW$Y46V&aIBRv z)bvi@I_X4Hl!N0)=_mtesRY(6y}X=xgDB_?>$T3+W_3!Wxl-{zMO#F*edLMmh3C$s zxebwE*jeJ>nmMP`OE68~>Fx{BSr3hK&~(T(R|vRTZ_()rc<)72Z0uC=fgH7Pn~Vpt z=qY!ZV>!E zMN%AqSXrQjK4<)fB+%@r-LF%I>e!$r&CS%9zHD|#~t5|1WM<@ zyi>!=+m{%PWQYDTUe=%49a7`ObOLD;#sr2}2rvgW6Bb@vvh=gj;_2hIrT7Y;r}+K! zD4`Hg-(g7l{yLeL`aT#Gx!u04gN|Z{=CG}_ID%Tm9zju&faa`W2dIv#7M<**0XJnx zke@h^Z6e&chdug-nXZnvw$=cNpP$3pj}A33%c0g*>ExwlxA`@_Pv0KErow4(G((Fi z5S1OQgHmTY;SYR$ZN4OOd!yr9y7E#he*zv=#t(2h&vq)g<;&>Z=+vP(t&GsrfKAL2 zZfP#8k5oW^BVkIrR#BLRlp--|)izxRF_T{`Bk}ztCbb!!jZ-Q6wS-QAr60s=#~(kTtn z-5mnbf`mvTodOcl5-Kfy58wUnzy4Xe7RQ;6Q=$WX`Z9w~Uwo`-fQOG;}D&irfpOqn}lJ zk9bOGGW!E}p6pnc=MHOy2kOr7;=SoIqfzE!*r%l08973`0C*PL;$Nx}ok~I#Fn<); zD-N7HoLTK;UvBwhgCHvG2vhf+MoQ#ngb#0M-k1y2*s748dEA%*HPv})nfSoErC$Nl za~m7TMwO9|+; zUmN=rEaA47S$#xdec4K7tNt*rs;hZd%#R_sanV|@?I^UhPe8j>khMbeAk8dZ>O1}I z{ig;3w4I05Ry#z3FeeG>j`6Hfc|6#IRD@Q6a6WRsM#-~$ePg4v?`RLtR{ z>>WY(N3({0_kY)ymro13m+LR1@71`hqS_sHbvkGrPLq$eJb+8hw8StQcW|xmqPzdq zPer5Kp<8{CZI%orj9-Uj|7kJhrtl^$>94N3anoaE%<91#t57KBb!T=3?Kl(GPNc1b zP0*Bz{SCnZv7H}!_>QI8y??iX!IVz z4Ap>kwY}62y!5B7j)20KU5ej+$jrGzRqBO~=!y1Clii@Z{HcU;e>%-3t7#Nu5oSl< z8OZ6K=H--O;}kFR-`LAWdrdR`j!Uez`he}Bliw=J%QC~)2XN^u8pN;H|KeZ_On$JT z*dtBI6!G7s89A$&6LE1*+4xhy+Fseya_=1)eK<{-YNs2z>4o_Oq22=g$V4Vb-M7nE zb30U`K3mb>_JPI|r0f{cL z3S_V!Rh<%s#QJ?iTga+6NIEM8%9$Lm(Z49{mdH=aC1_W4=@to6H{Ym2|uRzzq^*Q(yXdB*`Xsa=Gxo}O> zDn@4ZB7{+-aA*qV_1wk6*@XpLw@k5JU!$~gGMc0vSzENB*O83%TN;IV=LzhjOb0iCy-8q^#G5_}x??hFxqEyh|wNgbY zU#Ho!#XpqdooR{fHvu0QaDM{ldKY*4Z?Il&OC{hZTGeW!wH>Sx*UauM4Tt%?LFUq( z8X)Kj3#OfvQiG4b8$tr8zOTW>x686eA&PcJea*61noG@)$ghM! zP!d#(hR*fyQX)a(|L99(Yxt(E*KGV8(IbamL(_{_kfN^!J&Nvg%0sDr4hpjsT>?$l+eX^ zY<6`;n(+GdV;pw-Wc0diTj72kljU))cVi25@3Vh%=h{0=c)*OuM5Ed)h3&}5$)%z{ zRAzJgHQUJToJ5G&`z^ci5yByHE$_lYBDURM{5fi_z_U88q}l8XW@GEevTA$^nmTz* zwHlpz2hsY%%-f6k3vJ$B=&u1UM=9F0;?*gyJyp5vx7c$>HCzBAf z7OKO$h44ax92jl5VtKcw^oHdrPV>^BAU1xfl0Dg4cG%@_7DqRih?wlXVUHT`Y@&N< zFYaZ=??o0>OkGzTdTbP@M)m1QE-d2S?reXkp7gJ{nBOCA%?sGI%MmYCRQOP}s`f~# zFrvf=Yc(Luzq;k&M=#g)zGC}OxO`9U89S6h9*0K1ce#l@5@q6|yiaXpW2Hz8FTA*% zIQ|(hKC!!t6|k~;$2+G4v6e*mD;82A(C{XKIoQg=Vw;J>@YC$ix0yRn4A!d~@PzE| zht-|2t(bD_!ueGQJz%n#Rmww?xgtS*2QVxH{D9I!CT>aF*l|GYPU@_H=w4z0Ua6m3 z@h57BiKtHs@!2B+Z);-03P`H3jTHikTWt1gPjTkv$HMKwx=7uj)n%8QQ==Bol9!v8 zAU}M97pF~O4^pb1o{f!ur1nz#MlNfD!wy>_h_+`+GnCSZ1(3%BAQm41dx`^DC4AX= z5!kR6^h_}KjNAG*u#&!f+qx=lTeJEQ1>){Meaa~~usr4iDD`9?6{B9(_xc0bP-*PF z+#%z@c7Y?pA_w4#=D^rPD+W7QV<$jy7udoPyBG{ec3mhBxm)gaLA$leoBuzFHRUGgz!pCu{F zS`Midsa>Zm%Cf6YWeZSsq!p}>Q(yAiE_5G6v*uVIe4!-?WEyO)cwUknQWOc8Tc0Cr3ouw&t@QFI??cKr@> znwlEC2Db^&4<0^za7x8H@Zs4zP^IrV)dq)xFKFy904v-B8qKf`X))D8lxs5(FN@0V zgQGOP$1WM=)PN%*;-gjRgwK-9P|%ulGXfkO-1X)1Nul25<)x=(K-An#0)@b8SUJ!) z&(bZJRm6=Bgl$!ncEX(+T_H#Py>BqkEmP!qJW2Rk$JryCg5Yk@2NZsf+E|UqR}}2Y za;~YFpt1#UjqK3g`q_~FotO@(n)_Bp(l|R_afMPGID?~4PbnwR(n7h+N3%?rhxZ^R zHy4`|0g>WObG(~kehSB6X@Z4p=3y=O=vr)y2`hdq*$S#V_ggh+xc2R|t6eh9{nl-A z_H=M5QSn9{dvi3QMk6S#egPYqe($aV7d6$k7(rRb;JlXH2p4vUS|EZFlSe%o+ z{(Q*vYxr01VxUz{w#{y;VRs;}KsVpQ>ymZD4K{OYzQSc2$I*qcDC6CvY7X9)cJkfP zs~-gWc%8TSFE)79q6*!rfWli$0w$FZBY_p0p*v~LK~>@nZ=A3c~C_4fWs=?`@nG8gUp zF2lBC%8wyHl;%PD*FJI`9j`8QW^5370cuB@rApAYfeM?Un#)mke`%{_^I7poMEpF$ zSl0$knbXjCc`N5YxG#rWe1Um}W#~nz+D)mLiF)Ei(&&ehRz@`%tyC=jXt!vz*_dGn zO_zUhO%@TRiBza919xM0NY+rjkrTqNx5_9~cPKNenI|1uk6+u%< z4{gJ5bssymmXNY7KcrPNOsQnw?99Y^C1epya6CEHc!_(C@3#EPHs%p`?b)AS`juWw zz(~aV?a*UmBp?N-I6su-_RqDj03^fnnyr5LKOxN^bjfF?#iZNe~m=31y?URKS-HSFSf(|+H^NltXTOzKy;@`-p~PFFKr`hE4**ME*eC&+m6UjxLGC!h zvMqm=okEq}%Pe8C3cV2~AH@m}-kbuzs~7`Pzd6r1ggPUJ@)1Su;>DnYIxjLOEt!_u z_b|WWRKU6ZY*a2>?#9=P_lds_$K|K8(IhV79 z8WnFE%uo1ivURbQ|HzjvFVJHSRi?y#%`!~$`(4MveK0r0RyO6{@~JA6T;<)ly>}4y zn^NDONHk2TQ%^PH#wL+w>uk^tCT!j^G^=M$?~vX)3k7v`k)Dq?&azUHu>`fBV|~?< z(Wu=-x|&u4TWQduSpd3+@lqsm*5WMP@B&h|J!(FrB`Ih zr1#%us~EFnU+3RyT8>;zPz8GMP?ITlHEZe>rVKssC)j|0he|(3S1Dy*QXSZd@v!HNlcMNq4 zCQ(`nQR0n#WupsY8Z%R2&UjXg8OF;w_VzgKOcGF2ZP6BILNatoW%XPU1oBlOE5N|31$aj7IhBQvUQp5e?KM&D-q@ zeGk(*FD!Zzb$$PwdiZ>5#Ec?4`WSH2xq~}Xim(N%l}X1MxSir%M_`=1Nm_WT8FAre zoj)I|q=fEShL>cQvz+9dMf?5B@?ad%%+k`ZsHkY%;*8$y(5dlf5?2>HvBpM%;l$rx zwivL8RK*~#r6@5OV^lVTdcaqd?3O-gVL!i`ZYny9SUIRlIn-Dx3SkaEb7LlB1D)k% zmmTCWO69KPRND=*{TF-m$SK7lPyBQ$}8QI>j)QwswV!tiQ0 zwY{RE!d~vzSRF+Xr}JuT`RMkb6Y|7KZ1t<(d9N9q1NP}Em)qEn;%FVmLNVh{*&MEZ zf3|~zj1W<`I9i`|TEf{)t|Utu*(WobOqz%(I5%dMsgC!5Sc^{$j$G%z*$mj>`#ilC z+RUWEs66s>NF?A_foPJFW?gWVc7^5MIXNHx@Cw=(c(?sMMPML%_aF|%!k$<|~&JtdvBoUkN$h$%j z&`7$a@4e*S*j(w+?l;}A(jj?MID+&bvTl!1$}lcl*3{oWHkT##m;Q@5V9`B?OuA>}h`EdFCt6-~hrSHBkoCQ{y(Ip?agE%F2 zJ|4}m+!1o$GpVRi8f1#p=4^~5eLmLix?!$^0cq77HnKENUSfR-Zbsx&b5$7pb8XlA ziR-VgwgUY(zUS$LBY#NQvsR^EW1EXj6iP)UmdZi>?zAk`i3c{T+J3OZUsUC^>%Xvl z_7y3O>}DU{Z)dYX%+YM^KJ>~`OJU2{NMyYH+9tM0INnj${cTn(0nNHgxeTTlt-+%o z)~W+red@Kk{PFBAQwd9er`0fNgg6h*+N@E!eCQ_*b~rNOA_MV8-d&^O?8JmiR5=7w zkkv%m@9KN?#o0)!_;k1an~Fpn5>xOOIIT8O`uASGFt@mPv3LL19Q-bEBQI9hY^~(? zt_6iwFQf#nyZ`SC7Lar-^WiCS=NegzMLwsaRj*^D8?FR5xwp@Wsm&MvbjZM zSK5*9J{v}qbM=vd+G@D`Q8V#90Re##SFrH!&wmV|*GAmP$*9xOsNYe&v;HjzgH`6W zAx^e{$3!o>0sI&lfk6K<4KB8DEZsE9XXr+%r6UMf_W9d~U2A3M?g^Bf^wg-VvUBTV zbe1Zs9uBg2$m}%p29WrxrKgWELskla_4u6oPgn8T2cEqfOaXMKADy3{b!MUL-NB#>3|gx2^w%RqkU) zATtiPBlaxFMC64YMR0Q>qFTLma3ILRK!~2SS?<(x4d5W81x9fy8=vTDXi^!<=l*51 z+DOH#>b81HV*dEDOzG-A(K{0!OE|=OeCo01r*#7$s&{+f5!X`P-aAM9)X zAFsNIDF%It6c&ORcO$Ca)#Tr?x5gNPVE-Jt=QN)%SXo)!PPgQLyxC~@2+U{J(F(Ui zXBGJ%ta}_6j{^4ULT{m!CxsEOC0$sEa=$vpfA&DAr)y3x ztfu6Hpb>8UV8$1c`T6;elam@Q8R2eV30>@NfSE|7_)i3Ww&1*`N%VAm!Y2@uS&-6* z`uWX$-N%#Am`^5+Yn?H1v|BxUt4)XxH>>kdz-&DG;g%q$dQNfd?lsSwNgfRz5NZ^F zqkww=zkknpQCe}s_B?ns;pt?<^^qOmO2SYp9O*N8vxDDC=B^o7$QWI_OKkK-_kO#d z9L1(Dbq+hR3{4Clbp^S87l^fBEK(SZzh8SZHB?D)rM?o!__dr)cT}*@SDwl zW_fvZFpDWaKY#RT(quO$76{i5oDvYY;YMmCQazoG1Siu=|xQ({6l#D zT^4c=!!raa$B{x(*c^f(^b;=c#wH>Gey9|w6i{&fdKxJs0ixU&FnoLw*;qs=KZV2N zLrk_meorLtB9aKBCsW%-UIbU29i@j}gGDyhU>F_c*u}$au!dsx8OmPsTTOk2Q_q|c z`)8>ScCRtF=Zoy^I}cPn|ied1bdg<9&#Pp}^rWYS0reU7c4;l<4e zRKeR!++C*W_e(4ec`!A~wDw*;iMS~IsRA;A_3(|-asv7HHKgPLoRl5Wj*L@Zw-y|6 zL>jqoaLZ6Fz5C9f*ui#xY!z6idwA-*?e z;-PWR^KI$HbGW;mY}xwi?ERdQp$5M|5dNZUsfD-l4j)FpB}s~(5&wQyl~l;TYe3T+R)43Yj?@}V3$HJFP1i#0-ScPEATM9WS3A!YYB{ctCVfeN zyZ-FjXi@m7^-5o%AA8-H1E(3B2ijH_tq(op_iG3oTGsRM?~S=eiSQ;@{}T2PC1hhe=x}XxDu%fiWi78CA!) zbniYo$Qz_~4nKISVuJF7b~lG;%FAjE@Ycri=WGUnwi1xjz|-zm1Io|I3Zy~n_+Ct~ z3gnhxUvsHAImvIN)(KGwPY5`hy!?0{N5uK{#HaZgfCy4tZ*C37DQ76RS)PSf7q+;K zv^jsf?fMof!o{;+b?!aquIcgR&F8iFadwyXTm&+q+Un|8;9Wa(A}FNOcT?0*bCi>n zEP;P95-5`<=i{zcmF0|5r?~_=2EZN9(99w@o6Co|2swR)mWM!4&>Sllkn*16>h55c zp#HNyK(ZivIe?<<3?EX~fEvbz{F0eXn|E&!W` zN!$^BKKa1`p!qC{=a%6m zF#Skh=>M-505<7D7B~()T5uw{ElCIsw9{Fv2Y07y#ti~zMj&inG`4t}e%>7w;q#X=-m7^xSPx1R&9$3|f9*PjXuVj@Lq z>2Q%6a2yxk=)Qj;Nv{T|qO3Y$+|?!wZgxAuXl7JRxM)NdkDBdX6G(E&DDjB5kG!$j z;b)Mto`I)=!M?T0B$YqHv&8argYI4sgg*f;nkCk(eN7e6YGpGtjcEN#lkz=2e z*?|FKAC|*m%AeqyOO?+r%FOH`3{>c(5hx{+IYO6j4iU?rrsI-JkPaQIo@gebT-%yD zhOihm=O2|+`F5og%_WGb>h;K(N1bq%-$E*cSs0q5o_TyD#%68}VT zNp;LKt|ANIKDn}^ay_zN5A^AYZx}cI+gf1*XD6Cf#MGqt3{U@- z4=+^2A1oPl?;ry0Uu47b`zEYUph9?Ie#QlWQdr)rI-jtzNn>Y1niM5npNYvRp^)U! zgmJ1JZ;&0BEo71`b2vgI$^<5vMOPsL1=u z+jZr_2$A_%O<#o9i0UTx>;&V9^0x#isg_*bP-8?}e>fwPL?ZvxmvW*s7ZEUXDK=IAv0+D5&{?R+B3v@&3=P3Y zTWZ2y#*rILDV+y4pIh54P@>Ycil$30UkN&!Oh}x3A09}YR3WhY7|Pp7zTVB!+K`B2 zP1uB!lgOfij_EPW%ZnNPPpxH>l%n+ZlZT^X6Fa^voD5uHRcJ}Ws})=_)6~g0koTEK zXd0i;xgKjBe|}KMum`qeRA(>o^Z+0GgvN3veZyX+oCpDKw)<#o{UuMF0t%!u32>5Uj6Qn0b>T#{3)a{0gI@(aFmM@l`Rcm-a*=8 zT>VkrK6h8vLst!b+WDY*mVgA=@dY_uTtZKegoNNhpJSn}U!T;N-f%&eIQx-LYB&D z6CGoWyEWCE`yt>K1(_IXM7bxfg54sQEE?1Pj_z-~M<{z&`Xje2Te#P_7A& z%#<5pEK?v~w8>?{vIBoFLW7iQ_KShF%q&j9dN&A0ZZ>PAM@6@r7kkmhe{Cc0 za^gv$TqnDce8Dp8^#ICTD&uy<)^EDbJeeYf?c2WF1b7(*KH)8NiH+6Q9DZ6fItb2sWm}lsTXSD_=TWP;@HT^Jc*$#;|Nl;_VqJ>JzMb|)Q2wz4wzwWVj zu?x6P?;d%Rp;$a3*b|kVC2B|Vj9gUJsQOVHnlp)A!$d*`h89~!>TJ`a43;P3cqo?( z4>#kCAGbuA$L7DuN(`7ed*JgsJ+H)MZ^x7~7RfDAe%nCgBq#2xK|s``K2q`>r1mCe z;04f}lG>}h!00I7oDr|6qSY|Yl#vCP zn`x_bnFVrINgArElyZYiobY+R4XPz6SIysiB)vcgxNqy^3oZqTipegl>OqggaN4s* z^q&>Ffz?exZ#;Eu_)HO>zV-@;kBw~lqX@k28jHt&q z^rb?K#CW!SRWw02-xRd`%qAI$lg(nnsSwIxbt*z;q$DEY#`6xH;adbyvPI=Qu_hj= zc|T?t%pOWO0QfX2oW59Job7l6&p?JbQl7YA+xe}Pv-3yMNrXe1S=tB|d{UY9r=K1{ zKb8AS8HxP6SnR|*>%aSwoiH1G&Rtwi=7U}o!r10(uk?QwbdQYYIe2-az8k=D%V<}J z8S>{5e;hUU9jKZY}N2~nbyL2O@nVT)2-~arGMg9dx>%Lrk%IXV>;K(l%^*jG|I8W@-}8f>V~F=MXh&y=Zd`@bSPCXYLKElk)UuJ?^F?-LT5b zc-;=$^vEDb48A5C+-p1#Ed|Q)#Ks|!H*83dVI%7$<<*bATqYR`M-`w`mx^+vT=FCC zpuJ}%FFm-)nLE0WEfDmPN{ETtLGihU_#%@N*qr zyk5wx)a%ZqEaw{}b_Rc0T)2*CsLEWNa1wkO1aLEiCsARL5RhN0ABYi)V7{Qz;)>h* z#Nyia*NCJH$jD$UQ{iKR`*Yx-67)CBm`ylnZ2Fu1eZSOYsCKfLx&5@puC=d_-pM{s z#yg#CD}dxky!}!wzCCvtstym#JU0blZ66fxim3trb0kupft%jr z9w4;GW-*}g`u*uoQj1%SzF4izQi}7E_)L+#Fr1qN*Vh)!3SY^Ie__!_3M%lx{0ui8 zeXj7I#eoYr7RG3^D#6nLZgT6mg`b#63!O7!#M$gL$z<^v)#)d4pmn%U=@5(lf}0iv z8RMV9|4=c?1-Sq`PVq;4N;MVQ^<><%aAV~U?%G;=J~$88!~9awS=5mz8I#I z^*;G;t0?Z-Tj4Kb(e1c{aNA;cpOT&3INRWCw@u@zOwFRWA4Nc^l|*hIm;D|vL=tt) zaHqMM8FE3u8QKU`VIY9x04D@F8yC{k*^si@_-Oo>nF0Y`opQD9wfJGX_vZI4k>_|a zoVE-J(GI22GK66(_AKeSsPM(Q#T5cigAU@fs!~R z$a<@#KuBs8czM+!tZHKs#;IC0B^dxjcaU?78tbX0!SEYTrf>P!HT&@#XFkFU`J4mB z1RmfYn7C1-A}_uKSMEf_2S@vEY_>215_Qiq^fWpcz7aVr*iU`mFAXr16y_2s)h3dX z!b`omW~q!&jCoN5#o5@>3o*{2|FG)pL$AFi+r9zUHbPUL!!MYF}@;j6OqBAmJiS9z0U2ck;fu8 z;xiZ^T1^c7JHqy_A)wH;-3Al#?61%4#k=2$Eqy4E8YYv5^yexS%ol{2;|8K*@d*$d zvHxdyB>v@2%N;3(u55NF@g7H=Op3d0cR%5_p#eGbZc`|5jWlT_)5uX z*M~S6|IYxQj!~8aM_VzDG5+fgk*N#EL#Td|yA*2p&sNJ6(uBm~eJ~_I!^PGkG(WQj zR{JJ#R!EX4uZb>;QRaQCxMQJO?@RE66g1#JVjWfnc2|~|6MG`-2&Z=%ct2i4J z=E5d*D%8O4MTTKTmtfDJ(5~p5f9-F#%NBJL94J&BMA_*MGv~XKc&qWSQNiF2iC*T? z)4F2m#jSmn?TebLQJli4GY*IPfh(u0s6M3wERQ~W|0fLLVp0V0fz1!dsut)oO!AS^ zR1{n?4y_`tyh-1RQqgV}58XnF%^w?ee+@GSdPfzNUojQJw~`-XA5fyQi~qx9nyWl7 zVUasN9%#8Npd;c%U8~fOJj7IUoMz0n4TQ{m5IrSn5z!U*kcN}vm}V1f#B3e=;ZO+g z?N8@>$TREE3*U^a%#zo8*S4 z;^|^Rx_2wk?`C}Pl?KI<{MvFg(p$QzJax3BxGUMfUcbN1GQ89d)Gf#wZD$0lWhDP? zF`9T!%RTQ9Cv|lu*zems&ubZfg`~i3vJtF{qQor?Z?l?lIcl8}Vb)WWN$baTw`t|G zF9nUYK=k{l0!Q}>{dw-8bRA#qK~vAxQqA%WJ`$D6=QPr2vs*YeF5H!Vr7zLwatcBK z|0YqJF-)dJ$QLzycFIrC*EUXA$=Mx`n(asJ4f#oV>0!=ysh?fj!9>(UZJ&on>fbfST4zw6f0ARxK49pOBB`^|?=~FGK#g09 z)sckO{J?2d$)ovBw{)Ij$3C=*0$IRK;nGH+<*?W2)VzyVRdjlHHX}~?OWo~vE>_dX zRZjAh5TNT4^VhqJqJ;gcWzfZA87zVGp7 zswY!wTK)oOYJ;;OX}1qeHH9S3AcI@US$+zD690Lw!Mim`PfwI7D zFr#6Q(OF&-%!X|Au`kQGGRq|A=UI?4p4uxeauj`;lKJRDxSZrb3IAh!l^#kZnh}8w z^N3rv_%M`TgSlGa6)$S7QKvHli@6b63REc=v|TOO3jKJ+nI*!KzgXT_z0YhO@{Esj z=E{B_c@bbgG0D7hlR!-}UxSR3a%mHHGIRKkUf~XojbRermWCv@5byYNcE$@ORxDA$Xi{sJhPJcU5K${u}Qo8njY%kA`w zg;Rq0>)5H%%e)eW5@HFI5|SZN-aFpuhG?}ZO>n$7GnMUd<;Y@%d=n~hTr3n3N{sRl zDrXCJL;+}~`lKhMk+UG+EPFAAzYLMgyRx400%}1H&kL0t2vrtW!jUfaW@zcz$sNW_ z;HhO&q_8!4LDYI|TUH?GgK969`FQX3L&>gzsCd5Si?IW&lCQJE*Q zgsbmy72l8Yi|wG8+Bq#EV+JUk;58y?Pw`j%}ifE-&?vZ?cHg zv%Lo{&8ISPmxT_}9xoi1bpg*El*k4_*%02Qr z_rb`%V4mjSvVM-1)aykdfA+;0u4Lw8Pwi;*cg}di*~Y*-pZawVby*GtCT=It!=qKn zBvKTMSsfxH_pJKtEI7hIfDUsCXwJ5P8<8I9++iMJRB5aBz&7Y0kz#W&o%dxoK%&Qu z2mAx}N-Osbm6EuB{jbBo1)PCSYU~^865Bo0PLROmwzRz~Wh4gpjXs!UshPQy=zWt+ zGQ-*W8V17G!Dyq7M7kt<7;;(fpD)t{Nx!<*YX)xiWa;^~L}}{h^c>EO8b5-;_SnzR z)@^_P_zJGTcaKE&wN?_Mjd_~;C6P+w^gqJw(g_?Vp|4{iTD>Fnr@!*C0%79vwFmzY zoZ*0>2}13g4P48x-?ZZjFbRB*LhN0-q-aet+8;MtL?7)KwZU^=OeF(fU3<@P5SyyCvHOwS5cul*t%NZ(lFF z(=yOLi^vZ9kM!Vvb^v5ysOeC&b6?tX#T2SyNPr15+a~CEhTVwLrB8g+rl9~za?=vX zi9w|1kGq=R@cIL$2C)oTwceu&UFn;gx7zFfUtqUx;N#bnVt$JY+J>INSY9jW)M;&{ z>99IP91=IIq;hmIJd7ewt;39FZbR_H3Mrnl^(kx_&egdQ9m0J1VB|HlIM!?oS7<_} z@F2~2WBcm8p|6kjos`Ey1!--xA^?(q)J{AP9~HYrc-CAMBn;|I2H8NJG6uHVgpdh1 zNjW>S6SA8`0P$B<8QD7Cd7~%a_4`MdhTcaJ+wrVWV6Jd(M)Pp+`gj&MT>NWSe}uab z{J7VcL>;9BHb~-bvbU;#{M?}0JHr~~h$N(L1J)66f^G&t_zo%N46c_Rlk zzllH>(`)lr&r9+((X99o((l+g;DVn0IB`#qnbyW3kK zNEf-XZ;^;&=$heGNlA&7l8Btl-lVYs;CKHZrC+DPQBdpRLH;XR(@bi?>PV2i8)4KE z^-R#bA*`|!HmY`EO1cNju#5!foO+BYMJoI?$3tuKy{<%yRe1EutXY93Cua$X=KN%g zmLpBeSvqG`&!ET5E%FQxQMS5_{TB;hq-UGCO-ip|$NhA1bUZR|vB#nGJD`DlNf2C* zPG>WGw)bE>2`_}XZ2NBGN#gl>$d~3RiCpfPt~@Py&TSnB+Nx%Fh4=gJEK<8prj2~i zF#vJZbMOvA$%ODIU?#kVa4BRKOp^WyzoSm#EqH6ub0!}(jAdA%*R!5ICUuZsJyOu+ z$F3pXiwJOOGnMIwEb|I)AN&uohO3VYhx_ZAA!kR=0%Z^mWcu%biPK6;4$jST3)EX$ z!#x|3cIoYAc#cSb*Un4Gn4u=~TaOWMP={LqwB9*coh@~_*&(vfGXU`drC#Mr%^c1# zs)e`%&J@*d8#d9_Q4OcuK`tyiPgH_CMH~Z>c(9`_Z$*zoxvYl=i9f0@Rux9I-4b?- zQdQ?Y8Vg#*msBPC5)i+JflZWFLswQze)#|Ce!G`#2Z4Z)R#jci-5R7Uu`lMgH~!qc z5j|NkdL$w$nmS-T6i+hx)c(T*O=v0TF^`{m$wj@oPzA#wBy*j^TZ2O~+JYMtx$!;r zq4PvO_qMyl*{=?koHX4?-wwi%Xd#DKzj&4(xH)qqb|nmyR;N zWYgsDgDg42{aWC;PbX)z*$v2gutiB2m(SvBUZoV=uS-Z-u3iZe0jyE0XRrsj`;uqI zeO{C|*fU;v^;xliArT}4*b?$R5`)ZbV#oMPrEKc$f;T#i!iq2!VQad0iCFjKrqXpUxc)Q6BPp@mHNt<*_V4etyC9|eF`D*p9 zmIy~qYLnqqin@Z9GLSB2=EY#18=X>rRm1h~>R^^^v+RbhkY-DR7BGQB%*qx@&~Nm9 z`={eT{{X#(j;rRqCOcdX50vbfq$Fxa z)>&}YB!m)`V9=qiQctyx=$M^cT)dps;n$L<*wqnJt37*V-9xegTU**fwMb+b$-j9=~6ZoYj$7z~zje`Gf;v@03@a;%cKm2eSf5fBo5 zzxrqEIClre=SeYG@wl4kR-bA7UEbnDfqRWGjcr6UD{|5S9)?d(cYLad^q=OAJuBvs zKn<%+0_Dhmy-M-X0ns$s?}OR!cuSXL(+c{dAhw$I?K%Rl#5%Fa2cqp(r`?T9Fr#w@ zrukuYg0ByQrvCk{7-+@kwK(_@YICMo7{Tl z3IBh+0DBL#FF#S|ZpXYr=%%$8M2@SKRrj;TPg>hAR`eTaq%kdVhL@8VdF!|QIfq}u}C{v-CskZj%8dxxT z4z0Z|Ya(fxneXkPP+^#nNaM2)2MY+V=B}i4VYQ!%Zm(eem{$a9pXrP{+B{}ZFGqFq>+LmV48(psl>N8cm(8SA2muA)5G``D?tJmerb$!v&)zoTS3W>~-d z)uP?Ux2IN*{Zxa^S`{BQkgV)+E*uNlac9_V=8-Kom&4oPtd& zzH@HW^_JT_;B;_dcXwB?X0`X#8vMrf_h~$)2mI_z;KYdZWgi`ldns->mruM!jZ2Lgy)}WUB<5Y4{>kg7 zB)bRLIRcvd(&Fa}{hWq>#`e{$es|?zZ{aF(PYzy<;$2iPM4PGT&b=|^TZvuLBi|fk z^6);87h|kex?x?eXS}zS7>B+aM60XUT5Wlu551KUA8}|c4KiYpqneL^ANlRSxUeuN zj}XoU#%zKG$rABC1ltRy7`@p0-r>2gzde+od+65E+PZeJXzKdF5v40*Xh_6#Iq=J? zfB-Y*cWkTz!<~@L_drf`Y(?h+FnW5{f;gQ9g$onCy2mDshcuZ=NSlnPaUZ>n~YUD zKuzSWOwYA^+;AlwQwi6$3Z+9K;kci+gZh?5upcHNaln}fx#FIC z|8b47f*lpP`3F``&W6x&G6@hKAYABDNFm{Q=el3_$Ps_{5yFhZ4C+bQbB#nbYBY#@ z6T({-%*@+U%@2el%2^%T{`hxMa5cYVOg?RwXKOa~R4if8n2hpMTb50aC5YqZQM}4= zB3d)|7cwDElFZG*IAuiZp&xq0p9QH?NUTz3cFK`^ockJywGV`QQrOPp!4oAU!83@I zF)|;cg~~d9xhfD6n0IbuFx-Nybd`16dH?!{#OJs0Wl4g%e(F1LNsioFjOf0Ks54j; z&4o0J`M>`yEB){b-;jz<%|)pr`)qH(KHrf7%TPgI>1e@M0vqng!E)-)X={a1{wL!d zFBTyTN!bWP-3wj&^1R(66goUFZ|_q!2^PWD2Q}pWY`tK{g^t*bcQPqfIvxXRM0AL{ zyt*E(^{PF}`&x9Zgp+1Mv1_4y@m6E*7w~!?a<#c#L+EdUf{cXkx5xQ^*m{`Tp#rI* zur`aLq9B#7a2nMcW~ht9Hqggpm}S7#n%cI^=wlMg3j}&a{BxGK)c7H6jB=^=^}|gr zo8eRn-Ry8P&6a&%v!g%Q^|w-EnQWz<5Tc^-#uUm+AW9CHP*+e=%Ts=p)E7olIgua0j+gb)ay$$H?IxTcY!r8}=3VhZP~)v-A9#xJg$-I< zh|$OY{RI`14c@x%EB3&KipmEjH1I0Ay%B2k^JUm)u_5Z#V1OGmCw-I{oPs*#SCp2LtC-kPLxy1$Spe6VwzG@#kSAWHAxPE8) zPJm4Ko;{@Zso-&O>sBXrEr^C1>+weHQO9?7=69}8H&)l@G^WL=ZDc-3=;NJ>si~Po zZ1NR5Sm`gqEnXG%Olnl7&RGNoK9HP~1kmhAX=-9cVo@b#S_F}lDkSJE)|s|r_D5kU zg6ApykGUiIe+Jb=$xC?1hCv`aEcQDwuWzVn>V6;<#u~Mp4csZLM=N0VQvGGgR|{(> z|1^jKb|B8ChJ_3$OI?cR^zfrPC>VbJkAnkamTRAt%*?B+<3Hi1g_HFk$#3Olkz;vCSMP*sa&?0SnLLp#7pb$+Kl8}H0lKSw0^vJ#C z#{bP!T-)sWmmSe}CLk#@GkPGRA%N2Ot+2_+$&)WpuqliSJP3k(RML0?erNyQrAWwD z>T#g$-M;Q#*;A}#OE5sC;{`PhG4!FNd)yFXkT+B-)aT(=oZOn9tuec=+lKr)4#M$E zwn-Gdh@Bg<=$RgI`Ltqp7T*b0mz@$->k2ad2+m`JHz$VAm0tXKMRQK`RstRbZ<}Nv zxV#!MW8G_0-@TDMtO!2K!EqoLgToQqQPH&j30*#gUpjC8j?TH2-spfEN8xzBGwE}- zIgF~39n*EOTT)iGrzjIK)8u11RiM-cnB=*M;S}ZH&*6I-dhDM4*^1urOi>`fpJcu^ zLIAb#dkZd`V}ALe|1d9lM3NUoRb6Jw07Ui^KuR!~F3|v@AM=atu9v-WKqtQ+-vS27 zW!dg@{z)QX(u3&NjYMp`Rm_|N_{G@RSo6c#=oYaEVJtZC2^5Y?;p;j z_RkSGIYEtlPOD?$h?6}~B4i_sActhIjS0nxiESIs2|~D|D#ogo9p@HduXiNsfeJ2dgLO?FT1oYbh`xdtbooIWVm0K>8o2cbq4;Ph7XC zk%qWfK;sW6I!DAc92^a90&-H|H5U$4VOB>U_46w(w`?Q<_ibQ&V|= z!7nb+>i=Zr#{gahj3K`(`|cf~q~oN#qYz%WoXgv9L$+UkEjyv$gaHkw&G+~AJODpp zQp<|U*7xDX?!09>TcW0Owxz)S?j&^5x7K?z{}IS%N(#W_cmZ|K)~o8QB&(eBG!kZ;WM2in+*^=-KzzC#j(B!N3e}N z>*G#LBszSovnPu56x-~@3wmJtZet%p-4SfFYJ}P8&kGSg?Iy+<+qu!=(_{4UuY+Ce4!jQ757Y30Gb4$Rzfh( z&Yk2xk_VQ6poGpSb2KEnK{SEvVkdvM0#LF-Z(E;|R4|G^d1}^+v7|R<6T;z!51s=x zX8A}W!h=x9rqO=M`}tpa2i*SMu}p9K2pfAMg#c)N@oHn0r^6rmTy4)!_a5szlWofn zuYpsGZiX#VO@4Fx1<0`A*oa9+ol^hhS}{I!7d`UWuL#7x%gfUybJ>ujN>EdOG-SRT{vqsuEwHtv-zx6ng=<=ZABr zy=hjvkDvIyr4l{o^k;NYW6bH)Y)l3tM(~784;c3i6 z^4rVceoA$@rY=_qLVDge61e_kW3#s%JwyZy`~^Uo zeD8ki`rW-s`I#9RX2uH&8G|^9WWLOfqYwqqF4g1t@wx_x5@O3U$#d?*8|put=$Gwm zWDWuxna zO?9Nz;pYcZf7{2?{Od!Ac<6LCY|&i0p3 zR#vWdSdnORUN7-vP9S>q$KFDU{`#JnIqSw3`m0G9Er?|T5}| z@($UPW@RrGElzS-INOLx{~p&{fIyJ8-*c;F(Ga?czw-Q zfC!!s(q(;eky2q1aO5dQqMPWkehp7`?8Ate@Mm}^KAIMWo|7w0^`{+H&YATC>hY&A z*8~a7EN>Xc2CpW?q;j29VbPLiruF}ikb@A$zZxWrn>)At%}j}BPm2}?;KZd4$!B3D zIBOf5_3gv?prQ^5pZ$y7Z^$74*)cRSiv6hIz82rb<2YXP<=D_-g1caD{c~#M3ITfV zeTMA`kV7-F^4uN_E^!h2TV2_K&hVd?+r4Z2pP$;Yn||+Z0`%zJ@}McNJz>Ok_dJjot*wBA@`8cF*l4k;)>WzRMsyU{$XLGOxoze5-m=Pg5EKwzl_b#Pue<=H z?7W{;{BycPQrXwnwXhzv_bx?<7pDkfUXDn%S?)}G3@CD&k?w7A$?&7;qClyt!k1RHF5UW;U zL&xg^D2Oir&iptM;=1hNCVo}vPYxo$(@8rvrguOr#dbPdOTFK^<_`UZGW5JDvZE35 zyZMeL4y%Qd_HkCRueX>C=29B9(CORnvA7pjWsxl7-e)VtAa9uQ#`2AGtBY7YlEAIj z-A-zqqdE1s>5VUEQK4cas_U z+U3N=;CV+X_{wzdBTgGRQPp~VLJnX+Hv(mFcYSGd24X=|9^I$4Ud7m+eOEf6jg>Xe z^JjRF#Cc@qP4Dp&l$DVj1X9DIjsawmi;D~6+?7}$hvk2=nEVZb0?&>IgzO~zr zwWEVqJ{myse&e~F8P>lMvq79$n07KQ>Uph)$uK=PckZ+?093Ks9%92j*4WNf1{xsn zW}XFNaCP$|2LlbH3e#&+tHB~iKy@f?soQ}3W}=R0aK(WyVbb_ z5xtfbywj_RNWzgnwU(yWn{>#gpqU#yktOvAFyAOvt3(M*AtHnuHVl}wr>=M$3X{Qm z&`y-Ih#PA`2-jnA&5{xmBY5V3#R=T$ZS+-#3?ni%o%`o_Q*|oJGYrMGE-Z$!LvCU0 zR8j~!`B;0t&fSeiUz<@f)wPLfT5i(bSEA5`*@!8PM15#bO1heyjrCy>(0~X21Cxcq z9+YQX*xkq(&Hsqn`=qpvIp@mzIY{#12*-Ng0}U%VyZ`dFVQlB)K9Z6sE-u>m&6k6} zwG_`)RXC$W99_AxVJEk*m!&)z0%fsL1UYpd+DTE0fJ9L|QyM8kf+Vg_S-DU5{D}W~R#Tr07N< z`Kifl`d@UjPoFhNs$*EOBR)pO#+SHH<`W`Y8dI5tLMMit6p)dH6%{eP5)@o-2Ts!l zh_eQ@SejrRlmALfUmJVGItXMfPY3EY@Lv(0#KymG~r|K}$kfG^Ab}AfK8I1s% zIi^#9oUziTK~a`5sLgl()oB2VbgF(&Hs_;QW#_3Es4Kg32IhF4nIUSxdtT?UotqAV z&Q-P`cY2>GSuE{#atxRm`N4lB;sAjjj)s|?Hn3iUK-iQb!S4+{8OtM0%_q3~q>4Lk z|NRh04^UqUGcEcMkuBY7E1m=igT3(2j100D{?u&@eqprS&yzT@g9v(WlObU}x5ac> z^+&l7?nci6gg7myPA$R#wQEs05J0wcn?4(8dfsT;hs$kUE$9`FuuB8V<)32h$6t@< zapj4EdGQX>-r$5Dc%|pB?DvVpLC79b7a!`KAJt*Pj}vw)$C3EZ3bZQZ5L<$@nJ^Cv z-I8~#-HG|&&cDexoa$~HPO6;-kvG)rGO#c2I1Q5ytK;BSK1d9`5Oh{7e`Jex(@mN1G`77qm0nq-AtA;9* zl@4E0|1ZN2e}Df*0HK%Wx^4ix_3y4@(4Dz40|6SoERE8kl`D1uQTn+s%Xzgr5$ydBOp$Ky+?Kkj2t=Cn3mSVC z#G!VMAAa}R`0}5<8=9~p;jvB(Z)h+8Ox{I}ThIHZs}o3Rqzjx-J4Zb^dy04T!H=KG zL-uC!_X@KAqh!Jm3aIUTLPg(y&qZh0BG?e`0mfF52Erthhrvf|n1RUgf zv#F23wqPS?rBiltOH^ezPVGGhAqvamwsY*+e*QQP0-Tp5TpRoG;r!QNjoF|hkZP{} zsWDT|*jaZPjQl(LH&?*AnEjB8NG1PyPKd(epk}a^i5l233@o9+2Ue!-+nbN2Q=!z6Yhjwv({nvO z9q&#BIy~a*-*L?K=-(aw_HLmXnJwVE{8tK2$1kb)sf`EOZIa`ISN8!A%lE{g#;2ju zfeFsg8Z`=|X$%#ZOUOO}w0!MUvy(u;T)xs`{&KMj)|tAW%Ynyd&Nm)-yIcD_Xhn6s z+Mw7OVlUt<;s4n2dJD_y8FU}>Hz?as!DIll?QE~SSy)2U%J|Op;p8uO z?ryvTQ_TGm_4>EWuTJy-#z1lLXl^;iC7}cy1))NY79zBN({Fqy$#&{mu+4o8>9xtm zw>;*huf%SGr3Ix$p#3Li$(q+Pr83C;;xt~5Q&%zsbOd>m50xJ8?)4&gfV9*ruc)Kga}0jW2cAS|~YzV|qs zbhun`yuu-nwQ(Hi+;Gs1++Xp*H;P^f_BYfFbhx}&{il(C5?ppO@oOXD^7Xg~#?koO zS-=fY=+SB%Ev0P*mjU$dGv#IM?cH*Q0~z|=TD%ev=(emg`CX){Q}PorP2RE=AsPOf z+2Z4n+Kh6@+Y){)*tbmwo%aZaFtJdXi^bS$X~HX(0nDb1^f#n|Z0Q5Tp*zsz z)q}lY8B6r|M4vG^@*TsG@KqS8$le`8dZ>)Ez0t00o2p*Qaxl81AsZuI~TofPK-x;!6qGD0*e~gbGE}JJt3K=1iw^7Y)>hNQ!gt>dI<#NesXdpV#4tWKIPP< z;Fk>CUb;mBBBpQNNZfD7Aj6|l8QtkU%VALnA$sBF2wl6WM#!KLj|Y9o4+QgM1dty! z_pr}!u51Z#{%S$>=+PUlH6q*^9&oOX_>TB3-b>UIz()Cx`g#m-n2lVBgHB@A2NGj2 zv&8x3dy!51b(gyO#-2G-g*9G&^=9eTPI#@h^Vc6gX)t9Y;LS)1*f;_rUQPv8R_I@h z*mOAlnHX1fb{^pnW1H7QNd4}=GG^2Y|M(6wJ|s7-3^cvXwv^=N+|t%F@UidiQ6G5G z8Xq8XXcYvn#f)>oJ4QjK?D*R>xVENgdLHanm{ICO#$m0<$YUt7`~4Xt3K$NA@bkek z5lFo*-MZC|MLm2p+4B%4I->DcU|dod!i}-w+IDS|u?e`Fj+zK$wn;yyJ!cm$Cf>fR zeM#gTfO{5iTV~tnA*F617h=iNr3r}8{}sNG!U_QmJPtX8O~lG%wRdIY`*9Cxl)Wt= zZg+GZJq+T2Hw6@RRXaZ2F*g=) zvfCO@9R!9{SIt4hKh|8SXbF7Hry8FUP}@n8tldRgyjIE45!R#vW-n(J$5}LZG3ppt z9kT1>WjHo5np!D7_&0HJx?y?M=7!M9O6e?HrT31%f*~03BKPD*sjl%X5@6T4G6YxN zs?+%IuW#ou(Gs!N$2 zO^flt41ud9;gOL+mwvKT!eibtlVwS2rap9?s4H>#;~o;bL;S z(Ipd`o0LYb>^Yw-SicGncEwnHs8xF!4HbT|sMJ6XGY$Lu)UC@r z{8AdeTIWlSj*LPjsVbtmRLz5{F{l?5za7o;9%o8?*H%2bXfM($ zXQ(lI@7%#%#514aR6%JSJ6c4-Qi4(ItEpt)oZfb&fI8V>Y=$oESRRj#jY0vUC?a5P zAoR26)V8!R6tut~_n6fP?4D=PS~p>3yj2wG3?q`Jh0hHs-pEa*cNZPe-XGXup|)Lm z`*R=5%+Nviy)bDB$ty%TZF=*D+$d&9z%7G0VAVD}3#C3&;E!+1Rr&@4;arcK$b(`;eO#+4m48IS zstwN@(#OL}Vl5c7Q}+ITHK=3&4iGR+VQ})IjLzmSrCt|_cZKcu3q}Q-FT>>ECh&;Rwg%(|FSyVt9_yvzJVJ$*lU zD&KEr%hGoNOJAl*D)-4&vIplQtQBDsqC#JWM1V&Z zYW`0o^V?Wje1Vt#x}zfRCGJ|*{XP=f6JFa!4& zbFaq+8LT}w&`Bfs%j@4IWy{P4F!@J4HQXWjTVOMkdXN1@6PMeECse4HcQY)ffMyhE)&(v z{|NXZV~=(HQ!{P=?(ua1qfQ~&v|4|&|0N&648KhJUct5AK|3i?IVsn9TxDrOy(r{& zeUFqL6+zvCnpMY4PlESW+`C3vnu@QCA^JuAg$GUaxCUAUIw`Pt!TOwS$#BQYTNDts z$%IzeXXoUuOED4~x}w5~0?}=42AO>klFM`wPD^Bl9v*_g+-qQsjrRlpm%#m@Vt~BxaAuzD_GD3mV+N>6!PQ3N(fJ%I2n09}r)^ zNodY=f%$*EyGy%~pqw_u6EC30AxKHzcXggDQ8po}OU9APRw2Ra-wnaxOpAQ;#^3?A z6axS=@PK<9x@K1{#G|Jl$x_A1B;qLF6Taz-WPpjW?oPx)Jx0w55ez|aUHH}r@i-m< zG;BH`KHOYiz<~G>VNF=l4vz9*LaC2mKld(UM2A>epXk??e60Y$TXf+yQ`Sv+z{p;@ zGKrkDsERDg0KALMmY?=$K^XEs+^{0+{vfG89fm=>x4O-ahSIUhMD!%T!p6Rm}7!HthM)78`Vd<%U{@sl}n1-@s5V4i9|Qc&`PHlMCtWVYP$9GrK{Lz995T#cRJt8|(89v%>G*q8jJ7@cVTQhs zjk8JI{-!T7a~Yg5u?UaOl?ix(7AN!r_S2irk(;2-HM`wC5yN>yCU%}fxBn=?^%$b> zMxWiJu8KBg#G)EkXp>4x?YI+%NsRUGBNC>uLFA|EZk$JbCOMBhB4xG#mp?4iooX8F|SkY3O=k+25w-`pct`S!V@(FB2NPu%BohC+|aZ@MVH3p2g+o*TJ zzrSd$;e`d2V-?v1$|$3zYxW0Pt~c(PSp=yhN7;3LA)4Bl(j@jjbfx|=v$dM{#SCCU zUu2mumg2(UJYSXd@X8{}F_6?#gX+<2dVUA~+R#Z2dLLpIv1i(|OBx927@~Ny{pL|A z6|aqh$gC9+ktR7G4izNr0H*Sw!H+-=up2rCiiRhESk=9Vj7SFhEp_(|GApy{FbkJ)g$3f+(hdcM1x=hB zg{w)7^qqM0_66$sJ4r}CcsPiNmllsMAx1lNMnA{x@KUAEGVWJEl4iD9y;3{eSSr_P4Y#WFS{6WP#*TJ9bg!IraOo=mRb&$2pSsQHGS2$F)B z!-D$^~%n$ZRL9rvu*$ElVys-k@B-Ks|l3^~d zTSSEy^=Ug1ZSKXgwtb`rJ)X(lUh&>F-R+S1Q<_SgveFbiOg7mSTuGSK^^qxhL$bp{ zzgq@;VXmh3RDk^IA~bQRyH+=DU5bR;CaO z7SRDr7PT!f0Sc&#OAK*!{N{J_heKA@_DFYL#;pdCj#_ct1YH1ICmRXSdGjknTYdXC z0(#Z8X@*EyUMOWUSjC$(QGyme45K+tzP@(Q6CQ z6V3T(J{c5iBkKxG85q&~f@$%P>1ezLv??y;aAh7HsT#M56hA=#S^8(#YSCIjr=g5?QH`p29*dL-Ob%4%VuH3NDlt`=)CQ z{6a>WU|^}yTbm(-rSltcCkuKL1$%YO??AEh??E*N%~#4)fQFapq@IdyPz4uMLr*$M z(P5}(rV}6>1|K5!_rKQvr@(rXQk5--Jf2E`0zbS95cbWn#ThD_e)6-N7NLDp9JRer zGz(?RQ0@I@mNqtf{3-kMfYeb|oHjxQNvK95miSrxAv9+u7S*g8uDaB(({kw8OYLtd z3?i}V*PxeMd1$iTw!)`}ZT(*JT@^kp5ykKQL?T>VCDg+z;tXB{8$#t+C~WcTX^Z}$ z>&bQxu6tzfICsQI&>mh8;m5JA_higx?Z?BUxO2XB3Lm(l$*@2k&i#u@azR6i?-*=s z(kxrX24<*G=n)yTfbN?orb8$Y7Wxn-8ac5N?T7eg_-U}@`^zgEi%r;4WgN4fWg66O zza!jAlT~0sJeGdKIO8tYgQqO_21jJpAxV}t_^NNzE~`~bngKLifTENOt{;4)b+HWm zStE7yPT_K~m`BY(Cf+(VGCo}zvG0ms7)3ME`JH4vvJo8}fnR#jh!9w{RKa0LK_!W< z9uhixrtk3J71WVMmtgy2mjKL}_UQ>JAv#YF9j39v%D5{=n-0cpAaf4y?H*1lvrr!+ z+S@NHcHNY{Y+l%1H4`3`pCn0f9Itd2@i;8z9te(Pb6m}QD^@RfO3s|%d>*28E1zA_ zd&vIu^GFLz?%Gnw+ON=wj+$ztB}I?{=dUNWpO#l&%&}g*!GrTc_CpmqR6sZtbTdnii<)`0u)x$ac3iT@Lb8xfAS zFl;)N7ane&GMnf4Q*xQ~T&Sa5$*S@{{a)I%fWYKy-nX@#fqTJow51Rox6l979wqvI z8{=O4^w|bH;D()3p)1XFtYZxG9%!iSED2r8@Zy<)pNVs~F@_m1<3~1`6EM9hB z>owsw1Ok}&uPWE2z*c^@*)-hiR1eb{UM4Fn7|uE0v;%Q7;Q5X65(c{WW|&XOec@IJ ziyVtwxo->S`E-n_^e?&6j)1o=LN|-?5Xr3#d;EV(5XImr>CvzR+Z#n+@xE93ypK8# zopw2j9aG&LbaX|lHtkG1xVRPSZ@5T#^~z8~jHXRUFRuzB%-={&`T9?1zhmQ0qJk9O zjQ(+YoQ*!->uG~LFAxnf*lWrJZ{}HJ-g9S$$NT%gX)@51?J(M3J9eiSoX-z6`8$){ z4H#){H6DRP(h|OC?0a|C%9GlZpPby=Z(6ad9sa9j5Q6*^RmJ8el&@5N#J%|x%!ioI z^>!jz`lpSxD-CneeW%fA$GSx}FfZfGVokxJeW}rK7T8mmD`GG#G6M=LZ8T+4VtSmj z{k3yt+87NPs+C@N_1BKpORg3PYuP457MpXTi>n|QK7tNDO|mBAPnD}7%m)yo7vA6H zpnIp~wwa^5bwa#E!0oY>>SYDnEdV9_GE}MS z?+TuL>KDd}$?}*8^g6(}dWZwCvs`(i=@H}!N%>U6$g;2usCD7>UN`D3cx5~9VQJg> z#8)H6KPlDB=l%Ps)}Re@Q@)OJjOf!-Z*9nrRUMI?QtFke%M*J|Lcm0DAiMiR7g&}{ z?mymf$uDBqZNSmytLxrAUB2PR=GID?c~G7v@^O?#xNAWK(A~oI`qAKz+B?6g9PR`h z8fo~UbDB^KqLfyl5YFjbbWZRoL{X|l^7cEltPo~BW|jDcnvag=mM_&NASx4@^BJTp z%|%CN>gi1Lyr;wH5=2%fe z|Maky_t##C@id^JNtFl=kpz99w{eqW08WYHG$SZo_`SzYgU{ub8CT}0!kSeim=yu} zfFc*Iz1e#(yuHb{YN1{R)%ktadh?CBmembNA-Lvp{=CyZgBx<=XWNeIPw)=;;Cc=# zD{$UfIIl|!*9J~{BX#X3FP_a=Ja9exgpHE@&+#O&CXJ6dieVa*OV0BcKA3m8o>Tf{ zv_$QtdLKU8Fa*2PpMK;e8vtL==^X>SY)Jl~e7-EqL#%zj%rJHM))Il!rOfMXnzjjf zO|W<43nMcbPh`t3+xL%arDbDWf8d=@vUzXxzJ28_6BsM+x`pC_dTXns^ATg@4vqMo z@zOXB;n}3MEZ(iqlN#{`|H`eEJne`5>J1(<^Z+g%ys80#CDHeDy zb(#85c1Eqdhj+q9=sr_$tIalFqyJ}FR@!GNZ>ebk7HbI-J?_~)NJe_&5D80eTsLOx zJl-y-#Ow+C-Z``d++w9w2h)hz>64Clbiqo~_1?q70 zfHt5FI>YXIS!(=cq-pN%NZH=q3()cH>SLYnv_UX^aii(aY6W@9`SZo+Zuv-NX}uN< zwG?HLdA8z-6la;?8-lQhmGYw8gAJ}}KbFKeJCzc;X(~*zxCTuv{!-1dZ5-Al_`EQc ze;K&Z#d0zi)7fyUQmAyetnNk}n>h2qe44m$UYSa;E|!1^WnYzKw*<~lJj$+TO3Ip) zKPEOIIHhfrmca&c1z#8CITVTn3vE0Vr)Uj?IC_t41C!#s@97T4J?n&6sp!buF3u`= zg&$;!rsG$htU_EtU5nITYCl=MKWUOYGG`~SrJ2 z3PyuLc+OO%G=bH*;+%WuI;jqG3;sZUx_@hgj0MLlBN0)^S29)-Bu;LTLqmS;-*K07 z?O*gLC}LgkCWP~!aaCBrY_?DL(5AEA2mU-(fw|$`pMAbuD4k8*J#u(_hX?2q0BoWR zM)v{})>E$5iQv7h2!dMo%Y8Fq|0N=_mWSSUcOl9`{vqOMqd3_fRZfp(F=PR+iI$Hp zA?{_^=i@08`<$|u+T5)xl2H&v=C^jDY12=N{{9%x1$@0v2DSOz$jx?L+Mu;?v(w%s zY4?iJ?q89ef*Y-+Xi!~#dU7O&cQ*F4!1lDk(Xe$s7F1XWKXD7@A4_bQ0xB$p%~WAg z;a&&Uh%ED?KR81S^A(>7vYZhNLR9I_B*_?CDN21z6)#IhkZ}vdQr&6R_w0oWw9$=E z4U!iyRFG@t*OOS7`5JpPzAz}bada7*j>`XiA;Rm_q1?14=26;jN`v0KdlTV6Ver~k zT0peziNw~i0sT=Q|`uD3}uO2)> zkEmA4F{WR-;h`2~x5^PA0aGu#UdWLN;c~m5n2YcJQ13xg(dW9syeA-Xq-m6HK;sHYyv7~(q>082b zU`TGTw7eA5ynk)Dmzk6%G0^nFLitr_tH1t z<@@Qdoi*0esIV1h;z0V9_y<7CI<@6*_OjH~Yx?G5SxOz!y^(P7+w{6S@RkIy>NL(> zXPo^C@6Z15iyPs=E7omOHHHZFrGkPE!df*e^gi&su zT3*8EXJuU@w7Tjj-pXPx4znmV;SzCK+eQ|HPGV7;k&`MTiLmFJ6sL#5rl^hgDGX)b z_4X7^9N(~9WUfG_>h`wuMkC-NX)MBkF}nAkk9^9(Y0YdlIdBXiAh0HxKUA~goqtjp~NM!!|+3edB$a7UqktZrHNLyE;r^4Gu90#V8&2eTzHEq+oBX9AD z+7)xEF=k)a|HpT!5Ol|wlgkT2{%Gq+s}_F@l(A}(?Y<)|Fvply$n;1IFWOf) zJD8LE$YCE(CMk=2nks~?oA-^n5y;q#C9k{(Hj1pdccLz{^GD;LgjIGw%m5QqRLy4> zsRq4_ES4~adZPC^kADDe5o8`%Gj-)-%ZytHj0Owx(`*!*|v^$n^;E!+Z)XB!j0Vgj5)Sm`oXreZFzhiJGOJWnv=;Vpc z5MHXVVWu8Df4ihB_rgMc^6a1vWkIwxBtgdghjZs@smeaUD?4jz$j;ztV!M!EE%A~4 zF#;&d=n_-r_(vv7B#17X!bby0=V{XB&P3uH!qARNk&Tl^4a272Foi<3`Aab)$ zh^Z} zPX@GF&Q>e#l$O9XB56IiP2>->zVJLrD-2A7eE^dsN07S4Q1`tW@q@l0?lVBSdodi}`y@X?Dac0u@S`yTGBJ1HgK!iztS zUwv?f=5hcvykqQ8ZcG5JGan+Tz|9s^ms`6cal12`ju~(MA8)8o-?4jbmf4Tq`=FfA z*c=eFf*Ddood1{$O+wrRwB2H~FV0bz1m<{H_ z+bXI&DJ3>g*#1u@kieX_=|SZaRY7vpX@2>Sn#)J%I!4Wq;@T=ac56h5lm9r} zpn&3I_-*U={+4`FVmK&n4jyz+M-CdYoB(cG%W(01nET6Y0A3R{mA%324ae}a#tmMn zCQkfw6Yta1u7u#?xZ_2$0a|#8YR<*-fu|nJ0UaJ%8PZvcNo9dwgfH&(m}M6ep7gO* zsf?JZ4PQK^6qCeP+H(1VWmhPxe<|u@FYkDtJ=_PlGPo`D=l`t*fO(rh;PNICM8q?m z-e3Pv4`$3pc>ZHxLQ(0$M#_UoC(V5o{3lYJmi<8Uzix$zcS5e@HGAf_8B?FA_uWlY zTFx9$eXT7!wgkzI*oC@{L^CCiLl$(EORMtkc<+FN>@#R?`-awz{6@#4*{S5D&Pt&r zRVWSepSo<$5-YeB$}>fzmw3xFwP{Ri<~|L+@x{F&tO`QGI!Y|RbNmr~ip?|TX&n=s zFGLW-wphA|H>_Cnm@{q0x2j39S69gOlpxh6cd4lAg<5A9Kh&m%=H2AHAA?fgCDd5^Bg9=Omos$WfIEA&l`DcPeEU`Q|A9DU0&D}JA)3(e5GX_RpGke$vXp3*35xRhn zfF&h^XG#*N-gFv2I}SzKYE6Li*0LhwCrP~ae~o@QSMoSJQBq()1p#k+vmgXZscLGP z*3JQjf;gPa{71kijmu!WcG@igCq^7e>ETbW_1SU(XTU&AGlKQskgfDmDlvapYZ4maujR}IZ_)qtsrp?R$8p(Jd1Q-U z8|G!i*&n{JvR}_^L93A+9%r3tR)lQewtG(9R%dj*o}mgbX*E>{GF?fa9b2HeIXMOz z@EE3`Cy-NsTxHn{eB#h+S3b$U6Dk5HELamX4KN-XUG3svTIM|jx#!6BoR?>53@P^C zXuvv_Q(ixZk(s+DbA9h;CvT*`IQpzl#Y|D5LJ_hfyvTe~XMb&4<2kG!9!rMoC~k-O?(_@NAy0o6J1!BJZbIRJkPT_vn@|18c zva0k5&Ei=bYH~5eVkpVQE(yr_IY(@g&FOYJ zNuQ5;IgLG8+pwA_hOEY)$X2L%$f$@JF1TPG*dysnZoM%($w2TL~Ty8hoKNGVWhx z#N_zm(E5ZwL*@GCSSNKg7kF`F-wWC)-l7~@H{aUWIUIMjVE@Qd2wq-_j$K9);rtb21W-xCn@v|ua+?VeI*b>qAA)2~)#tK2+<&!Ti#9fW$yxhXK6%yWBINqEL8i;l ze^U)zL*(^aQ;_l4DHT&={3#M%4im^SF~${42;PfLA0&R{>~4&M znCq5jggDU5>Aht`vcN3-_;wJYNYt_Jc4E@b>od*n&w;;jsV5eeC*?4dWLqD_iyZ(e zp~Zf`D&Eh#o%6wz0v06R zYU1CH5(<+3nPz`v6XR0)wX9jNSAv~G|EMENEXN142GibKvb5> zfoSkzjIQLzSmX$f?e`j|I>Wftage*m1y zLeaE%($a6#7mx+U&eY1B;gxp_G^`R{?zNskHjl-K$0-w*5xUFMqyW>0{YXBU-l{9= zX+QKWRC#!3m3*eXoMaHFS;LGM;=Op^>@%wkavpkf(E+m$U0$lVaR%@|Gl8x`0w>;w z1Zz}XuUr>33Kc3MHxc~wPn&|dH_1~=81Fu%QL|6MsC#o2yt9z;7M+vZrYe&-T zJz-4#s4?aC%qR;idV=x9J4@gi&XH=?)RqAlfnyL)!SumpFN#{$1d){&ObfyUCI zu;r-wTW#v;wG^MCrwDVlC1FmpC{c1YC!aM2I~UQ!$`_L9*!pJGjx0S%xL^QpJiYEy zfu@(C*cCuF2Z`SX*5&dYUXIlt2azHaaPh`izXj4BLU~?7iTE2NTwRWla6kPkhaaBLefE9#16l6xb?+;QRLW$$) zH1Qo2O@<@Va`yI-qPY7km6(`V}+nNYyV9PrO|F(Pr# zBFIQ-DkcBhYj`O%vrO%8(R@joo)!tHz)Wzxl@De8o+qyW5|*p0p6(|e2v;P%!^f?o z@j{tSR!4g!^pE@{N$4wn4nN=8b_7npNe?9r{A@MF(W$+c`IJ}HWFiw@P_IZuq8V7i zLPoGcu>Lz+Q+^LZ1*4KBCeOXGlOFl4PlONqbz8u)ea z&c3~pZ}B3WC|N3F+hNLA`|8T=MlPSu9KsftKb!g7SEH8fkWqdd{Z?iH zoAKhj>Sfv4?f925;wOQb<46dZ8Dzr$o*q;#v`cks;NI!aQfja13-bUgNIcSp&RrYl z-3$HW5W{dGR>Q;APn2fHTO0>+0~eyKknp1o62q0Ccs2i$@A%=cR{tL>k_A3GmUD`% z3iEE9m`Q%tYvs8U@MI6sagm0`ZCQGzn_`Omjh8Djxplj0KQZ(CtSPgdxcr$}DjHRE zg_$y%CyyEz?+X{WINVM@gBm7TV*VVG;6GD?SUxUCVWz*N>W#~B>n-4cz)e5$pu71ijpbHPMJ!frFD{BEOvUscQ1epA%IyG8 zS%H4>hWppr$7xFM>fX;mB+GE-zlM{nF#+r^FA=5B=iMSPy$Pe~7iY>NLmZMbw{c@U z^18uM+4rd*|A1p2NT6lPN^tT}D#3U__t^-o(mdPT%vC$6Rzo2+YCT_8W5=S)y0G68 zqarF%dvKcmgXLB4j#ER@H~qVsC|*ARP@O<#YVaKRB0 zapvSB!1qa(mL~5GjsX?1a04&CSzBG~W$o@k<04_5jfgo}Rxb0!q1N~d`rrIr=e`>4 z5}GqnoH+bh4s@1`0>h;Xb)rqqEhYt8D;oU`PW#w{k^ODF3}-JOW8vQQlgvl~sR!$Q z7z9`gnPd+Hfpl-Uu3y4F9Fqc^lA&H-a~9JJxJtue)&od!a&k}CuCVZi5A`qzTgko& zm=yO-F15%^v656D98YSu8V3^2&^#sG?&O;wP6Z@wPMIWo|Gr1f!aJgMv3|`R02C5Y zQL$W^o04h%&gLqi|J*}pD2_uM>Oi|}wOb@qLdJTUe_PL-fScbzC@`$_e??t&T$A7T zAEOyDYNTwmbf~mrj+XA0ZV&{9N{*P)sq_a_CM6w$lqe~wfCB^sNhPHuC*Q~4Kfk^9 z$6n7~yU)4jp7TEEyw7v*FtjBKcBZB2FM@YAVw^dR4{`qh0w4%vhC4Ts>OMc<*ib2> zDf14@Ojy37F*@P*a6p=E(W&J_P=z5!z-x$4)<;?#0zt-yP><^+QDOsUR^ARJp7TeU z=oJAP0S%I#|BIBHPrt>Yc^NX2%fC`)#CiHL2qadeaPL}tBTHBB?p3;u$GSo|FOM4( z<(}~6avPKfZ+^)9DE+PyF_mTzpeNq4Mc}hWejNQ8H>k&Md}qYWsX_66muzNy+=%rf z7(rD+HDmhZ2_*X^U{<@GEgb*+Z$wMYk2s)VUbtTJsT5d>sH0c1+Yz@PyDtD$nIJmM znT~~jGk!)`A`^cv`RwAa9H$)k=es;`7r4Yg8PceJG%D_>bd38MqFnI#O9He3A~pheah*& zglnKgvajyuvl&V%;%D8hQHobm&b!MxGl!OsHEpUB@hr}RTAaH;e5u`|a{-jWZNE@m zE~RDpP%JXVmzBNq^Jtns$3Wj~)Yl8pC(?Hcr(C?8zX%D#Q@wol<+=+ec0Hyxh=U(s z`p5{7nZT_QSy4t>lw^nyfy-Em?PNH|X8#}MwNPa3_lpTCBQOb-LJPeT4|YfaWMoX=IOp^IJIJ)_IATT~H^x6Fd$<{F z*@GLTy+-E7Hk%xHlvSBCfQN&kP`@Y25P$JXCfBF|>8CX#F<#%ZU6)CcU zAG;mqNvs>5x?`|F$#(~D)TGBbkO0kN1?QXhoU#Z#bu6TNuKl|1^BFTQe+<5*vn?t# zg4G-+-eE^OH2HZ{j&!g9OQr@D3zTOz#VinX-NrHDhctD>Xaz`6dM4 z*=qJG{bfdmL-w|@@OeV<&&CZqess`=@R8(2r7^S`N`Cu#?!;CAOm92nar+8H_y?O| zgk$2S8vgE4JAQ5tNIm3>Hq5D#ey&I>Sr_FZb^U-G@E?=$(xsfb1ZFKmns#>rM!&>G zip5@PW)`J@o~yatW0$x}$Y#nE%d{dplm8ht6(=ij9PCJGJeUY$K?qq}I8<-PalaKGx?wCKF~BG;}KviHp9=-X#L zcwVk{pWiR`SKyM}mNwPp=2tEiNm(4b$@DyFWx@1h2P6U$_mUPE8c`LE%MCxeg_N`! zP0}%H(h%T@Sg&hp6&BVQ8=-TQNrk{{I&;0*qw@Pq^K;*|{E3gLI@`IB{pZhbj0;aW zJwf9l#{_4?3Ct>&jQZ)tyI-3n0SbH5t^ne|ffc zQiEfn{ca&5leBjALuMDsg6N%hGu2Sha{wTy6$&&(?{mhge7XK!t<&&(xAL)9ok?j%5-xq?=v{S@S(G9Um#!Rr*{{wJP;RIkL!r8msad z6W+`LlwuVQ)cfJ=oHus3K1Y4_2jpW5#hNq6giot}dZ--Bh%2v^VR4Gbt}3nU0FPhE zhrP8sh*MV>c=m|BG@UFipl9Ysp$Y=!6v3p%T0!wphDaExqQ7xrC5}J*2r``^6EVM3zVnZ;a}gdTtGt zg{hA|tX$Z#F<#554j?HDGQN8`dA`UMjeiXWHb~v3xJ3eN;ES0EfXtS1IC1~qxnSwo zdOI5kEco}MqOveTOn!KkWH;UjcE+CjsETS)6(SocqH__s6YRaA#RlqYJ+YEzD}|a$N!V>@`N6^V0`9p>K0v=Zpul6o3jr`L;p1cjwU|@zYBI5&YZ+ z$_rs#P;yatGxFjU-}GXX0dMXVk4y|{H=9A>_0vhGHv)cM9O%c>v8-v@69YKO*h?Rs zZ-Iq}ngC1Mfd!FxRFe3Kz zgc8KhF=sPk!`;_mRzzr`9DGLGmOpccaA^o!k40NDlSLamYj>*FSkr z0`AE?sju$a9nOo>67(7d?p@S3LqLl_Z=Tr|OPg+2XVciQ@q)DrNik=*h{Zpn$u}-L|!S1A^HU1VuHV1hDjXk(hrQa4|pxm;_5UtxM*tnCFzY6n-h>R$1R^_ zamc6Z1pjfj3LZ6z(m2P&V^S#+dYCErErJ2OOvej%mp)E0&?B<;NWnNnxNQWzAa2Dh zccYQvvZsUw}3t*kWMiXk)ib@Sym5a|#=fcb~-?E6(UK|^Fwm}p;UoXKJ+=+kn zc@cf*(US?bqT2hvQ-H6^BMT|=;Tia}(GJDWDFzR^w$crTAtnk(pcP$?ExbrOWFPvf zYdn79jW#+IyDvyEZ4h~}I90O0SoD3bje))Pqc)P3?7BMV`1hyBkV zL}Aw;GH_sZJTqv|7Yh6|4a+?5c7I?llt;Q}q<6f4zP~D@8bp0U)fa`(Ksvcd7YY@y z;m`Vsn%8ee2)NjWDb}81E=yemR&SW0Z{SoIL}djkla}{7bDLGEBwl_#s!#TF(+*z@ zRj94orCeXx0xmHo`+Yrd_`Fx-9SaR4c1hCUy3~ds#P5ABk+)g$cb%&m(}#vpDBfLC z+&R(XKk`XY9a}&Zx{2HBk$^8XCo-_Y&6u$ivEdflEGf0`v+)vBV?e*tm!+J0)0`3F zb@_U68gkR+1$oI_m3Ofhd;+l03H!cVS$z~ z+bIdZ`Ws||qWGBgL<5;f8Y;_6jy6-BPsXe_svJ&}FD9^4b_ufBd=~Dw!jPmqz>!h@ zrrt>T=lSjzep4@id(sC@M8w~*K#d&5(UsEX!xjI#)H3k+u)fv?{Ob?ws(;wzBF8l5ew&<7S zETk6xrsaR*nW`WP+OaoAEuAQ6ejOM-^^ZeOE+k`2=5H4>1p|omGCZo9GS!*>^OPLU z`7ZmGxKq{SNWq%prx#}#lb>|iw^pxrh!j(yx+38Y47k!o7|nlvmY@FG+`{r?;U(Tb z!>7TS(Q@u|1kz8d1{-;MVJ2NsR~(G#Zpn0m*8Y@}rb9;EfQaCFurpk`NS4VnrWFmN z+F~B@cVMIN0FcjJyD_a_c<~%CFue}pGcY3(xXALb>~HSbGXk)dsR7>~H_J`l8YQ@5YYYwOYQ+;smU^_g!;Bbx{&FwbP_ zBQ%{o6p3V6ZmTzCL70RC@DXH07DDpO!O?=QRYWP)D!Rn#*-(h3)Yw^7;8|hM@H?}N z%Sfz~{q-VDE!P}a5kh^^!TWrkTU)(bkoJfiZs-1 zzD)2bd6E8Ux`F(1j3ffopj2R+BTsDLkQT?Gu(Q z(xTM-xtj;uXX|<9S9;qC$1O8$ft=HM<=;=rTRzXJCOs@OZz5$LL;cIHj5@4)&cOj(q&n61 z;P#(M3v1Z)F7*!^rJCzsrJT{L3*<@MtnibO-18H4t=eR3u}1##_Q{nCdyUWbx?Ahc zzD_^JoAsxNv$@J|HM$3Kouj2I+ufewX5T*QNM3lTTW=d1`(|MU*YvWUjiL)S&9u5P zQu&hNsOxjv{!{S900xjkk*d_&lzzCt#6Lck;YH$;nSj<$?v@A=yL>@UX*K`*ATYE>uP$F7<<5jh=$B< zCQOpt(>CSXVJ%s5`*a1a{fb(DE{Zr!qtL;@+#X7FD$_0;pf?nK5@UfF7^ zG>g)x=ozq)zwa8q1zlHz!Th6b-(qdZLd81(TK4^bMZ0X=VCu$M2!BK91N}r3ad5}4 zCFl70D{s@S(mPWnLb~xRijo`;vu=%mm1=NJ+xx|NPq^;3?>z8i#*AaX;)To`a~tM_ zHqXz)6}o+L%G)b2SyxgQk1mOTemDB3lJ1hMu7_BA)og7zbsi zU$hy=tj}k!h7ifYp_kv4)$P~pCvsmuu(F#&&3dt*VJ35xAFj9UG`b-Vzb<$^?w(7Ml(t?~o|dU6 zwTkw9nsJMl1H@%INvh#4!srZYa*M__%Xj(*oyClOJR(*8xQBVDheD|4#j)gOtMLsDD z&m`SUnzh;9J+e=7$$ap>u`VFsYP4WZdA}LdooHe>xn5tTpBY=QKF^8>Ezwg{0Oy7hzTa#od z9~~I*{_X#+482?2a}{}OeGF+V{D~N-ij=%^dD+BHi6_Ze zcY@Z`^YzDZKewA@ZoRO{N%ncZ78C&&;Ii$Vu+!04Le`qUyEpHV-FVO2 zxN5j}+S^t&sTDRh=Hk;|uEFtcQw(Y?8yyT0mk#gZSSRS@!z+2Nm~)(qJx)mTI7rRQKqg%39VRa{d;l$rK{u z<=CqHd_}jlDJ;LWP6BV99pxcL4^JZ=7FP5;6G34a*sS68@OFZ8gnmVj3YhFvK`x2o zq3MSpwQq$tw~5;qHofbjX|^4S`%+*5%3ar`tV&pt=tVkhETxZmQp4@X_&%>0frU5t z=`>!ugCYF^_#733J=#d*r=^NMB4 zHKF_N0uog1dVdm>NSEXW6q1>kGbls8r1DW6jHQKF2^eqm4B5%?p#q`k*cvbDWU<)v z-gMmz!mFl*ykT(zBaIuWDE7Y5O&{jWXL;Rdyzds}iZbbw8)`!^M4?}c-4_bS+^^0# zDmUJ>{h)#8MAT%;8Rzsp9Utp;JHb-r zH7%nHY~+)ma9+$(p?qfl@pVF$XhRGwpYA|OtI@Yi6QZEuA*h}24RRN0yn*i(?M+^Y zP)=%)pjR^ZTHUZ3F&j_rnz;WwADE?lcTn^MUF02G>XiCLO)i-PJ)|*G^2(u4vOJ~zI^5JbrweGSD3=j=+ z5M&;VFw4gEOjfpJX_+qlBJO9m#7L|^9{nh>xU2o^stas%lAv@2zQ0y|#d|8)0?NZV zYs4U^(8t%GPq|p-vIVv~8er#M9;@Zb17U6MfMZ0WUER5#h0JO5x&TG*{Xb2@AF$7Z z3x+QV$=IQjMP*6+`w?Ld{8FId2eDS((FNS-PE{9tk_Gdn29Lc{}dQ%^q?AP?YJ= zWs6Kh3QH+dJ$6L?oj8KR802k&%J009X%&6xJK)!<#tir9u8e1hI%R>|s%tSNi&A~W zCkvu{dA|s41}^=o=SKr66Z4W>)Ly&u&#HjFiZ=F`x|JZBA9m}k4kwX}Kj{QWb)i5* zY=(SNXp@Jl(H-;~mb`)rzok=Pz71RQ#hj8UIQqmB!|s$bacrS^ddY7rt|pSybMf!H zG?kmdsY>*Iiyzo?Kjgp9@IhYXZ_cyL;YVyjcgP0Av&1OyuQ7*DOrFvht5AVxlPku< zVoPODqstHN?Sgm(_IWv^|56E(YV@}QT1an)TI+5J+1{q*gT&{$ByAKCwk)ytv}M@l z)E5@3t>7<}<`u-?O-=VBOQ%dZ_F@ovXkOgl49ix3%xa{Io@IECJOn}k`nxq+kk=v> zD1JA7_k~xeyAUq6%Wc0{>h0g~QBb!-swMLDY~%f9$%NuYnd;wPvAC7lAsNup{uNP< z@Higg-t|ckwVlwVKh?~?yfG?#Ir=fi+N?6lTaTzotuebDwi6cZw!d$_RJ_li{$Kh; zHaRbYZB&=L-4CZjdg0c%wTa$A!>G%wA1?TP-?c~LjC^3%E|FgF@}8h8V&3S~w~PFnzMh?9R~N`)S!zXScHgXlcxD%^oj{6O`M=D0`LSc}DTt2* z43gTs`j~Y1(8ZR&AvK~ggj)V0V*sg(1+64N84-v2yC&N@xOf{I`5lc%YFo!Ty#w_! zK4tw=l>JkNDHZLR&?ILUsW?)XP35AZ9Jp?)l-F|4iHGCj zp;L5y*EojLY5&Wc_vqTcqQ{t=Iu$eSRi~MY!!zRAqqWXA+R%nUdrH^(ZWfif1f-hJJk`A{bJqy)0TCxorE=KC{*gq!p37*faMo01lU#E|mh zmZtm2iMD+&O??u{(6@Lq)uzA9Z*6gXCKH%C6yP8ZnruI!WsWO>L*<>f(BJkBsh+~) zmBO!OB~o6T{<%mA^@UxF5>^UjwY<<@1`3pi%=6wr#PUJ;=aeh!aML6mxVR7!S>Cwy zxV(Gr_&5|Ygm9}8-yRWZD{=KnUajlweg^xmp9_d7mysOIZ*wCiy9oo{>huVYRp za&Ns21)*&6y=}tD3|#@m0#o?Ck1l*MKXQ$&>j~c$o@F1Y0iQJB;5i{GVhEVSfLm4< z9$tI?5Vpwo#+7fsPlo>2$7=f+sP(Q)w)$J^1pwLPo9~N)dgf*RG>%-UPPBcA5>8kTQ04l*zX(4( zUpUdBsnKsAlO=tSR4&|LIQ1^^7WYnVXw==-K<;d4nDo~RQenD8?6JQEWWCokYd8WqrB=O2r@!->&(bDUD};AQ zyea`iZx@p`>I9KUHkgLHQ|v%7Q7MfjH8$76k_0Mfd@`DKgjl&tzMlw?@Fmlaix@7C zs|YYIXEx1dx}Zh@ABZShWl{^e7(NyVYLJw&NrRVP`Rx&ib z#suk9L|T-MQrbkVYtH9%9&R9%Lt1|ScH$^oDpM}+L|D=dSZp&#T%fkxX92J5?YFd% z2O{-6c1C3!drdfS@1q-EUn5u`PO^jBbF*FM1wxPiH3XXT0QS^vsr!~~+XwGLW7Ac| zR4|0WK!f5EL;BX9$($!AjRXQ520Q7VwD#X;N_&KVSt? z!0z1hWvFg7g6fl5Cb=oBhM`qdRUDEE4Ihs|obvYS6?&;Tqt*+C?4>onq+W#2mMufm(~^l literal 107369 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 W#8< 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" - occupant_status += "
    Health:
    [viable_occupant.health] %
    " - occupant_status += "
    Radiation Level:
    [viable_occupant.radiation] %
    " - var/rejuvenators = viable_occupant.reagents.get_reagent_amount("epinephrine") - occupant_status += "
    Rejuvenators:
    [rejuvenators] units
    " - occupant_status += "
    Unique Enzymes :
    [viable_occupant.dna.unique_enzymes]
    " - occupant_status += "
    Last Operation:
    [last_change ? last_change : "----"]
    " - else - viable_occupant = null - occupant_status += "Invalid DNA structure" - if (viable_occupant && viable_occupant.stat == DEAD) - viable_occupant = null // No editing the dead. - else - occupant_status += "No subject detected" - - if(connected.state_open) - scanner_status = "Open" - else - scanner_status = "Closed" - if(connected.locked) - scanner_status += " (Locked)" - else - scanner_status += " (Unlocked)" - - - else - occupant_status += "----" - scanner_status += "Error: No scanner detected" - - var/status = "
    " - status += "
    Scanner:
    [scanner_status]
    " - status += "[occupant_status]" - - - status += "

    Radiation Emitter Status

    " - var/stddev = radstrength*RADIATION_STRENGTH_MULTIPLIER - status += "
    Output Level:
    [radstrength]
    " - status += "
      \> Mutation:
    (-[stddev] to +[stddev] = 68 %) (-[2*stddev] to +[2*stddev] = 95 %)
    " - if(connected) - stddev = RADIATION_ACCURACY_MULTIPLIER/(radduration + (connected.precision_coeff ** 2)) - else - stddev = RADIATION_ACCURACY_MULTIPLIER/radduration - var/chance_to_hit - switch(stddev) //hardcoded values from a z-table for a normal distribution - if(0 to 0.25) chance_to_hit = ">95 %" - if(0.25 to 0.5) chance_to_hit = "68-95 %" - if(0.5 to 0.75) chance_to_hit = "55-68 %" - else chance_to_hit = "<38 %" - status += "
    Pulse Duration:
    [radduration]
    " - status += "
      \> Accuracy:
    [chance_to_hit]
    " - status += "
    " // Close statusDisplay div - var/buttons = "
    Scan " - if(connected) - buttons += " [connected.state_open ? "Close" : "Open"] Scanner " - if (connected.state_open) - buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " - else - buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " - else buttons += "Open Scanner Lock Scanner " - if(viable_occupant) buttons += "Inject Rejuvenators " - else buttons += "Inject Rejuvenators " - if(diskette) buttons += "Eject Disk " - else buttons += "Eject Disk " - if(current_screen == "buffer") buttons += "Radiation Emitter Menu " - else buttons += "Buffer Menu " - - switch(current_screen) - if("working") - temp_html += status - temp_html += "

    System Busy

    " - temp_html += "Working ... Please wait ([radduration] Seconds)" - if("buffer") - temp_html += status - temp_html += buttons - temp_html += "

    Buffer Menu

    " - - if(istype(buffer)) - for(var/i=1, i<=buffer.len, i++) - temp_html += "
    Slot [i]: " - var/list/buffer_slot = buffer[i] - if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) ) - temp_html += "
    \tNo Data" - if(viable_occupant) temp_html += "
    Save to Buffer " - else temp_html += "
    Save to Buffer " - temp_html += "Clear Buffer " - if(diskette) temp_html += "Load from Disk " - else temp_html += "Load from Disk " - temp_html += "Save to Disk " - else - var/ui = buffer_slot["UI"] - var/se = buffer_slot["SE"] - var/ue = buffer_slot["UE"] - var/name = buffer_slot["name"] - var/label = buffer_slot["label"] - var/blood_type = buffer_slot["blood_type"] - temp_html += "
    \tLabel: [label ? label : name]" - temp_html += "
    \tSubject: [name]" - if(ue && name && blood_type) - temp_html += "
    \tBlood Type: [blood_type]" - temp_html += "
    \tUE: [ue] " - if(viable_occupant) temp_html += "Occupant " - else temp_html += "Occupant" - if(injectorready) temp_html += "Injector" - else temp_html += "Injector" - else - temp_html += "
    \tBlood Type: No Data" - temp_html += "
    \tUE: No Data" - if(ui) - temp_html += "
    \tUI: [ui] " - if(viable_occupant) temp_html += "Occupant " - else temp_html += "Occupant" - if(injectorready) temp_html += "Injector" - else temp_html += "Injector" - else - temp_html += "
    \tUI: No Data" - if(se) - temp_html += "
    \tSE: [se] " - if(viable_occupant && viable_occupant.stat != DEAD) temp_html += "Occupant " - else temp_html += "Occupant " - if(injectorready) temp_html += "Injector" - else temp_html += "Injector" - else - temp_html += "
    \tSE: No Data" - if(viable_occupant) temp_html += "
    Save to Buffer " - else temp_html += "
    Save to Buffer " - temp_html += "Clear Buffer " - if(diskette) temp_html += "Load from Disk " - else temp_html += "Load from Disk " - if(diskette && !diskette.read_only) temp_html += "Save to Disk " - else temp_html += "Save to Disk " - else - temp_html += status - temp_html += buttons - temp_html += "

    Radiation Emitter Menu

    " - - temp_html += "-- Output Level ++" - temp_html += "
    -- Pulse Duration ++" - - temp_html += "

    Irradiate Subject

    " - temp_html += "
    Unique Identifier:
    " - - var/max_line_len = 7*DNA_BLOCK_SIZE - if(viable_occupant) - temp_html += "
    1
    " - var/len = length(viable_occupant.dna.uni_identity) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
    " - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " - else - temp_html += "----" - temp_html += "

    " - - temp_html += "
    Structural Enzymes:
    " - if(viable_occupant) - temp_html += "
    1
    " - var/len = length(viable_occupant.dna.struc_enzymes) - for(var/i=1, i<=len, i++) - temp_html += "[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]" - if ((i % max_line_len) == 0) - temp_html += "
    " - if((i % DNA_BLOCK_SIZE) == 0 && i < len) - temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " - else - temp_html += "----" - temp_html += "
    " - - popup.set_content(temp_html) - popup.open() - - -/obj/machinery/computer/scan_consolenew/Topic(href, href_list) - if(..()) - return - if(!isturf(usr.loc)) - return - if(!( (isturf(loc) && in_range(src, usr)) || istype(usr, /mob/living/silicon) )) - return - if(current_screen == "working") - return - - add_fingerprint(usr) - usr.set_machine(src) - - var/mob/living/carbon/viable_occupant - if(connected) - viable_occupant = connected.occupant - if(!istype(viable_occupant) || !viable_occupant.dna || (viable_occupant.disabilities & NOCLONE)) - viable_occupant = null - - //Basic Tasks/////////////////////////////////////////// - var/num = round(text2num(href_list["num"])) - var/last_change - switch(href_list["task"]) - if("togglelock") - if(connected) connected.locked = !connected.locked - if("toggleopen") - if(connected) connected.toggle_open(usr) - if("setduration") - if(!num) - num = round(input(usr, "Choose pulse duration:", "Input an Integer", null) as num|null) - if(num) - radduration = Wrap(num, 1, RADIATION_DURATION_MAX+1) - if("setstrength") - if(!num) - num = round(input(usr, "Choose pulse strength:", "Input an Integer", null) as num|null) - if(num) - radstrength = Wrap(num, 1, RADIATION_STRENGTH_MAX+1) - if("screen") - current_screen = href_list["text"] - if("rejuv") - if(viable_occupant && viable_occupant.reagents) - var/epinephrine_amount = viable_occupant.reagents.get_reagent_amount("epinephrine") - var/can_add = max(min(REJUVENATORS_MAX - epinephrine_amount, REJUVENATORS_INJECT), 0) - viable_occupant.reagents.add_reagent("epinephrine", can_add) - if("setbufferlabel") - var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) - if(num && text) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - var/list/buffer_slot = buffer[num] - if(istype(buffer_slot)) - buffer_slot["label"] = text - if("setbuffer") - if(num && viable_occupant) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - buffer[num] = list( - "label"="Buffer[num]:[viable_occupant.real_name]", - "UI"=viable_occupant.dna.uni_identity, - "SE"=viable_occupant.dna.struc_enzymes, - "UE"=viable_occupant.dna.unique_enzymes, - "name"=viable_occupant.real_name, - "blood_type"=viable_occupant.dna.blood_type - ) - if("clearbuffer") - if(num) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - var/list/buffer_slot = buffer[num] - if(istype(buffer_slot)) - buffer_slot.Cut() - if("transferbuffer") - if(num && viable_occupant && viable_occupant.stat != DEAD) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - var/list/buffer_slot = buffer[num] - if(istype(buffer_slot)) //15 and 40 are just magic numbers that were here before so i didnt touch them, they are initial boundaries of damage - viable_occupant.radiation += rand(15/(connected.damage_coeff ** 2),40/(connected.damage_coeff ** 2)) //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3 - switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove - if("se") - if(buffer_slot["SE"]) - viable_occupant.dna.struc_enzymes = buffer_slot["SE"] - domutcheck(viable_occupant) - if("ui") - if(buffer_slot["UI"]) - viable_occupant.dna.uni_identity = buffer_slot["UI"] - updateappearance(viable_occupant) - else - if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) - viable_occupant.real_name = buffer_slot["name"] - viable_occupant.name = buffer_slot["name"] - viable_occupant.dna.unique_enzymes = buffer_slot["UE"] - viable_occupant.dna.blood_type = buffer_slot["blood_type"] - updateappearance(viable_occupant) - if("injector") - if(num && injectorready) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - var/list/buffer_slot = buffer[num] - if(istype(buffer_slot)) - var/obj/item/weapon/dnainjector/I - switch(href_list["text"]) - if("se") - if(buffer_slot["SE"]) - I = new /obj/item/weapon/dnainjector(loc) - for(var/datum/mutation/human/HM in good_mutations + bad_mutations + not_good_mutations) - if(HM.check_block_string(buffer_slot["SE"])) - if(prob(HM.get_chance)) - I.add_mutations.Add(HM) - else - I.remove_mutations.Add(HM) - I.damage_coeff = connected.damage_coeff - if("ui") - if(buffer_slot["UI"]) - I = new /obj/item/weapon/dnainjector(loc) - I.fields = list("UI"=buffer_slot["UI"]) - I.damage_coeff = connected.damage_coeff - else - if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) - I = new /obj/item/weapon/dnainjector(loc) - I.fields = list("name"=buffer_slot["name"], "UE"=buffer_slot["UE"], "blood_type"=buffer_slot["blood_type"]) - I.damage_coeff = connected.damage_coeff - if(I) - injectorready = 0 - spawn(INJECTOR_TIMEOUT) - injectorready = 1 - if("loaddisk") - if(num && diskette && diskette.fields) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - buffer[num] = diskette.fields.Copy() - if("savedisk") - if(num && diskette && !diskette.read_only) - num = Clamp(num, 1, NUMBER_OF_BUFFERS) - var/list/buffer_slot = buffer[num] - if(istype(buffer_slot)) - diskette.name = "data disk \[[buffer_slot["label"]]\]" - diskette.fields = buffer_slot.Copy() - if("ejectdisk") - if(diskette) - diskette.loc = get_turf(src) - diskette = null - if("pulseui","pulsese") - if(num && viable_occupant && connected && viable_occupant.stat != DEAD) - radduration = Wrap(radduration, 1, RADIATION_DURATION_MAX+1) - radstrength = Wrap(radstrength, 1, RADIATION_STRENGTH_MAX+1) - - var/locked_state = connected.locked - connected.locked = 1 - - current_screen = "working" - ShowInterface(usr) - - sleep(radduration*10) - current_screen = "mainmenu" - - if(viable_occupant && connected && connected.occupant==viable_occupant) - viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation - switch(href_list["task"]) //Same thing as there but values are even lower, on best part they are about 0.0*, effectively no damage - if("pulseui") - var/len = length(viable_occupant.dna.uni_identity) - num = Wrap(num, 1, len+1) - num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 - //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low - var/block = round((num-1)/DNA_BLOCK_SIZE)+1 - var/subblock = num - block*DNA_BLOCK_SIZE - last_change = "UI #[block]-[subblock]; " - - var/hex = copytext(viable_occupant.dna.uni_identity, num, num+1) - last_change += "[hex]" - hex = scramble(hex, radstrength, radduration) - last_change += "->[hex]" - - viable_occupant.dna.uni_identity = copytext(viable_occupant.dna.uni_identity, 1, num) + hex + copytext(viable_occupant.dna.uni_identity, num+1, 0) - updateappearance(viable_occupant) - if("pulsese") - var/len = length(viable_occupant.dna.struc_enzymes) - num = Wrap(num, 1, len+1) - num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) - - var/block = round((num-1)/DNA_BLOCK_SIZE)+1 - var/subblock = num - block*DNA_BLOCK_SIZE - last_change = "SE #[block]-[subblock]; " - - var/hex = copytext(viable_occupant.dna.struc_enzymes, num, num+1) - last_change += "[hex]" - hex = scramble(hex, radstrength, radduration) - last_change += "->[hex]" - - viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0) - domutcheck(viable_occupant) - else - current_screen = "mainmenu" - - if(connected) - connected.locked = locked_state - - ShowInterface(usr,last_change) - - -/////////////////////////// DNA MACHINES -#undef INJECTOR_TIMEOUT -#undef REJUVENATORS_INJECT -#undef REJUVENATORS_MAX -#undef NUMBER_OF_BUFFERS - -#undef RADIATION_STRENGTH_MAX -#undef RADIATION_STRENGTH_MULTIPLIER - -#undef RADIATION_DURATION_MAX -#undef RADIATION_ACCURACY_MULTIPLIER - -#undef RADIATION_IRRADIATION_MULTIPLIER - -//#undef BAD_MUTATION_DIFFICULTY -//#undef GOOD_MUTATION_DIFFICULTY -//#undef OP_MUTATION_DIFFICULTY - //value in range 1 to values. values must be greater than 0 //all arguments assumed to be positive integers /proc/construct_block(value, values, blocksize=DNA_BLOCK_SIZE) @@ -968,10 +340,4 @@ value = values return value - -/datum/dna/proc/is_same_as(datum/dna/D) - if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) - if(species == D.species && features == D.features && blood_type == D.blood_type) - return 1 - return 0 - +/////////////////////////// DNA HELPER-PROCS \ No newline at end of file diff --git a/code/game/gamemodes/abduction/abduction.dm b/code/game/gamemodes/abduction/abduction.dm index 0b710001f38..1151de4f55f 100644 --- a/code/game/gamemodes/abduction/abduction.dm +++ b/code/game/gamemodes/abduction/abduction.dm @@ -107,7 +107,7 @@ H = agent.current L = agent_landmarks[team_number] H.loc = L.loc - hardset_dna(H, null, null, null, null, /datum/species/abductor) + H.set_species(/datum/species/abductor) S = H.dna.species S.agent = 1 S.team = team_number @@ -115,13 +115,12 @@ equip_common(H,team_number) equip_agent(H,team_number) greet_agent(agent,team_number) - H.regenerate_icons() scientist = scientists[team_number] H = scientist.current L = scientist_landmarks[team_number] H.loc = L.loc - hardset_dna(H, null, null, null, null, /datum/species/abductor) + H.set_species(/datum/species/abductor) S = H.dna.species S.scientist = 1 S.team = team_number @@ -129,7 +128,6 @@ equip_common(H,team_number) equip_scientist(H,team_number) greet_scientist(scientist,team_number) - H.regenerate_icons() return ..() //Used for create antag buttons @@ -156,7 +154,7 @@ H = agent.current L = agent_landmarks[team_number] H.loc = L.loc - hardset_dna(H, null, null, null, null, /datum/species/abductor) + H.set_species(/datum/species/abductor) S = H.dna.species S.agent = 1 S.team = team_number @@ -164,13 +162,13 @@ equip_common(H,team_number) equip_agent(H,team_number) greet_agent(agent,team_number) - H.regenerate_icons() + scientist = scientists[team_number] H = scientist.current L = scientist_landmarks[team_number] H.loc = L.loc - hardset_dna(H, null, null, null, null, /datum/species/abductor) + H.set_species(/datum/species/abductor) S = H.dna.species S.scientist = 1 S.team = team_number @@ -178,7 +176,7 @@ equip_common(H,team_number) equip_scientist(H,team_number) greet_scientist(scientist,team_number) - H.regenerate_icons() + /datum/game_mode/abduction/proc/greet_agent(datum/mind/abductor,team_number) @@ -332,7 +330,7 @@ if(!owner.current || !ishuman(owner.current)) return 0 var/mob/living/carbon/human/H = owner.current - if(!H.dna || !H.dna.species || !(H.dna.species.id == "abductor")) + if(H.dna.species.id != "abductor") return 0 var/datum/species/abductor/S = H.dna.species ab_team = S.team diff --git a/code/game/gamemodes/abduction/abduction_gear.dm b/code/game/gamemodes/abduction/abduction_gear.dm index 9595f0883b9..3d73042202a 100644 --- a/code/game/gamemodes/abduction/abduction_gear.dm +++ b/code/game/gamemodes/abduction/abduction_gear.dm @@ -288,7 +288,7 @@ var/obj/machinery/abductor/console/console if(ishuman(source)) var/mob/living/carbon/human/H = source - if(H.dna && istype(H.dna.species, /datum/species/abductor)) + if(H.dna.species.id == "abductor") var/datum/species/abductor/S = H.dna.species console = get_team_console(S.team) home = console.pad @@ -405,8 +405,6 @@ Congratulations! You are now trained for xenobiology research!"} if(!ishuman(user)) return 0 var/mob/living/carbon/human/H = user - if(!H.dna) - return 0 if(H.dna.species.id != "abductor") return 0 return 1 @@ -492,8 +490,7 @@ Congratulations! You are now trained for xenobiology research!"} var/species = "Unknown species" if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.dna && H.dna.species) - species = "[H.dna.species.name]" + species = "[H.dna.species.name]" if(L.mind && L.mind.changeling) species = "Changeling lifeform" user << "Probing result:[species]" diff --git a/code/game/gamemodes/abduction/abduction_surgery.dm b/code/game/gamemodes/abduction/abduction_surgery.dm index f22f188945b..a97011d53db 100644 --- a/code/game/gamemodes/abduction/abduction_surgery.dm +++ b/code/game/gamemodes/abduction/abduction_surgery.dm @@ -8,7 +8,7 @@ if(!ishuman(user)) return 0 var/mob/living/carbon/human/H = user - if(H.dna && istype(H.dna.species, /datum/species/abductor)) + if(H.dna.species.id == "abductor") return 1 if((locate(/obj/item/weapon/implant/abductor) in H)) return 1 diff --git a/code/game/gamemodes/abduction/gland.dm b/code/game/gamemodes/abduction/gland.dm index fd2ecdcce4c..db0aa0c32dc 100644 --- a/code/game/gamemodes/abduction/gland.dm +++ b/code/game/gamemodes/abduction/gland.dm @@ -120,9 +120,7 @@ /obj/item/organ/internal/gland/pop/activate() owner << "You feel unlike yourself." var/species = pick(list(/datum/species/lizard,/datum/species/slime,/datum/species/plant/pod,/datum/species/fly)) - hardset_dna(owner, null, null, null, null, species) - owner.regenerate_icons() - return + owner.set_species(species) /obj/item/organ/internal/gland/ventcrawling origin_tech = "materials=4;biotech=5;bluespace=3" @@ -241,7 +239,7 @@ /obj/effect/cocoon/abductor/proc/Copy(mob/living/carbon/human/H) var/mob/living/carbon/human/interactive/greytide/clone = new(src) - hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) + clone.hardset_dna(H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features) //There's no define for this / get all items ? var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\ diff --git a/code/game/gamemodes/abduction/machinery/console.dm b/code/game/gamemodes/abduction/machinery/console.dm index 725ebf46091..24f17a5ce92 100644 --- a/code/game/gamemodes/abduction/machinery/console.dm +++ b/code/game/gamemodes/abduction/machinery/console.dm @@ -4,8 +4,6 @@ var/team = 0 /obj/machinery/abductor/proc/IsAbductor(mob/living/carbon/human/H) - if(!H.dna) - return 0 return H.dna.species.id == "abductor" /obj/machinery/abductor/proc/IsAgent(mob/living/carbon/human/H) diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index 78e195f331c..722f1bce2af 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -98,6 +98,7 @@ M.mind.name = newname M.real_name = newname M.name = newname + M.dna.update_dna_identity() var/datum/objective/protect/new_objective = new /datum/objective/protect new_objective.owner = M:mind new_objective:target = usr:mind diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index a88707f19cc..d4613fac399 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -346,7 +346,7 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas return if(has_dna(target.dna)) user << "We already have this DNA in storage!" - if(!check_dna_integrity(target)) + if(!target.has_dna()) user << "[target] is not compatible with our biology." return return 1 @@ -404,11 +404,9 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas /proc/changeling_transform(var/mob/living/carbon/human/user, var/datum/changelingprofile/chosen_prof) var/datum/dna/chosen_dna = chosen_prof.dna - user.real_name = chosen_prof.name - user.dna = chosen_dna - hardset_dna(user, null, null, null, null, chosen_dna.species.type, chosen_dna.features) - domutcheck(user) - updateappearance(user) + chosen_dna.transfer_identity(user, 1) + user.updateappearance(mutcolor_update=1) + user.domutcheck() //vars hackery. not pretty, but better than the alternative. for(var/slot in slots) diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 054035f2e14..2d8316edfa5 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -130,7 +130,7 @@ if((target.disabilities & NOCLONE) || (target.disabilities & HUSK)) user << "DNA of [target] is ruined beyond usability!" return - if(!check_dna_integrity(target) || !ishuman(target)) + if(!ishuman(target)) user << "[target] is not compatible with this ability." return return 1 diff --git a/code/game/gamemodes/changeling/powers/chameleon_skin.dm b/code/game/gamemodes/changeling/powers/chameleon_skin.dm index 36b7ba87339..5d6ca21c5ac 100644 --- a/code/game/gamemodes/changeling/powers/chameleon_skin.dm +++ b/code/game/gamemodes/changeling/powers/chameleon_skin.dm @@ -10,15 +10,14 @@ /obj/effect/proc_holder/changeling/chameleon_skin/sting_action(mob/user) - var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 - if(!istype(H)) + var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 //phil235 so why is it needd? + if(!istype(H)) // req_human could be done in can_sting stuff. return var/datum/mutation/human/HM = mutations_list[CHAMELEON] - if(H.dna && H.dna.mutations) - if(HM in H.dna.mutations) - HM.force_lose(H) - else - HM.force_give(H) + if(HM in H.dna.mutations) + HM.force_lose(H) + else + HM.force_give(H) feedback_add_details("changeling_powers","CS") return 1 diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index 04d36c169ac..5fde1238159 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -24,12 +24,11 @@ if(!user || user.notransform) return 0 user << "We transform our appearance." - - user.humanize((TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPSRC), chosen_prof.name) - - changeling_transform(user, chosen_prof) changeling.purchasedpowers -= src + + var/newmob = user.humanize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS) + + changeling_transform(newmob, chosen_prof) feedback_add_details("changeling_powers","LFT") - qdel(user) return 1 diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index 2ce8470c19c..05406b02bdf 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -12,9 +12,7 @@ return 0 user << "Our genes cry out!" - user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPSE | TR_KEEPSRC) + user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE) - // Human-form power now handled in monkeyize() feedback_add_details("changeling_powers","LF") - .=1 - qdel(user) \ No newline at end of file + return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index b6880a371e7..d466f2b774d 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -16,6 +16,9 @@ for(var/datum/disease/D in user.viruses) D.cure() - + for(var/obj/item/organ/internal/I in user) + if(istype(I,/obj/item/organ/internal/body_egg/alien_embryo)) + I.Remove(user) + I.loc = get_turf(user) feedback_add_details("changeling_powers","AP") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 5cd021fff74..a94ff6fc68e 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -81,7 +81,7 @@ /obj/effect/proc_holder/changeling/sting/transformation/can_sting(mob/user, mob/target) if(!..()) return - if((target.disabilities & HUSK) || !check_dna_integrity(target)) + if((target.disabilities & HUSK) || !target.has_dna()) user << "Our sting appears ineffective against its DNA." return 0 return 1 @@ -92,15 +92,17 @@ if(ismonkey(target)) user << "Our genes cry out as we sting [target.name]!" - if(iscarbon(target) && (target.status_flags & CANWEAKEN)) + if(iscarbon(target)) var/mob/living/carbon/C = target - C.do_jitter_animation(500) - C.take_organ_damage(20, 0) //The process is extremely painful + if(C.status_flags & CANWEAKEN) + C.do_jitter_animation(500) + C.take_organ_damage(20, 0) //The process is extremely painful - target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!") - spawn(10) - hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.features) - updateappearance(target) + target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!") + spawn(10) + NewDNA.transfer_identity(C, transfer_SE=1) + C.updateappearance(mutcolor_update=1) + C.domutcheck() feedback_add_details("changeling_powers","TS") return 1 @@ -125,7 +127,7 @@ /obj/effect/proc_holder/changeling/sting/false_armblade/can_sting(mob/user, mob/target) if(!..()) return - if((target.disabilities & HUSK) || !check_dna_integrity(target)) + if((target.disabilities & HUSK) || !target.has_dna()) user << "Our sting appears ineffective against its DNA." return 0 return 1 diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index a16b2946415..e3ce3bf5ea1 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -147,11 +147,11 @@ var/DNAstring = input("Input DNA string to search for." , "Please Enter String." , "") if(!DNAstring) return - for(var/mob/living/carbon/M in mob_list) - if(!M.dna) + for(var/mob/living/carbon/C in mob_list) + if(!C.dna) continue - if(M.dna.unique_enzymes == DNAstring) - target = M + if(C.dna.unique_enzymes == DNAstring) + target = C break return attack_self() diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index e485a62657d..cb4d5ace22f 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -807,7 +807,7 @@ var/global/list/possible_items_special = list() var/turf/cloc = get_turf(changeling.current) if(cloc && cloc.onCentcom() && (changeling.current.stat != DEAD)) //Living changeling on centcomm.... for(var/name in check_names) //Is he (disguised as) one of the staff? - if(H.dna && H.dna.real_name == name) + if(H.dna.real_name == name) check_names -= name //This staff member is accounted for, remove them, so the team don't succeed by escape as 7 of the same engineer success++ //A living changeling staff member made it to centcomm continue changelings diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 2e5721b5fe7..e2a6af4e114 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -1,4 +1,4 @@ -/datum/subsystem/ticker/proc/setupGenetics() +/datum/subsystem/objects/proc/setupGenetics() var/list/avnums = new /list(DNA_STRUC_ENZYMES_BLOCKS) for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) avnums[i] = i diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index eb0a55a9ee9..2d7caaaff2d 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -297,7 +297,7 @@ user.equip_to_slot_or_del(new /obj/item/clothing/gloves/shadowling(usr), slot_gloves) user.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/shadowling(usr), slot_wear_mask) user.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/shadowling(usr), slot_glasses) - hardset_dna(user, null, null, null, null, /datum/species/shadow/ling) + user.set_species(/datum/species/shadow/ling) /obj/effect/proc_holder/spell/targeted/collective_mind //Lets a shadowling bring together their thralls' strength, granting new abilities and a headcount @@ -568,7 +568,7 @@ datum/reagent/shadowling_blindness_smoke //Reagent used for above spell thrallToRevive.visible_message("[thrallToRevive] slowly rises, no longer recognizable as human.", \ "You feel new power flow into you. You have been gifted by your masters. You now closely resemble them. You are empowered in \ darkness but wither slowly in light. In addition, Lesser Glare and Guise have been upgraded into their true forms.") - hardset_dna(thrallToRevive, null, null, null, null, /datum/species/shadow/ling/lesser) + thrallToRevive.set_species(/datum/species/shadow/ling/lesser) thrallToRevive.mind.remove_spell(/obj/effect/proc_holder/spell/targeted/lesser_glare) thrallToRevive.mind.remove_spell(/obj/effect/proc_holder/spell/targeted/lesser_shadow_walk) thrallToRevive.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/glare(null)) diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 97a36b06255..f1aecf339be 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -84,7 +84,7 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N H.equip_to_slot_or_del(new /obj/item/clothing/gloves/shadowling(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/shadowling(H), slot_wear_mask) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/shadowling(H), slot_glasses) - hardset_dna(H, null, null, null, null, /datum/species/shadow/ling) //can't be a shadowling without being a shadowling + H.set_species(/datum/species/shadow/ling) //can't be a shadowling without being a shadowling sleep(10) H << "Your powers are awoken. You may now live to your fullest extent. Remember your goal. Cooperate with your thralls and allies." diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 06a94232ece..582eb0ebceb 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -22,9 +22,9 @@ /obj/item/weapon/veilrender/attack_self(mob/user) if(charges > 0) - new /obj/effect/rend(get_turf(usr), spawn_type, spawn_amt, rend_desc, spawn_fast) + new /obj/effect/rend(get_turf(user), spawn_type, spawn_amt, rend_desc, spawn_fast) charges-- - user.visible_message("[src] hums with power as [usr] deals a blow to [activate_descriptor] itself!") + user.visible_message("[src] hums with power as [user] deals a blow to [activate_descriptor] itself!") else user << "The unearthly energies that powered the blade are now dormant." @@ -59,7 +59,7 @@ /obj/effect/rend/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/nullrod)) - user.visible_message("[usr] seals \the [src] with \the [I].") + user.visible_message("[user] seals \the [src] with \the [I].") qdel(src) return ..() @@ -97,7 +97,7 @@ /obj/item/weapon/scrying/attack_self(mob/user) user << "You can see...everything!" - visible_message("[usr] stares into [src], their eyes glazing over.") + visible_message("[user] stares into [src], their eyes glazing over.") user.ghostize(1) return @@ -118,7 +118,7 @@ unlimited = 1 /obj/item/device/necromantic_stone/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) - if(!istype(M, /mob/living/carbon/human)) + if(!istype(M)) return ..() if(!istype(user) || !user.canUseTopic(M,1)) @@ -137,7 +137,7 @@ user << "This artifact can only affect three undead at a time!" return - hardset_dna(M, null, null, null, null, /datum/species/skeleton) + M.set_species(/datum/species/skeleton, icon_update=0) M.revive() spooky_scaries |= M M << "You have been revived by [user.real_name]!" @@ -261,13 +261,24 @@ var/global/list/multiverse = list() /obj/item/weapon/multisword/proc/spawn_copy(var/client/C, var/turf/T) var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) - C.prefs.copy_to(M) + C.prefs.copy_to(M, icon_updates=0) M.key = C.key M.mind.name = usr.real_name M << "You are an alternate version of [usr.real_name] from another universe! Help them accomplish their goals at all costs." M.real_name = usr.real_name M.name = usr.real_name M.faction = list("[usr.real_name]") + if(prob(50)) + var/list/all_species = list() + for(var/speciestype in typesof(/datum/species) - /datum/species) + var/datum/species/S = new speciestype() + if(!S.dangerous_existence) + all_species += speciestype + M.set_species(pick(all_species), icon_update=0) + M.update_body() + M.update_hair() + M.update_mutcolor() + M.dna.update_dna_identity() equip_copy(M) if(evil) @@ -440,14 +451,6 @@ var/global/list/multiverse = list() else return - ready_dna(M) - if(M.dna && prob(50)) - var/list/all_species = list() - for(var/speciestype in typesof(/datum/species) - /datum/species) - var/datum/species/S = new speciestype() - if(!S.dangerous_existence) - all_species += speciestype - hardset_dna(M, null, null, null, null, pick(all_species)) M.update_icons() M.update_augments() diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index d59f47796b5..d53f5fa2dba 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -130,7 +130,7 @@ var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. G_found.client.prefs.copy_to(new_character) - ready_dna(new_character) + new_character.dna.update_dna_identity() new_character.key = G_found.key return new_character diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index a7b0ab3ca3b..ca5fb09823c 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -50,14 +50,12 @@ return 0 //Equip the rest of the gear - if(H.dna) - H.dna.species.before_equip_job(src, H) + H.dna.species.before_equip_job(src, H) if(outfit) H.equipOutfit(outfit) - if(H.dna) - H.dna.species.after_equip_job(src, H) + H.dna.species.after_equip_job(src, H) /datum/job/proc/apply_fingerprints(mob/living/carbon/human/H) if(!istype(H)) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index e11ebd25a9e..221d898227c 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -185,7 +185,7 @@ H.ckey = ckey H << "Consciousness slowly creeps over you as your body regenerates.
    So this is what cloning feels like?
    " - hardset_dna(H, ui, se, null, null, mrace, features) + H.hardset_dna(ui, se, H.real_name, null, mrace, features) H.faction |= factions H.set_cloned_appearance() @@ -301,13 +301,13 @@ return /obj/machinery/clonepod/proc/go_out() - if (src.locked) + if (locked) return - if (src.mess) //Clean that mess and dump those gibs! - src.mess = 0 - gibs(src.loc) - src.icon_state = "pod_0" + if (mess) //Clean that mess and dump those gibs! + mess = 0 + gibs(loc) + icon_state = "pod_0" /* for(var/obj/O in src) @@ -315,22 +315,22 @@ */ return - if (!(src.occupant)) + if (!occupant) return /* for(var/obj/O in src) O.loc = src.loc */ - if (src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE + if (occupant.client) + occupant.client.eye = occupant.client.mob + occupant.client.perspective = MOB_PERSPECTIVE if(occupant.loc == src) - src.occupant.loc = src.loc - src.icon_state = "pod_0" - src.eject_wait = 0 //If it's still set somehow. - domutcheck(src.occupant) //Waiting until they're out before possible monkeyizing. - src.occupant = null + occupant.loc = loc + icon_state = "pod_0" + eject_wait = 0 //If it's still set somehow. + occupant.domutcheck() //Waiting until they're out before possible monkeyizing. + occupant = null return /obj/machinery/clonepod/proc/malfunction() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 65f0690047d..8cfd51a294f 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -350,7 +350,7 @@ return /obj/machinery/computer/cloning/proc/scan_mob(mob/living/carbon/human/subject) - if (!check_dna_integrity(subject) || !istype(subject)) + if (!istype(subject)) scantemp = "Unable to locate valid genetic data." return if (!subject.getorgan(/obj/item/organ/internal/brain)) diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm new file mode 100644 index 00000000000..5de7d5b4adb --- /dev/null +++ b/code/game/machinery/computer/dna_console.dm @@ -0,0 +1,482 @@ +#define INJECTOR_TIMEOUT 300 +#define REJUVENATORS_INJECT 15 +#define REJUVENATORS_MAX 90 +#define NUMBER_OF_BUFFERS 3 + +#define RADIATION_STRENGTH_MAX 15 +#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has a more range + +#define RADIATION_DURATION_MAX 30 +#define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate + +#define RADIATION_IRRADIATION_MULTIPLIER 0.2 //multiplier for how much radiation a test subject recieves + +/obj/machinery/computer/scan_consolenew + name = "\improper DNA scanner access console" + desc = "Scan DNA." + icon_screen = "dna" + icon_keyboard = "med_key" + density = 1 + circuit = /obj/item/weapon/circuitboard/scan_consolenew + var/radduration = 2 + var/radstrength = 1 + + var/list/buffer[NUMBER_OF_BUFFERS] + + var/injectorready = 0 //Quick fix for issue 286 (screwdriver the screen twice to restore injector) -Pete + var/current_screen = "mainmenu" + var/obj/machinery/dna_scannernew/connected = null + var/obj/item/weapon/disk/data/diskette = null + anchored = 1 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 400 + +/obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) + if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES + if (!src.diskette) + if(!user.drop_item()) + return + I.loc = src + src.diskette = I + user << "You insert [I]." + src.updateUsrDialog() + return + else + ..() + return + +/obj/machinery/computer/scan_consolenew/New() + ..() + + spawn(5) + for(dir in list(NORTH,EAST,SOUTH,WEST)) + connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) + if(!isnull(connected)) + break + spawn(250) + injectorready = 1 + return + return + +/obj/machinery/computer/scan_consolenew/attack_hand(mob/user) + if(..()) + return + ShowInterface(user) + +/obj/machinery/computer/scan_consolenew/proc/ShowInterface(mob/user, last_change) + if(!user) return + var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window + if(!( in_range(src, user) || istype(user, /mob/living/silicon) )) + popup.close() + return + popup.add_stylesheet("scannernew", 'html/browser/scannernew.css') + + var/mob/living/carbon/viable_occupant + var/occupant_status = "
    Subject Status:
    " + var/scanner_status + var/temp_html + if(connected && connected.is_operational()) + if(connected.occupant) //set occupant_status message + viable_occupant = connected.occupant + if(viable_occupant.has_dna() && (!(viable_occupant.disabilities & NOCLONE) || (connected.scan_level == 3))) //occupent is viable for dna modification + occupant_status += "[viable_occupant.name] => " + switch(viable_occupant.stat) + if(CONSCIOUS) occupant_status += "Conscious" + if(UNCONSCIOUS) occupant_status += "Unconscious" + else occupant_status += "DEAD - Cannot Operate" + occupant_status += "
    " + occupant_status += "
    Health:
    [viable_occupant.health] %
    " + occupant_status += "
    Radiation Level:
    [viable_occupant.radiation] %
    " + var/rejuvenators = viable_occupant.reagents.get_reagent_amount("epinephrine") + occupant_status += "
    Rejuvenators:
    [rejuvenators] units
    " + occupant_status += "
    Unique Enzymes :
    [viable_occupant.dna.unique_enzymes]
    " + occupant_status += "
    Last Operation:
    [last_change ? last_change : "----"]
    " + else + viable_occupant = null + occupant_status += "Invalid DNA structure" + if (viable_occupant && viable_occupant.stat == DEAD) + viable_occupant = null // No editing the dead. + else + occupant_status += "No subject detected" + + if(connected.state_open) + scanner_status = "Open" + else + scanner_status = "Closed" + if(connected.locked) + scanner_status += " (Locked)" + else + scanner_status += " (Unlocked)" + + + else + occupant_status += "----" + scanner_status += "Error: No scanner detected" + + var/status = "
    " + status += "
    Scanner:
    [scanner_status]
    " + status += "[occupant_status]" + + + status += "

    Radiation Emitter Status

    " + var/stddev = radstrength*RADIATION_STRENGTH_MULTIPLIER + status += "
    Output Level:
    [radstrength]
    " + status += "
      \> Mutation:
    (-[stddev] to +[stddev] = 68 %) (-[2*stddev] to +[2*stddev] = 95 %)
    " + if(connected) + stddev = RADIATION_ACCURACY_MULTIPLIER/(radduration + (connected.precision_coeff ** 2)) + else + stddev = RADIATION_ACCURACY_MULTIPLIER/radduration + var/chance_to_hit + switch(stddev) //hardcoded values from a z-table for a normal distribution + if(0 to 0.25) chance_to_hit = ">95 %" + if(0.25 to 0.5) chance_to_hit = "68-95 %" + if(0.5 to 0.75) chance_to_hit = "55-68 %" + else chance_to_hit = "<38 %" + status += "
    Pulse Duration:
    [radduration]
    " + status += "
      \> Accuracy:
    [chance_to_hit]
    " + status += "
    " // Close statusDisplay div + var/buttons = "Scan " + if(connected) + buttons += " [connected.state_open ? "Close" : "Open"] Scanner " + if (connected.state_open) + buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " + else + buttons += "[connected.locked ? "Unlock" : "Lock"] Scanner " + else buttons += "Open Scanner Lock Scanner " + if(viable_occupant) buttons += "Inject Rejuvenators " + else buttons += "Inject Rejuvenators " + if(diskette) buttons += "Eject Disk " + else buttons += "Eject Disk " + if(current_screen == "buffer") buttons += "Radiation Emitter Menu " + else buttons += "Buffer Menu " + + switch(current_screen) + if("working") + temp_html += status + temp_html += "

    System Busy

    " + temp_html += "Working ... Please wait ([radduration] Seconds)" + if("buffer") + temp_html += status + temp_html += buttons + temp_html += "

    Buffer Menu

    " + + if(istype(buffer)) + for(var/i=1, i<=buffer.len, i++) + temp_html += "
    Slot [i]: " + var/list/buffer_slot = buffer[i] + if( !buffer_slot || !buffer_slot.len || !buffer_slot["name"] || !((buffer_slot["UI"] && buffer_slot["UE"]) || buffer_slot["SE"]) ) + temp_html += "
    \tNo Data" + if(viable_occupant) temp_html += "
    Save to Buffer " + else temp_html += "
    Save to Buffer " + temp_html += "Clear Buffer " + if(diskette) temp_html += "Load from Disk " + else temp_html += "Load from Disk " + temp_html += "Save to Disk " + else + var/ui = buffer_slot["UI"] + var/se = buffer_slot["SE"] + var/ue = buffer_slot["UE"] + var/name = buffer_slot["name"] + var/label = buffer_slot["label"] + var/blood_type = buffer_slot["blood_type"] + temp_html += "
    \tLabel: [label ? label : name]" + temp_html += "
    \tSubject: [name]" + if(ue && name && blood_type) + temp_html += "
    \tBlood Type: [blood_type]" + temp_html += "
    \tUE: [ue] " + if(viable_occupant) temp_html += "Occupant " + else temp_html += "Occupant" + if(injectorready) temp_html += "Injector" + else temp_html += "Injector" + else + temp_html += "
    \tBlood Type: No Data" + temp_html += "
    \tUE: No Data" + if(ui) + temp_html += "
    \tUI: [ui] " + if(viable_occupant) temp_html += "Occupant " + else temp_html += "Occupant" + if(injectorready) temp_html += "Injector" + else temp_html += "Injector" + else + temp_html += "
    \tUI: No Data" + if(se) + temp_html += "
    \tSE: [se] " + if(viable_occupant && viable_occupant.stat != DEAD) temp_html += "Occupant " + else temp_html += "Occupant " + if(injectorready) temp_html += "Injector" + else temp_html += "Injector" + else + temp_html += "
    \tSE: No Data" + if(viable_occupant) temp_html += "
    Save to Buffer " + else temp_html += "
    Save to Buffer " + temp_html += "Clear Buffer " + if(diskette) temp_html += "Load from Disk " + else temp_html += "Load from Disk " + if(diskette && !diskette.read_only) temp_html += "Save to Disk " + else temp_html += "Save to Disk " + else + temp_html += status + temp_html += buttons + temp_html += "

    Radiation Emitter Menu

    " + + temp_html += "-- Output Level ++" + temp_html += "
    -- Pulse Duration ++" + + temp_html += "

    Irradiate Subject

    " + temp_html += "
    Unique Identifier:
    " + + var/max_line_len = 7*DNA_BLOCK_SIZE + if(viable_occupant) + temp_html += "
    1
    " + var/len = length(viable_occupant.dna.uni_identity) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.uni_identity,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
    " + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " + else + temp_html += "----" + temp_html += "

    " + + temp_html += "
    Structural Enzymes:
    " + if(viable_occupant) + temp_html += "
    1
    " + var/len = length(viable_occupant.dna.struc_enzymes) + for(var/i=1, i<=len, i++) + temp_html += "[copytext(viable_occupant.dna.struc_enzymes,i,i+1)]" + if ((i % max_line_len) == 0) + temp_html += "
    " + if((i % DNA_BLOCK_SIZE) == 0 && i < len) + temp_html += "
    [(i / DNA_BLOCK_SIZE) + 1]
    " + else + temp_html += "----" + temp_html += "
    " + + popup.set_content(temp_html) + popup.open() + + +/obj/machinery/computer/scan_consolenew/Topic(href, href_list) + if(..()) + return + if(!isturf(usr.loc)) + return + if(!( (isturf(loc) && in_range(src, usr)) || istype(usr, /mob/living/silicon) )) + return + if(current_screen == "working") + return + + add_fingerprint(usr) + usr.set_machine(src) + + var/mob/living/carbon/viable_occupant + if(connected) + viable_occupant = connected.occupant + if(!istype(viable_occupant) || !viable_occupant.dna || (viable_occupant.disabilities & NOCLONE)) + viable_occupant = null + + //Basic Tasks/////////////////////////////////////////// + var/num = round(text2num(href_list["num"])) + var/last_change + switch(href_list["task"]) + if("togglelock") + if(connected) connected.locked = !connected.locked + if("toggleopen") + if(connected) connected.toggle_open(usr) + if("setduration") + if(!num) + num = round(input(usr, "Choose pulse duration:", "Input an Integer", null) as num|null) + if(num) + radduration = Wrap(num, 1, RADIATION_DURATION_MAX+1) + if("setstrength") + if(!num) + num = round(input(usr, "Choose pulse strength:", "Input an Integer", null) as num|null) + if(num) + radstrength = Wrap(num, 1, RADIATION_STRENGTH_MAX+1) + if("screen") + current_screen = href_list["text"] + if("rejuv") + if(viable_occupant && viable_occupant.reagents) + var/epinephrine_amount = viable_occupant.reagents.get_reagent_amount("epinephrine") + var/can_add = max(min(REJUVENATORS_MAX - epinephrine_amount, REJUVENATORS_INJECT), 0) + viable_occupant.reagents.add_reagent("epinephrine", can_add) + if("setbufferlabel") + var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) + if(num && text) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + buffer_slot["label"] = text + if("setbuffer") + if(num && viable_occupant) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + buffer[num] = list( + "label"="Buffer[num]:[viable_occupant.real_name]", + "UI"=viable_occupant.dna.uni_identity, + "SE"=viable_occupant.dna.struc_enzymes, + "UE"=viable_occupant.dna.unique_enzymes, + "name"=viable_occupant.real_name, + "blood_type"=viable_occupant.dna.blood_type + ) + if("clearbuffer") + if(num) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + buffer_slot.Cut() + if("transferbuffer") + if(num && viable_occupant && viable_occupant.stat != DEAD) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) //15 and 40 are just magic numbers that were here before so i didnt touch them, they are initial boundaries of damage + viable_occupant.radiation += rand(15/(connected.damage_coeff ** 2),40/(connected.damage_coeff ** 2)) //Each laser level reduces damage by lvl^2, so no effect on 1 lvl, 4 times less damage on 2 and 9 times less damage on 3 + switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove + if("se") + if(buffer_slot["SE"]) + viable_occupant.dna.struc_enzymes = buffer_slot["SE"] + viable_occupant.domutcheck() + if("ui") + if(buffer_slot["UI"]) + viable_occupant.dna.uni_identity = buffer_slot["UI"] + viable_occupant.updateappearance(mutations_overlay_update=1) + else + if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + viable_occupant.real_name = buffer_slot["name"] + viable_occupant.name = buffer_slot["name"] + viable_occupant.dna.unique_enzymes = buffer_slot["UE"] + viable_occupant.dna.blood_type = buffer_slot["blood_type"] + if("injector") + if(num && injectorready) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + var/obj/item/weapon/dnainjector/I + switch(href_list["text"]) + if("se") + if(buffer_slot["SE"]) + I = new /obj/item/weapon/dnainjector(loc) + for(var/datum/mutation/human/HM in good_mutations + bad_mutations + not_good_mutations) + if(HM.check_block_string(buffer_slot["SE"])) + if(prob(HM.get_chance)) + I.add_mutations.Add(HM) + else + I.remove_mutations.Add(HM) + I.damage_coeff = connected.damage_coeff + if("ui") + if(buffer_slot["UI"]) + I = new /obj/item/weapon/dnainjector(loc) + I.fields = list("UI"=buffer_slot["UI"]) + I.damage_coeff = connected.damage_coeff + else + if(buffer_slot["name"] && buffer_slot["UE"] && buffer_slot["blood_type"]) + I = new /obj/item/weapon/dnainjector(loc) + I.fields = list("name"=buffer_slot["name"], "UE"=buffer_slot["UE"], "blood_type"=buffer_slot["blood_type"]) + I.damage_coeff = connected.damage_coeff + if(I) + injectorready = 0 + spawn(INJECTOR_TIMEOUT) + injectorready = 1 + if("loaddisk") + if(num && diskette && diskette.fields) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + buffer[num] = diskette.fields.Copy() + if("savedisk") + if(num && diskette && !diskette.read_only) + num = Clamp(num, 1, NUMBER_OF_BUFFERS) + var/list/buffer_slot = buffer[num] + if(istype(buffer_slot)) + diskette.name = "data disk \[[buffer_slot["label"]]\]" + diskette.fields = buffer_slot.Copy() + if("ejectdisk") + if(diskette) + diskette.loc = get_turf(src) + diskette = null + if("pulseui","pulsese") + if(num && viable_occupant && connected && viable_occupant.stat != DEAD) + radduration = Wrap(radduration, 1, RADIATION_DURATION_MAX+1) + radstrength = Wrap(radstrength, 1, RADIATION_STRENGTH_MAX+1) + + var/locked_state = connected.locked + connected.locked = 1 + + current_screen = "working" + ShowInterface(usr) + + sleep(radduration*10) + current_screen = "mainmenu" + + if(viable_occupant && connected && connected.occupant==viable_occupant) + viable_occupant.radiation += (RADIATION_IRRADIATION_MULTIPLIER*radduration*radstrength)/(connected.damage_coeff ** 2) //Read comment in "transferbuffer" section above for explanation + switch(href_list["task"]) //Same thing as there but values are even lower, on best part they are about 0.0*, effectively no damage + if("pulseui") + var/len = length(viable_occupant.dna.uni_identity) + num = Wrap(num, 1, len+1) + num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 + //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low + var/block = round((num-1)/DNA_BLOCK_SIZE)+1 + var/subblock = num - block*DNA_BLOCK_SIZE + last_change = "UI #[block]-[subblock]; " + + var/hex = copytext(viable_occupant.dna.uni_identity, num, num+1) + last_change += "[hex]" + hex = scramble(hex, radstrength, radduration) + last_change += "->[hex]" + + viable_occupant.dna.uni_identity = copytext(viable_occupant.dna.uni_identity, 1, num) + hex + copytext(viable_occupant.dna.uni_identity, num+1, 0) + viable_occupant.updateappearance(mutations_overlay_update=1) + if("pulsese") + var/len = length(viable_occupant.dna.struc_enzymes) + num = Wrap(num, 1, len+1) + num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) + + var/block = round((num-1)/DNA_BLOCK_SIZE)+1 + var/subblock = num - block*DNA_BLOCK_SIZE + last_change = "SE #[block]-[subblock]; " + + var/hex = copytext(viable_occupant.dna.struc_enzymes, num, num+1) + last_change += "[hex]" + hex = scramble(hex, radstrength, radduration) + last_change += "->[hex]" + + viable_occupant.dna.struc_enzymes = copytext(viable_occupant.dna.struc_enzymes, 1, num) + hex + copytext(viable_occupant.dna.struc_enzymes, num+1, 0) + viable_occupant.domutcheck() + else + current_screen = "mainmenu" + + if(connected) + connected.locked = locked_state + + ShowInterface(usr,last_change) + +/obj/machinery/computer/scan_consolenew/proc/scramble(input,rs,rd) + var/length = length(input) + var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) + if(ran == 0) ran = pick(-1,1) //hacky, statistically should almost never happen. 0-change makes people mad though + else if(ran < 0) ran = round(ran) //negative, so floor it + else ran = -round(-ran) //positive, so ceiling it + return num2hex(Wrap(hex2num(input)+ran, 0, 16**length), length) + +/obj/machinery/computer/scan_consolenew/proc/randomize_radiation_accuracy(position_we_were_supposed_to_hit, radduration, number_of_blocks) + return Wrap(round(position_we_were_supposed_to_hit + gaussian(0, RADIATION_ACCURACY_MULTIPLIER/radduration), 1), 1, number_of_blocks+1) + + + +/////////////////////////// DNA MACHINES +#undef INJECTOR_TIMEOUT +#undef REJUVENATORS_INJECT +#undef REJUVENATORS_MAX +#undef NUMBER_OF_BUFFERS + +#undef RADIATION_STRENGTH_MAX +#undef RADIATION_STRENGTH_MULTIPLIER + +#undef RADIATION_DURATION_MAX +#undef RADIATION_ACCURACY_MULTIPLIER + +#undef RADIATION_IRRADIATION_MULTIPLIER + +//#undef BAD_MUTATION_DIFFICULTY +//#undef GOOD_MUTATION_DIFFICULTY +//#undef OP_MUTATION_DIFFICULTY \ No newline at end of file diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm new file mode 100644 index 00000000000..ac18b3fe445 --- /dev/null +++ b/code/game/machinery/dna_scanner.dm @@ -0,0 +1,167 @@ +/obj/machinery/dna_scannernew + name = "\improper DNA scanner" + desc = "It scans DNA structures." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "scanner" + density = 1 + var/locked = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 50 + active_power_usage = 300 + var/damage_coeff + var/scan_level + var/precision_coeff + +/obj/machinery/dna_scannernew/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/clonescanner(null) + component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + component_parts += new /obj/item/stack/cable_coil(null, 1) + component_parts += new /obj/item/stack/cable_coil(null, 1) + RefreshParts() + + +/obj/machinery/dna_scannernew/RefreshParts() + scan_level = 0 + damage_coeff = 0 + precision_coeff = 0 + for(var/obj/item/weapon/stock_parts/scanning_module/P in component_parts) + scan_level += P.rating + for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) + precision_coeff = P.rating + for(var/obj/item/weapon/stock_parts/micro_laser/P in component_parts) + damage_coeff = P.rating + +/obj/machinery/dna_scannernew/update_icon() + + //no power or maintenance + if(stat & (NOPOWER|BROKEN)) + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_unpowered" + return + + if((stat & MAINT) || panel_open) + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_maintenance" + return + + //running and someone in there + if(occupant) + icon_state = initial(icon_state)+ "_occupied" + return + + //running + icon_state = initial(icon_state)+ (state_open ? "_open" : "") + +/obj/machinery/dna_scannernew/power_change() + ..() + update_icon() + +/obj/machinery/dna_scannernew/proc/toggle_open(mob/user) + if(panel_open) + user << "Close the maintenance panel first." + return + + if(state_open) + close_machine() + return + + else if(locked) + user << "The bolts are locked down, securing the door shut." + return + + open_machine() + +/obj/machinery/dna_scannernew/container_resist() + var/mob/living/user = usr + var/breakout_time = 2 + if(state_open || !locked) //Open and unlocked, no need to escape + state_open = 1 + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about [breakout_time] minutes.)" + user.visible_message("You hear a metallic creaking from [src]!") + + if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked) + return + + locked = 0 + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + + open_machine() + +/obj/machinery/dna_scannernew/close_machine() + if(!state_open) + return 0 + + ..() + + // search for ghosts, if the corpse is empty and the scanner is connected to a cloner + if(occupant) + if(locate(/obj/machinery/computer/cloning, get_step(src, NORTH)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, SOUTH)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \ + || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) + + occupant.notify_ghost_cloning("Your corpse has been placed into a cloning scanner. Re-enter your corpse if you want to be cloned!") + return 1 + +/obj/machinery/dna_scannernew/open_machine() + if(state_open) + return 0 + + ..() + + return 1 + +/obj/machinery/dna_scannernew/relaymove(mob/user as mob) + if(user.stat || locked) + return + + open_machine() + return + +/obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params) + + if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant... + update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed + return + + if(exchange_parts(user, I)) + return + + if(default_pry_open(I)) + return + + if(default_deconstruction_crowbar(I)) + return + + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + if(!ismob(G.affecting)) + return + + if(!state_open) + user << "Open the scanner first." + return + + var/mob/M = G.affecting + M.loc = loc + user.stop_pulling() + qdel(G) + +/obj/machinery/dna_scannernew/attack_hand(mob/user) + if(..(user,1,0)) //don't set the machine, since there's no dialog + return + + toggle_open(user) + +/obj/machinery/dna_scannernew/blob_act() + if(prob(75)) + qdel(src) \ No newline at end of file diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 6c073ceb95e..143d5d30029 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -124,9 +124,9 @@ var/mob/living/carbon/human/T = attached - if(!istype(T)) return - if(!T.dna) + if(!istype(T)) return + if(T.disabilities & NOCLONE) return diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 1cbf53376ea..a1c1e470b03 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -315,8 +315,8 @@ var/mob/living/carbon/human/human = M if(human.dna && human.dna.species.id == "human") M << "You hear a buzzing in your ears." - hardset_dna(human, null, null, null, null, /datum/species/fly) - human.regenerate_icons() + human.set_species(/datum/species/fly) + human.apply_effect((rand(120 - accurate * 40, 180 - accurate * 60)), IRRADIATE, 0) calibrated = 0 return diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm index 55b9d068630..c6a3a347726 100644 --- a/code/game/mecha/combat/honker.dm +++ b/code/game/mecha/combat/honker.dm @@ -45,7 +45,7 @@ HONK pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
    HONK temperature: [return_temperature()]°K|[return_temperature() - T0C]°C
    Lights: [lights?"on":"off"]
    - [src.dna?"DNA-locked:
    [src.dna] \[Reset\]
    ":null] + [dna_lock?"DNA-locked:
    [dna_lock] \[Reset\]
    ":null] "} return output diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 0225ac4ee3b..17d095f2911 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -34,7 +34,7 @@ var/last_message = 0 var/add_req_access = 1 var/maint_access = 0 - var/dna //dna-locking the mech + var/dna_lock//dna-locking the mech var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference var/datum/effect/effect/system/spark_spread/spark_system = new var/lights = 0 @@ -557,7 +557,7 @@ else if(AI.stat || !AI.client) user << "[AI.name] is currently unresponsive, and cannot be uploaded." return - else if(occupant || dna) //Normal AIs cannot steal mechs! + else if(occupant || dna_lock) //Normal AIs cannot steal mechs! user << "Access denied. [name] is [occupant ? "currently occupied" : "secured with a DNA lock"]." return AI.control_disabled = 0 @@ -653,10 +653,10 @@ log_append_to_last("Permission denied.") return var/passed - if(dna) - if(check_dna_integrity(user)) + if(dna_lock) + if(user.has_dna()) var/mob/living/carbon/C = user - if(C.dna.unique_enzymes==src.dna) + if(C.dna.unique_enzymes==dna_lock) passed = 1 else if(operation_allowed(user)) passed = 1 @@ -711,8 +711,8 @@ else if(occupant) user << "Occupant detected!" return 0 - else if(dna && dna!=mmi_as_oc.brainmob.dna.unique_enzymes) - user << "Stop it!" + else if(dna_lock && (!mmi_as_oc.brainmob.dna || dna_lock!=mmi_as_oc.brainmob.dna.unique_enzymes)) + user << "Access denied. [name] is secured with a DNA lock." return 0 visible_message("[user] starts to insert an MMI into [src.name].") diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 25ba30fde4a..8dc4dfde8c6 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -83,7 +83,7 @@ Airtank temperature: [tank_temperature]°K|[tank_temperature - T0C]°C
    Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
    Cabin temperature: [return_temperature()]°K|[return_temperature() - T0C]°C
    - [src.dna?"DNA-locked:
    [src.dna] \[Reset\]
    ":null] + [dna_lock?"DNA-locked:
    [dna_lock] \[Reset\]
    ":null] "} return output @@ -300,11 +300,11 @@ if(occupant && !iscarbon(occupant)) occupant << " You do not have any DNA!" return - dna = src.occupant.dna.unique_enzymes + dna_lock = occupant.dna.unique_enzymes occupant_message("You feel a prick as the needle takes your DNA sample.") if(href_list["reset_dna"]) - dna = null + dna_lock = null if(href_list["repair_int_control_lost"]) occupant_message("Recalibrating coordination system...") diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index ad8574211f8..6f90e2d9f92 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -80,7 +80,7 @@ return if(ishuman(user)) var/mob/living/carbon/human/H = user - if(H.dna && (H.dna.check_mutation(HULK) || NOGUNS in H.dna.species.specflags)) + if(H.dna.check_mutation(HULK) || NOGUNS in H.dna.species.specflags) user << "Your fingers can't press the button!" return diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a80e0d4eb31..c9311f53a64 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -162,8 +162,7 @@ MASS SPECTROMETER // Species and body temperature if(ishuman(M)) var/mob/living/carbon/human/H = M - if(H.dna) - user << "Species: [H.dna.species.name]" + user << "Species: [H.dna.species.name]" user << "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)" // Time of death diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 9276fce55bc..960b38ad0ba 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -17,7 +17,7 @@ /obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user) - if(check_dna_integrity(M) && !(M.disabilities & NOCLONE)) + if(M.has_dna() && !(M.disabilities & NOCLONE)) if(M.stat == DEAD) //prevents dead people from having their DNA changed user << "You can't modify [M]'s DNA while \he's dead." return @@ -38,7 +38,7 @@ M.dna.blood_type = fields["blood_type"] if(fields["UI"]) //UI+UE M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) - updateappearance(M) + M.updateappearance() log_attack(log_msg) else user << "It appears that [M] does not have compatible DNA." diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 3fd5b7cf096..e342de7ac9a 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -244,7 +244,7 @@ return 1 /obj/item/weapon/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflection chance for balance issues and switches hitsounds. - if(istype(M)) + if(M.has_dna()) if(M.dna.check_mutation(HULK)) M << "You lack the grace to wield this!" return diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index b0c939443c1..9c3f73faf40 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -148,16 +148,17 @@ var/racechoice = input(H, "What are we again?", "Race change") as null|anything in choosable_races newrace = species_list[racechoice] - if(!newrace || !H.dna) + if(!newrace) return - hardset_dna(H, null, null, null, null, newrace) + H.set_species(newrace, icon_update=0) if(H.dna.species.use_skintones) var/new_s_tone = input(user, "Choose your skin tone:", "Race change") as null|anything in skin_tones if(new_s_tone) H.skin_tone = new_s_tone + H.dna.update_ui_block(DNA_SKIN_TONE_BLOCK) if(MUTCOLORS in H.dna.species.specflags) var/new_mutantcolor = input(user, "Choose your skin color:", "Race change") as color|null @@ -170,7 +171,10 @@ else H << "Invalid color. Your color is not bright enough." - H.regenerate_icons() + H.update_body() + H.update_hair() + H.update_mutcolor() + H.update_mutations_overlay() // no hulk lizard if("gender") if(!(H.gender in list("male", "female"))) //blame the patriarchy @@ -180,12 +184,19 @@ if(alert(H, "Become a Witch?", "Confirmation", "Yes", "No") == "Yes") H.gender = "female" H << "Man, you feel like a woman!" - H.regenerate_icons() + else + return + else if(alert(H, "Become a Warlock?", "Confirmation", "Yes", "No") == "Yes") H.gender = "male" H << "Whoa man, you feel like a man!" - H.regenerate_icons() + else + return + H.dna.update_ui_block(DNA_GENDER_BLOCK) + H.update_body() + H.update_mutations_overlay() //(hulk male/female) + if("hair") var/hairchoice = alert(H, "Hair style or hair color?", "Change Hair", "Style", "Color") @@ -196,15 +207,17 @@ var/new_hair_color = input(H, "Choose your hair color", "Hair Color") as null|color if(new_hair_color) H.hair_color = sanitize_hexcolor(new_hair_color) + H.dna.update_ui_block(DNA_HAIR_COLOR_BLOCK) if(H.gender == "male") var/new_face_color = input(H, "Choose your facial hair color", "Hair Color") as null|color if(new_face_color) H.facial_hair_color = sanitize_hexcolor(new_face_color) - + H.dna.update_ui_block(DNA_FACIAL_HAIR_COLOR_BLOCK) H.update_hair() if("eyes") var/new_eye_color = input(H, "Choose your eye color", "Eye Color") as null|color if(new_eye_color) H.eye_color = sanitize_hexcolor(new_eye_color) + H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) H.update_body() \ No newline at end of file diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 2861e298a53..86eb11de26f 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -220,7 +220,7 @@ var/dat = "Showing DNA from blood.
    " dat += "" for(var/mob/living/carbon/human/H in mob_list) - if(H.dna && H.ckey) + if(H.ckey) dat += "" dat += "
    NameDNABlood Type
    [H][H.dna.unique_enzymes][H.dna.blood_type]
    " usr << browse(dat, "window=DNA;size=440x410") @@ -231,12 +231,7 @@ dat += "" for(var/mob/living/carbon/human/H in mob_list) if(H.ckey) - if(H.dna && H.dna.uni_identity) - dat += "" - else if(H.dna && !H.dna.uni_identity) - dat += "" - else if(!H.dna) - dat += "" + dat += "" dat += "
    NameFingerprints
    [H][md5(H.dna.uni_identity)]
    [H]H.dna.uni_identity = null
    [H]H.dna = null
    [H][md5(H.dna.uni_identity)]
    " usr << browse(dat, "window=fingerprints;size=440x410") @@ -259,8 +254,7 @@ message_admins("\blue [key_name_admin(usr)] turned all humans into [result]") var/newtype = species_list[result] for(var/mob/living/carbon/human/H in mob_list) - hardset_dna(H, null, null, null, null, newtype) - H.regenerate_icons() + H.set_species(newtype) if("corgi") if(!check_rights(R_FUN)) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 03d01a2cf24..09626b0d0ff 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -326,13 +326,13 @@ //Spawn and equip the commando var/mob/living/carbon/human/Commando = new(spawnloc) chosen_candidate.client.prefs.copy_to(Commando) - ready_dna(Commando) if(numagents == 1) //If Squad Leader Commando.real_name = "Officer [pick(commando_names)]" Commando.equipOutfit(/datum/outfit/death_commando/officer) else Commando.real_name = "Trooper [pick(commando_names)]" Commando.equipOutfit(/datum/outfit/death_commando) + Commando.dna.update_dna_identity() Commando.key = chosen_candidate.key Commando.mind.assigned_role = "Death Commando" for(var/obj/machinery/door/poddoor/ert/door in airlocks) @@ -420,8 +420,8 @@ //Create the official var/mob/living/carbon/human/newmob = new (pick(emergencyresponseteamspawn)) chosen_candidate.client.prefs.copy_to(newmob) - ready_dna(newmob) newmob.real_name = newmob.dna.species.random_name(newmob.gender,1) + newmob.dna.update_dna_identity() newmob.key = chosen_candidate.key newmob.mind.assigned_role = "Centcom Official" newmob.equipOutfit(/datum/outfit/centcom_official) @@ -490,7 +490,6 @@ var/mob/living/carbon/human/ERTOperative = new(spawnloc) var/list/lastname = last_names chosen_candidate.client.prefs.copy_to(ERTOperative) - ready_dna(ERTOperative) var/ertname = pick(lastname) switch(numagents) if(1) @@ -514,6 +513,7 @@ if(7) ERTOperative.real_name = "Engineer [ertname]" ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer) + ERTOperative.dna.update_dna_identity() ERTOperative.key = chosen_candidate.key ERTOperative.mind.assigned_role = "ERT" @@ -690,7 +690,7 @@ var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. G_found.client.prefs.copy_to(new_character) - ready_dna(new_character) + new_character.dna.update_dna_identity() new_character.key = G_found.key return new_character diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 7cb4c9f4994..6e314d19ee0 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -300,15 +300,13 @@ Traitors and the like can also be revived with the previous role mostly intact. new_character.real_name = record_found.fields["name"] new_character.gender = record_found.fields["sex"] new_character.age = record_found.fields["age"] - new_character.dna.blood_type = record_found.fields["blood_type"] + new_character.hardset_dna(record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"]) else - new_character.gender = pick(MALE,FEMALE) var/datum/preferences/A = new() - A.real_name = G_found.real_name A.copy_to(new_character) + A.real_name = G_found.real_name + new_character.dna.update_dna_identity() - if(!new_character.real_name) - new_character.real_name = new_character.dna.species.random_name(new_character.gender,1) new_character.name = new_character.real_name if(G_found.mind && !G_found.mind.active) @@ -316,13 +314,8 @@ Traitors and the like can also be revived with the previous role mostly intact. new_character.mind.special_verbs = list() else new_character.mind_initialize() - if(!new_character.mind.assigned_role) new_character.mind.assigned_role = "Assistant"//If they somehow got a null assigned role. - - //DNA - if(record_found)//Pull up their name from database records if they did have a mind. - hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"]) - else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile. - ready_dna(new_character) + if(!new_character.mind.assigned_role) + new_character.mind.assigned_role = "Assistant"//If they somehow got a null assigned role. new_character.key = G_found.key @@ -822,7 +815,7 @@ var/list/datum/outfit/custom_outfits = list() //Admin created outfits id_select += "" id_select += "" - var/dat = {" + var/dat = {" Create Outfit
    diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 450d153a94f..54b0a0953c2 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -80,20 +80,17 @@ user.dna.add_mutation(LASEREYES) user.dna.add_mutation(COLDRES) user.dna.add_mutation(XRAY) - hardset_dna(user, null, null, null, null, /datum/species/shadow) - user.regenerate_icons() + user.set_species(/datum/species/shadow) if("Wealth") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." new /obj/structure/closet/syndicate/resources/everything(loc) - hardset_dna(user, null, null, null, null, /datum/species/shadow) - user.regenerate_icons() + user.set_species(/datum/species/shadow) if("Immortality") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." user.verbs += /mob/living/carbon/proc/immortality - hardset_dna(user, null, null, null, null, /datum/species/shadow) - user.regenerate_icons() + user.set_species(/datum/species/shadow) if("To Kill") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart." @@ -107,8 +104,7 @@ for(var/datum/objective/OBJ in user.mind.objectives) user << "Objective #[obj_count]: [OBJ.explanation_text]" obj_count++ - hardset_dna(user, null, null, null, null, /datum/species/shadow) - user.regenerate_icons() + user.set_species(/datum/species/shadow) if("Peace") user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." user << "You feel as if you just narrowly avoided a terrible fate..." diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 24fe636eeff..95cd0a176d4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1049,7 +1049,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set ShowChoices(user) return 1 -/datum/preferences/proc/copy_to(mob/living/carbon/human/character) +/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1) if(be_random_name) real_name = pref_species.random_name(gender) @@ -1081,19 +1081,19 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set character.undershirt = undershirt character.socks = socks - character.features = features - character.backbag = backbag - if(character.dna) - var/datum/species/chosen_species - - character.dna.real_name = character.real_name - if(pref_species != /datum/species/human && config.mutant_races) - chosen_species = pref_species.type - else - chosen_species = /datum/species/human - hardset_dna(character, null, null, null, blood_type, chosen_species, features) + character.dna.blood_type = blood_type + character.dna.features = features + character.dna.real_name = character.real_name + var/datum/species/chosen_species + if(pref_species != /datum/species/human && config.mutant_races) + chosen_species = pref_species.type else + chosen_species = /datum/species/human + character.set_species(chosen_species, icon_update=0) + + if(icon_updates) character.update_body() - character.update_hair() \ No newline at end of file + character.update_hair() + character.update_mutcolor() \ No newline at end of file diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 9d4981c9e80..fa324c1886c 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -52,21 +52,19 @@ if(isnull(M.key)) return if(ishuman(M)) var/mob/living/carbon/human/H = M - if(!istype(H.dna, /datum/dna)) - return 0 if(H.gloves) if(fingerprintslast != H.ckey) - fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key) + fingerprintshidden += "\[[time_stamp()]\] (Wearing gloves). Real name: [H.real_name], Key: [H.key]" fingerprintslast = H.ckey return 0 - if(!( fingerprints )) + if(!fingerprints) if(fingerprintslast != H.ckey) - fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key) + fingerprintshidden += "\[[time_stamp()]\] Real name: [H.real_name], Key: [H.key]" fingerprintslast = H.ckey return 1 else if(fingerprintslast != M.ckey) - fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key) + fingerprintshidden += "\[[time_stamp()]\] Real name: [M.real_name], Key: [M.key]" fingerprintslast = M.ckey return @@ -75,17 +73,15 @@ if(isnull(M)) return if(isnull(M.key)) return if(ishuman(M)) + var/mob/living/carbon/human/H = M //Add the list if it does not exist. if(!fingerprintshidden) fingerprintshidden = list() //Fibers~ - add_fibers(M) + add_fibers(H) //Now, lets get to the dirty work. - //First, make sure their DNA makes sense. - var/mob/living/carbon/human/H = M - check_dna_integrity(H) //sets up dna and its variables if it was missing somehow //Check if the gloves (if any) hide fingerprints if(H.gloves) diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index a35fe5de224..f31a4f9d81f 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -82,7 +82,7 @@ if(ishuman(A)) var/mob/living/carbon/human/H = A - if (istype(H.dna, /datum/dna) && !H.gloves) + if(!H.gloves) fingerprints += md5(H.dna.uni_identity) else if(!ismob(A)) diff --git a/code/modules/events/holiday/halloween.dm b/code/modules/events/holiday/halloween.dm index a08a507a907..107c8f10920 100644 --- a/code/modules/events/holiday/halloween.dm +++ b/code/modules/events/holiday/halloween.dm @@ -11,11 +11,10 @@ for(var/mob/living/carbon/human/H in mob_list) var/obj/item/weapon/storage/backpack/b = locate() in H.contents new /obj/item/weapon/storage/spooky(b) - if(H.dna) - if(prob(50)) - hardset_dna(H, null, null, null, null, /datum/species/skeleton) - else - hardset_dna(H, null, null, null, null, /datum/species/zombie) + if(prob(50)) + H.set_species(/datum/species/skeleton) + else + H.set_species(/datum/species/zombie) for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in mob_list) Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian)) diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index f86ecdb5c42..1857a625da0 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -43,10 +43,10 @@ if(prob(25)) if(prob(75)) randmutb(H) - domutcheck(H, null, 1) + H.domutcheck() else randmutg(H) - domutcheck(H, null, 1) + H.domutcheck() else if(istype(C, /mob/living/carbon/monkey)) var/mob/living/carbon/monkey/M = C diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index cda6dc2d41f..fdfdd98f451 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -17,13 +17,10 @@ PoolOrNew(/obj/effect/effect/smoke, W.loc) var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc) - I.real_name = W.real_name - I.dna.unique_enzymes = W.dna.unique_enzymes - I.name = W.real_name - I.dna.blood_type = W.dna.blood_type - I.dna.uni_identity = W.dna.uni_identity - I.dna.struc_enzymes = W.dna.struc_enzymes - updateappearance(I) + W.dna.transfer_identity(I, transfer_SE=1) + I.real_name = I.dna.real_name + I.name = I.dna.real_name + I.updateappearance(mutcolor_update=1) if(W.ears) I.equip_to_slot_or_del(new W.ears.type, slot_ears) if(W.w_uniform) I.equip_to_slot_or_del(new W.w_uniform.type , slot_w_uniform) if(W.shoes) I.equip_to_slot_or_del(new W.shoes.type, slot_shoes) diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm index 54c3cbf6877..7bbee2ba98c 100644 --- a/code/modules/events/wizard/race.dm +++ b/code/modules/events/wizard/race.dm @@ -21,10 +21,9 @@ all_the_same = 1 for(var/mob/living/carbon/human/H in mob_list) //yes, even the dead - if(H.dna) - hardset_dna(H, null, null, null, null, new_species) - H.real_name = new_species.random_name(H.gender,1) - H.regenerate_icons() - H << "You feel somehow... different?" + H.set_species(new_species) + H.real_name = new_species.random_name(H.gender,1) + H.dna.unique_enzymes = H.dna.generate_unique_enzymes() + H << "You feel somehow... different?" if(!all_the_same) new_species = pick(all_species) diff --git a/code/modules/food&drinks/kitchen machinery/processor.dm b/code/modules/food&drinks/kitchen machinery/processor.dm index 431dee34309..5db38bbc970 100644 --- a/code/modules/food&drinks/kitchen machinery/processor.dm +++ b/code/modules/food&drinks/kitchen machinery/processor.dm @@ -112,8 +112,8 @@ for(var/datum/disease/D in O.viruses) if(!(D.spread_flags & SPECIAL)) B.data["viruses"] += D.Copy() - if(check_dna_integrity(O)) - B.data["blood_DNA"] = copytext(O.dna.unique_enzymes,1,0) + if(O.has_dna()) + B.data["blood_DNA"] = O.dna.unique_enzymes if(O.resistances&&O.resistances.len) B.data["resistances"] = O.resistances.Copy() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a0d3d291abb..83c531362bc 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -897,7 +897,7 @@ podman.faction |= factions if(!features["mcolor"]) features["mcolor"] = "#59CE00" - hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman + podman.hardset_dna(null,null,podman.real_name,blood_type,/datum/species/plant/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman podman.set_cloned_appearance() else //else, one packet of seeds. maybe two diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm index 0660e8e4f99..3c24e017066 100644 --- a/code/modules/mob/interactive.dm +++ b/code/modules/mob/interactive.dm @@ -86,22 +86,14 @@ /mob/living/carbon/human/interactive/proc/random() //this is here because this has no client/prefs/brain whatever. - underwear = random_underwear(gender) - skin_tone = random_skin_tone() - hair_style = random_hair_style(gender) - facial_hair_style = random_facial_hair_style(gender) - hair_color = random_short_color() - facial_hair_color = hair_color - eye_color = "blue" age = rand(AGE_MIN,AGE_MAX) - ready_dna(src,random_blood_type()) //job handling var/list/jobs = SSjob.occupations for(var/datum/job/J in jobs) if(J.title == "Cyborg" || J.title == "AI" || J.title == "Chaplain" || J.title == "Mime") jobs -= J myjob = pick(jobs) - src.job = myjob.title + job = myjob.title if(!graytide) myjob.equip(src) myjob.apply_fingerprints(src) @@ -120,25 +112,18 @@ /mob/living/carbon/human/interactive/New() ..() - gender = pick(MALE,FEMALE) - if(gender == MALE) - name = "[pick(first_names_male)] [pick(last_names)]" - real_name = name - else - name = "[pick(first_names_female)] [pick(last_names)]" - real_name = name random() MYID = new(src) MYID.name = "[src.real_name]'s ID Card ([myjob.title])" MYID.assignment = "[myjob.title]" MYID.registered_name = src.real_name MYID.access = myjob.access - src.equip_to_slot_or_del(MYID, slot_wear_id) + equip_to_slot_or_del(MYID, slot_wear_id) MYPDA = new(src) - MYPDA.owner = src.real_name + MYPDA.owner = real_name MYPDA.ownjob = "Crew" - MYPDA.name = "PDA-[src.real_name] ([myjob.title])" - src.equip_to_slot_or_del(MYPDA, slot_belt) + MYPDA.name = "PDA-[real_name] ([myjob.title])" + equip_to_slot_or_del(MYPDA, slot_belt) zone_sel = new /obj/screen/zone_sel() zone_sel.selecting = "chest" if(prob(10)) //my x is augmented @@ -371,9 +356,7 @@ if(!l_hand || !r_hand) var/obj/item/clothing/C = TARGET take_to_slot(C) - if(equip_to_appropriate_slot(C)) - C.update_icon() - else + if(!equip_to_appropriate_slot(C)) var/obj/item/I = get_item_by_slot(C) unEquip(I) equip_to_appropriate_slot(C) @@ -384,7 +367,6 @@ equip_to_appropriate_slot(MYPDA) if(MYID in src.loc) equip_to_appropriate_slot(MYID) - update_icons() //THIEVING SKILLS END //-------------TOUCH ME if(istype(TARGET,/obj/structure)) diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 248d147de43..f615908affe 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -85,15 +85,18 @@ update_icon() name = "Man-Machine Interface" -/obj/item/device/mmi/proc/transfer_identity(mob/living/carbon/human/H) //Same deal as the regular brain proc. Used for human-->robot people. +/obj/item/device/mmi/proc/transfer_identity(mob/living/L) //Same deal as the regular brain proc. Used for human-->robot people. brainmob = new(src) - brainmob.name = H.real_name - brainmob.real_name = H.real_name - if(check_dna_integrity(H)) - brainmob.dna = H.dna + brainmob.name = L.real_name + brainmob.real_name = L.real_name + if(L.has_dna()) + var/mob/living/carbon/C = L + brainmob.dna = C.dna + brainmob.dna.holder = brainmob brainmob.container = src - if(istype(H)) + if(ishuman(L)) + var/mob/living/carbon/human/H = L var/obj/item/organ/internal/brain/newbrain = H.getorgan(/obj/item/organ/internal/brain) newbrain.loc = src brain = newbrain diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 981facfcc9b..81c7deec716 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -26,10 +26,10 @@ qdel(brainmob) - //Update the body's icon so it doesnt appear debrained anymore - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.update_hair(0) + //Update the body's icon so it doesnt appear debrained anymore + if(ishuman(M)) + var/mob/living/carbon/human/H = M + H.update_hair(0) /obj/item/organ/internal/brain/Remove(mob/living/carbon/M, special = 0) ..() @@ -56,9 +56,10 @@ brainmob.name = L.real_name brainmob.real_name = L.real_name brainmob.timeofhostdeath = L.timeofdeath - if(iscarbon(L)) + if(L.has_dna()) var/mob/living/carbon/C = L brainmob.dna = C.dna + brainmob.dna.holder = brainmob if(L.mind) L.mind.transfer_to(brainmob) brainmob << "You feel slightly disoriented. That's normal when you're just a brain." diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 7f8445b95fc..ae7508be604 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -55,17 +55,20 @@ var/global/posibrain_notif_cooldown = 0 return transfer_personality(user) -/obj/item/device/mmi/posibrain/transfer_identity(mob/living/carbon/H) - name = "positronic brain ([H])" - brainmob.name = H.real_name - brainmob.real_name = H.real_name - brainmob.dna = H.dna - brainmob.timeofhostdeath = H.timeofdeath +/obj/item/device/mmi/posibrain/transfer_identity(mob/living/carbon/C) + name = "positronic brain ([C])" + brainmob.name = C.real_name + brainmob.real_name = C.real_name + brainmob.dna = C.dna + if(C.has_dna()) + brainmob.dna = C.dna + brainmob.dna.holder = brainmob + brainmob.timeofhostdeath = C.timeofdeath brainmob.stat = 0 if(brainmob.mind) brainmob.mind.assigned_role = "Positronic Brain" - if(H.mind) - H.mind.transfer_to(brainmob) + if(C.mind) + C.mind.transfer_to(brainmob) brainmob.mind.remove_all_antag() brainmob.mind.wipe_memory() diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 580b0b5919d..89af6c2f4ca 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -9,9 +9,6 @@ var/obj/item/handcuffed = null //Whether or not the mob is handcuffed var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this. - var/list/features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") - - //inventory slots var/obj/item/back = null var/obj/item/clothing/mask/wear_mask = null diff --git a/code/modules/mob/living/carbon/human/blood.dm b/code/modules/mob/living/carbon/human/blood.dm index e91eca45fb3..86ab99bf505 100644 --- a/code/modules/mob/living/carbon/human/blood.dm +++ b/code/modules/mob/living/carbon/human/blood.dm @@ -272,10 +272,9 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 source = M.get_blood(M.vessel) else if(istype(source,/mob/living/carbon/monkey)) var/mob/living/carbon/monkey/donor = source - if(donor.dna) - source = new() - source.data["blood_DNA"] = donor.dna.unique_enzymes - source.data["blood_type"] = donor.dna.blood_type + source = new() + source.data["blood_DNA"] = donor.dna.unique_enzymes + source.data["blood_type"] = donor.dna.blood_type // Are we dripping or splattering? var/list/drips = list() diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 147a0a7f016..a24e880ed7a 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -8,10 +8,7 @@ ..() /mob/living/carbon/human/spawn_gibs() - if(dna) - hgibs(loc, viruses, dna) - else - hgibs(loc, viruses, null) + hgibs(loc, viruses, dna) /mob/living/carbon/human/spawn_dust() new /obj/effect/decal/remains/human(loc) @@ -35,8 +32,7 @@ update_canmove() if(client) blind.layer = 0 - if(dna) - dna.species.spec_death(gibbed,src) + dna.species.spec_death(gibbed,src) tod = worldtime2text() //weasellos time of death patch if(mind) mind.store_memory("Time of death: [tod]", 0) @@ -47,9 +43,8 @@ return ..(gibbed) /mob/living/carbon/human/proc/makeSkeleton() - if(!check_dna_integrity(src)) return status_flags |= DISFIGURED - hardset_dna(src, null, null, null, null, /datum/species/skeleton) + set_species(/datum/species/skeleton) return 1 /mob/living/carbon/proc/ChangeToHusk() diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index c90c5171808..2ab52c617ef 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -308,7 +308,7 @@ m_type = 2 if("wag","wags") - if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || (features["tail_human"] != "None"))) + if(dna && dna.species && (("tail_lizard" in dna.species.mutant_bodyparts) || (dna.features["tail_human"] != "None"))) message = "[src] wags \his tail." startTailWag() else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b2e031465b2..2b585fa1f89 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -16,6 +16,12 @@ /mob/living/carbon/human/New() verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down + + //initialize dna. for spawned humans; overwritten by other code + create_dna(src) + randomize_human(src) + dna.initialize_dna() + //initialise organs organs = newlist(/obj/item/organ/limb/chest, /obj/item/organ/limb/head, /obj/item/organ/limb/l_arm, /obj/item/organ/limb/r_arm, /obj/item/organ/limb/r_leg, /obj/item/organ/limb/l_leg) @@ -28,11 +34,6 @@ for(var/obj/item/organ/internal/I in internal_organs) I.Insert(src) - // for spawned humans; overwritten by other code - create_dna(src) - randomize_human(src) - ready_dna(src) - make_blood() ..() @@ -90,9 +91,8 @@ stat("Energy Charge:", "[round(SN.cell.charge/100)]%") stat("Smoke Bombs:", "\Roman [SN.s_bombs]") //Ninja status - if(dna) - stat("Fingerprints:", "[md5(dna.uni_identity)]") - stat("Unique Identity:", "[dna.unique_enzymes]") + stat("Fingerprints:", "[md5(dna.uni_identity)]") + stat("Unique Identity:", "[dna.unique_enzymes]") stat("Overall Status:", "[stat > 1 ? "dead" : "[health]% healthy"]") stat("Nutrition Status:", "[nutrition]") stat("Oxygen Loss:", "[getOxyLoss()]") @@ -663,7 +663,8 @@ facial_hair_style = "Shaved" hair_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") underwear = "Nude" - regenerate_icons() + update_body() + update_hair() /mob/living/carbon/human/singularity_act() var/gain = 20 diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 39ba01934e5..b1502b73eef 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -7,11 +7,7 @@ /mob/living/carbon/human/attack_hand(mob/living/carbon/human/M) if(..()) //to allow surgery to return properly. return - - if(dna) - dna.species.spec_attack_hand(M, src) - - return + dna.species.spec_attack_hand(M, src) /mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params) return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 4cd0b1b833a..37f501760a5 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -160,38 +160,5 @@ /mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = 0) - if(dna) // if you have a species, it will run the apply_damage code there instead - dna.species.apply_damage(damage, damagetype, def_zone, blocked, src) - else - if((damagetype != BRUTE) && (damagetype != BURN)) - ..(damage, damagetype, def_zone, blocked) - return 1 - - else - blocked = (100-blocked)/100 - if(blocked <= 0) return 0 - - var/obj/item/organ/limb/organ = null - if(islimb(def_zone)) - organ = def_zone - else - if(!def_zone) def_zone = ran_zone(def_zone) - organ = get_organ(check_zone(def_zone)) - if(!organ) return 0 - - damage = (damage * blocked) - - switch(damagetype) - if(BRUTE) - damageoverlaytemp = 20 - if(organ.take_damage(damage, 0)) - update_damage_overlays(0) - if(BURN) - damageoverlaytemp = 20 - if(organ.take_damage(0, damage)) - update_damage_overlays(0) - - // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). - - updatehealth() - return 1 + // depending on the species, it will run the corresponding apply_damage code there + return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b06507cff74..d11d0e389e2 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -37,9 +37,7 @@ emp_act return protection /mob/living/carbon/human/on_hit(proj_type) - if(dna) - dna.species.on_hit(proj_type, src) - return + dna.species.on_hit(proj_type, src) /mob/living/carbon/human/bullet_act(obj/item/projectile/P, def_zone) if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) @@ -128,91 +126,8 @@ emp_act feedback_add_details("item_used_for_combat","[I.type]|[I.force]") feedback_add_details("zone_targeted","[target_area]") - if(dna) // allows your species to affect the attacked_by code - return dna.species.spec_attacked_by(I,user,def_zone,affecting,hit_area,src.a_intent,target_limb,target_area,src) - - else - if(user != src) - user.do_attack_animation(src) - if(check_shields(I.force, "the [I.name]", I)) - return 0 - - if(I.attack_verb && I.attack_verb.len) - visible_message("[user] has [pick(I.attack_verb)] [src] in the [hit_area] with [I]!", \ - "[user] has [pick(I.attack_verb)] [src] in the [hit_area] with [I]!") - else if(I.force) - visible_message("[user] has attacked [src] in the [hit_area] with [I]!", \ - "[user] has attacked [src] in the [hit_area] with [I]!") - else - return 0 - - var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].", I.armour_penetration) - armor = min(90,armor) //cap damage reduction at 90% - - var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) - - apply_damage(I.force, I.damtype, affecting, armor , I) - var/bloody = 0 - if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2)))) - if(affecting.status == ORGAN_ORGANIC) - I.add_blood(src) //Make the weapon bloody, not the person. - if(prob(I.force * 2)) //blood spatter! - bloody = 1 - var/turf/location = loc - if(istype(location, /turf/simulated)) - location.add_blood(src) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(get_dist(H, src) <= 1) //people with TK won't get smeared with blood - if(H.wear_suit) - H.wear_suit.add_blood(src) - H.update_inv_wear_suit() //updates mob overlays to show the new blood (no refresh) - else if(H.w_uniform) - H.w_uniform.add_blood(src) - H.update_inv_w_uniform() //updates mob overlays to show the new blood (no refresh) - if (H.gloves) - var/obj/item/clothing/gloves/G = H.gloves - G.add_blood(H) - else - H.add_blood(H) - H.update_inv_gloves() //updates on-mob overlays for bloody hands and/or bloody gloves - - switch(hit_area) - if("head") //Harder to score a stun but if you do it lasts a bit longer - if(stat == CONSCIOUS) - if(prob(I.force)) - visible_message("[src] has been knocked unconscious!", \ - "[src] has been knocked unconscious!") - apply_effect(20, PARALYZE, armor) - if(prob(I.force + min(100,100 - src.health)) && src != user && I.damtype == BRUTE) - ticker.mode.remove_revolutionary(mind) - if(bloody) //Apply blood - if(wear_mask) - wear_mask.add_blood(src) - update_inv_wear_mask() - if(head) - head.add_blood(src) - update_inv_head() - if(glasses && prob(33)) - glasses.add_blood(src) - update_inv_glasses() - - if("chest") //Easier to score a stun but lasts less time - if(stat == CONSCIOUS && I.force && prob(I.force + 10)) - visible_message("[src] has been knocked down!", \ - "[src] has been knocked down!") - apply_effect(5, WEAKEN, armor) - - if(bloody) - if(wear_suit) - wear_suit.add_blood(src) - update_inv_wear_suit() - if(w_uniform) - w_uniform.add_blood(src) - update_inv_w_uniform() - - if(Iforce > 10 || Iforce >= 5 && prob(33)) - forcesay(hit_appends) //forcesay checks stat already + // the attacked_by code varies among species + return dna.species.spec_attacked_by(I,user,def_zone,affecting,hit_area,src.a_intent,target_limb,target_area,src) /mob/living/carbon/human/emp_act(severity) var/informed = 0 diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index f63e04ad3cf..ed0add4de62 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -128,11 +128,9 @@ return (health <= config.health_threshold_crit && stat == UNCONSCIOUS) /mob/living/carbon/human/reagent_check(datum/reagent/R) - if(dna) - var/bypass = dna.species.handle_chemicals(R,src) - return bypass // if it returns 0, it will run the usual on_mob_life for that reagent. otherwise, it will stop after running handle_chemicals for the species. - else - return 0 + return dna.species.handle_chemicals(R,src) + // if it returns 0, it will run the usual on_mob_life for that reagent. otherwise, it will stop after running handle_chemicals for the species. + /mob/living/carbon/human/can_track(mob/living/user) if(wear_id && istype(wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 69412112239..ca451659a7e 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,6 +1,6 @@ /mob/living/carbon/human/movement_delay() - if(dna) - . += dna.species.movement_delay(src) + + . += dna.species.movement_delay(src) . += ..() . += config.human_delay @@ -46,9 +46,8 @@ /mob/living/carbon/human/Move(NewLoc, direct) . = ..() - if(dna) - for(var/datum/mutation/human/HM in dna.mutations) - HM.on_move(src, NewLoc) + for(var/datum/mutation/human/HM in dna.mutations) + HM.on_move(src, NewLoc) if(shoes) if(!lying) if(loc == NewLoc) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index db4591a230d..5968b88647e 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -1,158 +1,5 @@ /mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = 0) - if(dna) - return dna.species.can_equip(I, slot, disable_warning, src) - else - switch(slot) - if(slot_l_hand) - if(l_hand) - return 0 - return 1 - if(slot_r_hand) - if(r_hand) - return 0 - return 1 - if(slot_wear_mask) - if(wear_mask) - return 0 - if( !(I.slot_flags & SLOT_MASK) ) - return 0 - return 1 - if(slot_back) - if(back) - return 0 - if( !(I.slot_flags & SLOT_BACK) ) - return 0 - return 1 - if(slot_wear_suit) - if(wear_suit) - return 0 - if( !(I.slot_flags & SLOT_OCLOTHING) ) - return 0 - return 1 - if(slot_gloves) - if(gloves) - return 0 - if( !(I.slot_flags & SLOT_GLOVES) ) - return 0 - return 1 - if(slot_shoes) - if(shoes) - return 0 - if( !(I.slot_flags & SLOT_FEET) ) - return 0 - return 1 - if(slot_belt) - if(belt) - return 0 - if(!w_uniform) - if(!disable_warning) - src << "You need a jumpsuit before you can attach this [I.name]!" - return 0 - if( !(I.slot_flags & SLOT_BELT) ) - return - return 1 - if(slot_glasses) - if(glasses) - return 0 - if( !(I.slot_flags & SLOT_EYES) ) - return 0 - return 1 - if(slot_head) - if(head) - return 0 - if( !(I.slot_flags & SLOT_HEAD) ) - return 0 - return 1 - if(slot_ears) - if(ears) - return 0 - if( !(I.slot_flags & SLOT_EARS) ) - return 0 - return 1 - if(slot_w_uniform) - if(w_uniform) - return 0 - if( !(I.slot_flags & SLOT_ICLOTHING) ) - return 0 - return 1 - if(slot_wear_id) - if(wear_id) - return 0 - if(!w_uniform) - if(!disable_warning) - src << "You need a jumpsuit before you can attach this [I.name]!" - return 0 - if( !(I.slot_flags & SLOT_ID) ) - return 0 - return 1 - if(slot_l_store) - if(I.flags & NODROP) //Pockets aren't visible, so you can't move NODROP items into them. - return 0 - if(l_store) - return 0 - if(!w_uniform) - if(!disable_warning) - src << "You need a jumpsuit before you can attach this [I.name]!" - return 0 - if(I.slot_flags & SLOT_DENYPOCKET) - return - if( I.w_class <= 2 || (I.slot_flags & SLOT_POCKET) ) - return 1 - if(slot_r_store) - if(I.flags & NODROP) - return 0 - if(r_store) - return 0 - if(!w_uniform) - if(!disable_warning) - src << "You need a jumpsuit before you can attach this [I.name]!" - return 0 - if(I.slot_flags & SLOT_DENYPOCKET) - return 0 - if( I.w_class <= 2 || (I.slot_flags & SLOT_POCKET) ) - return 1 - return 0 - if(slot_s_store) - if(I.flags & NODROP) //Suit storage NODROP items drop if you take a suit off, this is to prevent people exploiting this. - return 0 - if(s_store) - return 0 - if(!wear_suit) - if(!disable_warning) - src << "You need a suit before you can attach this [I.name]!" - return 0 - if(!wear_suit.allowed) - if(!disable_warning) - usr << "You somehow have a suit with no defined allowed items for suit storage, stop that!" //should be src? - return 0 - if(I.w_class > 4) - if(!disable_warning) - usr << "The [I.name] is too big to attach!" //should be src? - return 0 - if( istype(I, /obj/item/device/pda) || istype(I, /obj/item/weapon/pen) || is_type_in_list(I, wear_suit.allowed) ) //ugly and un-polymorphic. - return 1 - return 0 - if(slot_handcuffed) - if(handcuffed) - return 0 - if(!istype(I, /obj/item/weapon/restraints/handcuffs)) - return 0 - return 1 - if(slot_legcuffed) - if(legcuffed) - return 0 - if(!istype(I, /obj/item/weapon/restraints/legcuffs)) - return 0 - return 1 - if(slot_in_backpack) - if (back && istype(back, /obj/item/weapon/storage/backpack)) - var/obj/item/weapon/storage/backpack/B = back - if(B.contents.len < B.storage_slots && I.w_class <= B.max_w_class) - return 1 - return 0 - return 0 //Unsupported slot - - + return dna.species.can_equip(I, slot, disable_warning, src) /mob/living/carbon/human/verb/quick_equip() set name = "quick-equip" @@ -477,7 +324,7 @@ /mob/living/carbon/human/proc/equipOutfit(outfit) var/datum/outfit/O = null - + if(ispath(outfit)) O = new outfit else @@ -486,5 +333,5 @@ return 0 if(!O) return 0 - + return O.equip(src) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 0d51f2f5d0d..b4f66fe3ccc 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -38,9 +38,8 @@ tinttotal = tintcheck() //here as both hud updates and status updates call it if(..()) - if(dna) - for(var/datum/mutation/human/HM in dna.mutations) - HM.on_life(src) + for(var/datum/mutation/human/HM in dna.mutations) + HM.on_life(src) //heart attack stuff handle_heart() @@ -50,8 +49,7 @@ //Update our name based on whether our face is obscured/disfigured name = get_visible_name() - if(dna) - dna.species.spec_life(src) // for mutantraces + dna.species.spec_life(src) // for mutantraces /mob/living/carbon/human/calculate_affecting_pressure(pressure) @@ -98,16 +96,15 @@ reagents.metabolize(src, can_overdose=1) /mob/living/carbon/human/breathe() - if(!dna || !dna.species.breathe(src)) + if(!dna.species.breathe(src)) ..() /mob/living/carbon/human/check_breath(datum/gas_mixture/breath) - if(!dna || !dna.species.check_breath(breath, src)) + if(!dna.species.check_breath(breath, src)) ..() /mob/living/carbon/human/handle_environment(datum/gas_mixture/environment) - if(dna) - dna.species.handle_environment(environment, src) + dna.species.handle_environment(environment, src) ///FIRE CODE /mob/living/carbon/human/handle_fire() @@ -263,10 +260,7 @@ /mob/living/carbon/human/handle_chemicals_in_body() ..() - if(dna) - dna.species.handle_chemicals_in_body(src) - - return //TODO: DEFERRED + dna.species.handle_chemicals_in_body(src) /mob/living/carbon/human/handle_vision() client.screen.Remove(global_hud.blurry, global_hud.druggy, global_hud.vimpaired, global_hud.darkMask) @@ -275,12 +269,10 @@ else if(!client.adminobs) reset_view(null) - if(dna) - dna.species.handle_vision(src) + dna.species.handle_vision(src) /mob/living/carbon/human/handle_hud_icons() - if(dna) - dna.species.handle_hud_icons(src) + dna.species.handle_hud_icons(src) /mob/living/carbon/human/handle_random_events() // Puke if toxloss is too high diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 8b0fdbe16d5..4720ac6a5cf 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -9,8 +9,7 @@ return ..() /mob/living/carbon/human/treat_message(message) - if(dna) - message = dna.species.handle_speech(message,src) + message = dna.species.handle_speech(message,src) if(viruses.len) for(var/datum/disease/pierrot_throat/D in viruses) var/list/temp_message = text2list(message, " ") //List each word in the message @@ -25,8 +24,7 @@ pick_list -= H //Make sure that you dont HONK the same word twice message = list2text(temp_message, " ") message = ..(message) - if(dna) - message = dna.mutations_say_mods(message) + message = dna.mutations_say_mods(message) return message /mob/living/carbon/human/get_spans() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5ffd1419253..f9973ea991d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -247,7 +247,7 @@ if(H.undershirt) var/datum/sprite_accessory/undershirt/U2 = undershirt_list[H.undershirt] if(U2) - if(H.dna && H.dna.species.sexes && H.gender == FEMALE) + if(H.dna.species.sexes && H.gender == FEMALE) standing += H.wear_female_version(U2.icon_state, U2.icon, BODY_LAYER) else standing += image("icon"=U2.icon, "icon_state"="[U2.icon_state]_s", "layer"=-BODY_LAYER) @@ -804,8 +804,8 @@ if(prob(1)) H << "You mutate!" randmutb(H) - domutcheck(H,null) H.emote("gasp") + H.domutcheck() return 0 return 1 @@ -907,22 +907,14 @@ else M.do_attack_animation(H) - var/atk_verb = "punch" + var/atk_verb = M.dna.species.attack_verb if(H.lying) atk_verb = "kick" - else if(M.dna) - atk_verb = M.dna.species.attack_verb - var/damage = rand(0, 9) - if(M.dna) - damage += M.dna.species.punchmod + var/damage = rand(0, 9) + M.dna.species.punchmod if(!damage) - if(M.dna) - playsound(H.loc, M.dna.species.miss_sound, 25, 1, -1) - else - playsound(H.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - + playsound(H.loc, M.dna.species.miss_sound, 25, 1, -1) H.visible_message("[M] has attempted to [atk_verb] [H]!") return 0 @@ -930,11 +922,7 @@ var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting)) var/armor_block = H.run_armor_check(affecting, "melee") - if(M.dna) - playsound(H.loc, M.dna.species.attack_sound, 25, 1, -1) - else - playsound(H.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) - + playsound(H.loc, M.dna.species.attack_sound, 25, 1, -1) H.visible_message("[M] has [atk_verb]ed [H]!", \ "[M] has [atk_verb]ed [H]!") @@ -1008,9 +996,9 @@ /datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, def_zone, obj/item/organ/limb/affecting, hit_area, intent, obj/item/organ/limb/target_limb, target_area, mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species - if(user != src) + if(user != H) user.do_attack_animation(H) - if((user != H) && H.check_shields(I.force, "the [I.name]", I)) + if(H.check_shields(I.force, "the [I.name]", I)) return 0 if(I.attack_verb && I.attack_verb.len) @@ -1022,11 +1010,11 @@ else return 0 - var/armor = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].",I.armour_penetration) - armor = min(90,armor) //cap damage reduction at 90% + var/armor_block = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].",I.armour_penetration) + armor_block = min(90,armor_block) //cap damage reduction at 90% var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) - apply_damage(I.force, I.damtype, affecting, armor, H) + apply_damage(I.force, I.damtype, affecting, armor_block, H) var/bloody = 0 if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2)))) @@ -1037,28 +1025,30 @@ var/turf/location = H.loc if(istype(location, /turf/simulated)) location.add_blood(H) - if(get_dist(H, H) <= 1) //people with TK won't get smeared with blood - if(H.wear_suit) - H.wear_suit.add_blood(H) - H.update_inv_wear_suit() //updates mob overlays to show the new blood (no refresh) - else if(H.w_uniform) - H.w_uniform.add_blood(H) - H.update_inv_w_uniform() //updates mob overlays to show the new blood (no refresh) - if (H.gloves) - var/obj/item/clothing/gloves/G = H.gloves - G.add_blood(H) - else - H.add_blood(H) - H.update_inv_gloves() //updates on-mob overlays for bloody hands and/or bloody gloves + if(ishuman(user)) + var/mob/living/carbon/human/M = user + if(get_dist(M, H) <= 1) //people with TK won't get smeared with blood + if(M.wear_suit) + M.wear_suit.add_blood(H) + M.update_inv_wear_suit() //updates mob overlays to show the new blood (no refresh) + else if(M.w_uniform) + M.w_uniform.add_blood(H) + M.update_inv_w_uniform() //updates mob overlays to show the new blood (no refresh) + if (M.gloves) + var/obj/item/clothing/gloves/G = M.gloves + G.add_blood(H) + else + M.add_blood(H) + M.update_inv_gloves() //updates on-mob overlays for bloody hands and/or bloody gloves switch(hit_area) if("head") //Harder to score a stun but if you do it lasts a bit longer - if(H.stat == CONSCIOUS && armor < 50) + if(H.stat == CONSCIOUS && armor_block < 50) if(prob(I.force)) H.visible_message("[H] has been knocked unconscious!", \ "[H] has been knocked unconscious!") - H.apply_effect(20, PARALYZE, armor) + H.apply_effect(20, PARALYZE, armor_block) if(prob(I.force + ((100 - H.health)/2)) && H != user && I.damtype == BRUTE) ticker.mode.remove_revolutionary(H.mind) @@ -1077,7 +1067,7 @@ if(H.stat == CONSCIOUS && I.force && prob(I.force + 10)) H.visible_message("[H] has been knocked down!", \ "[H] has been knocked down!") - H.apply_effect(5, WEAKEN, armor) + H.apply_effect(5, WEAKEN, armor_block) if(bloody) if(H.wear_suit) @@ -1091,34 +1081,9 @@ H.forcesay(hit_appends) //forcesay checks stat already. return -/datum/species/proc/attacked_by(obj/item/I, mob/living/user, def_zone, mob/living/carbon/human/H) - H.apply_damage(I.force, I.damtype) - if(I.damtype == "brute") - if(prob(33) && I.force && !(NOBLOOD in specflags)) - var/turf/location = H.loc - if(istype(location, /turf/simulated)) - location.add_blood_floor(H) - - var/message_verb = "" - if(I.attack_verb && I.attack_verb.len) - message_verb = "[pick(I.attack_verb)]" - else if(I.force) - message_verb = "attacked" - - var/attack_message = "[H] has been [message_verb] with [I]." - if(user) - user.do_attack_animation(src) - if(user in viewers(src, null)) - attack_message = "[user] has [message_verb] [H] with [I]!" - if(message_verb) - H.visible_message("[attack_message]", - "[attack_message]") - - return - /datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H) blocked = (100-(blocked+armor))/100 - if(blocked <= 0) return 0 + if(!damage || blocked <= 0) return 0 var/obj/item/organ/limb/organ = null if(islimb(def_zone)) @@ -1147,6 +1112,7 @@ H.adjustCloneLoss(damage * blocked) if(STAMINA) H.adjustStaminaLoss(damage * blocked) + return 1 /datum/species/proc/on_hit(obj/item/projectile/proj_type, mob/living/carbon/human/H) // called when hit by a projectile diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 2549b1635bf..cd5c473014b 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -38,8 +38,7 @@ /datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(chem.id == "mutationtoxin") H << "Your flesh rapidly mutates!" - hardset_dna(H, null, null, null, null, /datum/species/slime) - H.regenerate_icons() + H.set_species(/datum/species/slime) H.reagents.del_reagent(chem.type) H.faction |= "slime" return 1 @@ -128,10 +127,9 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) H.visible_message("[H] writhes in pain as \his vacuoles boil.", "You writhe in pain as your vacuoles boil!", "You hear the crunching of leaves.") if(prob(80)) randmutb(H) - domutcheck(H,null) else randmutg(H) - domutcheck(H,null) + H.domutcheck() else H.adjustFireLoss(rand(5,15)) H.show_message("The radiation beam singes you!") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0ec31fdd1a3..1b3da71d25d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -53,30 +53,10 @@ Please contact me on #coderbus IRC. ~Carnie x */ /mob/living/carbon/human/proc/update_base_icon_state() - if(dna) - base_icon_state = dna.species.update_base_icon_state(src) - else - if(disabilities & HUSK) - base_icon_state = "husk" - else - base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" - + base_icon_state = dna.species.update_base_icon_state(src) icon_state = "[base_icon_state]_s" -//UPDATES OVERLAYS FROM OVERLAYS_STANDING -//TODO: Remove all instances where this proc is called. It used to be the fastest way to swap between standing/lying. -/mob/living/carbon/human/update_icons() - update_hud() //TODO: remove the need for this - - if(overlays.len != overlays_standing.len) - overlays.Cut() - - for(var/thing in overlays_standing) - if(thing) overlays += thing - - update_transform() - //DAMAGE OVERLAYS //constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists /mob/living/carbon/human/update_damage_overlays() @@ -105,25 +85,21 @@ Please contact me on #coderbus IRC. ~Carnie x if((wear_suit) && (wear_suit.hooded) && (wear_suit.suittoggled == 1)) return - if(dna) - dna.species.handle_hair(src) + dna.species.handle_hair(src) /mob/living/carbon/human/proc/update_mutcolor() - if(dna && !(disabilities & HUSK)) + if(!(disabilities & HUSK)) dna.species.update_color(src) +//used when putting/removing clothes that hide certain mutant body parts to just update those and not update the whole body. /mob/living/carbon/human/proc/update_mutant_bodyparts() - if(dna) - dna.species.handle_mutant_bodyparts(src) + dna.species.handle_mutant_bodyparts(src) /mob/living/carbon/human/proc/update_body() remove_overlay(BODY_LAYER) - update_base_icon_state() - - if(dna) - dna.species.handle_body(src) + dna.species.handle_body(src) /mob/living/carbon/human/update_fire() ..("Standing") @@ -181,6 +157,8 @@ Please contact me on #coderbus IRC. ~Carnie x update_hud() // Mutantrace colors update_mutcolor() + //mutations + update_mutations_overlay() /* --------------------------------------- */ //vvvvvv UPDATE_INV PROCS vvvvvv diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index fc9f30829cd..909d769ac74 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -38,8 +38,8 @@ if(prob(1)) src << "You mutate!" randmutb(src) - domutcheck(src,null) emote("gasp") + domutcheck() ..() /mob/living/carbon/monkey/handle_chemicals_in_body() diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index a1f11e9167f..64f73ca3980 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -16,16 +16,24 @@ verbs += /mob/living/proc/mob_sleep verbs += /mob/living/proc/lay_down + gender = pick(MALE, FEMALE) + real_name = name + if(good_mutations.len) //genetic mutations have been set up. + initialize() + internal_organs += new /obj/item/organ/internal/appendix internal_organs += new /obj/item/organ/internal/heart internal_organs += new /obj/item/organ/internal/brain for(var/obj/item/organ/internal/I in internal_organs) I.Insert(src) - gender = pick(MALE, FEMALE) ..() +/mob/living/carbon/monkey/initialize() + create_dna(src) + dna.initialize_dna(random_blood_type()) + /mob/living/carbon/monkey/prepare_data_huds() //Prepare our med HUD... ..() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 05fed0bff86..7d7b67a5d69 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -605,8 +605,8 @@ Sorry Giacom. Please don't be mad :( if((!(newdir in H.existing_dirs) || trail_type == "trails_1" || trail_type == "trails_2") && H.existing_dirs.len <= 16) //maximum amount of overlays is 16 (all light & heavy directions filled) H.existing_dirs += newdir H.overlays.Add(image('icons/effects/blood.dmi',trail_type,dir = newdir)) - if(check_dna_integrity(M)) //blood DNA - var/mob/living/carbon/DNA_helper = pulling + if(M.has_dna()) //blood DNA + var/mob/living/carbon/DNA_helper = M H.blood_DNA[DNA_helper.dna.unique_enzymes] = DNA_helper.dna.blood_type /mob/living/proc/getTrail() //silicon and simple_animals don't get blood trails diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 67e827da796..ccabb8a7ece 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -375,7 +375,7 @@ M.visible_message("[M] presses \his thumb against [P].",\ "You press your thumb against [P].",\ "[P] makes a sharp clicking sound as it extracts DNA material from [M].") - if(!check_dna_integrity(M)) + if(!M.has_dna()) P << "No DNA detected" return P << "

    [M]'s UE string : [M.dna.unique_enzymes]

    " diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 5531fcd6a85..c0756da1c8b 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -251,9 +251,8 @@ if(istype(L, /mob/living/carbon/human)) //Ignore slime(wo)men var/mob/living/carbon/human/H = L - if(H.dna) - if(src.type in H.dna.species.ignored_by) - continue + if(src.type in H.dna.species.ignored_by) + continue if(!L.canmove) // Only one slime can latch on at a time. var/notarget = 0 diff --git a/code/modules/mob/mob_transformation_simple.dm b/code/modules/mob/mob_transformation_simple.dm index 2608561867d..4d1e46f595a 100644 --- a/code/modules/mob/mob_transformation_simple.dm +++ b/code/modules/mob/mob_transformation_simple.dm @@ -40,15 +40,11 @@ M.name = src.name M.real_name = src.real_name - if(check_dna_integrity(src)) + if(has_dna() && M.has_dna()) var/mob/living/carbon/C = src var/mob/living/carbon/D = M - D.dna = C.dna - updateappearance(D) - else - if(istype(M, /mob/living/carbon/human)) - src.client.prefs.copy_to(M) - ready_dna(M) + C.dna.transfer_identity(D) + D.updateappearance(mutcolor_update=1, mutations_overlay_update=1) if(mind && istype(M, /mob/living)) mind.transfer_to(M) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f8f6eea2413..a274a75ccde 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -362,21 +362,17 @@ var/mob/living/carbon/human/new_character = new(loc) new_character.lastarea = get_area(loc) - create_dna(new_character) - if(config.force_random_names || appearance_isbanned(src)) client.prefs.random_character() client.prefs.real_name = client.prefs.pref_species.random_name(gender,1) client.prefs.copy_to(new_character) - + new_character.dna.update_dna_identity() if(mind) mind.active = 0 //we wish to transfer the key manually mind.transfer_to(new_character) //won't transfer key since the mind is not active new_character.name = real_name - ready_dna(new_character, client.prefs.blood_type) - new_character.key = key //Manually transfer the key to log them in new_character.stopLobbySound() diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 4bbc1b2a8ee..9d5515a900a 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG), newname = null) +/mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) if (notransform) return //Handle items on mob @@ -16,8 +16,11 @@ int_organs += I I.Remove(src, 1) + if(tr_flags & TR_KEEPITEMS) + for(var/obj/item/W in (src.contents-implants-int_organs)) + unEquip(W) + //Make mob invisible and spawn animation - regenerate_icons() notransform = 1 canmove = 0 stunned = 1 @@ -35,18 +38,18 @@ qdel(animation) // hash the original name? - if (tr_flags & TR_HASHNAME) + if(tr_flags & TR_HASHNAME) O.name = "monkey ([copytext(md5(real_name), 2, 6)])" O.real_name = "monkey ([copytext(md5(real_name), 2, 6)])" - if (newname) //if there's a name as an argument, always take that one over the current name - O.name = newname - O.real_name = newname //handle DNA and other attributes - if(dna) - dna.transfer_identity(O) - if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes + dna.transfer_identity(O) + O.updateappearance(icon_update=0) + + if(tr_flags & TR_KEEPSE) + O.dna.struc_enzymes = dna.struc_enzymes + var/datum/mutation/human/race/R = mutations_list[RACEMUT] //we don't want to keep the race block inactive + O.dna.struc_enzymes = setblock(O.dna.struc_enzymes, R.dna_block, random_string(DNA_BLOCK_SIZE, list("8","9","a","b","c","d","e", "f"))) if(suiciding) O.suiciding = suiciding @@ -70,9 +73,10 @@ O.radiation = radiation //re-add implants to new mob - for(var/obj/item/weapon/implant/I in implants) - I.loc = O - I.implanted = O + if (tr_flags & TR_KEEPIMPLANTS) + for(var/obj/item/weapon/implant/I in implants) + I.loc = O + I.implanted = O //re-add organs to new mob if(tr_flags & TR_KEEPORGANS) @@ -96,16 +100,14 @@ if(loc.vars[A] == src) loc.vars[A] = O - updateappearance(O) . = O - if ( !(tr_flags & TR_KEEPSRC) ) //flag should be used if monkeyize() is called inside another proc of src so that one does not crash - qdel(src) + qdel(src) ////////////////////////// Humanize ////////////////////////////// //Could probably be merged with monkeyize but other transformations got their own procs, too -/mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG), newname = null) +/mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) if (notransform) return //Handle items on mob @@ -125,7 +127,7 @@ //now the rest if (tr_flags & TR_KEEPITEMS) - for(var/obj/item/W in (src.contents-implants)) + for(var/obj/item/W in (src.contents-implants-int_organs)) unEquip(W) if (client) client.screen -= W @@ -134,11 +136,7 @@ W.dropped(src) W.layer = initial(W.layer) - // for(var/obj/item/W in src) - // unEquip(W) - //Make mob invisible and spawn animation - regenerate_icons() notransform = 1 canmove = 0 stunned = 1 @@ -156,27 +154,21 @@ O.equip_to_appropriate_slot(C) qdel(animation) - O.gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE + dna.transfer_identity(O) + O.updateappearance(mutcolor_update=1) - if(dna) - dna.transfer_identity(O) - O.update_icons() - if(tr_flags & TR_KEEPSE) - O.dna.struc_enzymes = dna.struc_enzymes - domutcheck(O) - - if(!dna.species) - hardset_dna(O, null, null, null, null, /datum/species/human) + if(cmptext("monkey",copytext(O.dna.real_name,1,7))) + O.real_name = random_unique_name(O.gender) + O.dna.generate_unique_enzymes(O) else - hardset_dna(O, null, null, null, null, dna.species.type) - - if(newname) //if there's a name as an argument, always take that one over the current name - O.real_name = newname - else - if(cmptext("monkey",copytext(O.dna.real_name,1,7))) - O.dna.real_name = random_unique_name(O.gender) O.real_name = O.dna.real_name - O.name = O.real_name + O.name = O.real_name + + if(tr_flags & TR_KEEPSE) + O.dna.struc_enzymes = dna.struc_enzymes + var/datum/mutation/human/race/R = mutations_list[RACEMUT] //we don't want to keep the race block active + O.dna.struc_enzymes = setblock(O.dna.struc_enzymes, R.dna_block, random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6"))) + O.domutcheck() if(suiciding) O.suiciding = suiciding @@ -201,10 +193,11 @@ O.radiation = radiation //re-add implants to new mob - for(var/obj/item/weapon/implant/I in implants) - I.loc = O - I.implanted = O - O.sec_hud_set_implants() + if (tr_flags & TR_KEEPIMPLANTS) + for(var/obj/item/weapon/implant/I in implants) + I.loc = O + I.implanted = O + O.sec_hud_set_implants() if(tr_flags & TR_KEEPORGANS) for(var/obj/item/organ/internal/I in O.internal_organs) @@ -221,15 +214,13 @@ O.update_pipe_vision() - updateappearance(O) . = O for(var/A in loc.vars) if(loc.vars[A] == src) loc.vars[A] = O - if ( !(tr_flags & TR_KEEPSRC) ) //don't delete src yet if it's needed to finish calling proc - qdel(src) + qdel(src) /mob/new_player/AIize() diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 4146165206b..2e1e6528256 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -170,7 +170,7 @@ Contents: var/datum/preferences/A = new()//Randomize appearance for the ninja. A.real_name = "[pick(ninja_titles)] [pick(ninja_names)]" A.copy_to(new_ninja) - ready_dna(new_ninja) + new_ninja.dna.update_dna_identity() new_ninja.equip_space_ninja() return new_ninja diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 3f64abf3237..27c0e396e49 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -155,7 +155,7 @@ return 0 if(trigger_guard) - if(istype(user) && user.dna) + if(user.has_dna()) if(user.dna.check_mutation(HULK)) user << "Your meaty finger is much too large for the trigger guard!" return 0 diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 3fb86384fbb..3238db399ec 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -216,19 +216,21 @@ new_mob = new /mob/living/carbon/human(M.loc) var/datum/preferences/A = new() //Randomize appearance for the human - A.copy_to(new_mob) + A.copy_to(new_mob, icon_updates=0) var/mob/living/carbon/human/H = new_mob - ready_dna(H) - if(H.dna && prob(50)) + if(prob(50)) var/list/all_species = list() for(var/speciestype in typesof(/datum/species) - /datum/species) var/datum/species/S = new speciestype() if(!S.dangerous_existence) all_species += speciestype - hardset_dna(H, null, null, null, null, pick(all_species)) + H.set_species(pick(all_species), icon_update=0) H.real_name = H.dna.species.random_name(H.gender,1) - H.update_icons() + H.update_body() + H.update_hair() + H.update_mutcolor() + H.dna.update_dna_identity() else return diff --git a/code/modules/reagents/Chemistry-Reagents/Drug-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Drug-Reagents.dm index da54674aba5..df33fc5c594 100644 --- a/code/modules/reagents/Chemistry-Reagents/Drug-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Drug-Reagents.dm @@ -132,10 +132,10 @@ return /datum/reagent/drug/krokodil/addiction_act_stage4(mob/living/carbon/human/M) - if(M.dna && !istype(M.dna.species, /datum/species/cosmetic_zombie)) + if(M.has_dna() && M.dna.species.id != "zombie") M << "Your skin falls off easily!" M.adjustBruteLoss(50*REM) // holy shit your skin just FELL THE FUCK OFF - hardset_dna(M, null, null, null, null, /datum/species/cosmetic_zombie) + M.set_species(/datum/species/cosmetic_zombie) else M.adjustBruteLoss(5*REM) ..() diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm index 5d738957633..43a4c5c8a39 100644 --- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm @@ -724,7 +724,7 @@ /datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/human/M) M.jitteriness = 0 - if(istype(M) && M.dna) + if(M.has_dna()) M.dna.remove_all_mutations() ..() return diff --git a/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm index 3b7b5066c1e..4e0b0fbeb02 100644 --- a/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Other-Reagents.dm @@ -356,8 +356,7 @@ var/datum/species/mutation = pick(possible_morphs) if(prob(90) && mutation && H.dna.species != /datum/species/golem && H.dna.species != /datum/species/golem/adamantine) H << "The pain subsides. You feel... different." - hardset_dna(H, null, null, null, null, mutation) - H.regenerate_icons() + H.set_species(mutation) if(mutation == /datum/species/slime) H.faction |= "slime" else diff --git a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm index 8b5fd49055a..aaaaf09c20e 100644 --- a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm @@ -31,7 +31,7 @@ /datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume) if(!..()) return - if(!istype(M) || !M.dna) + if(!M.has_dna()) return //No robots, AIs, aliens, Ians or other mobs should be affected by this. if((method==VAPOR && prob(min(33, reac_volume))) || method==INGEST || method == PATCH) randmuti(M) @@ -39,8 +39,8 @@ randmutb(M) else randmutg(M) - domutcheck(M, null) - updateappearance(M) + M.updateappearance() + M.domutcheck() ..() /datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 1095e93cbd2..7fdd33e9955 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -66,20 +66,16 @@ if(ismob(target)) //Blood! if(ishuman(target)) var/mob/living/carbon/human/H = target - if(H.dna) - if(NOBLOOD in H.dna.species.specflags && !H.dna.species.exotic_blood) - user << "You are unable to locate any blood!" - return + if(NOBLOOD in H.dna.species.specflags && !H.dna.species.exotic_blood) + user << "You are unable to locate any blood!" + return if(reagents.has_reagent("blood")) user << "There is already a blood sample in this syringe!" return if(istype(target, /mob/living/carbon)) //maybe just add a blood reagent to all mobs. Then you can suck them dry...With hundreds of syringes. Jolly good idea. var/amount = src.reagents.maximum_volume - src.reagents.total_volume var/mob/living/carbon/T = target - if(!check_dna_integrity(T)) - user << "You are unable to locate any blood!" - return - if(T.disabilities & NOCLONE) //target done been eat, no more blood in him + if(!T.has_dna() || (T.disabilities & NOCLONE)) //target done been eat, no more blood in him user << "You are unable to locate any blood!" return if(target != user) @@ -95,7 +91,7 @@ if(!B && ishuman(target)) var/mob/living/carbon/human/H = target - if(H.dna && H.dna.species.exotic_blood && H.reagents.total_volume) + if(H.dna.species.exotic_blood && H.reagents.total_volume) target.reagents.trans_to(src, amount) else user << "You are unable to locate any blood!" diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 4792688be1f..fb55059cbcf 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -394,11 +394,10 @@ user << "The rune fizzles uselessly! There is no spirit nearby." return var/mob/living/carbon/human/G = new /mob/living/carbon/human - if(prob(50)) G.gender = "female" - hardset_dna(G, null, null, null, null, /datum/species/golem/adamantine) - + G.set_species(/datum/species/golem/adamantine) G.set_cloned_appearance() - G.real_name = text("Adamantine Golem ([rand(1, 1000)])") + G.real_name = "Adamantine Golem ([rand(1, 1000)])" + G.dna.unique_enzymes = G.dna.generate_unique_enzymes() G.dna.species.auto_equip(G) G.loc = src.loc G.key = ghost.key diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index ba81afe9d11038cb640634e03f600673ee5ec194..768be9b92310649dd312e82243bf40fd01d4e22f 100644 GIT binary patch delta 7073 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 delta 7075 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 E04S=kCIA2c diff --git a/tgstation.dme b/tgstation.dme index 23408636bb2..ce89e7b0486 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -399,6 +399,7 @@ #include "code\game\machinery\cloning.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\deployable.dm" +#include "code\game\machinery\dna_scanner.dm" #include "code\game\machinery\doppler_array.dm" #include "code\game\machinery\droneDispenser.dm" #include "code\game\machinery\flasher.dm" @@ -463,6 +464,7 @@ #include "code\game\machinery\computer\communications.dm" #include "code\game\machinery\computer\computer.dm" #include "code\game\machinery\computer\crew.dm" +#include "code\game\machinery\computer\dna_console.dm" #include "code\game\machinery\computer\HolodeckControl.dm" #include "code\game\machinery\computer\law.dm" #include "code\game\machinery\computer\medical.dm" From 9bc0ce58e1947408710b32d7792a54206e81ea67 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 19 Sep 2015 22:22:04 +0200 Subject: [PATCH 35/74] Tiny mistake. --- code/game/gamemodes/changeling/changeling.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index d4613fac399..1069918eee8 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -346,6 +346,7 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas return if(has_dna(target.dna)) user << "We already have this DNA in storage!" + return if(!target.has_dna()) user << "[target] is not compatible with our biology." return From 069e5cdbe5796c0114ee0ac5e7c29498b201392b Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 19 Sep 2015 23:41:39 +0200 Subject: [PATCH 36/74] Fixes the errors from merge conflicts Fixes changeling readaptation not removing chameleon skin, arm blade, organic suits and shield. --- .../changeling/powers/chameleon_skin.dm | 7 ++- .../gamemodes/changeling/powers/mutations.dm | 44 +++++++++++++------ code/modules/admin/verbs/one_click_antag.dm | 6 +-- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/chameleon_skin.dm b/code/game/gamemodes/changeling/powers/chameleon_skin.dm index 5d6ca21c5ac..f39505fa712 100644 --- a/code/game/gamemodes/changeling/powers/chameleon_skin.dm +++ b/code/game/gamemodes/changeling/powers/chameleon_skin.dm @@ -22,4 +22,9 @@ feedback_add_details("changeling_powers","CS") return 1 - +/obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) + if(user.has_dna()) + var/mob/living/carbon/C = user + var/datum/mutation/human/HM = mutations_list[CHAMELEON] + if(HM in C.dna.mutations) + HM.force_lose(C) \ No newline at end of file diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 71e6512b68b..1efb76bef3c 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -21,20 +21,23 @@ var/weapon_name_simple /obj/effect/proc_holder/changeling/weapon/try_to_sting(mob/user, mob/target) - if(istype(user.l_hand, weapon_type)) //Not the nicest way to do it, but eh - playsound(user, 'sound/effects/blobattack.ogg', 30, 1) - qdel(user.l_hand) - user.visible_message("With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "With a sickening crunch, [user] reforms their [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "The [user.get_active_hand()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!" @@ -44,6 +47,10 @@ playsound(user, 'sound/effects/blobattack.ogg', 30, 1) return W +/obj/effect/proc_holder/changeling/weapon/on_refund(mob/user) + check_weapon(user, user.r_hand, 1) + check_weapon(user, user.l_hand, 0) + //Parent to space suits and armor. /obj/effect/proc_holder/changeling/suit name = "Organic Suit" @@ -61,10 +68,16 @@ var/blood_on_castoff = 0 /obj/effect/proc_holder/changeling/suit/try_to_sting(mob/user, mob/target) + if(check_suit(user)) + return + var/mob/living/carbon/human/H = user + ..(H, target) + +//checks if we already have an organic suit and casts it off. +/obj/effect/proc_holder/changeling/suit/proc/check_suit(mob/user) var/datum/changeling/changeling = user.mind.changeling if(!ishuman(user) || !changeling) - return - + return 1 var/mob/living/carbon/human/H = user if(istype(H.wear_suit, suit_type) || istype(H.head, helmet_type)) H.visible_message("[H] casts off their [suit_name_simple]!", "We cast off our [suit_name_simple][genetic_damage > 0 ? ", temporarily weakening our genomes." : "."]", "You hear the organic matter ripping and tearing!") @@ -82,8 +95,13 @@ changeling.geneticdamage += genetic_damage //Casting off a space suit leaves you weak for a few seconds. changeling.chem_recharge_slowdown -= recharge_slowdown + return 1 + +/obj/effect/proc_holder/changeling/suit/on_refund(mob/user) + if(!ishuman(user)) return - ..(H, target) + var/mob/living/carbon/human/H = user + check_suit(H) /obj/effect/proc_holder/changeling/suit/sting_action(mob/living/carbon/human/user) if(!user.canUnEquip(user.wear_suit)) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 2ba4e19149b..198dbff5c2e 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -326,13 +326,13 @@ //Spawn and equip the commando var/mob/living/carbon/human/Commando = new(spawnloc) chosen_candidate.client.prefs.copy_to(Commando) - ready_dna(Commando) if(numagents == 1) //If Squad Leader Commando.real_name = "Officer [pick(commando_names)]" Commando.equipOutfit(/datum/outfit/death_commando/officer) else Commando.real_name = "Trooper [pick(commando_names)]" Commando.equipOutfit(/datum/outfit/death_commando) + Commando.dna.update_dna_identity() Commando.key = chosen_candidate.key Commando.mind.assigned_role = "Death Commando" for(var/obj/machinery/door/poddoor/ert/door in airlocks) @@ -420,8 +420,8 @@ //Create the official var/mob/living/carbon/human/newmob = new (pick(emergencyresponseteamspawn)) chosen_candidate.client.prefs.copy_to(newmob) - ready_dna(newmob) newmob.real_name = newmob.dna.species.random_name(newmob.gender,1) + newmob.dna.update_dna_identity() newmob.key = chosen_candidate.key newmob.mind.assigned_role = "Centcom Official" newmob.equipOutfit(/datum/outfit/centcom_official) @@ -490,7 +490,6 @@ var/mob/living/carbon/human/ERTOperative = new(spawnloc) var/list/lastname = last_names chosen_candidate.client.prefs.copy_to(ERTOperative) - ready_dna(ERTOperative) var/ertname = pick(lastname) switch(numagents) if(1) @@ -514,6 +513,7 @@ if(7) ERTOperative.real_name = "Engineer [ertname]" ERTOperative.equipOutfit(redalert ? /datum/outfit/ert/engineer/alert : /datum/outfit/ert/engineer) + ERTOperative.dna.update_dna_identity() ERTOperative.key = chosen_candidate.key ERTOperative.mind.assigned_role = "ERT" From 7e61f74e9c14772c783ff30028e9c79fcc728538 Mon Sep 17 00:00:00 2001 From: KyrahAbattoir Date: Sat, 19 Sep 2015 23:51:15 +0200 Subject: [PATCH 37/74] Updated the ministation wizard hideout to current boxstation version and corrected the other active turf problems on ministation z2 and ministation itself. --- _maps/map_files/MiniStation/MiniStation.dmm | 4 +- _maps/map_files/MiniStation/z2.dmm | 190 ++++++++++---------- 2 files changed, 92 insertions(+), 102 deletions(-) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 702ab5ca619..1c43db84bb8 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -1141,7 +1141,7 @@ "vW" = (/obj/structure/closet/wardrobe/black,/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "vX" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "vY" = (/turf/simulated/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/arrival) -"vZ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/floor/plating,/area/shuttle/arrival) +"vZ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/arrival) "wa" = (/turf/simulated/floor/plasteel/shuttle,/turf/simulated/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival) "wb" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/internals/emergency_oxygen,/turf/simulated/floor/plating,/area/hallway/primary/central) "wc" = (/turf/simulated/wall,/area/crew_quarters/heads{name = "\improper Job Assignment"}) @@ -1165,7 +1165,7 @@ "wu" = (/turf/simulated/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/arrival) "wv" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "ww" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) -"wx" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/shuttle/arrival) +"wx" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/shuttle/arrival) "wy" = (/obj/machinery/atmospherics/components/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/engine/engineering) "wz" = (/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "wA" = (/obj/machinery/power/apc{auto_name = 1; dir = 1; name = "_North APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/crew_quarters/heads{name = "\improper Job Assignment"}) diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm index e3dbfe6a3ef..ac11b27332e 100644 --- a/_maps/map_files/MiniStation/z2.dmm +++ b/_maps/map_files/MiniStation/z2.dmm @@ -112,11 +112,11 @@ "ch" = (/turf/indestructible/riveted,/area/start) "ci" = (/obj/effect/landmark/start,/turf/simulated/floor/plating,/area/start) "cj" = (/turf/indestructible/splashscreen,/area/start) -"ck" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/floor/plating,/area/shuttle/supply) +"ck" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/supply) "cl" = (/turf/space,/turf/simulated/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/supply) "cm" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena_source) "cn" = (/turf/simulated/floor/bluegrid,/area/tdome/arena_source) -"co" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/shuttle/supply) +"co" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/supply) "cp" = (/turf/simulated/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/supply) "cq" = (/turf/space,/turf/simulated/wall/shuttle{icon_state = "swall_f10"; dir = 2},/area/shuttle/supply) "cr" = (/turf/indestructible/abductor{icon_state = "alien21"},/area/abductor_ship) @@ -277,8 +277,8 @@ "fq" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dir = 8; dwidth = 12; height = 9; width = 21},/obj/docking_port/stationary{dir = 8; dwidth = 12; height = 9; id = "emergency_away"; name = "Centcom"; width = 21},/turf/simulated/floor/plating,/area/space) "fr" = (/turf/simulated/floor/plating,/area/centcom/evac) "fs" = (/turf/indestructible/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) -"ft" = (/turf/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows"},/area/wizard_station) -"fu" = (/turf/indestructible/riveted{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station) +"ft" = (/turf/indestructible/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) +"fu" = (/turf/indestructible/riveted/uranium,/area/wizard_station) "fv" = (/turf/indestructible/riveted,/area/syndicate_mothership) "fw" = (/turf/simulated/floor/plating,/turf/simulated/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport) "fx" = (/turf/simulated/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/transport) @@ -287,11 +287,11 @@ "fA" = (/turf/simulated/floor/plating,/turf/simulated/wall/shuttle{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport) "fB" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry) "fC" = (/turf/indestructible/fakeglass,/area/centcom/control) -"fD" = (/obj/item/weapon/shard{color = "#008000"},/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) +"fD" = (/obj/item/weapon/shard{color = "#008000"},/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage5"},/area/wizard_station) "fE" = (/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"fF" = (/obj/machinery/computer/shuttle,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"fG" = (/turf/indestructible/riveted{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station) -"fH" = (/turf/indestructible/riveted{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station) +"fF" = (/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) +"fG" = (/obj/machinery/computer/shuttle,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"fH" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage2"},/area/wizard_station) "fI" = (/turf/simulated/floor/plating/snow,/area/syndicate_mothership) "fJ" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/syndicate_mothership) "fK" = (/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/syndicate_mothership) @@ -308,10 +308,10 @@ "fV" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/space) "fW" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; req_access_txt = "0"},/turf/simulated/wall/shuttle{icon_state = "swall3"; dir = 2},/area/space) "fX" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) -"fY" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"fZ" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) -"ga" = (/turf/indestructible/riveted{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station) -"gb" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"fY" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage3"},/area/wizard_station) +"fZ" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) +"ga" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"gb" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) "gc" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/transport) "gd" = (/turf/simulated/floor/plasteel/shuttle,/area/shuttle/transport) "ge" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; travelDir = 180; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; turf_type = /turf/simulated/floor; width = 5},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/transport) @@ -320,36 +320,36 @@ "gh" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) "gi" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/evac) "gj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/indestructible/riveted,/area/centcom/evac) -"gk" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"gl" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) -"gm" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"gn" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) +"gk" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) +"gl" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage4"},/area/wizard_station) +"gm" = (/obj/effect/forcefield,/obj/structure/door_assembly/door_assembly_uranium{anchored = 1; name = "Bridge"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"gn" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage6"},/area/wizard_station) "go" = (/obj/structure/flora/bush,/turf/simulated/floor/plating/snow,/area/syndicate_mothership) "gp" = (/turf/simulated/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/transport) "gq" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/transport) "gr" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/simulated/floor/plasteel,/area/centcom/ferry) "gs" = (/turf/indestructible/fakeglass,/area/centcom/evac) "gt" = (/turf/indestructible/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) -"gu" = (/obj/effect/forcefield,/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Bridge"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"gv" = (/turf/indestructible/riveted{tag = "icon-uranium9"; icon_state = "uranium9"},/area/wizard_station) -"gw" = (/turf/indestructible/riveted{tag = "icon-uranium6"; icon_state = "uranium6"},/area/wizard_station) +"gu" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) +"gv" = (/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage7"},/area/wizard_station) +"gw" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) "gx" = (/turf/simulated/floor/plating,/turf/simulated/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/transport) "gy" = (/turf/simulated/floor/plating,/turf/simulated/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport) "gz" = (/turf/simulated/floor/plasteel{icon_state = "greencorner"},/area/centcom/ferry) "gA" = (/turf/simulated/floor/plasteel{icon_state = "greencorner"; dir = 8},/area/centcom/evac) "gB" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) -"gC" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) -"gD" = (/turf/indestructible/riveted{tag = "icon-uranium1"; icon_state = "uranium1"},/area/wizard_station) -"gE" = (/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"gF" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"gC" = (/turf/simulated/floor/plasteel/airless,/area/wizard_station) +"gD" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/airless,/area/wizard_station) +"gE" = (/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) +"gF" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage5"},/area/wizard_station) "gG" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/floor/plasteel/shuttle,/area/space) "gH" = (/turf/simulated/wall/shuttle{icon_state = "swall0"; dir = 2},/area/wizard_station) "gI" = (/turf/simulated/wall/shuttle{icon_state = "swall4"; dir = 2},/area/wizard_station) "gJ" = (/turf/indestructible/fakedoor{name = "Squad 4 Pod"},/area/wizard_station) "gK" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "gL" = (/turf/simulated/floor/plasteel/cult,/turf/simulated/wall/shuttle{icon_state = "swall_f10"; dir = 2},/area/wizard_station) -"gM" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) -"gN" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"gM" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage7"},/area/wizard_station) +"gN" = (/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage5"},/area/wizard_station) "gO" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) "gP" = (/turf/indestructible/riveted,/area/centcom/holding) "gQ" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/wizard_station) @@ -360,11 +360,11 @@ "gV" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space/transit,/area/wizard_station) "gW" = (/obj/machinery/status_display,/turf/simulated/wall/shuttle{icon_state = "swall11"; dir = 2},/area/space) "gX" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) -"gY" = (/turf/simulated/floor/plasteel,/area/wizard_station) -"gZ" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel,/area/wizard_station) +"gY" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage2"},/area/wizard_station) +"gZ" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage2"},/area/wizard_station) "ha" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/airless,/area/wizard_station) -"hb" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"hc" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) +"hb" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) +"hc" = (/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage3"},/area/wizard_station) "hd" = (/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate) "he" = (/turf/simulated/floor/plating/snow,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate) "hf" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/shuttle/syndicate) @@ -375,9 +375,9 @@ "hk" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access_txt = "2"},/turf/simulated/floor/plasteel/shuttle,/area/space) "hl" = (/turf/simulated/wall/shuttle{icon_state = "swall12"; dir = 2},/area/wizard_station) "hm" = (/turf/simulated/floor/plasteel/cult,/turf/simulated/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/wizard_station) -"hn" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"ho" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"hp" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) +"hn" = (/obj/structure/door_assembly/door_assembly_uranium{anchored = 1; name = "Break Room"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"ho" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/obj/structure/mirror/magic{pixel_y = 28},/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"hp" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) "hq" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hr" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hs" = (/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -401,7 +401,7 @@ "hK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle/red,/area/space) "hL" = (/turf/simulated/floor/plasteel/shuttle/red,/area/space) "hM" = (/obj/machinery/vending/magivend,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"hN" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"hN" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) "hO" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hP" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "hQ" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) @@ -419,11 +419,11 @@ "ic" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/simulated/floor/plasteel/black,/area/centcom/evac) "id" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/space) "ie" = (/turf/simulated/wall/shuttle{icon_state = "swall1"; dir = 2},/area/space) -"if" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Break Room"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"ig" = (/turf/indestructible/riveted{tag = "icon-uranium8"; icon_state = "uranium8"},/area/wizard_station) -"ih" = (/turf/indestructible/riveted{tag = "icon-uranium12"; icon_state = "uranium12"},/area/wizard_station) -"ii" = (/turf/indestructible/riveted{tag = "icon-uranium4"; icon_state = "uranium4"},/area/wizard_station) -"ij" = (/turf/indestructible/riveted{tag = "icon-uranium14"; icon_state = "uranium14"},/area/wizard_station) +"if" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"ig" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) +"ih" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack{health = 9999},/obj/item/clothing/suit/space/hardsuit/wizard,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"ii" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) +"ij" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless,/area/wizard_station) "ik" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Break Room"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) "il" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "im" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -450,9 +450,9 @@ "iH" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "iI" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "iJ" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"iK" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"iL" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"iM" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"iK" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/airless,/area/wizard_station) +"iL" = (/obj/effect/landmark/start{name = "wizard"},/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage5"},/area/wizard_station) +"iM" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult/airless,/area/wizard_station) "iN" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "iO" = (/turf/simulated/floor/plating/snow,/turf/simulated/wall/shuttle{icon_state = "diagonalWall3"},/area/shuttle/syndicate) "iP" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -468,7 +468,7 @@ "iZ" = (/turf/indestructible/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) "ja" = (/obj/structure/cult/tome,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "jb" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"jc" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack{health = 9999},/obj/item/clothing/suit/space/hardsuit/wizard,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"jc" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack,/obj/item/weapon/staff,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) "jd" = (/turf/simulated/floor/plasteel/cult,/turf/simulated/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/wizard_station) "je" = (/turf/simulated/wall/shuttle{icon_state = "swall8"; dir = 2},/area/wizard_station) "jf" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -488,9 +488,9 @@ "jt" = (/obj/structure/bookcase,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "ju" = (/obj/structure/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchen/knife/ritual,/turf/simulated/floor/plasteel/cult,/area/wizard_station) "jv" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"jw" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"jx" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel,/area/wizard_station) -"jy" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel,/area/wizard_station) +"jw" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"jx" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage4"},/area/wizard_station) +"jy" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage4"},/area/wizard_station) "jz" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "jA" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "jB" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) @@ -504,8 +504,8 @@ "jJ" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve) "jK" = (/turf/indestructible/fakedoor{name = "Centcom Security"},/area/centcom/evac) "jL" = (/turf/indestructible/fakeglass{color = "#008000"},/area/wizard_station) -"jM" = (/obj/effect/landmark/start{name = "wizard"},/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"jN" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"jM" = (/obj/structure/door_assembly/door_assembly_uranium{anchored = 1; name = "Corridor A"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) +"jN" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage3"},/area/wizard_station) "jO" = (/turf/simulated/floor/plasteel/cult,/turf/simulated/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/wizard_station) "jP" = (/turf/indestructible/fakedoor{name = "Squad 3 Pod"},/area/wizard_station) "jQ" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) @@ -513,10 +513,10 @@ "jS" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/simulated/floor/plating,/area/syndicate_mothership) "jT" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/plasteel/cult,/area/wizard_station) "jU" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"jV" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack,/obj/item/weapon/staff,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"jW" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"jX" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) -"jY" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) +"jV" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage2"},/area/wizard_station) +"jW" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/cult{icon_state = "cultdamage"},/area/wizard_station) +"jX" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage5"},/area/wizard_station) +"jY" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/simulated/floor/carpet,/area/wizard_station) "jZ" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "ka" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kb" = (/turf/indestructible/fakeglass,/area/syndicate_mothership) @@ -525,8 +525,8 @@ "ke" = (/obj/machinery/computer/telecrystals/uplinker,/turf/simulated/floor/plasteel/cult{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership) "kf" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "kg" = (/obj/structure/urinal{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"kh" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Corridor A"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) -"ki" = (/turf/indestructible/riveted{tag = "icon-uranium13"; icon_state = "uranium13"},/area/wizard_station) +"kh" = (/turf/simulated/floor/carpet,/area/wizard_station) +"ki" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage6"},/area/wizard_station) "kj" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; name = "Corridor A"},/turf/simulated/floor/plasteel/cult,/area/wizard_station) "kk" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kl" = (/obj/structure/stool,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -543,7 +543,7 @@ "kw" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "kx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space/transit,/area/wizard_station) "ky" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"kz" = (/obj/effect/forcefield,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) +"kz" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/simulated/floor/carpet,/area/wizard_station) "kA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/simulated/floor/plating/snow,/area/syndicate_mothership) "kB" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kC" = (/turf/simulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) @@ -554,8 +554,8 @@ "kH" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) "kI" = (/turf/simulated/floor/plasteel{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) "kJ" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/simulated/floor/plasteel{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) -"kK" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"kL" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"kK" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage"},/area/wizard_station) +"kL" = (/turf/simulated/floor/plasteel/cult/airless{icon_state = "cultdamage7"},/area/wizard_station) "kM" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kN" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kO" = (/obj/machinery/computer/telecrystals/boss,/turf/simulated/floor/plasteel/cult{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership) @@ -565,7 +565,7 @@ "kS" = (/turf/indestructible/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) "kT" = (/obj/machinery/computer/security/telescreen,/turf/simulated/floor/plasteel{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) "kU" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) -"kV" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/simulated/floor/carpet{dir = 9; icon_state = "carpetside"},/area/wizard_station) +"kV" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/simulated/floor/carpet,/area/wizard_station) "kW" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "kX" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "kY" = (/turf/simulated/floor/plasteel/black,/area/syndicate_mothership) @@ -578,11 +578,11 @@ "lf" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor/plasteel/cult{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) "lg" = (/turf/simulated/floor/plating/snow,/obj/structure/flora/bush,/turf/simulated/floor/plasteel/cult{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership) "lh" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"li" = (/turf/simulated/floor/carpet{dir = 5; icon_state = "carpetside"},/area/wizard_station) -"lj" = (/turf/simulated/floor/carpet{dir = 1; icon_state = "carpetside"},/area/wizard_station) -"lk" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/simulated/floor/carpet{dir = 10; icon_state = "carpetside"},/area/wizard_station) +"li" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/simulated/floor/carpet,/area/wizard_station) +"lj" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/wizard_station) +"lk" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/simulated/floor/plating/lava/airless,/area/wizard_station) "ll" = (/obj/effect/forcefield,/turf/space,/area/wizard_station) -"lm" = (/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) +"lm" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/lava/airless,/area/wizard_station) "ln" = (/turf/simulated/floor/plasteel/cult,/turf/simulated/wall/shuttle{dir = 2; icon_state = "swall_f10"; layer = 2},/area/wizard_station) "lo" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "lp" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -597,10 +597,6 @@ "ly" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "lz" = (/obj/structure/stool,/turf/simulated/floor/plasteel/black,/area/syndicate_mothership) "lA" = (/turf/indestructible/riveted,/area/tdome/arena) -"lB" = (/turf/simulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) -"lC" = (/turf/simulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) -"lD" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/simulated/floor/plasteel{icon_state = "carpet"; dir = 2},/area/wizard_station) -"lE" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plasteel/cult{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) "lF" = (/turf/simulated/wall/shuttle{icon_state = "swall1"; dir = 2},/area/wizard_station) "lG" = (/turf/simulated/wall/shuttle{icon_state = "swall3"; dir = 2},/area/wizard_station) "lH" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -614,15 +610,12 @@ "lP" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/simulated/floor/plating,/area/tdome/arena) "lQ" = (/obj/effect/landmark{name = "tdome1"},/turf/simulated/floor/plating,/area/tdome/tdome1) "lR" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/simulated/floor/plasteel/black,/area/tdome/arena) -"lS" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/simulated/floor/carpet{dir = 6; icon_state = "carpetside"},/area/wizard_station) -"lU" = (/turf/simulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station) "lV" = (/turf/indestructible/fakedoor{name = "Squad 2 Pod"},/area/wizard_station) "lW" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "lX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "lY" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "lZ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/simulated/floor/plating,/area/tdome/tdome2) "ma" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/simulated/floor/plating,/area/tdome/tdome1) -"mb" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/wizard_station) "mc" = (/turf/simulated/wall/shuttle,/area/wizard_station) "md" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 4},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) "me" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/floor/plasteel/shuttle/red,/area/shuttle/syndicate) @@ -650,10 +643,7 @@ "mA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/floor/plating,/area/shuttle/syndicate) "mB" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/floor/plating,/area/shuttle/syndicate) "mC" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/floor/plating,/area/shuttle/syndicate) -"mD" = (/turf/indestructible/riveted{tag = "icon-uranium11"; icon_state = "uranium11"},/area/wizard_station) -"mE" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/simulated/floor/plasteel/cult{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) "mF" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/simulated/floor/plasteel/black,/area/tdome/arena) -"mG" = (/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plasteel/cult{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) "mH" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/simulated/floor/plasteel/black,/area/tdome/arena) "mI" = (/turf/indestructible/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) "mJ" = (/turf/indestructible/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) @@ -869,35 +859,35 @@ aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaM aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeueueueueueueueueueueueueueueueueWeueueReXdJeYfaeZeQeXeReJfcfbfbfbfdeJeJeJejeTekeUfeeTekeUejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufffffffffffffffffffffffffffgfjfhfkeueReXfldJdJdJfmeXeReJfneVeVfoeVeVeVeJejekekeUdVeTekekfqfpfrfpeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaevftfsfuaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufffwfxfxfyfxfxfxfzfxfxfAfffBfjfhfkeueReXdSdJdJdJdTfCeReJfneVeVfoeVeVeVeJejeTekeUdVeTekeUejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBaafDfFfEfHfGaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfJfIfIfIfLfKfIfIfIfLfIfIfIfIfIfIfLfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNfMfPfOfQfQfQfQfQfQfQfyfSfRfjfhfkeueRfCdSdJdJdJdNdFeheJfTeVeVfoeVeVeVfUfVeTekeUfWeTekfXejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBfifYfZfEgbgaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfJfIfIfIfIfIfIfIfIfIfIfIfLfIfIfIfIfIfLfIfIfIfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNgcgdgdgdgdgdgdgdgdgdgegffffhfhggeugheudLdJdJdJdJdJdJeVeVeVeVfoeVeVeVgifVeTekeUdVeTekeUfVaMaMgjeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafuglgkgbgmgngaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIgofIfIfIfIfIfJfIfIfKfLfIfIfLfIfIfLfKfIfLfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNgpgqgqgqgqgqgqgqgqgqfyfSfgfjfhfhgrfhfhdJdJdJdJdJdJdJeVeVeVeVfoeVeVeVgsfVeTekeUdVeTekeUejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafHfGgtgugtgwgvaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfJfIfIfLfKfIfIfLfIfKfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeuffgxfxfxfyfxfxfxfzfxfxgyfffBfjfhgzeugheufldJdJdJfmdFeheJgAeVeVfoeVeVeVeJejeTekeUgBeTekeUejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBeBgDgCgFgEgDaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfJfIfIfIfIfIfKfIfLfKfIfLfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufffffffffffffffffffffffffffRfjfhfkeueReOdQdJdJdJdReOeReJfneVeVfoeVeVeVeJejekekekekekekekgGfpfrfpeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaagHgJgIgLgKgMfEgNeBaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIgOgOgOgOgOgOgOfIfIfIfIfIfIfIfLfIfIgofKfIfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgRgPgPeReXdQdJdJdJdReXeReJfcfdgTgSeJeVeVeJejgUdVdVgWeLekgXejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaagVgQgZgYhagKfEgkhchbeBeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhehdhfhfhfhfhfhdhgfIfIfIfIgofIgOfJgOfJfIfLfIfLfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPeRfCdQdJdJdJdRfCeReJhhhhhhhheJeVeVeJejeLeLhiejdVhkdVejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBaagIhlhlhmgKfEhngkhbaahohpaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdhqhshrhuhthvhvhdhwfIfIgOfvfvhxhyfvfvgOhAhzgOfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhBhBhDhChGhEhHhBhBeJhhhhhhhheJeVeVeJejeLeLhIejhJhLhKejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaagNeBaaaaeBhFhMfZhNfZgNeBeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdhOhshshPhshshshdhwfIhQfvfvhShRhRhSfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhUhThWhVhYhXhWhThUeJiahZicibeJeVeVeJejideLhiiehJhLhKejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaagwigifiiihijihihigikiiihihijihigaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdilhshshsimhsinhdhwgohQfvioipipipipiriqitisiviuiwfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhTixiyhVhYhXiyizhTeJhhiAiBhheJeVeVeJiDiCiEiEiEiEiEiCiFaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaagDiGfEfEiGgDiHiIfEfEfEiKiJgDiLiMgNiNeBeBaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIiOhdhdhdiPhdhdhdiQfIfIiRfviSipiTiTiUipipipiViWiWiWfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPiXhTiXhVhYhXiXhTiXeJhhhhhhhheJeVeVeJaMiDiYiYiYiYiYiFaMaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaiZjafEfEjagtiNiNfEfEfEfEjbiZjcjdhlhljeaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIhdjfhsjghdjhgOgOgOjifvipiTjjjkiTipjljmisjojnfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPjphThThVhYhXhThTjqeJhhhhhhjreJeVeVeJeJeJeJeJeJeJeJeJeJeJeJeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaajsjtfEgkfEkphngkfEjufEfEjvjsjwkujxjykvkxaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIhdjzhsjAhdjBjCjCjChyfvipiTjDjEiTipjljFfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPjHjGjGhVhYhXjIjIjJeJeJjKeJeJeJeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaajLjafEfZhnkDfZfEfEjMfEfEfEjLjNjOjejPgHaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhehdhdhdhdhdjzhsjAhdjQjRjRjRjRjSipipipipipipjljFfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhBhBhBhBhYhBhBhBhBhBaMaMaMaMeJeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaafujTfEfEjTfujUfEgkfZfEfEjUfujVjXjWjYaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshskahdjzhsjAhdkbkchxjChyfvkdiTiTiTipipjlkefvkgkffvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhYhBaMaMaMaMaMaMaMaMeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaafHigkhiiihkiihiggtkjgtiiihkiihigeBeBeBaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhsklkkhdjzhsjAhdhdknkmhgkofvkqkskrksksipipipktkwkwkyfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhBhBhBhBhBhBhBhGhBhBhBhBhBhBhBhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaahFgkaaeBaaeBkzgMhFaaaaeBaaaaaaaaeBaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvkAfIhdjZhshskBhdhshshshdhshshshdiRfvkCkEkCkCkFipipipfvkHkGkyfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBkIkJkJkJkJkJkIkIkIkJkJkJkJkJkIhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBeBaakKgkaallkLhFeBaahnaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshshskMhshshskNhshshshdhQfvfvjmkOkQkPfvkRfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkSkIkIkIkTkIkIkIkIkIkIkIkTkIkIkIkSaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBeBaalrgklsaaaaaaeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshshskUhshshshjhshskWhdkXkXkofvfvfvfvfvkYkYkZlblalcfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBkIkJkJkJkJkJkIkIkIkJkJkJkJkJkIhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBgwigldiifGeBaaeBeBaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhehdhdhdhdhdhdlehshshdhdhdhdhdhdhglflflflgkofvkYkYkYkYkYkYfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhElhlhlhlhlhlhlhlhlhlhlhlhlhhChBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaagDkVljligDkKjdhalnlmeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlololpltlqhdhshshshdlulwlvlylxhdfIfJfIfIfKiskYkYkYkYkYlzfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlAlAlAlAlAlAlAlAmgmhmhmhmhmhmhmhmhmhmhmhmhmhmglAlAlAlAlAlAlAlAlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaagtlBlDlCgtlElFgYlGfEgaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdhshshsklhslHhshshslIhsklhskllJhdfIgofLfJgofvlKlKlKlKlKlLfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaagMeBfulklUlSfufZlVgYlGaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlWhshshshslXhshshslYhshshshshshdfIfIfIfLhQfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlZlNlZlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQmalQmalQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBgwkiiggtiikifGmcmblGaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlWhshsmemdhdmfmimfhdmjmkhshshshdfIfLfIgohQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNmllNlNlPnemhmhmhmhmhnxnynxmhmhmhmhmhnglPlQlQmmlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBgDfEmnmomnfEgDaanqaaaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdhshsmphdhdhdmqmrhshdhdhdhshshshdfIfIfJfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhnxnDnxmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaeBgknzfEfEfEfEfEnzaaaaaaaagkaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdmsmumthdfIhdmvmvmvhdfIhdmwmymxhdfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlZlNlZlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQmalQmalQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBeBgMfEfumzfEfEfEmzfuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdmvmvmvhdfIiOmAmCmBiQfIhdmvmvmvhdfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaeBiiihmDmEmEmEmEmEgaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIiOmAmCmBiQfIfIfIfIfIfIfIiOmAmCmBiQfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlAlAmFmFmFmFmFlAmgmhmhmhmhmhmhmhmhmhmhmhmhmhmglAmFmFmFmFmFlAlAlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafHigmGmGmGiigvaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAmHmHmHmHmHlAmImJmJmJmJmJmJmJmJmJmJmJmJmJmKlAmLmLmLmLmLlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBaafDfGfFfufuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfJfIfIfIfLfKfIfIfIfLfIfIfIfIfIfIfLfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNfMfPfOfQfQfQfQfQfQfQfyfSfRfjfhfkeueRfCdSdJdJdJdNdFeheJfTeVeVfoeVeVeVfUfVeTekeUfWeTekfXejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBfifHfYfFfZfuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfJfIfIfIfIfIfIfIfIfIfIfIfLfIfIfIfIfIfLfIfIfIfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNgcgdgdgdgdgdgdgdgdgdgegffffhfhggeugheudLdJdJdJdJdJdJeVeVeVeVfoeVeVeVgifVeTekeUdVeTekeUfVaMaMgjeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafugbgafZgkglfuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIgofIfIfIfIfIfJfIfIfKfLfIfIfLfIfIfLfKfIfLfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufNgpgqgqgqgqgqgqgqgqgqfyfSfgfjfhfhgrfhfhdJdJdJdJdJdJdJeVeVeVeVfoeVeVeVgsfVeTekeUdVeTekeUejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafufugtgmgtfufuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfJfIfIfLfKfIfIfLfIfKfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeuffgxfxfxfyfxfxfxfzfxfxgyfffBfjfhgzeugheufldJdJdJfmdFeheJgAeVeVfoeVeVeVeJejeTekeUgBeTekeUejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBeBfugngufEfuaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfJfIfIfIfIfIfKfIfLfKfIfLfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMeufffffffffffffffffffffffffffRfjfhfkeueReOdQdJdJdJdReOeReJfneVeVfoeVeVeVeJejekekekekekekekgGfpfrfpeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaagHgJgIgLgKgvfEgweBaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIgOgOgOgOgOgOgOfIfIfIfIfIfIfIfLfIfIgofKfIfIfIfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgPgRgPgPeReXdQdJdJdJdReXeReJfcfdgTgSeJeVeVeJejgUdVdVgWeLekgXejfcfbfdeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaagVgQgDgChagKfEgEgMgFeBeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhehdhfhfhfhfhfhdhgfIfIfIfIgofIgOfJgOfJfIfLfIfLfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPeRfCdQdJdJdJdRfCeReJhhhhhhhheJeVeVeJejeLeLhiejdVhkdVejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBaagIhlhlhmgKfEgNgEgFaagYgZaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdhqhshrhuhthvhvhdhwfIfIgOfvfvhxhyfvfvgOhAhzgOfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhBhBhDhChGhEhHhBhBeJhhhhhhhheJeVeVeJejeLeLhIejhJhLhKejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaagweBaaaaeBhFhMhchbhcgweBeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdhOhshshPhshshshdhwfIhQfvfvhShRhRhSfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhUhThWhVhYhXhWhThUeJiahZicibeJeVeVeJejideLhiiehJhLhKejaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaafufuhnfufufufufufuikfufufufufufuaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIhdilhshshsimhsinhdhwgohQfvioipipipipiriqitisiviuiwfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhTixiyhVhYhXiyizhTeJhhiAiBhheJeVeVeJiDiCiEiEiEiEiEiCiFaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaafuiGfEfEiGfuiHiIfEfEfEhoiJfuhpifhNigeBeBaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIiOhdhdhdiPhdhdhdiQfIfIiRfviSipiTiTiUipipipiViWiWiWfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPiXhTiXhVhYhXiXhTiXeJhhhhhhhheJeVeVeJaMiDiYiYiYiYiYiFaMaMaMeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaiZjafEfEjaiZiNiNfEfEfEfEjbiZihjdhlhljeaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIhdjfhsjghdjhgOgOgOjifvipiTjjjkiTipjljmisjojnfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPjphThThVhYhXhThTjqeJhhhhhhjreJeVeVeJeJeJeJeJeJeJeJeJeJeJeJeJeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaajsjtfEgEfEkpgNgEfEjufEfEjvjsiikuijiKkvkxaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIhdjzhsjAhdjBjCjCjChyfvipiTjDjEiTipjljFfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPjHjGjGhVhYhXjIjIjJeJeJjKeJeJeJeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaajLjafEhcgNkDhcfEfEiLfEfEfEjLiMjOjejPgHaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhehdhdhdhdhdjzhsjAhdjQjRjRjRjRjSipipipipipipjljFfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMgPhBhBhBhBhYhBhBhBhBhBaMaMaMaMeJeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeVeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaafujTfEfEjTfujUfEgEhcfEfEjUfujcjxjwjyaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshskahdjzhsjAhdkbkchxjChyfvkdiTiTiTipipjlkefvkgkffvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhYhBaMaMaMaMaMaMaMaMeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJeJaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaafufujMfufufufufugtkjgtfufufufufueBeBeBaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhsklkkhdjzhsjAhdhdknkmhgkofvkqkskrksksipipipktkwkwkyfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhBhBhBhBhBhBhBhGhBhBhBhBhBhBhBhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaahFgaaaeBaaeBjNgvhFaaaaeBaaaaaaaaeBaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvkAfIhdjZhshskBhdhshshshdhshshshdiRfvkCkEkCkCkFipipipfvkHkGkyfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBkIkJkJkJkJkJkIkIkIkJkJkJkJkJkIhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBeBaajVgaaalljWhFeBaajXaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshshskMhshshskNhshshshdhQfvfvjmkOkQkPfvkRfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMkSkIkIkIkTkIkIkIkIkIkIkIkTkIkIkIkSaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBeBaalrgElsaaaaaaeBaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIhdjZhshshskUhshshshjhshskWhdkXkXkofvfvfvfvfvkYkYkZlblalcfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBkIkJkJkJkJkJkIkIkIkJkJkJkJkJkIhBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaeBfufuldfufueBaaeBeBaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhehdhdhdhdhdhdlehshshdhdhdhdhdhdhglflflflgkofvkYkYkYkYkYkYfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhBhElhlhlhlhlhlhlhlhlhlhlhlhlhhChBaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaafujYkhkhfujVjdhalnkieBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlololpltlqhdhshshshdlulwlvlylxhdfIfJfIfIfKiskYkYkYkYkYlzfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlAlAlAlAlAlAlAlAmgmhmhmhmhmhmhmhmhmhmhmhmhmhmglAlAlAlAlAlAlAlAlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaagtkhkzkhgtkKlFgClGfFfuaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdhshshsklhslHhshshslIhsklhskllJhdfIgofLfJgofvlKlKlKlKlKlLfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaakLeBfukVkhlifufYlVgClGaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlWhshshshslXhshshslYhshshshshshdfIfIfIfLhQfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlZlNlZlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQmalQmalQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBfufufugtfufufumcljlGaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdlWhshsmemdhdmfmimfhdmjmkhshshshdfIfLfIgohQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNmllNlNlPnemhmhmhmhmhnxnynxmhmhmhmhmhnglPlQlQmmlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaeBfufEmnmomnfEfuaanqaaaaeBaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdhshsmphdhdhdmqmrhshdhdhdhshshshdfIfIfJfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhnxnDnxmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaeBganzfEfEfEfEfEnzaaaaaaaagaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdmsmumthdfIhdmvmvmvhdfIhdmwmymxhdfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlZlNlZlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQmalQmalQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaeBeBkLfFfumzfEfEfEmzfuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIhdmvmvmvhdfIiOmAmCmBiQfIhdmvmvmvhdfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlMlOlNlNlNlNlNlPnemhmhmhmhmhmhmhmhmhmhmhmhmhnglPlQlQlQlQlQlOlRlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaeBfufufulklklklklkfuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIiOmAmCmBiQfIfIfIfIfIfIfIiOmAmCmBiQfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlAlAmFmFmFmFmFlAmgmhmhmhmhmhmhmhmhmhmhmhmhmhmglAmFmFmFmFmFlAlAlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaafufulmlmlmfufuaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIfIhQfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAmHmHmHmHmHlAmImJmJmJmJmJmJmJmJmJmJmJmJmJmKlAmLmLmLmLmLlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanUnUnUaaaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvfvaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMlAlAlAlAlAlAlAmMmNmNmNmNmNmOmQmPmNmNmNmNmNmMlAlAlAlAlAlAlAaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmRmMmMmMmSmMmTmTmTmTmTmMmSmMmMmMmRaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmRmRmUmRmRmRmRmVmXmWmRmRmRmRmUmRmRaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM From 38c277f42ec46429029f8979f64fa9cbce00174f Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 18:38:01 -0400 Subject: [PATCH 38/74] Adds swarmer spawn event and changes demon hearts --- code/modules/awaymissions/gateway.dm | 14 +++++++++ .../living/simple_animal/bot_swarm/swarmer.dm | 3 ++ .../simple_animal/bot_swarm/swarmer_event.dm | 30 +++++++++++++++++++ .../simple_animal/slaughter/slaughter.dm | 21 ++++++++++--- tgstation.dme | 1 + 5 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/bot_swarm/swarmer_event.dm diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 89e24aa3672..b8ebdf1f15d 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -1,3 +1,5 @@ +var/obj/machinery/gateway/the_gateway = null + /obj/machinery/gateway name = "gateway" desc = "A mysterious gateway built by unknown hands, it allows for faster than light travel to far-flung locations." @@ -9,6 +11,18 @@ var/active = 0 +/obj/machinery/gateway/New() + ..() + if(!the_gateway) + the_gateway = src + + +/obj/machinery/gateway/Destroy() + if(the_gateway == src) + the_gateway = null + ..() + + /obj/machinery/gateway/initialize() update_icon() if(dir == 2) diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm index 169e705481f..92d395b2615 100644 --- a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm @@ -229,6 +229,9 @@ /mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This biological resource is somehow resisting our bluespace transceiver. Aborting." +/obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This object is receiving unactivated swarmer shells to help us. Aborting." + ////END CTRL CLICK FOR SWARMERS//// diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer_event.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer_event.dm new file mode 100644 index 00000000000..a95a3d17d16 --- /dev/null +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer_event.dm @@ -0,0 +1,30 @@ +/datum/round_event_control/spawn_swarmer + name = "Spawn Swarmer Shell" + typepath = /datum/round_event/spawn_swarmer + weight = 7 + max_occurrences = 1 //Only once okay fam + earliest_start = 18000 //30 minutes + + +/datum/round_event/spawn_swarmer + + +/datum/round_event/spawn_swarmer/start() + if(find_swarmer()) + return 0 + if(!the_gateway) + return 0 + new /obj/item/unactivated_swarmer(get_turf(the_gateway)) + if(prob(25)) //25% chance to announce it to the crew + var/swarmer_report = "[command_name()] High-Priority Update" + swarmer_report += "

    Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come \ + through." + print_command_report(swarmer_report,"Classified [command_name()] Update") + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') + + +/datum/round_event/spawn_swarmer/proc/find_swarmer() + for(var/mob/living/M in mob_list) + if(istype(M, /mob/living/simple_animal/hostile/swarmer) && M.client) //If there is a swarmer with an active client, we've found our swarmer + return 1 + return 0 diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm index bf7fd555460..b85dcd3e8d4 100644 --- a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm +++ b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm @@ -82,9 +82,8 @@ icon = 'icons/obj/surgery.dmi' icon_state = "demon_heart" origin_tech = "combat=5;biotech=8" - beating = 1 //What did you expect? -/obj/item/organ/internal/heart/demon/attack(mob/M, mob/living/user, obj/target) +/obj/item/organ/internal/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target) if(M != user) return ..() user.visible_message("[user] raises [src] to their mouth and tears into it with their teeth!", \ @@ -97,6 +96,20 @@ return user.visible_message("[user]'s eyes flare a deep crimson!", \ "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") - user.mind.AddSpell(new /obj/effect/proc_holder/spell/bloodcrawl) + for(var/obj/item/organ/internal/O in user.internal_organs) + if(istype(O, /obj/item/organ/internal/heart)) + O.Remove(user, 1) + O.loc = get_turf(user) + qdel(O) user.drop_item() - qdel(src) + src.Insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E + +/obj/item/organ/internal/heart/demon/Insert(mob/living/carbon/M, special = 0) + ..() + if(M.mind) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/bloodcrawl(null)) + +/obj/item/organ/internal/heart/demon/Remove(mob/living/carbon/M, special = 0) + ..() + if(M.mind) + M.mind.remove_spell(/obj/effect/proc_holder/spell/bloodcrawl) diff --git a/tgstation.dme b/tgstation.dme index 671411dd2df..9d8563360e5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1243,6 +1243,7 @@ #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" #include "code\modules\mob\living\simple_animal\bot_swarm\swarmer.dm" +#include "code\modules\mob\living\simple_animal\bot_swarm\swarmer_event.dm" #include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\crab.dm" From 41fd291b731eb9efe2d636502a5ea2b0d4c13877 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 18:49:25 -0400 Subject: [PATCH 39/74] Changelog update --- html/changelogs/Xhuis-DemonsAndMorphs.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/html/changelogs/Xhuis-DemonsAndMorphs.yml b/html/changelogs/Xhuis-DemonsAndMorphs.yml index 1862bea6f80..608375dd2c7 100644 --- a/html/changelogs/Xhuis-DemonsAndMorphs.yml +++ b/html/changelogs/Xhuis-DemonsAndMorphs.yml @@ -5,9 +5,19 @@ changes: - tweak: "When a morph changes form, a message is shown to nearby people. This also happens upon undisguising." - tweak: "Morphs now have an attack sound and message." - tweak: "The Spawn Morph event now plays a sound to the chosen candidate." - - tweak: "Slaughter Demons (and other creatures with blood crawl) now take two seconds to emerge from blood pools. Entering is still instantaneous." + - tweak: "Slaughter demons (and other creatures with blood crawl) now take two seconds to emerge from blood pools. Entering is still instantaneous." - tweak: "The demon heart's sprite has been updated." + - tweak: "Eating a demon heart now surgically implants the heart into your chest. If the heart is removed from you, you lose the ability. Someone else can eat the heart to gain the ability." - tweak: "Blood Crawl no longer has a 1-second cooldown, instead having none." + - tweak: "You can no longer hold items when attempting to Blood Crawl, nor can you use any items while Blood Crawling." - tweak: "Creatures that can Blood Crawl now take two seconds to emerge from blood pools." - tweak: "Slaughter demons now store devoured creatures, and will drop them upon death." + - tweak: "Revenants now have the ability to speak to the dead." + - tweak: "Revenant abilities now have icons." + - tweak: "Malfunction no longer EMPs a specific area - it will instead EMP nearby machines directly and stun cyborgs. Dominators are immune to this." + - tweak: "Revenants now have directional sprites." + - tweak: "Overload Lights now has a smaller radius." + - tweak: "Defile no longer corrupts tiles." + - tweak: "When glimmering residue reforms, the game will attempt to place the old revenant in control of the new one. If this cannot be done, it will find a random candidate." + - tweak: "Revenants can no longer see ghosts. They can see other revenants, however, and ghosts can still see revenants." - tweak: "The Spawn Slaughter Demon event now plays a sound to the chosen candidate." \ No newline at end of file From c323158eaffd12574ba06c84a2ec5108361897a4 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Sat, 19 Sep 2015 15:59:24 -0700 Subject: [PATCH 40/74] Dragging an item onto itself === clicking it Someone on singulo pointed out that in combat, it's hard to click things while moving because if you hold your mouse down for any length of time or twitched it hard enough, it would move and count as a drag and do nothing. --- code/_onclick/drag_drop.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index ccd6ccaf7f2..b3b0d91fbd1 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -5,8 +5,10 @@ recieving object instead, so that's the default action. This allows you to drag almost anything into a trash can. */ -/atom/MouseDrop(atom/over) +/atom/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) if(!usr || !over) return + if(over == src) + return usr.client.Click(src, src_location, src_control, params) if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows over.MouseDrop_T(src,usr) From a515908fd9c88c7e00a7b9f74f126dabea59c84f Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 19:00:02 -0400 Subject: [PATCH 41/74] Changelog --- html/changelogs/Xhuis-CultChanges.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 html/changelogs/Xhuis-CultChanges.yml diff --git a/html/changelogs/Xhuis-CultChanges.yml b/html/changelogs/Xhuis-CultChanges.yml new file mode 100644 index 00000000000..a62a9788517 --- /dev/null +++ b/html/changelogs/Xhuis-CultChanges.yml @@ -0,0 +1,13 @@ +author: Xhuis +delete-after: True + +changes: + - tweak: "Rites have been renamed to their old runes, which reflect their functionality." + - tweak: "Examining a talisman no longer opens the paper GUI." + - tweak: "Armor talismans have been re-added." + - tweak: "EMP talismans now have the same range as their rune counterpart." + - tweak: "Some talismans now cost health to use, costing more or less depending on their effect." + - tweak: "Scribing runes now deals 0.1 brute damage instead of 1." + - tweak: "Bind Talisman runes no longer deal 5 brute damage when invoking." + - tweak: "Rune shapes and colors are now identical to their old versions." + - tweak: "Conversion runes can no longer be used by yourself, and require a static 2 cultists." \ No newline at end of file From b30670fc75a3580e50352addf8088b409d296fce Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Sat, 19 Sep 2015 23:07:50 +0000 Subject: [PATCH 42/74] Automatic changelog compile --- html/changelog.html | 10 ++++++++++ html/changelogs/.all_changelog.yml | 10 ++++++++++ html/changelogs/Xhuis-SlingStuff.yml | 9 --------- 3 files changed, 20 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/Xhuis-SlingStuff.yml diff --git a/html/changelog.html b/html/changelog.html index 92e133dc46a..d96ad37a24b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,16 @@ -->
    +

    19 September 2015

    +

    Xhuis updated:

    +
      +
    • Shadowlings are now able to sacrifice a thrall to extend the shuttle timer by 15 minutes. This will not stack.
    • +
    • Additional abilities granted by Collective Mind will now properly have icons.
    • +
    • Shadowlings now have their antagonism removed if turned into a silicon.
    • +
    • The order of abilities unlocked by Collective Mind has been changed. It now starts with Sonic Screech.
    • +
    • Veil now destroys glowshrooms in a much larger radius than before.
    • +
    +

    17 September 2015

    bgobandit updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index be3e9459aaf..438443b9bf8 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1821,3 +1821,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. metal) to contain radiation.' - rscadd: New portable nuke, self-destruct terminal, syndie screwdriver sprites by WJohnston. +2015-09-19: + Xhuis: + - rscadd: Shadowlings are now able to sacrifice a thrall to extend the shuttle timer + by 15 minutes. This will not stack. + - bugfix: Additional abilities granted by Collective Mind will now properly have + icons. + - bugfix: Shadowlings now have their antagonism removed if turned into a silicon. + - tweak: The order of abilities unlocked by Collective Mind has been changed. It + now starts with Sonic Screech. + - tweak: Veil now destroys glowshrooms in a much larger radius than before. diff --git a/html/changelogs/Xhuis-SlingStuff.yml b/html/changelogs/Xhuis-SlingStuff.yml deleted file mode 100644 index f40d2aa7002..00000000000 --- a/html/changelogs/Xhuis-SlingStuff.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: Xhuis -delete-after: True - -changes: - - rscadd: "Shadowlings are now able to sacrifice a thrall to extend the shuttle timer by 15 minutes. This will not stack." - - bugfix: "Additional abilities granted by Collective Mind will now properly have icons." - - bugfix: "Shadowlings now have their antagonism removed if turned into a silicon." - - tweak: "The order of abilities unlocked by Collective Mind has been changed. It now starts with Sonic Screech." - - tweak: "Veil now destroys glowshrooms in a much larger radius than before." \ No newline at end of file From 4a1c7c04815a2f67c8ce5eab4eb911e93d848f2a Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 23:10:51 -0400 Subject: [PATCH 43/74] Two small changes --- code/modules/awaymissions/gateway.dm | 6 +++--- .../mob/living/simple_animal/revenant/revenant_abilities.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index b8ebdf1f15d..af2f1680f6c 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -1,4 +1,4 @@ -var/obj/machinery/gateway/the_gateway = null +var/obj/machinery/gateway/centerstation/the_gateway = null /obj/machinery/gateway name = "gateway" @@ -11,13 +11,13 @@ var/obj/machinery/gateway/the_gateway = null var/active = 0 -/obj/machinery/gateway/New() +/obj/machinery/gateway/centerstation/New() ..() if(!the_gateway) the_gateway = src -/obj/machinery/gateway/Destroy() +/obj/machinery/gateway/centerstation/Destroy() if(the_gateway == src) the_gateway = null ..() diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm index e577c84c52f..8cf36de2cc8 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm @@ -156,7 +156,7 @@ bot.open = 1 bot.Emag(null) for(var/obj/machinery/mach in T.contents) - if(istype(mach, /obj/machinery/dominator)) //Doesn't work on dominators, to prevent kekkery + if(istype(mach, /obj/machinery/dominator) || istype(mach, /obj/machinery/power/apc) //Doesn't work on dominators and APCs, to prevent kekkery continue if(prob(10)) mach.emag_act(null) From a4d99a528d5b5888e9bd01d63cdb7fd2b5b6c4fd Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 23:25:52 -0400 Subject: [PATCH 44/74] Adds a missing parentheses --- .../mob/living/simple_animal/revenant/revenant_abilities.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm index 8cf36de2cc8..a8d198286b8 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm @@ -156,7 +156,7 @@ bot.open = 1 bot.Emag(null) for(var/obj/machinery/mach in T.contents) - if(istype(mach, /obj/machinery/dominator) || istype(mach, /obj/machinery/power/apc) //Doesn't work on dominators and APCs, to prevent kekkery + if(istype(mach, /obj/machinery/dominator) || istype(mach, /obj/machinery/power/apc)) //Doesn't work on dominators and APCs, to prevent kekkery continue if(prob(10)) mach.emag_act(null) From 644124923a05e22a5e3abc6afd2408cc29e17e9d Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sat, 19 Sep 2015 23:03:19 -0500 Subject: [PATCH 45/74] Offer Control --- code/datums/datumvars.dm | 75 ++++++++++++++++++++++++++++++ html/changelogs/Kor-PR-Control.yml | 36 ++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 html/changelogs/Kor-PR-Control.yml diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 45f8ddab2f6..3f78a27fdf9 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -252,6 +252,7 @@ body += "" body += "" body += "" + body += "" if(iscarbon(D)) body += "" body += "" @@ -592,6 +593,49 @@ body if(usr.client) usr.client.cmd_assume_direct_control(M) + else if(href_list["offer_control"]) + if(!check_rights(0)) return + + var/mob/M = locate(href_list["offer_control"]) + if(!istype(M)) + usr << "This can only be used on instances of type /mob" + return + M << "Control of your mob has been offered to dead players." + log_admin("[key_name(usr)] has offered control of [M.real_name] to ghosts.") + message_admins("[key_name(usr)] has offered control of [M.real_name] to ghosts") + var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET) + + shuffle(candidates) + + var/time_passed = world.time + var/list/consenting_candidates = list() + + for(var/candidate in candidates) + + spawn(0) + switch(alert(candidate, "Would you like to play as [M.real_name]? Please choose quickly!","Confirmation","Yes","No")) + if("Yes") + if((world.time-time_passed)>=100 || !src) + return + consenting_candidates += candidate + + sleep(100) + + if(!M) + return + + if(consenting_candidates.len) + var/client/C = null + C = pick(consenting_candidates) + M << "Your mob has been taken over by a ghost!" + usr << "[C.key] has taken over [M.real_name]." + message_admins("[key_name(C)] has taken control of [M.real_name]") + M.ghostize() + M.key = C.key + else + M << "There were no ghosts willing to take control." + message_admins("No ghosts were willing to take control of [M.real_name]") + else if(href_list["delall"]) if(!check_rights(R_DEBUG|R_SERVER)) return @@ -819,6 +863,37 @@ body else if(href_list["purrbation"]) if(!check_rights(R_SPAWN)) return + var/mob/living/carbon/human/H = locate(href_list["purrbation"]) + if(!istype(H)) + usr << "This can only be done to instances of type /mob/living/carbon/human" + return + + if(!H) + usr << "Mob doesn't exist anymore" + return + + if(H.dna && H.dna.species.id == "human") + if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") + usr << "Put [H] on purrbation." + H << "You suddenly feel valid." + log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") + message_admins("[key_name(usr)] has put [key_name(H)] on purrbation.") + H.dna.features["tail_human"] = "Cat" + H.dna.features["ears"] = "Cat" + else + usr << "Removed [H] from purrbation." + H << "You suddenly don't feel valid anymore." + log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") + message_admins("[key_name(usr)] has removed [key_name(H)] from purrbation.") + H.dna.features["tail_human"] = "None" + H.dna.features["ears"] = "None" + H.regenerate_icons() + return + + usr << "You can only put humans on purrbation." + else if(href_list["purrbation"]) + if(!check_rights(R_SPAWN)) return + var/mob/living/carbon/human/H = locate(href_list["purrbation"]) if(!istype(H)) usr << "This can only be done to instances of type /mob/living/carbon/human" diff --git a/html/changelogs/Kor-PR-Control.yml b/html/changelogs/Kor-PR-Control.yml new file mode 100644 index 00000000000..45374cceba6 --- /dev/null +++ b/html/changelogs/Kor-PR-Control.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# spellcheck (typo fixes) +# experiment +# tgs (TG-ported fixes?) +################################# + +# Your name. +author: Kor + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "A new admin command, "Offer Control to Ghosts," can be found in the view variables menu. It will randomly select a willing candidate from among dead players, providing a fair method of replacing antagonists." From 947787effdd239f92daea496d8ea67fb5c8004b0 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sat, 19 Sep 2015 23:10:09 -0500 Subject: [PATCH 46/74] Strange --- code/datums/datumvars.dm | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 3f78a27fdf9..b17f4f6664e 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -863,37 +863,6 @@ body else if(href_list["purrbation"]) if(!check_rights(R_SPAWN)) return - var/mob/living/carbon/human/H = locate(href_list["purrbation"]) - if(!istype(H)) - usr << "This can only be done to instances of type /mob/living/carbon/human" - return - - if(!H) - usr << "Mob doesn't exist anymore" - return - - if(H.dna && H.dna.species.id == "human") - if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") - usr << "Put [H] on purrbation." - H << "You suddenly feel valid." - log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") - message_admins("[key_name(usr)] has put [key_name(H)] on purrbation.") - H.dna.features["tail_human"] = "Cat" - H.dna.features["ears"] = "Cat" - else - usr << "Removed [H] from purrbation." - H << "You suddenly don't feel valid anymore." - log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") - message_admins("[key_name(usr)] has removed [key_name(H)] from purrbation.") - H.dna.features["tail_human"] = "None" - H.dna.features["ears"] = "None" - H.regenerate_icons() - return - - usr << "You can only put humans on purrbation." - else if(href_list["purrbation"]) - if(!check_rights(R_SPAWN)) return - var/mob/living/carbon/human/H = locate(href_list["purrbation"]) if(!istype(H)) usr << "This can only be done to instances of type /mob/living/carbon/human" From f5650de5c08f9d714cca666dac9d6a36f24595b9 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sat, 19 Sep 2015 23:17:28 -0500 Subject: [PATCH 47/74] Thanks Jordie --- html/changelogs/Kor-PR-Control.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelogs/Kor-PR-Control.yml b/html/changelogs/Kor-PR-Control.yml index 45374cceba6..3eb4a50f1af 100644 --- a/html/changelogs/Kor-PR-Control.yml +++ b/html/changelogs/Kor-PR-Control.yml @@ -33,4 +33,4 @@ delete-after: True # Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. # Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. changes: - - rscadd: "A new admin command, "Offer Control to Ghosts," can be found in the view variables menu. It will randomly select a willing candidate from among dead players, providing a fair method of replacing antagonists." + - rscadd: "A new admin command, Offer Control to Ghosts, can be found in the view variables menu. It will randomly select a willing candidate from among dead players, providing a fair method of replacing antagonists." From cd48a0cfed2659a89c1df8fee614715119971162 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sun, 20 Sep 2015 13:27:52 +0300 Subject: [PATCH 48/74] Adds a do_after-pause for emptying a container. --- code/game/turfs/turf.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 2ecee6da10f..e34c0591408 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -196,6 +196,10 @@ flags |= NOJAUNT /turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) + if(src_object.contents.len) + usr << "You start dumping out the contents..." + if(!do_after(usr,20,target=src)) + return 0 for(var/obj/item/I in src_object) src_object.remove_from_storage(I, src) //No check needed, put everything inside return 1 From ce919844640d352078455bf27d7cbd9b764ac13a Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 20 Sep 2015 16:39:23 +0200 Subject: [PATCH 49/74] Fixes alien infestation. --- code/controllers/subsystem/events.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index eb5b6b5db80..e843e61a035 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -83,6 +83,8 @@ var/datum/subsystem/events/SSevent for(var/datum/round_event_control/E in control) if(E.occurrences >= E.max_occurrences) continue if(E.earliest_start >= world.time) continue + if(ticker.mode.config_tag in E.gamemode_blacklist) continue + if(E.gamemode_whitelist && !(ticker.mode.config_tag in E.gamemode_whitelist)) continue if(E.holidayID) if(!holidays || !holidays[E.holidayID]) continue sum_of_weights -= E.weight From f3f080693a57306f042c3179ce5d1b1d8e096a8e Mon Sep 17 00:00:00 2001 From: Maarten van den Berg Date: Sun, 20 Sep 2015 16:52:39 +0200 Subject: [PATCH 50/74] Adds zone_override var to process_fire and friends, updates clumsy and gun suicide --- code/modules/projectiles/firing.dm | 13 ++++++++----- code/modules/projectiles/gun.dm | 12 +++++------- code/modules/projectiles/guns/projectile.dm | 4 ++-- .../modules/projectiles/guns/projectile/revolver.dm | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index 1890309581f..80afb0f065c 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -1,9 +1,9 @@ -/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet) +/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "") distro += variance for (var/i = max(1, pellets), i > 0, i--) var/curloc = user.loc var/targloc = get_turf(target) - ready_proj(target, user, quiet) + ready_proj(target, user, quiet, zone_override) if(distro) targloc = spread(targloc, curloc, distro) if(!throw_proj(targloc, user, params)) @@ -15,12 +15,15 @@ update_icon() return 1 -/obj/item/ammo_casing/proc/ready_proj(atom/target as mob|obj|turf, mob/living/user, quiet) +/obj/item/ammo_casing/proc/ready_proj(atom/target as mob|obj|turf, mob/living/user, quiet, zone_override = "") if (!BB) return BB.original = target BB.firer = user - BB.def_zone = user.zone_sel.selecting + if (zone_override) + BB.def_zone = zone_override + else + BB.def_zone = user.zone_sel.selecting BB.suppressed = quiet if(reagents && BB.reagents) @@ -33,7 +36,7 @@ return 0 if(targloc == curloc) if(BB.original == user) //if we target ourselves we go straight to bullet_act() - user.bullet_act(BB) + user.bullet_act(BB, BB.def_zone) qdel(BB) return 1 BB.loc = get_turf(user) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8db505cfcc3..e9c844f998a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -133,10 +133,8 @@ var/mob/living/M = user if (M.disabilities & CLUMSY && prob(40)) user << "You shoot yourself in the foot with \the [src]!" - var/oldzone = user.zone_sel.selecting - user.zone_sel.selecting = pick("r_leg", "l_leg") - process_fire(user,user,0,params) - user.zone_sel.selecting = oldzone + var/shot_leg = pick("l_leg", "r_leg") + process_fire(user,user,0,params, zone_override = shot_leg) M.drop_item() return @@ -180,7 +178,7 @@ return 0 -/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params) +/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override) add_fingerprint(user) if(semicd) @@ -198,7 +196,7 @@ if( i>1 && !(src in get_both_hands(user))) //for burst firing break if(chambered) - if(!chambered.fire(target, user, params, , suppressed)) + if(!chambered.fire(target, user, params, , suppressed, zone_override)) shoot_with_empty_chamber(user) break else @@ -214,7 +212,7 @@ sleep(fire_delay) else if(chambered) - if(!chambered.fire(target, user, params, , suppressed)) + if(!chambered.fire(target, user, params, , suppressed, zone_override)) shoot_with_empty_chamber(user) return else diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 3de838042f6..028cf8f7f68 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -139,7 +139,7 @@ user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.") sleep(25) if(user.l_hand == src || user.r_hand == src) - process_fire(user, user, 0) + process_fire(user, user, 0, zone_override = "head") user.visible_message("[user] blows \his brains out with the [src.name]!") return(BRUTELOSS) else @@ -157,4 +157,4 @@ icon_state = "suppressor" w_class = 2 var/oldsound = null - var/initial_w_class = null \ No newline at end of file + var/initial_w_class = null diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 86df409121b..dc685593d08 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -74,7 +74,7 @@ options["The Peacemaker"] = "detective_peacemaker" options["Cancel"] = null -/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params) +/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "") if(magazine.caliber != initial(magazine.caliber)) if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 playsound(user, fire_sound, 50, 1) From 979ae3ade63b35477088691d9090c6faaecc5e3e Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 12:01:50 -0400 Subject: [PATCH 51/74] Cleans up heart eating code --- code/modules/mob/living/simple_animal/slaughter/slaughter.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm index b85dcd3e8d4..e616aa4fb42 100644 --- a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm +++ b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm @@ -96,11 +96,11 @@ return user.visible_message("[user]'s eyes flare a deep crimson!", \ "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") - for(var/obj/item/organ/internal/O in user.internal_organs) + /*for(var/obj/item/organ/internal/O in user.internal_organs) if(istype(O, /obj/item/organ/internal/heart)) O.Remove(user, 1) O.loc = get_turf(user) - qdel(O) + qdel(O)*/ user.drop_item() src.Insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E From abf331accbd50b96ef3a4909390af1fff1657a73 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Sun, 20 Sep 2015 16:03:21 +0000 Subject: [PATCH 52/74] Automatic changelog compile --- html/changelog.html | 14 ++++++++++++++ html/changelogs/.all_changelog.yml | 13 +++++++++++++ html/changelogs/Xhuis-CultChanges.yml | 13 ------------- 3 files changed, 27 insertions(+), 13 deletions(-) delete mode 100644 html/changelogs/Xhuis-CultChanges.yml diff --git a/html/changelog.html b/html/changelog.html index d96ad37a24b..658fc52d737 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,20 @@ -->
      +

      20 September 2015

      +

      Xhuis updated:

      +
        +
      • Rites have been renamed to their old runes, which reflect their functionality.
      • +
      • Examining a talisman no longer opens the paper GUI.
      • +
      • Armor talismans have been re-added.
      • +
      • EMP talismans now have the same range as their rune counterpart.
      • +
      • Some talismans now cost health to use, costing more or less depending on their effect.
      • +
      • Scribing runes now deals 0.1 brute damage instead of 1.
      • +
      • Bind Talisman runes no longer deal 5 brute damage when invoking.
      • +
      • Rune shapes and colors are now identical to their old versions.
      • +
      • Conversion runes can no longer be used by yourself, and require a static 2 cultists.
      • +
      +

      19 September 2015

      Xhuis updated:

        diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 438443b9bf8..08977054b3a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1831,3 +1831,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: The order of abilities unlocked by Collective Mind has been changed. It now starts with Sonic Screech. - tweak: Veil now destroys glowshrooms in a much larger radius than before. +2015-09-20: + Xhuis: + - tweak: Rites have been renamed to their old runes, which reflect their functionality. + - tweak: Examining a talisman no longer opens the paper GUI. + - tweak: Armor talismans have been re-added. + - tweak: EMP talismans now have the same range as their rune counterpart. + - tweak: Some talismans now cost health to use, costing more or less depending on + their effect. + - tweak: Scribing runes now deals 0.1 brute damage instead of 1. + - tweak: Bind Talisman runes no longer deal 5 brute damage when invoking. + - tweak: Rune shapes and colors are now identical to their old versions. + - tweak: Conversion runes can no longer be used by yourself, and require a static + 2 cultists. diff --git a/html/changelogs/Xhuis-CultChanges.yml b/html/changelogs/Xhuis-CultChanges.yml deleted file mode 100644 index a62a9788517..00000000000 --- a/html/changelogs/Xhuis-CultChanges.yml +++ /dev/null @@ -1,13 +0,0 @@ -author: Xhuis -delete-after: True - -changes: - - tweak: "Rites have been renamed to their old runes, which reflect their functionality." - - tweak: "Examining a talisman no longer opens the paper GUI." - - tweak: "Armor talismans have been re-added." - - tweak: "EMP talismans now have the same range as their rune counterpart." - - tweak: "Some talismans now cost health to use, costing more or less depending on their effect." - - tweak: "Scribing runes now deals 0.1 brute damage instead of 1." - - tweak: "Bind Talisman runes no longer deal 5 brute damage when invoking." - - tweak: "Rune shapes and colors are now identical to their old versions." - - tweak: "Conversion runes can no longer be used by yourself, and require a static 2 cultists." \ No newline at end of file From a8abb5904b209c5fab3c93f30fad1dd2c12fb17e Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 14:01:12 -0400 Subject: [PATCH 53/74] Sacrifice rune hotfix --- code/game/gamemodes/cult/cult.dm | 8 ++++---- code/game/gamemodes/cult/runes.dm | 17 ++++++++--------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 9e21d6db7ed..7da35de3666 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -53,9 +53,9 @@ antag_flag = BE_CULTIST restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") protected_jobs = list() - required_players = 20 - required_enemies = 6 - recommended_enemies = 6 + required_players = 1 + required_enemies = 1 + recommended_enemies = 1 enemy_minimum_age = 14 @@ -260,7 +260,7 @@ if(!check_cult_victory()) feedback_set_details("round_end_result","win - cult win") feedback_set("round_end_result",acolytes_survived) - world << "The cult wins! It has succeeded in serving its dark master!" + world << "The cult wins! It has succeeded in serving its dark master!" else feedback_set_details("round_end_result","loss - staff stopped the cult") feedback_set("round_end_result",acolytes_survived) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index ff8f71c735a..83b5640f497 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -324,7 +324,7 @@ var/list/teleport_other_runes = list() cultist_name = "Sacrifice" cultist_desc = "Sacrifices a crew member to the Geometer. May place them into a soul shard if their spirit remains in their body." icon_state = "3" - invocation = "Barhah hra zar'garis!" + invocation = "Ih wah'kd in teh'tin!" color = rgb(255, 255, 255) grammar = "veri nahlizet certum" var/rune_in_use = 0 @@ -376,14 +376,7 @@ var/list/teleport_other_runes = list() /obj/effect/rune/sacrifice/proc/sac(mob/living/T) var/sacrifice_fulfilled - if(T) - if(T.mind) - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) - if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added - qdel(stone) - if(!T) - rune_in_use = 0 - return + if(T && T.mind) if(istype(T, /mob/living/simple_animal/pet/dog/corgi)) for(var/mob/living/carbon/C in orange(1,src)) if(iscultist(C)) @@ -393,6 +386,12 @@ var/list/teleport_other_runes = list() sacrificed.Add(T.mind) if(is_sacrifice_target(T.mind)) sacrifice_fulfilled = 1 + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added + qdel(stone) + if(!T) + rune_in_use = 0 + return if(isrobot(T)) playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) T.dust() //To prevent the MMI from remaining From 4b814a7d1c7df75279e41f6e61f5a4f998b99bba Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 14:02:12 -0400 Subject: [PATCH 54/74] Removes some debug code --- code/game/gamemodes/cult/cult.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 7da35de3666..eb56a644fb6 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -53,9 +53,9 @@ antag_flag = BE_CULTIST restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel") protected_jobs = list() - required_players = 1 - required_enemies = 1 - recommended_enemies = 1 + required_players = 20 + required_enemies = 6 + recommended_enemies = 6 enemy_minimum_age = 14 From e1317c3f80e949a8f0b82a9c6a374d885745b126 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 14:05:54 -0400 Subject: [PATCH 55/74] Further improves the code --- code/game/gamemodes/cult/runes.dm | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 83b5640f497..0e8d81f3e3c 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -376,28 +376,20 @@ var/list/teleport_other_runes = list() /obj/effect/rune/sacrifice/proc/sac(mob/living/T) var/sacrifice_fulfilled - if(T && T.mind) + if(T) if(istype(T, /mob/living/simple_animal/pet/dog/corgi)) for(var/mob/living/carbon/C in orange(1,src)) if(iscultist(C)) C << "Even dark gods from another plane have standards, sicko." if(C.reagents) C.reagents.add_reagent("hell_water", 2) - sacrificed.Add(T.mind) - if(is_sacrifice_target(T.mind)) - sacrifice_fulfilled = 1 - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) - if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added - qdel(stone) - if(!T) - rune_in_use = 0 - return - if(isrobot(T)) - playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) - T.dust() //To prevent the MMI from remaining - else - playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) - T.gib() + if(T.mind) + sacrificed.Add(T.mind) + if(is_sacrifice_target(T.mind)) + sacrifice_fulfilled = 1 + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added + qdel(stone) for(var/mob/living/M in orange(1,src)) if(iscultist(M)) if(sacrifice_fulfilled) @@ -407,6 +399,12 @@ var/list/teleport_other_runes = list() M << "\"I accept this sacrifice.\"" else M << "\"I accept this meager sacrifice.\"" + if(isrobot(T)) + playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) + T.dust() //To prevent the MMI from remaining + else + playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) + T.gib() rune_in_use = 0 From 75ad3aed687732d3c30a5bf26bf8c287f52eaef6 Mon Sep 17 00:00:00 2001 From: confirmed normie Date: Sun, 20 Sep 2015 14:21:57 -0400 Subject: [PATCH 56/74] Revert "Sacrifice rune hotfix" --- code/game/gamemodes/cult/cult.dm | 2 +- code/game/gamemodes/cult/runes.dm | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index eb56a644fb6..9e21d6db7ed 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -260,7 +260,7 @@ if(!check_cult_victory()) feedback_set_details("round_end_result","win - cult win") feedback_set("round_end_result",acolytes_survived) - world << "The cult wins! It has succeeded in serving its dark master!" + world << "The cult wins! It has succeeded in serving its dark master!" else feedback_set_details("round_end_result","loss - staff stopped the cult") feedback_set("round_end_result",acolytes_survived) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 0e8d81f3e3c..ff8f71c735a 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -324,7 +324,7 @@ var/list/teleport_other_runes = list() cultist_name = "Sacrifice" cultist_desc = "Sacrifices a crew member to the Geometer. May place them into a soul shard if their spirit remains in their body." icon_state = "3" - invocation = "Ih wah'kd in teh'tin!" + invocation = "Barhah hra zar'garis!" color = rgb(255, 255, 255) grammar = "veri nahlizet certum" var/rune_in_use = 0 @@ -377,19 +377,28 @@ var/list/teleport_other_runes = list() /obj/effect/rune/sacrifice/proc/sac(mob/living/T) var/sacrifice_fulfilled if(T) + if(T.mind) + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added + qdel(stone) + if(!T) + rune_in_use = 0 + return if(istype(T, /mob/living/simple_animal/pet/dog/corgi)) for(var/mob/living/carbon/C in orange(1,src)) if(iscultist(C)) C << "Even dark gods from another plane have standards, sicko." if(C.reagents) C.reagents.add_reagent("hell_water", 2) - if(T.mind) - sacrificed.Add(T.mind) - if(is_sacrifice_target(T.mind)) - sacrifice_fulfilled = 1 - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) - if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added - qdel(stone) + sacrificed.Add(T.mind) + if(is_sacrifice_target(T.mind)) + sacrifice_fulfilled = 1 + if(isrobot(T)) + playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) + T.dust() //To prevent the MMI from remaining + else + playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) + T.gib() for(var/mob/living/M in orange(1,src)) if(iscultist(M)) if(sacrifice_fulfilled) @@ -399,12 +408,6 @@ var/list/teleport_other_runes = list() M << "\"I accept this sacrifice.\"" else M << "\"I accept this meager sacrifice.\"" - if(isrobot(T)) - playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) - T.dust() //To prevent the MMI from remaining - else - playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) - T.gib() rune_in_use = 0 From a65eb2e2f13611b0c4ea98679c6c615ff5f4261b Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 14:44:43 -0400 Subject: [PATCH 57/74] IT WORKED 2: ELECTRIC BOOGALOO --- code/game/gamemodes/cult/cult.dm | 2 +- code/game/gamemodes/cult/runes.dm | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 9e21d6db7ed..eb56a644fb6 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -260,7 +260,7 @@ if(!check_cult_victory()) feedback_set_details("round_end_result","win - cult win") feedback_set("round_end_result",acolytes_survived) - world << "The cult wins! It has succeeded in serving its dark master!" + world << "The cult wins! It has succeeded in serving its dark master!" else feedback_set_details("round_end_result","loss - staff stopped the cult") feedback_set("round_end_result",acolytes_survived) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index ff8f71c735a..ffac44253af 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -324,7 +324,7 @@ var/list/teleport_other_runes = list() cultist_name = "Sacrifice" cultist_desc = "Sacrifices a crew member to the Geometer. May place them into a soul shard if their spirit remains in their body." icon_state = "3" - invocation = "Barhah hra zar'garis!" + invocation = "Ih wah'kd in teh'tin!" color = rgb(255, 255, 255) grammar = "veri nahlizet certum" var/rune_in_use = 0 @@ -377,13 +377,6 @@ var/list/teleport_other_runes = list() /obj/effect/rune/sacrifice/proc/sac(mob/living/T) var/sacrifice_fulfilled if(T) - if(T.mind) - var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) - if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added - qdel(stone) - if(!T) - rune_in_use = 0 - return if(istype(T, /mob/living/simple_animal/pet/dog/corgi)) for(var/mob/living/carbon/C in orange(1,src)) if(iscultist(C)) @@ -393,12 +386,6 @@ var/list/teleport_other_runes = list() sacrificed.Add(T.mind) if(is_sacrifice_target(T.mind)) sacrifice_fulfilled = 1 - if(isrobot(T)) - playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) - T.dust() //To prevent the MMI from remaining - else - playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) - T.gib() for(var/mob/living/M in orange(1,src)) if(iscultist(M)) if(sacrifice_fulfilled) @@ -408,6 +395,19 @@ var/list/teleport_other_runes = list() M << "\"I accept this sacrifice.\"" else M << "\"I accept this meager sacrifice.\"" + if(T.mind) + var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src)) + if(!stone.transfer_soul("FORCE", T, usr)) //If it cannot be added + qdel(stone) + if(!T) + rune_in_use = 0 + return + if(isrobot(T)) + playsound(T, 'sound/magic/Disable_Tech.ogg', 100, 1) + T.dust() //To prevent the MMI from remaining + else + playsound(T, 'sound/magic/Disintegrate.ogg', 100, 1) + T.gib() rune_in_use = 0 From 5f4107575b4bf48ddad62c24cfba13437f12e8d9 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sun, 20 Sep 2015 14:46:02 -0400 Subject: [PATCH 58/74] Removes debug code --- code/game/gamemodes/cult/runes.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index ffac44253af..d9ce858c153 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -383,9 +383,10 @@ var/list/teleport_other_runes = list() C << "Even dark gods from another plane have standards, sicko." if(C.reagents) C.reagents.add_reagent("hell_water", 2) - sacrificed.Add(T.mind) - if(is_sacrifice_target(T.mind)) - sacrifice_fulfilled = 1 + if(T.mind) + sacrificed.Add(T.mind) + if(is_sacrifice_target(T.mind)) + sacrifice_fulfilled = 1 for(var/mob/living/M in orange(1,src)) if(iscultist(M)) if(sacrifice_fulfilled) From 2f9a37d6244113d7a95c933a9a133e32aad5f245 Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Mon, 21 Sep 2015 10:21:10 +0800 Subject: [PATCH 59/74] Changes --- .../projectiles/ammunition/magazines.dm | 2 +- .../projectiles/guns/projectile/automatic.dm | 32 ------------------ .../research/designs/weapon_designs.dm | 10 ------ icons/obj/ammo.dmi | Bin 18031 -> 18031 bytes 4 files changed, 1 insertion(+), 43 deletions(-) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index db38846ba80..992de0064ba 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -173,7 +173,7 @@ icon_state = "smg9mm-30" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" - max_ammo = 30 + max_ammo = 42 /obj/item/ammo_box/magazine/smgm9mm/ap name = "SMG magazine (Armour Piercing 9mm)" diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index cc7380659ce..9dc38fe5ba6 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -127,38 +127,6 @@ icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" return -/obj/item/weapon/gun/projectile/automatic/wt550/afterattack() - ..() - empty_alarm() - return - -/obj/item/weapon/gun/projectile/automatic/wt550hacked - name = "hacked auto rifle" - desc = "A illegally hacked and modified WT-550 auto rifle, using a illegal burst fire moduel. Uses 9mm rounds." - icon_state = "wt550hax" - item_state = "arg" - mag_type = /obj/item/ammo_box/magazine/wt550m9 - fire_delay = 2 - can_suppress = 0 - burst_size = 2 - pin = null - -/obj/item/weapon/gun/projectile/automatic/wt550hacked/ui_action_click() - return - -/obj/item/weapon/gun/projectile/automatic/wt550hacked/update_icon() - ..() - icon_state = "wt550hax[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" - return - -/obj/item/weapon/gun/projectile/automatic/wt550hacked/afterattack() - ..() - empty_alarm() - return - -/obj/item/weapon/gun/projectile/automatic/wt550hacked/unrestricted - pin = /obj/item/device/firing_pin - /obj/item/weapon/gun/projectile/automatic/mini_uzi name = "\improper 'Type U3' Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 43df41fd1c9..8da1da00c7c 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -135,16 +135,6 @@ build_path = /obj/item/weapon/gun/projectile/automatic/proto category = list("Weapons") -/datum/design/illegalwt550 - name = "Hacked WT-550" - desc = "A hacked varient of the WT-550. Has a illegally altered burst fire module attached." - id = "smg" - req_tech = list("combat" = 3, "materials" = 2, "syndicate" = 3) - build_type = PROTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 1000) - build_path = /obj/item/weapon/gun/projectile/automatic/wt550hacked - category = list("Weapons") - /datum/design/xray name = "Xray Laser Gun" desc = "Not quite as menacing as it sounds" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index e0acb281783ca63ae8986928b86e2d7adb513409..c71e05f382a9de0018ae35f677cbe3b340185424 100644 GIT binary patch delta 669 zcmV;O0%HB|i~;YA0gyU>&2HL26ouFLDMrb*j>f}`$6m0hh+3p3UE~P{7>p%uK(>>n zefloIjf9%c=k9{^ahP-NPwuVyeE((jsFn|_>@{|Mdwf<4W$$!0`_XQPy;`Wb$!7c5 zHv8fHp&!B!)k59Oo&WxAnd_Tuwr#s!EmV=sc3qHo{`(p%C}=2uIH#bcprc?(L7xP> z%{Iw2{XQNJ5X%qkYfQ3hCb^y>d4QUS38MY*^2}uakW6^PR5ueOTPE2~mQ0Vtg=3-v zd#6mn*e{=$WgYNm9f-<0kh*oCfYyOtunx49(;-NX+RFL1s>e2vT!8M37tkR@5iZhi5LW*Gp52a2(vvWf=`Avn>2O9eU6hf;j<6x@2iw7J(q=q_(r$w|FeH00c>7z9qTidBsn!le6 zNj_b~(DbJmIt;QGy!>iwk$j%c=|Y-xzl~(Njw6{)_CkXHz9WepVMEwY+Kv>a8Q|y+ zQ%AQJ8AztJ$UqW3bLl*55#p&98Q9_Yq4OfURrik%OSODhWxoL&qZW{zU>>Hk!~&~B DJmgE~ delta 669 zcmV;O0%HB|i~;YA0gyU>L2lbH5JlJ4DTriS1r$w+(!!g7BAX$~xfBIuMn0Aa(1&1zHDc!8%Y@PKOARaymqimD3@Dw44qR z_PKcntAB%6& z3F|&h61H08>pjHSXtf$8Wwi)tC@n&oQ;U#B*CL<^YLWGS@eMRPp$g5^Hb!^WQ9v#$E8GA%z%x zX~^{kUmCJ*RSW_vSw%LoiY#Om*~cofj#Z#+x7~}_w3Za6S%U&Pb036ive`Bs!cVnO z#iy%3^-#Qj{~z%k6yHr1cXzHt-}5sFy0kRlW_@Wuk@(Vpdh?|LrRz%rx`1_^FU{Xq zh9sZ9#L)Do7&;8H6TJLtYmt1O&gnv$biIva`W{Czo$Q4KU*D0$j<6x@Cv8Ux(+se6 zhpDYwiwq>wT4W%Jp1E|MwFvQ4iwtaW{Lp!k-KzT!$E8|6tg_$tJr<2Guu4L+!~&~B D#W+Vt From 422f7ecfe517516902a38b4154295f91857c97e0 Mon Sep 17 00:00:00 2001 From: Steelpoint Date: Mon, 21 Sep 2015 10:25:27 +0800 Subject: [PATCH 60/74] Fix --- code/modules/projectiles/ammunition/magazines.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 992de0064ba..032da28f989 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -170,7 +170,7 @@ /obj/item/ammo_box/magazine/smgm9mm name = "SMG magazine (9mm)" - icon_state = "smg9mm-30" + icon_state = "smg9mm-42" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" max_ammo = 42 From 12bc0caa3ae411a7d9a5adeec8c18c2896864667 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 09:45:28 -0500 Subject: [PATCH 61/74] Updates pollCandidates --- code/__HELPERS/game.dm | 9 +++++---- code/datums/datumvars.dm | 42 ++++++++++++++-------------------------- 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 87a605ceb25..3e88a48c9e9 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -380,9 +380,10 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0) +/proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300) var/list/mob/dead/observer/candidates = list() var/time_passed = world.time + var/seconds = poll_time/10 if (!Question) Question = "Would you like to be a special role?" @@ -400,10 +401,10 @@ continue spawn(0) G << 'sound/misc/notice2.ogg' //Alerting them to their consideration - switch(alert(G,Question,"Please answer in 30 seconds!","Yes","No")) + switch(alert(G,Question,"Please answer in [seconds] seconds!","Yes","No")) if("Yes") G << "Choice registered: Yes." - if((world.time-time_passed)>300)//If more than 30 game seconds passed. + if((world.time-time_passed)>poll_time)//If more than 30 game seconds passed. G << "Sorry, you were too late for the consideration!" G << 'sound/machines/buzz-sigh.ogg' return @@ -413,7 +414,7 @@ return else return - sleep(300) + sleep(poll_time) //Check all our candidates, to make sure they didn't log off during the 30 second wait period. for(var/mob/dead/observer/G in candidates) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index b17f4f6664e..e5fa2c0fbd5 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -603,35 +603,21 @@ body M << "Control of your mob has been offered to dead players." log_admin("[key_name(usr)] has offered control of [M.real_name] to ghosts.") message_admins("[key_name(usr)] has offered control of [M.real_name] to ghosts") - var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET) + var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) + var/mob/dead/observer/theghost = null - shuffle(candidates) - - var/time_passed = world.time - var/list/consenting_candidates = list() - - for(var/candidate in candidates) - - spawn(0) - switch(alert(candidate, "Would you like to play as [M.real_name]? Please choose quickly!","Confirmation","Yes","No")) - if("Yes") - if((world.time-time_passed)>=100 || !src) - return - consenting_candidates += candidate - - sleep(100) - - if(!M) - return - - if(consenting_candidates.len) - var/client/C = null - C = pick(consenting_candidates) - M << "Your mob has been taken over by a ghost!" - usr << "[C.key] has taken over [M.real_name]." - message_admins("[key_name(C)] has taken control of [M.real_name]") - M.ghostize() - M.key = C.key + if(candidates.len) + for(var/mob/j in candidates) + if(!j || !j.client) + candidates.Remove(j) + continue + theghost = j + M << "Your mob has been taken over by a ghost!" + usr << "[theghost.key] has taken over [M.real_name]." + message_admins("[key_name(theghost)] has taken control of [M.real_name]") + M.ghostize() + M.key = theghost.key + break else M << "There were no ghosts willing to take control." message_admins("No ghosts were willing to take control of [M.real_name]") From b8b28c07e25db1007ba2b070564e30c8198800f5 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 09:58:15 -0500 Subject: [PATCH 62/74] poll time --- code/__HELPERS/game.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 3e88a48c9e9..7de8aa234f4 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -383,7 +383,6 @@ /proc/pollCandidates(var/Question, var/jobbanType, var/datum/game_mode/gametypeCheck, var/be_special_flag = 0, var/poll_time = 300) var/list/mob/dead/observer/candidates = list() var/time_passed = world.time - var/seconds = poll_time/10 if (!Question) Question = "Would you like to be a special role?" @@ -401,7 +400,7 @@ continue spawn(0) G << 'sound/misc/notice2.ogg' //Alerting them to their consideration - switch(alert(G,Question,"Please answer in [seconds] seconds!","Yes","No")) + switch(alert(G,Question,"Please answer in [poll_time/10] seconds!","Yes","No")) if("Yes") G << "Choice registered: Yes." if((world.time-time_passed)>poll_time)//If more than 30 game seconds passed. @@ -433,4 +432,4 @@ ready_dna(new_character) new_character.key = G_found.key - return new_character \ No newline at end of file + return new_character From d2ad29ad983e8c5bfae772906e21e3cb81216c43 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 10:01:49 -0500 Subject: [PATCH 63/74] Removes useless code --- code/datums/datumvars.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index e5fa2c0fbd5..2ca7d6c2a79 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -607,17 +607,12 @@ body var/mob/dead/observer/theghost = null if(candidates.len) - for(var/mob/j in candidates) - if(!j || !j.client) - candidates.Remove(j) - continue - theghost = j + theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" usr << "[theghost.key] has taken over [M.real_name]." message_admins("[key_name(theghost)] has taken control of [M.real_name]") M.ghostize() M.key = theghost.key - break else M << "There were no ghosts willing to take control." message_admins("No ghosts were willing to take control of [M.real_name]") From d4bf182366f01544e902bf41acdf4365428fcd06 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 10:07:01 -0500 Subject: [PATCH 64/74] Indent --- code/datums/datumvars.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 2ca7d6c2a79..dca735d4657 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -608,11 +608,11 @@ body if(candidates.len) theghost = pick(candidates) - M << "Your mob has been taken over by a ghost!" - usr << "[theghost.key] has taken over [M.real_name]." - message_admins("[key_name(theghost)] has taken control of [M.real_name]") - M.ghostize() - M.key = theghost.key + M << "Your mob has been taken over by a ghost!" + usr << "[theghost.key] has taken over [M.real_name]." + message_admins("[key_name(theghost)] has taken control of [M.real_name]") + M.ghostize() + M.key = theghost.key else M << "There were no ghosts willing to take control." message_admins("No ghosts were willing to take control of [M.real_name]") From f26f6145ac84213b83a7ad7422faf4fc37f29bb7 Mon Sep 17 00:00:00 2001 From: blah Date: Mon, 21 Sep 2015 17:06:11 +0100 Subject: [PATCH 65/74] Add even more tracking fixes to improve performance --- code/game/machinery/computer/prisoner.dm | 4 ++-- code/game/objects/items/weapons/implants/implant_chem.dm | 8 ++++++++ code/game/objects/items/weapons/teleportation.dm | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index ed568709958..679d9282e31 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -33,7 +33,7 @@ dat += "

        Prisoner Implant Management

        " dat += "
        Chemical Implants
        " var/turf/Tr = null - for(var/obj/item/weapon/implant/chem/C in world) + for(var/obj/item/weapon/implant/chem/C in tracking_implants) Tr = get_turf(C) if((Tr) && (Tr.z != src.z)) continue//Out of range if(!C.implanted) continue @@ -43,7 +43,7 @@ dat += "((10))
        " dat += "********************************
        " dat += "
        Tracking Implants
        " - for(var/obj/item/weapon/implant/tracking/T in world) + for(var/obj/item/weapon/implant/tracking/T in tracking_implants) if(!iscarbon(T.imp_in)) continue if(!T.implanted) diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm index 6f85742039b..312363d6713 100644 --- a/code/game/objects/items/weapons/implants/implant_chem.dm +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -24,6 +24,14 @@ /obj/item/weapon/implant/chem/New() ..() create_reagents(50) + tracking_implants += src + +/obj/item/weapon/implant/chem/Destroy() + ..() + tracking_implants -= src + + + /obj/item/weapon/implant/chem/trigger(emote, mob/source) if(emote == "deathgasp") diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 0bf17d4be30..da8ffa7cef0 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -78,7 +78,7 @@ Frequency: src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]
        " src.temp += "Extranneous Signals:
        " - for (var/obj/item/weapon/implant/tracking/W in world) + for (var/obj/item/weapon/implant/tracking/W in tracking_implants) if (!W.implanted || !ismob(W.loc)) continue else From 6d46bba8710cdd8b984796cf8f3a9cfd8a931686 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Mon, 21 Sep 2015 19:34:39 +0300 Subject: [PATCH 66/74] Changes do_after's target to src_object. --- code/game/turfs/turf.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index e34c0591408..3b9ab477b1d 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -198,7 +198,7 @@ /turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) if(src_object.contents.len) usr << "You start dumping out the contents..." - if(!do_after(usr,20,target=src)) + if(!do_after(usr,20,target=src_object)) return 0 for(var/obj/item/I in src_object) src_object.remove_from_storage(I, src) //No check needed, put everything inside From 4edb09064ad162331fe6a38dc625c3af6e25faa8 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 17:31:07 -0500 Subject: [PATCH 67/74] span --- code/datums/datumvars.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index dca735d4657..210bcb1a51c 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -602,7 +602,7 @@ body return M << "Control of your mob has been offered to dead players." log_admin("[key_name(usr)] has offered control of [M.real_name] to ghosts.") - message_admins("[key_name(usr)] has offered control of [M.real_name] to ghosts") + message_admins("[key_name(usr)] has offered control of [M.real_name] to ghosts") var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/theghost = null @@ -610,12 +610,12 @@ body theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" usr << "[theghost.key] has taken over [M.real_name]." - message_admins("[key_name(theghost)] has taken control of [M.real_name]") + message_admins("[key_name(theghost)] has taken control of [M.real_name]") M.ghostize() M.key = theghost.key else M << "There were no ghosts willing to take control." - message_admins("No ghosts were willing to take control of [M.real_name]") + message_admins("No ghosts were willing to take control of [M.real_name]") else if(href_list["delall"]) if(!check_rights(R_DEBUG|R_SERVER)) return From ceb87b1d621a709ca14d856c1f3ac0d07820d005 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 18:46:28 -0500 Subject: [PATCH 68/74] key_name_admin --- code/datums/datumvars.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 210bcb1a51c..62292817e61 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -601,16 +601,15 @@ body usr << "This can only be used on instances of type /mob" return M << "Control of your mob has been offered to dead players." - log_admin("[key_name(usr)] has offered control of [M.real_name] to ghosts.") - message_admins("[key_name(usr)] has offered control of [M.real_name] to ghosts") + log_admin("[key_name_admin(usr)] has offered control of [M.real_name] to ghosts.") + message_admins("[key_name_admin(usr)] has offered control of [M.real_name] to ghosts") var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" - usr << "[theghost.key] has taken over [M.real_name]." - message_admins("[key_name(theghost)] has taken control of [M.real_name]") + message_admins("[key_name_admin(theghost)] has taken control of [M.real_name]") M.ghostize() M.key = theghost.key else From 2fd2f962382bc8c0b6e8d06d63238f3b9ff11ba9 Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 22 Sep 2015 02:14:37 +0200 Subject: [PATCH 69/74] Simplified update_mutations_overlay(), we no longer rebuild the entire mutation layer with all mutations every time we get or lose a mutation. I reintroduced in on_acquiring and on_losing some code similar to the old lose_indication gain_indication procs. Fixed lesser form changeling, when humanized via dna injector, the ling no longer keeps its Human Form power. Simplified the racemut trick in humanize() and monkeyize(). Dna now gets qdel'd, just like reagents, when the mob gets qdel'd. Some tiny fixes here and there. Added a changelog. --- code/datums/mutations.dm | 49 +++++++++++-------- code/game/dna.dm | 2 +- .../gamemodes/changeling/evolution_menu.dm | 2 - .../changeling/powers/digitalcamo.dm | 4 ++ .../objects/items/weapons/dna_injector.dm | 2 +- code/modules/events/radiation_storm.dm | 3 +- code/modules/events/wizard/imposter.dm | 1 + code/modules/mob/living/carbon/carbon.dm | 2 + code/modules/mob/transform_procs.dm | 12 +++-- html/changelogs/phil235-DnaMonkeyStuff.yml | 12 +++++ 10 files changed, 58 insertions(+), 31 deletions(-) create mode 100644 html/changelogs/phil235-DnaMonkeyStuff.yml diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index dab76ebf7d9..64ff70e3eef 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -16,7 +16,7 @@ var/text_gain_indication = "" var/text_lose_indication = "" var/list/visual_indicators = list() - var/above_body = 0 //wether the mutation appear above or below the body layer + var/layer_used = MUTATIONS_LAYER //which mutation layer to use var/list/species_allowed = list() //to restrict mutation to only certain species var/health_req //minimum health required to acquire the mutation @@ -62,7 +62,13 @@ if(text_gain_indication) owner << text_gain_indication if(visual_indicators.len) - owner.update_mutations_overlay() + var/list/mut_overlay = list(get_visual_indicator(owner)) + if(owner.overlays_standing[layer_used]) + mut_overlay = owner.overlays_standing[layer_used] + mut_overlay |= get_visual_indicator(owner) + owner.remove_overlay(layer_used) + owner.overlays_standing[layer_used] = mut_overlay + owner.apply_overlay(layer_used) /datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) return @@ -84,7 +90,13 @@ if(text_lose_indication) owner << text_lose_indication if(visual_indicators.len) - owner.update_mutations_overlay() + var/list/mut_overlay = list() + if(owner.overlays_standing[layer_used]) + mut_overlay = owner.overlays_standing[layer_used] + owner.remove_overlay(layer_used) + mut_overlay.Remove(get_visual_indicator(owner)) + owner.overlays_standing[layer_used] = mut_overlay + owner.apply_overlay(layer_used) return 0 return 1 @@ -596,7 +608,7 @@ quality = POSITIVE dna_block = NON_SCANNABLE text_gain_indication = "You feel pressure building up behind your eyes." - above_body = 1 + layer_used = FRONT_MUTATIONS_LAYER /datum/mutation/human/laser_eyes/New() ..() @@ -609,29 +621,24 @@ if(owner.a_intent == "harm") owner.LaserEyes(target) + /mob/living/carbon/proc/update_mutations_overlay() return /mob/living/carbon/human/update_mutations_overlay() - remove_overlay(MUTATIONS_LAYER) //MUTATIONS_LAYER is behind the body layer - remove_overlay(FRONT_MUTATIONS_LAYER) //FRONT_MUTATIONS_LAYER is above the body layer - var/list/standing = list() - var/list/frontstanding = list() - for(var/datum/mutation/human/CM in dna.mutations) if(CM.species_allowed.len && !CM.species_allowed.Find(dna.species.id)) - CM.force_lose(src) + CM.force_lose(src) //shouldn't have that mutation at all continue if(CM.visual_indicators.len) + var/list/mut_overlay = list() + if(overlays_standing[CM.layer_used]) + mut_overlay = overlays_standing[CM.layer_used] var/image/V = CM.get_visual_indicator(src) - if(CM.above_body) - frontstanding += V - else - standing += V - - if(standing.len) - overlays_standing[MUTATIONS_LAYER] = standing - if(frontstanding.len) - overlays_standing[FRONT_MUTATIONS_LAYER] = frontstanding - apply_overlay(MUTATIONS_LAYER) - apply_overlay(FRONT_MUTATIONS_LAYER) + if(!mut_overlay.Find(V)) //either we lack the visual indicator or we have the wrong one + remove_overlay(CM.layer_used) + for(var/image/I in CM.visual_indicators) + mut_overlay.Remove(I) + mut_overlay |= V + overlays_standing[CM.layer_used] = mut_overlay + apply_overlay(CM.layer_used) diff --git a/code/game/dna.dm b/code/game/dna.dm index 59ae91cce50..33615f83cfb 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -320,7 +320,7 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) if(prob(probability)) M.dna.uni_identity = setblock(M.dna.uni_identity, i, random_string(DNA_BLOCK_SIZE, hex_characters)) - M.updateappearance() + M.updateappearance(mutations_overlay_update=1) return 1 //value in range 1 to values. values must be greater than 0 diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index e42e1fad641..d9f6faa9457 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -388,8 +388,6 @@ var/list/sting_paths /mob/proc/remove_changeling_powers(keep_free_powers=0) if(ishuman(src) || ismonkey(src)) if(mind && mind.changeling) - digitalcamo = 0 - digitalinvis = 0 mind.changeling.changeling_speak = 0 mind.changeling.reset() for(var/obj/effect/proc_holder/changeling/p in mind.changeling.purchasedpowers) diff --git a/code/game/gamemodes/changeling/powers/digitalcamo.dm b/code/game/gamemodes/changeling/powers/digitalcamo.dm index 13bf62bdbc4..79651c98a97 100644 --- a/code/game/gamemodes/changeling/powers/digitalcamo.dm +++ b/code/game/gamemodes/changeling/powers/digitalcamo.dm @@ -18,3 +18,7 @@ feedback_add_details("changeling_powers","CAM") return 1 + +/obj/effect/proc_holder/changeling/digitalcamo/on_refund(mob/user) + user.digitalcamo = 0 + user.digitalinvis = 0 \ No newline at end of file diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 960b38ad0ba..28afa0a7bb8 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -38,7 +38,7 @@ M.dna.blood_type = fields["blood_type"] if(fields["UI"]) //UI+UE M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"]) - M.updateappearance() + M.updateappearance(mutations_overlay_update=1) log_attack(log_msg) else user << "It appears that [M] does not have compatible DNA." diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 1857a625da0..c83ea419df4 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -43,10 +43,9 @@ if(prob(25)) if(prob(75)) randmutb(H) - H.domutcheck() else randmutg(H) - H.domutcheck() + H.domutcheck() else if(istype(C, /mob/living/carbon/monkey)) var/mob/living/carbon/monkey/M = C diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index fdfdd98f451..9a155830455 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -21,6 +21,7 @@ I.real_name = I.dna.real_name I.name = I.dna.real_name I.updateappearance(mutcolor_update=1) + I.domutcheck() if(W.ears) I.equip_to_slot_or_del(new W.ears.type, slot_ears) if(W.w_uniform) I.equip_to_slot_or_del(new W.w_uniform.type , slot_w_uniform) if(W.shoes) I.equip_to_slot_or_del(new W.shoes.type, slot_shoes) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 6a001457d30..ff959f6c940 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -22,6 +22,8 @@ for(var/atom/movable/food in stomach_contents) qdel(food) remove_from_all_data_huds() + if(dna) + qdel(dna) return ..() /mob/living/carbon/Move(NewLoc, direct) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 9d5515a900a..ff7b09b6632 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -48,8 +48,8 @@ if(tr_flags & TR_KEEPSE) O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = mutations_list[RACEMUT] //we don't want to keep the race block inactive - O.dna.struc_enzymes = setblock(O.dna.struc_enzymes, R.dna_block, random_string(DNA_BLOCK_SIZE, list("8","9","a","b","c","d","e", "f"))) + var/datum/mutation/human/race/R = mutations_list[RACEMUT] + O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=1)//we don't want to keep the race block inactive if(suiciding) O.suiciding = suiciding @@ -166,8 +166,8 @@ if(tr_flags & TR_KEEPSE) O.dna.struc_enzymes = dna.struc_enzymes - var/datum/mutation/human/race/R = mutations_list[RACEMUT] //we don't want to keep the race block active - O.dna.struc_enzymes = setblock(O.dna.struc_enzymes, R.dna_block, random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6"))) + var/datum/mutation/human/race/R = mutations_list[RACEMUT] + O.dna.struc_enzymes = R.set_se(O.dna.struc_enzymes, on=0)//we don't want to keep the race block active O.domutcheck() if(suiciding) @@ -208,6 +208,10 @@ if(mind) mind.transfer_to(O) + if(O.mind.changeling) + for(var/obj/effect/proc_holder/changeling/humanform/HF in O.mind.changeling.purchasedpowers) + mind.changeling.purchasedpowers -= HF + O.a_intent = "help" if (tr_flags & TR_DEFAULTMSG) O << "You are now a human." diff --git a/html/changelogs/phil235-DnaMonkeyStuff.yml b/html/changelogs/phil235-DnaMonkeyStuff.yml new file mode 100644 index 00000000000..cee62b62a22 --- /dev/null +++ b/html/changelogs/phil235-DnaMonkeyStuff.yml @@ -0,0 +1,12 @@ +author: phil235 +delete-after: True + +changes: + - rscdel: "Lizards and other non human species can no longer acquire the hulk mutation. Hulks no longer have red eyes" + - bugfix: "Monkeys now always have dna and a blood type (compatible with humans)." + - bugfix: "Monkey transformation no longer deletes the human's clothes." + - bugfix: "Space Retrovirus now correctly transfers dna SE to the infected human." + - bugfix: "Changeling's Anatomic Panacea removes alien embryo again." + - bugfix: "Cloning someone now correctly sets up their dna UE." + - bugfix: "Fixes the laser eyes mutation not giving glowing red eyes to the human." + - bugfix: "Using changeling readaptation now properly removes all evolutions bought (arm blade, chameleon skin, organic suit)." From 403aac044b04e394e850972f1fb37aec18324fbd Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 19:24:28 -0500 Subject: [PATCH 70/74] compromise --- code/datums/datumvars.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 62292817e61..d355977cebd 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -601,20 +601,20 @@ body usr << "This can only be used on instances of type /mob" return M << "Control of your mob has been offered to dead players." - log_admin("[key_name_admin(usr)] has offered control of [M.real_name] to ghosts.") - message_admins("[key_name_admin(usr)] has offered control of [M.real_name] to ghosts") + log_admin("[key_name_admin(usr)] has offered control of [M.real_name][key_name_admin(M)] to ghosts.") + message_admins("[key_name_admin(usr)] has offered control of [M.real_name][key_name_admin(M)] to ghosts") var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" - message_admins("[key_name_admin(theghost)] has taken control of [M.real_name]") + message_admins("[key_name_admin(theghost)] has taken control of [M.real_name][key_name_admin(M)]") M.ghostize() M.key = theghost.key else M << "There were no ghosts willing to take control." - message_admins("No ghosts were willing to take control of [M.real_name]") + message_admins("No ghosts were willing to take control of [M.real_name][key_name_admin(M)]") else if(href_list["delall"]) if(!check_rights(R_DEBUG|R_SERVER)) return From 039af4067e7736c20229f8d4205c136b75507169 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 19:25:39 -0500 Subject: [PATCH 71/74] Parentheses --- code/datums/datumvars.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index d355977cebd..02c1575648e 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -601,20 +601,20 @@ body usr << "This can only be used on instances of type /mob" return M << "Control of your mob has been offered to dead players." - log_admin("[key_name_admin(usr)] has offered control of [M.real_name][key_name_admin(M)] to ghosts.") - message_admins("[key_name_admin(usr)] has offered control of [M.real_name][key_name_admin(M)] to ghosts") + log_admin("[key_name_admin(usr)] has offered control of [M.real_name]([key_name_admin(M)]) to ghosts.") + message_admins("[key_name_admin(usr)] has offered control of [M.real_name]([key_name_admin(M)]) to ghosts") var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" - message_admins("[key_name_admin(theghost)] has taken control of [M.real_name][key_name_admin(M)]") + message_admins("[key_name_admin(theghost)] has taken control of [M.real_name]([key_name_admin(M)])") M.ghostize() M.key = theghost.key else M << "There were no ghosts willing to take control." - message_admins("No ghosts were willing to take control of [M.real_name][key_name_admin(M)]") + message_admins("No ghosts were willing to take control of ([M.real_name][key_name_admin(M)])") else if(href_list["delall"]) if(!check_rights(R_DEBUG|R_SERVER)) return From 87d8d2996a9861ac77a49d32d6fde652f1de096b Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 22 Sep 2015 02:30:35 +0200 Subject: [PATCH 72/74] Tiny mistake, transforming changeling need the target's name. --- code/game/gamemodes/changeling/changeling.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 1069918eee8..119d38f0645 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -405,6 +405,7 @@ var/list/slot2type = list("head" = /obj/item/clothing/head/changeling, "wear_mas /proc/changeling_transform(var/mob/living/carbon/human/user, var/datum/changelingprofile/chosen_prof) var/datum/dna/chosen_dna = chosen_prof.dna + user.real_name = chosen_prof.name chosen_dna.transfer_identity(user, 1) user.updateappearance(mutcolor_update=1) user.domutcheck() From 86d7a1514187ec7cb2cd986663ed5e16a7a1c9f8 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 21 Sep 2015 21:04:28 -0500 Subject: [PATCH 73/74] If this isn't actually fixed I'm gonna cry --- code/datums/datumvars.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 02c1575648e..71a1614a400 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -601,20 +601,20 @@ body usr << "This can only be used on instances of type /mob" return M << "Control of your mob has been offered to dead players." - log_admin("[key_name_admin(usr)] has offered control of [M.real_name]([key_name_admin(M)]) to ghosts.") - message_admins("[key_name_admin(usr)] has offered control of [M.real_name]([key_name_admin(M)]) to ghosts") + log_admin("[key_name(usr)] has offered control of ([key_name(M)]) to ghosts.") + message_admins("[key_name_admin(usr)] has offered control of ([key_name_admin(M)]) to ghosts") var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [M.real_name]?", "pAI", null, FALSE, 100) var/mob/dead/observer/theghost = null if(candidates.len) theghost = pick(candidates) M << "Your mob has been taken over by a ghost!" - message_admins("[key_name_admin(theghost)] has taken control of [M.real_name]([key_name_admin(M)])") + message_admins("[key_name_admin(theghost)] has taken control of ([key_name_admin(M)])") M.ghostize() M.key = theghost.key else M << "There were no ghosts willing to take control." - message_admins("No ghosts were willing to take control of ([M.real_name][key_name_admin(M)])") + message_admins("No ghosts were willing to take control of [key_name_admin(M)])") else if(href_list["delall"]) if(!check_rights(R_DEBUG|R_SERVER)) return From 16ea79a5de5830e987d8bff8af8c7f691a40f507 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Tue, 22 Sep 2015 19:58:59 +0000 Subject: [PATCH 74/74] Automatic changelog compile --- html/changelog.html | 43 +++++++++++++++++++ html/changelogs/.all_changelog.yml | 49 ++++++++++++++++++++++ html/changelogs/Kor-PR-Control.yml | 36 ---------------- html/changelogs/Xhuis-DemonsAndMorphs.yml | 23 ---------- html/changelogs/phil235-DnaMonkeyStuff.yml | 12 ------ html/changelogs/xxalpha-nanites.yml | 6 --- 6 files changed, 92 insertions(+), 77 deletions(-) delete mode 100644 html/changelogs/Kor-PR-Control.yml delete mode 100644 html/changelogs/Xhuis-DemonsAndMorphs.yml delete mode 100644 html/changelogs/phil235-DnaMonkeyStuff.yml delete mode 100644 html/changelogs/xxalpha-nanites.yml diff --git a/html/changelog.html b/html/changelog.html index 658fc52d737..ea4c8d14c32 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,49 @@ -->
        +

        22 September 2015

        +

        Kor updated:

        +
          +
        • A new admin command, Offer Control to Ghosts, can be found in the view variables menu. It will randomly select a willing candidate from among dead players, providing a fair method of replacing antagonists.
        • +
        +

        Xhuis updated:

        +
          +
        • When a morph changes form, a message is shown to nearby people. This also happens upon undisguising.
        • +
        • Morphs now have an attack sound and message.
        • +
        • The Spawn Morph event now plays a sound to the chosen candidate.
        • +
        • Slaughter demons (and other creatures with blood crawl) now take two seconds to emerge from blood pools. Entering is still instantaneous.
        • +
        • The demon heart's sprite has been updated.
        • +
        • Eating a demon heart now surgically implants the heart into your chest. If the heart is removed from you, you lose the ability. Someone else can eat the heart to gain the ability.
        • +
        • Blood Crawl no longer has a 1-second cooldown, instead having none.
        • +
        • You can no longer hold items when attempting to Blood Crawl, nor can you use any items while Blood Crawling.
        • +
        • Creatures that can Blood Crawl now take two seconds to emerge from blood pools.
        • +
        • Slaughter demons now store devoured creatures, and will drop them upon death.
        • +
        • Revenants now have the ability to speak to the dead.
        • +
        • Revenant abilities now have icons.
        • +
        • Malfunction no longer EMPs a specific area - it will instead EMP nearby machines directly and stun cyborgs. Dominators are immune to this.
        • +
        • Revenants now have directional sprites.
        • +
        • Overload Lights now has a smaller radius.
        • +
        • Defile no longer corrupts tiles.
        • +
        • When glimmering residue reforms, the game will attempt to place the old revenant in control of the new one. If this cannot be done, it will find a random candidate.
        • +
        • Revenants can no longer see ghosts. They can see other revenants, however, and ghosts can still see revenants.
        • +
        • The Spawn Slaughter Demon event now plays a sound to the chosen candidate.
        • +
        +

        phil235 updated:

        +
          +
        • Lizards and other non human species can no longer acquire the hulk mutation. Hulks no longer have red eyes
        • +
        • Monkeys now always have dna and a blood type (compatible with humans).
        • +
        • Monkey transformation no longer deletes the human's clothes.
        • +
        • Space Retrovirus now correctly transfers dna SE to the infected human.
        • +
        • Changeling's Anatomic Panacea removes alien embryo again.
        • +
        • Cloning someone now correctly sets up their dna UE.
        • +
        • Fixes the laser eyes mutation not giving glowing red eyes to the human.
        • +
        • Using changeling readaptation now properly removes all evolutions bought (arm blade, chameleon skin, organic suit).
        • +
        +

        xxalpha updated:

        +
          +
        • Added a researchable cyborg self-repair module to the robotics fabricator.
        • +
        +

        20 September 2015

        Xhuis updated:

          diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 08977054b3a..ac5873fa26a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1844,3 +1844,52 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Rune shapes and colors are now identical to their old versions. - tweak: Conversion runes can no longer be used by yourself, and require a static 2 cultists. +2015-09-22: + Kor: + - rscadd: A new admin command, Offer Control to Ghosts, can be found in the view + variables menu. It will randomly select a willing candidate from among dead + players, providing a fair method of replacing antagonists. + Xhuis: + - tweak: When a morph changes form, a message is shown to nearby people. This also + happens upon undisguising. + - tweak: Morphs now have an attack sound and message. + - tweak: The Spawn Morph event now plays a sound to the chosen candidate. + - tweak: Slaughter demons (and other creatures with blood crawl) now take two seconds + to emerge from blood pools. Entering is still instantaneous. + - tweak: The demon heart's sprite has been updated. + - tweak: Eating a demon heart now surgically implants the heart into your chest. + If the heart is removed from you, you lose the ability. Someone else can eat + the heart to gain the ability. + - tweak: Blood Crawl no longer has a 1-second cooldown, instead having none. + - tweak: You can no longer hold items when attempting to Blood Crawl, nor can you + use any items while Blood Crawling. + - tweak: Creatures that can Blood Crawl now take two seconds to emerge from blood + pools. + - tweak: Slaughter demons now store devoured creatures, and will drop them upon + death. + - tweak: Revenants now have the ability to speak to the dead. + - tweak: Revenant abilities now have icons. + - tweak: Malfunction no longer EMPs a specific area - it will instead EMP nearby + machines directly and stun cyborgs. Dominators are immune to this. + - tweak: Revenants now have directional sprites. + - tweak: Overload Lights now has a smaller radius. + - tweak: Defile no longer corrupts tiles. + - tweak: When glimmering residue reforms, the game will attempt to place the old + revenant in control of the new one. If this cannot be done, it will find a random + candidate. + - tweak: Revenants can no longer see ghosts. They can see other revenants, however, + and ghosts can still see revenants. + - tweak: The Spawn Slaughter Demon event now plays a sound to the chosen candidate. + phil235: + - rscdel: Lizards and other non human species can no longer acquire the hulk mutation. + Hulks no longer have red eyes + - bugfix: Monkeys now always have dna and a blood type (compatible with humans). + - bugfix: Monkey transformation no longer deletes the human's clothes. + - bugfix: Space Retrovirus now correctly transfers dna SE to the infected human. + - bugfix: Changeling's Anatomic Panacea removes alien embryo again. + - bugfix: Cloning someone now correctly sets up their dna UE. + - bugfix: Fixes the laser eyes mutation not giving glowing red eyes to the human. + - bugfix: Using changeling readaptation now properly removes all evolutions bought + (arm blade, chameleon skin, organic suit). + xxalpha: + - rscadd: Added a researchable cyborg self-repair module to the robotics fabricator. diff --git a/html/changelogs/Kor-PR-Control.yml b/html/changelogs/Kor-PR-Control.yml deleted file mode 100644 index 3eb4a50f1af..00000000000 --- a/html/changelogs/Kor-PR-Control.yml +++ /dev/null @@ -1,36 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# spellcheck (typo fixes) -# experiment -# tgs (TG-ported fixes?) -################################# - -# Your name. -author: Kor - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. -# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "A new admin command, Offer Control to Ghosts, can be found in the view variables menu. It will randomly select a willing candidate from among dead players, providing a fair method of replacing antagonists." diff --git a/html/changelogs/Xhuis-DemonsAndMorphs.yml b/html/changelogs/Xhuis-DemonsAndMorphs.yml deleted file mode 100644 index 608375dd2c7..00000000000 --- a/html/changelogs/Xhuis-DemonsAndMorphs.yml +++ /dev/null @@ -1,23 +0,0 @@ -author: Xhuis -delete-after: True - -changes: - - tweak: "When a morph changes form, a message is shown to nearby people. This also happens upon undisguising." - - tweak: "Morphs now have an attack sound and message." - - tweak: "The Spawn Morph event now plays a sound to the chosen candidate." - - tweak: "Slaughter demons (and other creatures with blood crawl) now take two seconds to emerge from blood pools. Entering is still instantaneous." - - tweak: "The demon heart's sprite has been updated." - - tweak: "Eating a demon heart now surgically implants the heart into your chest. If the heart is removed from you, you lose the ability. Someone else can eat the heart to gain the ability." - - tweak: "Blood Crawl no longer has a 1-second cooldown, instead having none." - - tweak: "You can no longer hold items when attempting to Blood Crawl, nor can you use any items while Blood Crawling." - - tweak: "Creatures that can Blood Crawl now take two seconds to emerge from blood pools." - - tweak: "Slaughter demons now store devoured creatures, and will drop them upon death." - - tweak: "Revenants now have the ability to speak to the dead." - - tweak: "Revenant abilities now have icons." - - tweak: "Malfunction no longer EMPs a specific area - it will instead EMP nearby machines directly and stun cyborgs. Dominators are immune to this." - - tweak: "Revenants now have directional sprites." - - tweak: "Overload Lights now has a smaller radius." - - tweak: "Defile no longer corrupts tiles." - - tweak: "When glimmering residue reforms, the game will attempt to place the old revenant in control of the new one. If this cannot be done, it will find a random candidate." - - tweak: "Revenants can no longer see ghosts. They can see other revenants, however, and ghosts can still see revenants." - - tweak: "The Spawn Slaughter Demon event now plays a sound to the chosen candidate." \ No newline at end of file diff --git a/html/changelogs/phil235-DnaMonkeyStuff.yml b/html/changelogs/phil235-DnaMonkeyStuff.yml deleted file mode 100644 index cee62b62a22..00000000000 --- a/html/changelogs/phil235-DnaMonkeyStuff.yml +++ /dev/null @@ -1,12 +0,0 @@ -author: phil235 -delete-after: True - -changes: - - rscdel: "Lizards and other non human species can no longer acquire the hulk mutation. Hulks no longer have red eyes" - - bugfix: "Monkeys now always have dna and a blood type (compatible with humans)." - - bugfix: "Monkey transformation no longer deletes the human's clothes." - - bugfix: "Space Retrovirus now correctly transfers dna SE to the infected human." - - bugfix: "Changeling's Anatomic Panacea removes alien embryo again." - - bugfix: "Cloning someone now correctly sets up their dna UE." - - bugfix: "Fixes the laser eyes mutation not giving glowing red eyes to the human." - - bugfix: "Using changeling readaptation now properly removes all evolutions bought (arm blade, chameleon skin, organic suit)." diff --git a/html/changelogs/xxalpha-nanites.yml b/html/changelogs/xxalpha-nanites.yml deleted file mode 100644 index 478a2163140..00000000000 --- a/html/changelogs/xxalpha-nanites.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: xxalpha - -delete-after: True - -changes: - - rscadd: "Added a researchable cyborg self-repair module to the robotics fabricator." \ No newline at end of file

    {SL$=lAcHW8%(@ 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 delta 24604 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 Date: Fri, 18 Sep 2015 18:36:25 -0400 Subject: [PATCH 28/74] Doubles boost time for slaughter demons --- code/modules/mob/living/simple_animal/slaughter/slaughter.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm index 07896ec81fa..bf7fd555460 100644 --- a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm +++ b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm @@ -72,7 +72,7 @@ /mob/living/simple_animal/slaughter/phasein() . = ..() speed = 0 - boost = world.time + 30 + boost = world.time + 60 //The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl From f7643522feea30a2881ca2b9112caf117ec29736 Mon Sep 17 00:00:00 2001 From: WJohn Date: Fri, 18 Sep 2015 22:01:26 -0400 Subject: [PATCH 29/74] Gives maint airlocks their paint drip back. --- .../doors/airlocks/station/maintenance.dmi | Bin 4670 -> 4690 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/doors/airlocks/station/maintenance.dmi b/icons/obj/doors/airlocks/station/maintenance.dmi index 3304e3f897026bbfd27b8c02a962ccdd64a42799..4b046afd7b62ccc0b4e0dc6e38732942db3939d3 100644 GIT binary patch delta 4470 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 From 25f998393ac23f7263e16e560d5aa58f7c053b65 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Sat, 19 Sep 2015 10:41:59 -0300 Subject: [PATCH 30/74] Removes a sleep in the admin follow command. --- code/modules/admin/topic.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index d1275930c8c..d832c960d13 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1527,7 +1527,6 @@ var/client/C = usr.client if(!isobserver(usr)) C.admin_ghost() var/mob/dead/observer/A = C.mob - sleep(2) A.ManualFollow(M) log_admin("[key_name(usr)] followed [key_name(M)]") message_admins("[key_name_admin(usr)] followed [key_name_admin(M)]") From 204c21d28705df66ded6b583018d51681821b2d5 Mon Sep 17 00:00:00 2001 From: xxalpha Date: Thu, 17 Sep 2015 15:56:39 +0100 Subject: [PATCH 31/74] Added a self-repair module for cyborgs. empty line Changelog Changed the module to heal more when cyborg is in critical. --- code/game/machinery/rechargestation.dm | 2 - .../objects/items/robot/robot_upgrades.dm | 79 ++++++++++++++---- html/changelogs/xxalpha-nanites.yml | 6 ++ icons/obj/module.dmi | Bin 1406 -> 4088 bytes 4 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 html/changelogs/xxalpha-nanites.yml diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 9c069b9a75f..48962ff51a7 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -135,8 +135,6 @@ R.heal_organ_damage(repairs, repairs - 1) if(R.cell) R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge) - for(var/obj/item/borg/upgrade/U in occupant) - U.recharge_action(occupant) /obj/machinery/recharge_station/proc/restock_modules() if(occupant) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 9a0c1ea5f50..66cbfef59cb 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -16,8 +16,6 @@ return 1 return 0 -/obj/item/borg/upgrade/proc/recharge_action(mob/living/silicon/robot/R) - /obj/item/borg/upgrade/reset name = "cyborg module reset board" desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the cyborg." @@ -215,12 +213,15 @@ /obj/item/borg/upgrade/selfrepair name = "self-repair module" - desc = "This module will repair the cyborg when it is in a cyborg recharger." + desc = "This module will repair the cyborg over time." icon_state = "cyborg_upgrade5" require_module = 1 var/repair_amount = -1 - var/repair_cooldown = 0 + var/repair_tick = 1 var/msg_cooldown = 0 + var/on = 0 + var/powercost = 10 + var/mob/living/silicon/robot/cyborg /obj/item/borg/upgrade/selfrepair/action(mob/living/silicon/robot/R) if(..()) @@ -229,17 +230,65 @@ if(U) usr << "This unit is already equipped with a self-repair module." return 0 - R << "Self-repair module detected. You will be repaired when inside an active recharge station." + cyborg = R + icon_state = "selfrepair_off" + action_button_name = "Toggle Self-Repair" return 1 -/obj/item/borg/upgrade/selfrepair/recharge_action(mob/living/silicon/robot/R) - if(R.stat != DEAD) - if( (world.time - 10) > repair_cooldown ) - if(R.health < R.maxHealth) - R.adjustBruteLoss(repair_amount) - R.adjustFireLoss(repair_amount) - R.updatehealth() - repair_cooldown = world.time - if( (world.time - 500) > msg_cooldown ) - R << "You are being repaired." +/obj/item/borg/upgrade/selfrepair/ui_action_click() + on = !on + if(on) + cyborg << "You activate the self-repair module." + SSobj.processing |= src + else + cyborg << "You deactivate the self-repair module." + SSobj.processing -= src + update_icon() + +/obj/item/borg/upgrade/selfrepair/update_icon() + if(cyborg) + icon_state = "selfrepair_[on ? "on" : "off"]" + else + icon_state = "cyborg_upgrade5" + +/obj/item/borg/upgrade/selfrepair/proc/deactivate() + SSobj.processing -= src + on = 0 + update_icon() + +/obj/item/borg/upgrade/selfrepair/process() + if(!repair_tick) + repair_tick = 1 + return + + if( cyborg && (cyborg.stat != DEAD) && on) + if(cyborg.cell.charge < powercost*2) + cyborg << "Self-repair module deactivated. Please recharge." + deactivate() + return + + if(cyborg.health < cyborg.maxHealth) + if(cyborg.health < 0) + repair_amount = -2.5 + powercost = 30 + else + repair_amount = -1 + powercost = 10 + cyborg.adjustBruteLoss(repair_amount) + cyborg.adjustFireLoss(repair_amount) + cyborg.updatehealth() + cyborg.cell.use(powercost) + else + cyborg.cell.use(5) + repair_tick = 0 + + if( (world.time - 2000) > msg_cooldown ) + var/msgmode = "standby" + if(cyborg.health < 0) + msgmode = "critical" + else if(cyborg.health < cyborg.maxHealth) + msgmode = "normal" + cyborg << "Self-repair is active in [msgmode] mode." msg_cooldown = world.time + else + deactivate() diff --git a/html/changelogs/xxalpha-nanites.yml b/html/changelogs/xxalpha-nanites.yml new file mode 100644 index 00000000000..478a2163140 --- /dev/null +++ b/html/changelogs/xxalpha-nanites.yml @@ -0,0 +1,6 @@ +author: xxalpha + +delete-after: True + +changes: + - rscadd: "Added a researchable cyborg self-repair module to the robotics fabricator." \ No newline at end of file diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index e285e380d19e9c54a9af45a18897f26424c8c7d9..fb68f0bcc653ae3132a4c2db12cae72871804d06 100644 GIT binary patch literal 4088 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 B)Z+jE literal 1406 zcmV-^1%djBP)C0001fP)t-sz`(#p zMn*9)F&rEm|I7dYW&i+60L%aYnPvb0GnsI3Z~y=RW@Z30GXND875|w4($dmYR8$8C z2bll>005b`wziownW(6!Dk>`GxBw0g4nROa07`%E?(TqqfS{nD|JVROWPi+=0RL(L z{{R4R78aqQp|uwm024{jBqXmMYt{e&00DGTPE!Ct=GbNc007r|R9JLGWpiV4X>fFD zZ*Bkpc$}5f&58ms3;^Ks^eKwo#owbBQN)A3!jNg>Ot5VvttqK|0uuA>>yLn2f3KmrcLx9HI1odz4qhu~>X(yw z9asPW1ItN7K~#90?OTg>qCgB4Fp-rqRj{R&RkzyL{{IhdW(Jf>0#fU`XPet&?J<+# z&YeI_2&0igp-?Dz1YvYl``;%p9s@!JM1xBjvMS?Cl9GsfQzFckqOCbL4*qku`Q|E);CWEmPFKyQKq=oX2{Npy+=-e25; zoD=}sf-qa~3IN=>gB!yu06hx8#QMuYnA6f}3m{_&*jbH#u>=6R3D9RrpT7x#6o8Pk zyCA6`t?;7u7J}K`RqZsO=TdrMyF#H*C=?2X;`-?R*4q1>_7ViD#3;5Y(D?)g*9V9I z-rv_lg5t{w*yBFb;PUs8&l`i~co}pk;OTSzJp`-*50S?smpTyvOjDse(X0<(Nx}GYRo4f~&C}DS zWEA+2;PVPRRuBl-38WY})CVd8oeBu`fi1cp*s@!I-~~vf7=WFv56D{pjT%d5eE`@Z zl8=Ga%)4_jP}c{15Vp^PUIlvccdLLkrg6$xTmH{4Z3Q|C94)l-cd%PP^QXWOX!$>L z3hXK3C+Y+HGl*W{`IqA1^?|0u=My*+bg{TD0fj=LP$(3N?||>uz@P+1jVcXaqWJ=Q zqlbbcP^CS-hl3e#sN%?WsGB%gd!vU!QXsB+IQZG4Gf*vvNu6JsoI z0aOo3e3rnrE59cNZalgbc(aKu9|Kmz9o$FJg6kis7qEk!WwGS8AhkDd(;fxj%?JvR zbw&z>5f(Fc605*&GMVIDeZV(J^u~aDNJ1b$YbZ*OLaYx=@_h2b)dy&DcNTP=hIJEz zumv=IS*+*fd|j}&_niXy3juMtWu6ak*8!ZKaOeH~J^bDN_!I@?`hX3v#R9pR^OvOdpXndC_J2c#Lh--i57XjC$#;p&{Qv*} M07*qoM6N<$f&iL-6aWAK From d32d3287d1cf54fbe775e574a6a212cc425ba966 Mon Sep 17 00:00:00 2001 From: Xhuis Date: Sat, 19 Sep 2015 14:03:04 -0400 Subject: [PATCH 32/74] Adds revenant tweaks --- code/modules/admin/verbs/deadsay.dm | 2 +- .../living/simple_animal/revenant/revenant.dm | 81 +++++++++++------- .../revenant/revenant_abilities.dm | 37 +++++--- icons/mob/actions.dmi | Bin 44944 -> 47634 bytes icons/mob/mob.dmi | Bin 223097 -> 223113 bytes 5 files changed, 77 insertions(+), 43 deletions(-) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 19cc6dd5667..00a51054c80 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -26,7 +26,7 @@ for (var/mob/M in player_list) if (istype(M, /mob/new_player)) continue - if (M.stat == DEAD || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + if (M.stat == DEAD || istype(M, /mob/living/simple_animal/revenant) || (M.client && M.client.holder && (M.client.prefs.chat_toggles & CHAT_DEAD))) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above M.show_message(rendered, 2) feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/revenant/revenant.dm b/code/modules/mob/living/simple_animal/revenant/revenant.dm index 1bb8c995e60..c90283d76ba 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant.dm @@ -3,17 +3,19 @@ //Don't hear deadchat and are NOT normal ghosts //Admin-spawn or random event +#define INVISIBILITY_REVENANT 30 + /mob/living/simple_animal/revenant name = "revenant" desc = "A malevolent spirit." icon = 'icons/mob/mob.dmi' icon_state = "revenant_idle" incorporeal_move = 3 - invisibility = INVISIBILITY_OBSERVER + invisibility = INVISIBILITY_REVENANT health = 25 maxHealth = 25 healable = 0 - see_invisible = SEE_INVISIBLE_OBSERVER + see_invisible = INVISIBILITY_REVENANT languages = ALL response_help = "passes through" response_disarm = "swings at" @@ -137,7 +139,8 @@ if(target) //As one cannot prove the existance of ghosts, ghosts cannot prove the existance of the target they were draining. change_essence_amount(essence_drained * 5, 0, target) src << "[target]'s soul has been considerably weakened and will yield no more essence for the time being." - target.visible_message("[target] gently slumps back onto the ground.") + target.visible_message("[target] slumps onto the ground.", \ + "Violets lights, dancing in your vision, getting clo--") drained_mobs.Add(target) target.death(0) icon_state = "revenant_idle" @@ -150,7 +153,10 @@ /mob/living/simple_animal/revenant/say(message) - return 0 //Revenants cannot speak out loud. + for(var/mob/M in mob_list) + if(istype(M, /mob/living/simple_animal/revenant) || M.stat == DEAD) + M << "REVENANT: [src] says, \"[message]\"" //Can commune with the dead + return /mob/living/simple_animal/revenant/Stat() ..() @@ -182,14 +188,16 @@ src.mind.objectives += objective2 src << "Objective #2: [objective2.explanation_text]" ticker.mode.traitors |= src.mind //Necessary for announcing - mob_spell_list += new /obj/effect/proc_holder/spell/targeted/revenant_transmit - mob_spell_list += new /obj/effect/proc_holder/spell/aoe_turf/revenant_light - mob_spell_list += new /obj/effect/proc_holder/spell/aoe_turf/revenant_defile - mob_spell_list += new /obj/effect/proc_holder/spell/aoe_turf/revenant_malf + AddSpell(new /obj/effect/proc_holder/spell/targeted/revenant_transmit(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant_light(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant_defile(null)) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/revenant_malf(null)) /mob/living/simple_animal/revenant/death() + if(!revealed) //Revenants cannot die if they aren't revealed + return 0 ..(1) - src << "NO! No... it's too late, you can feel yourself fading..." + src << "NO! No... it's too late, you can feel yourself fading..." notransform = 1 revealed = 1 invisibility = 0 @@ -199,8 +207,9 @@ for(var/i = alpha, i > 0, i -= 10) sleep(0.1) alpha = i - visible_message("[src]'s body breaks apart into blue dust.") - new /obj/item/weapon/ectoplasm/revenant(get_turf(src)) + visible_message("[src]'s body breaks apart into a fine pile of blue dust.") + var/obj/item/weapon/ectoplasm/revenant/R = new (get_turf(src)) + R.client_to_revive = src.client //If the essence reforms, the old revenant is put back in the body ghostize() qdel(src) return @@ -209,7 +218,7 @@ /mob/living/simple_animal/revenant/attackby(obj/item/W, mob/living/user, params) if(istype(W, /obj/item/weapon/nullrod)) visible_message("[src] violently flinches!", \ - "As the null rod passes through you, you feel your essence draining away!") + "As the null rod passes through you, you feel your essence draining away!") essence -= 25 //hella effective inhibited = 1 spawn(30) @@ -263,7 +272,7 @@ src << "You have been revealed." spawn(time) revealed = 0 - invisibility = INVISIBILITY_OBSERVER + invisibility = INVISIBILITY_REVENANT src << "You are once more concealed." /mob/living/simple_animal/revenant/proc/stun(time) @@ -323,7 +332,8 @@ icon_state = "revenantEctoplasm" w_class = 2 var/reforming = 0 - var/reformed = 0 + var/inert = 0 + var/client/client_to_revive /obj/item/weapon/ectoplasm/revenant/New() ..() @@ -332,17 +342,12 @@ if(src && reforming) return reform() if(src && !reforming) + reforming = 1 visible_message("[src] settles down and seems lifeless.") return -/obj/item/weapon/ectoplasm/revenant/attack_hand(mob/user) - if(reformed) - user << "[src] keeps slipping out of your hands, you can't get a hold on it!" - return - ..() - /obj/item/weapon/ectoplasm/revenant/attack_self(mob/user) - if(!reforming) + if(!reforming || inert) return ..() user.visible_message("[user] scatters [src] in all directions.", \ "You scatter [src] across the area. The particles slowly fade away.") @@ -351,6 +356,8 @@ /obj/item/weapon/ectoplasm/revenant/throw_impact(atom/hit_atom) ..() + if(inert) + return visible_message("[src] breaks into particles upon impact, which fade away to nothingness.") qdel(src) @@ -364,20 +371,29 @@ /obj/item/weapon/ectoplasm/revenant/proc/reform() if(!reforming || !src) return + var/key_of_revenant message_admins("Revenant ectoplasm was left undestroyed for 1 minute and has reformed into a new revenant.") loc = get_turf(src) //In case it's in a backpack or someone's hand visible_message("[src] suddenly rises into the air before fading away.") var/mob/living/simple_animal/revenant/R = new(get_turf(src)) - qdel(src) - var/list/candidates = get_candidates(BE_REVENANT) - if(!candidates.len) - message_admins("No candidates were found for the new revenant. Oh well!") - return 0 - var/client/C = pick(candidates) - var/key_of_revenant = C.key - if(!key_of_revenant) - message_admins("No ckey was found for the new revenant. Oh well!") - return 0 + if(client_to_revive) + for(var/mob/M in mob_list) + if(M.client == client_to_revive && M.stat == DEAD) //Only recreates the mob if the mob the client is in is dead + message_admins("[R.client] was a revenant and died. Re-making them into the new revenant formed by ectoplasm.") + R.client = client_to_revive + key_of_revenant = client_to_revive.key + break + message_admins("The new revenant's old client either could not be found or is in a new, living mob - grabbing a random candidate instead...") + else + var/list/candidates = get_candidates(BE_REVENANT) + if(!candidates.len) + message_admins("No candidates were found for the new revenant. Oh well!") + return 0 + var/client/C = pick(candidates) + key_of_revenant = C.key + if(!key_of_revenant) + message_admins("No ckey was found for the new revenant. Oh well!") + return 0 var/datum/mind/player_mind = new /datum/mind(key_of_revenant) player_mind.active = 1 player_mind.transfer_to(R) @@ -386,4 +402,7 @@ ticker.mode.traitors |= player_mind message_admins("[key_of_revenant] has been made into a revenant by reforming ectoplasm.") log_game("[key_of_revenant] was spawned as a revenant by reforming ectoplasm.") + qdel(src) + if(src) //Should never happen, but just in case + inert = 1 return 1 diff --git a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm index 6de716e3180..e577c84c52f 100644 --- a/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm +++ b/code/modules/mob/living/simple_animal/revenant/revenant_abilities.dm @@ -7,6 +7,8 @@ clothes_req = 0 range = 7 include_user = 0 + action_icon_state = "r_transmit" + action_background_icon_state = "bg_revenant" /obj/effect/proc_holder/spell/targeted/revenant_transmit/cast(list/targets, mob/living/simple_animal/revenant/user = usr) for(var/mob/living/M in targets) @@ -16,7 +18,7 @@ charge_counter = charge_max return usr << "You transmit to [M]: [msg]" - M << "A strange voice resonates in your head... [msg]" + M << "An alien voice resonates from all around... [msg]" //Overload Light: Breaks a light that's online and sends out lightning bolts to all nearby people. @@ -30,6 +32,8 @@ var/reveal = 80 var/stun = 20 var/locked = 1 + action_icon_state = "overload_lights" + action_background_icon_state = "bg_revenant" /obj/effect/proc_holder/spell/aoe_turf/revenant_light/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(locked) @@ -40,7 +44,7 @@ name = "Overload Lights (20E)" panel = "Revenant Abilities" locked = 0 - range = 6 + range = 2 charge_counter = charge_max return if(!user.castcheck(-20)) @@ -58,7 +62,7 @@ s.set_up(4, 1, L) s.start() sleep(10) - for(var/mob/living/M in orange(4, L)) + for(var/mob/living/M in range(4, L)) if(M == user) return M.Beam(L,icon_state="lightning",icon='icons/effects/effects.dmi',time=5) @@ -73,8 +77,8 @@ //Defile: Corrupts nearby stuff, unblesses floor tiles. /obj/effect/proc_holder/spell/aoe_turf/revenant_defile - name = "Defile (35E)" - desc = "Twists and corrupts the nearby area. Also dispels holy auras on floors, but not salt lines." + name = "Defile (20E)" + desc = "Twists and corrupts the nearby area. Also dispels holy auras on floors." panel = "Revenant Abilities (Locked)" charge_max = 200 clothes_req = 0 @@ -82,6 +86,8 @@ var/reveal = 100 var/stun = 20 var/locked = 1 + action_icon_state = "defile" + action_background_icon_state = "bg_revenant" /obj/effect/proc_holder/spell/aoe_turf/revenant_defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(locked) @@ -89,7 +95,7 @@ charge_counter = charge_max return user << "You have unlocked Defile!" - name = "Defile (20E)" + name = "Defile (10E)" panel = "Revenant Abilities" locked = 0 range = 3 @@ -102,10 +108,6 @@ spawn(0) if(T.flags & NOJAUNT) T.flags -= NOJAUNT - if(!istype(T, /turf/simulated/wall/cult) && istype(T, /turf/simulated/wall) && prob(40)) - T.ChangeTurf(/turf/simulated/wall/cult) - if(!istype(T, /turf/simulated/floor/engine/cult) && istype(T, /turf/simulated/floor) && prob(40)) - T.ChangeTurf(/turf/simulated/floor/engine/cult) for(var/mob/living/carbon/human/human in T.contents) human << "You suddenly feel tired." human.adjustStaminaLoss(35) @@ -128,6 +130,8 @@ var/reveal = 60 var/stun = 30 var/locked = 1 + action_icon_state = "malfunction" + action_background_icon_state = "bg_revenant" /obj/effect/proc_holder/spell/aoe_turf/revenant_malf/cast(list/targets, mob/living/simple_animal/revenant/user = usr) if(locked) @@ -152,8 +156,19 @@ bot.open = 1 bot.Emag(null) for(var/obj/machinery/mach in T.contents) + if(istype(mach, /obj/machinery/dominator)) //Doesn't work on dominators, to prevent kekkery + continue if(prob(10)) mach.emag_act(null) - empulse(user.loc, 3, 5) + else + mach.emp_act(1) + for(var/mob/living/silicon/robot/S in T.contents) //Only works on cyborgs, not AI + S << "ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#" + S << 'sound/misc/interference.ogg' + playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1) + var/datum/effect/effect/system/spark_spread/sp = new /datum/effect/effect/system/spark_spread + sp.set_up(5, 1, S) + sp.start() + S.Weaken(6) user.reveal(reveal) user.stun(stun) \ No newline at end of file diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 0f816bf5e99d9e28db307d7b34022631ccaf2538..c1ffea30969916241ad0a40bb4cbd378930b505d 100644 GIT binary patch delta 27673 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 z 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 diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 76d807e61d8286d6286e30e80770518c2e166b5a..fb295a1cf5d8a3964252d2888df89688af96344d 100644 GIT binary patch delta 53493 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 DI|?2{ delta 53472 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�o( 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 Ti{{fJ2sAe*FUQ9xg46yB%BXr_ From d1ed01c68d61424bc18ab96cef4f727945002065 Mon Sep 17 00:00:00 2001 From: KyrahAbattoir Date: Sat, 19 Sep 2015 21:45:02 +0200 Subject: [PATCH 33/74] Replaced the Broken mining suit + helmet rack by a mining SSU --- _maps/map_files/MiniStation/MiniStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 702ab5ca619..a3a3c25d673 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -227,7 +227,7 @@ "es" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "et" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/brig) "eu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/space) -"ev" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/mining,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/storage) +"ev" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/storage) "ew" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "ex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/quartermaster/storage) "ey" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/quartermaster/storage) From f90ee4aa8c3c48741cc7e0ed792e5eab3b2703a1 Mon Sep 17 00:00:00 2001 From: phil235 Date: Sat, 19 Sep 2015 22:18:28 +0200 Subject: [PATCH 34/74] - Fixed monkey starting with no dna. - Fixed bugs with monkeyize/humanize: 7803 (humanized monkey nobloodtype) - Fixes 9298 monkeyed ling have troubles humanizing themself (already fixed?) - Fixes despawning clothes when monkeyizing. 11855 - Replaced check_dna_integrity proc by simpler has_dna proc when required. - created set_species() proc - fixed space retrovirus not transfering SE (despite having a domutcheck()). Still need to check if it needs a name = real_name. - I renamed mecha/var/dna to dna_lock to avoid confusion - I renamed an armor var in a species proc to armor_block to avoid confusion with species/var/armor. - I removed many if(dna) checks in lots of files. - I removed duplicate defense procs between human/proc/X and dna.species/proc/X since dna is now always set. - Anatomic panacea from changeling removes alien embryo correctly. 6247 - Fixes runtime when trying to put dna-less brain mmi into a dnalocked mech. - Removed carbon/var/list/features, we now only have dna.features and prefs.features - Remove hulk mutation from lizards and other species (Fixed 6413); only real humans can acquire hulk. (less work on sprites for each ones, fixes lizard tail not in hulk color) - Fixes cloning not setting up correctly dna UE and dna.real_name - I fixed the issue with sucked+cloned ling being unable to absorb - I fixed issue with changeling proc checking if they have the dna already not working. - Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk. - I added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858) - Fixes 10048, the transform to initial appearence button was fucking up the dna. - Fixes cloning not setting up correctly dna UE and dna.real_name - Fixed the issue with sucked+cloned ling being unable to absorb - Fixed issue with changeling proc checking if they have the dna already not working. - Fixed 4095, low health hulk with DAA getting stuck in loop of acquiring/losing hulk. - Added a second layer for mutations to differientate mutations that go below and above the body layer (Fixes 7858) - Fixes 10048, the transform to initial appearence button was fucking up the dna. --- code/__DEFINES/misc.dm | 9 +- code/__HELPERS/unsorted.dm | 2 +- code/controllers/subsystem/objects.dm | 1 + code/controllers/subsystem/ticker.dm | 1 - code/datums/datumvars.dm | 5 +- .../diseases/advance/symptoms/genetics.dm | 11 +- code/datums/diseases/dna_spread.dm | 20 +- code/datums/diseases/transformation.dm | 5 +- code/datums/martial.dm | 44 +- code/datums/mind.dm | 8 +- code/datums/mutations.dm | 59 +- code/datums/spells/lichdom.dm | 4 +- code/datums/spells/wizard.dm | 3 +- code/game/atoms.dm | 6 +- code/game/dna.dm | 984 ++++-------------- code/game/gamemodes/abduction/abduction.dm | 16 +- .../gamemodes/abduction/abduction_gear.dm | 7 +- .../gamemodes/abduction/abduction_surgery.dm | 2 +- code/game/gamemodes/abduction/gland.dm | 6 +- .../gamemodes/abduction/machinery/console.dm | 2 - code/game/gamemodes/antag_spawner.dm | 1 + code/game/gamemodes/changeling/changeling.dm | 10 +- .../gamemodes/changeling/powers/absorb.dm | 2 +- .../changeling/powers/chameleon_skin.dm | 13 +- .../gamemodes/changeling/powers/humanform.dm | 9 +- .../gamemodes/changeling/powers/lesserform.dm | 6 +- .../gamemodes/changeling/powers/panacea.dm | 5 +- .../gamemodes/changeling/powers/tiny_prick.dm | 20 +- code/game/gamemodes/nuclear/pinpointer.dm | 8 +- code/game/gamemodes/objective.dm | 2 +- code/game/gamemodes/setupgame.dm | 2 +- .../shadowling/shadowling_abilities.dm | 4 +- .../special_shadowling_abilities.dm | 2 +- code/game/gamemodes/wizard/artefact.dm | 33 +- code/game/gamemodes/wizard/raginmages.dm | 2 +- code/game/jobs/job/job.dm | 6 +- code/game/machinery/cloning.dm | 30 +- code/game/machinery/computer/cloning.dm | 2 +- code/game/machinery/computer/dna_console.dm | 482 +++++++++ code/game/machinery/dna_scanner.dm | 167 +++ code/game/machinery/iv_drip.dm | 4 +- code/game/machinery/teleporter.dm | 4 +- code/game/mecha/combat/honker.dm | 2 +- code/game/mecha/mecha.dm | 14 +- code/game/mecha/mecha_topic.dm | 6 +- .../objects/items/devices/laserpointer.dm | 2 +- code/game/objects/items/devices/scanners.dm | 3 +- .../objects/items/weapons/dna_injector.dm | 4 +- code/game/objects/items/weapons/twohanded.dm | 2 +- code/game/objects/structures/mirror.dm | 25 +- code/modules/admin/secrets.dm | 12 +- code/modules/admin/verbs/one_click_antag.dm | 8 +- code/modules/admin/verbs/randomverbs.dm | 19 +- .../awaymissions/mission_code/wildwest.dm | 12 +- code/modules/client/preferences.dm | 26 +- code/modules/detectivework/detective_work.dm | 16 +- code/modules/detectivework/scanner.dm | 2 +- code/modules/events/holiday/halloween.dm | 9 +- code/modules/events/radiation_storm.dm | 4 +- code/modules/events/wizard/imposter.dm | 11 +- code/modules/events/wizard/race.dm | 9 +- .../kitchen machinery/processor.dm | 4 +- code/modules/hydroponics/hydroponics.dm | 2 +- code/modules/mob/interactive.dm | 30 +- code/modules/mob/living/carbon/brain/MMI.dm | 15 +- .../mob/living/carbon/brain/brain_item.dm | 11 +- .../mob/living/carbon/brain/posibrain.dm | 19 +- .../mob/living/carbon/carbon_defines.dm | 3 - code/modules/mob/living/carbon/human/blood.dm | 7 +- code/modules/mob/living/carbon/human/death.dm | 11 +- code/modules/mob/living/carbon/human/emote.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 19 +- .../living/carbon/human/human_attackhand.dm | 6 +- .../mob/living/carbon/human/human_damage.dm | 37 +- .../mob/living/carbon/human/human_defense.dm | 91 +- .../mob/living/carbon/human/human_helpers.dm | 8 +- .../mob/living/carbon/human/human_movement.dm | 9 +- .../mob/living/carbon/human/inventory.dm | 159 +-- code/modules/mob/living/carbon/human/life.dm | 26 +- code/modules/mob/living/carbon/human/say.dm | 6 +- .../mob/living/carbon/human/species.dm | 96 +- .../mob/living/carbon/human/species_types.dm | 6 +- .../mob/living/carbon/human/update_icons.dm | 38 +- code/modules/mob/living/carbon/monkey/life.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 10 +- code/modules/mob/living/living.dm | 4 +- .../mob/living/silicon/pai/software.dm | 2 +- .../mob/living/simple_animal/slime/life.dm | 5 +- code/modules/mob/mob_transformation_simple.dm | 10 +- code/modules/mob/new_player/new_player.dm | 6 +- code/modules/mob/transform_procs.dm | 85 +- code/modules/ninja/ninja_event.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/projectile/magic.dm | 12 +- .../Chemistry-Reagents/Drug-Reagents.dm | 4 +- .../Chemistry-Reagents/Medicine-Reagents.dm | 2 +- .../Chemistry-Reagents/Other-Reagents.dm | 3 +- .../Chemistry-Reagents/Toxin-Reagents.dm | 6 +- .../reagents/reagent_containers/syringes.dm | 14 +- .../research/xenobiology/xenobiology.dm | 7 +- icons/effects/genetics.dmi | Bin 7288 -> 7286 bytes tgstation.dme | 2 + 102 files changed, 1298 insertions(+), 1680 deletions(-) create mode 100644 code/game/machinery/computer/dna_console.dm create mode 100644 code/game/machinery/dna_scanner.dm diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index b03c73b01c0..9c9d1da8b9d 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -23,12 +23,13 @@ #define FRIDAY_13TH "Friday the 13th" //Human Overlays Indexes///////// -#define SPECIES_LAYER 26 // mutantrace colors... these are on a seperate layer in order to prvent +#define SPECIES_LAYER 27 // mutantrace colors... these are on a seperate layer in order to prvent +#define MUTATIONS_LAYER 26 //mutations. Hulk, Tk headglows, etc #define BODY_BEHIND_LAYER 25 #define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup) #define BODY_ADJ_LAYER 23 -#define MUTATIONS_LAYER 22 //Tk headglows etc. -#define AUGMENTS_LAYER 21 +#define AUGMENTS_LAYER 22 +#define FRONT_MUTATIONS_LAYER 21 //mutations that should appear above body and augments layer (e.g. laser eyes) #define DAMAGE_LAYER 20 //damage indicators (cuts and burns) #define UNIFORM_LAYER 19 #define ID_LAYER 18 @@ -49,7 +50,7 @@ #define R_HAND_LAYER 3 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 26 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 27 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 1bc6978f701..c4404bbb030 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1427,7 +1427,7 @@ B --><-- A stop_orbit() sleep(1) //sadly this is the only way to ensure the original orbit proc stops and resets the atom's transform. if (orbiting || !istype(A)) //post sleep re-check - return + return orbiting = A var/angle = 0 var/matrix/initial_transform = matrix(transform) diff --git a/code/controllers/subsystem/objects.dm b/code/controllers/subsystem/objects.dm index 61c7b804aea..24e206139b7 100644 --- a/code/controllers/subsystem/objects.dm +++ b/code/controllers/subsystem/objects.dm @@ -15,6 +15,7 @@ var/datum/subsystem/objects/SSobj NEW_SS_GLOBAL(SSobj) /datum/subsystem/objects/Initialize(timeofday, zlevel) + setupGenetics() for(var/atom/movable/AM in world) if (zlevel && AM.z != zlevel) continue diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index f351bd6d9cb..46f76fb41cd 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -59,7 +59,6 @@ var/datum/subsystem/ticker/ticker return ..() if(!syndicate_code_phrase) syndicate_code_phrase = generate_code_phrase() if(!syndicate_code_response) syndicate_code_response = generate_code_phrase() - setupGenetics() setupFactions() ..() diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 45f8ddab2f6..dc9d79c6b1b 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -813,8 +813,7 @@ body if(result) var/newtype = species_list[result] - hardset_dna(H, null, null, null, null, newtype) - H.regenerate_icons() + H.set_species(newtype) else if(href_list["purrbation"]) if(!check_rights(R_SPAWN)) return @@ -828,7 +827,7 @@ body usr << "Mob doesn't exist anymore" return - if(H.dna && H.dna.species.id == "human") + if(H.dna.species.id == "human") if(H.dna.features["tail_human"] == "None" || H.dna.features["ears"] == "None") usr << "Put [H] on purrbation." H << "You suddenly feel valid." diff --git a/code/datums/diseases/advance/symptoms/genetics.dm b/code/datums/diseases/advance/symptoms/genetics.dm index cb730215ee9..68875694060 100644 --- a/code/datums/diseases/advance/symptoms/genetics.dm +++ b/code/datums/diseases/advance/symptoms/genetics.dm @@ -31,7 +31,8 @@ Bonus ..() if(prob(SYMPTOM_ACTIVATION_PROB * 5)) // 15% chance var/mob/living/carbon/M = A.affected_mob - if(!check_dna_integrity(M)) return + if(!M.has_dna()) + return switch(A.stage) if(4, 5) M << "[pick("Your skin feels itchy.", "You feel light headed.")]" @@ -44,7 +45,7 @@ Bonus possible_mutations = (bad_mutations | not_good_mutations) - mutations_list[RACEMUT] var/mob/living/carbon/M = A.affected_mob if(M) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return archived_dna = M.dna.struc_enzymes @@ -52,10 +53,10 @@ Bonus /datum/symptom/genetic_mutation/End(datum/disease/advance/A) var/mob/living/carbon/M = A.affected_mob if(M && archived_dna) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return - hardset_dna(M, se = archived_dna) - domutcheck(M) + M.dna.struc_enzymes = archived_dna + M.domutcheck() /* ////////////////////////////////////// diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index eb38e8689af..1ee18603a61 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -43,7 +43,7 @@ affected_mob.adjustToxLoss(2) affected_mob.updatehealth() if(4) - if(!src.transformed && !src.carrier) + if(!transformed && !carrier) //Save original dna for when the disease is cured. original_dna = new affected_mob.dna.type affected_mob.dna.copy_dna(original_dna) @@ -51,24 +51,22 @@ affected_mob << "You don't feel like yourself.." var/datum/dna/transform_dna = strain_data["dna"] - transform_dna.transfer_identity(affected_mob) + transform_dna.transfer_identity(affected_mob, transfer_SE = 1) affected_mob.real_name = affected_mob.dna.real_name + affected_mob.updateappearance(mutcolor_update=1) + affected_mob.domutcheck() - updateappearance(affected_mob) - domutcheck(affected_mob) - - src.transformed = 1 - src.carrier = 1 //Just chill out at stage 4 + transformed = 1 + carrier = 1 //Just chill out at stage 4 return /datum/disease/dnaspread/Del() if (original_dna && transformed && affected_mob) - original_dna.transfer_identity(affected_mob) + original_dna.transfer_identity(affected_mob, transfer_SE = 1) affected_mob.real_name = affected_mob.dna.real_name - - updateappearance(affected_mob) - domutcheck(affected_mob) + affected_mob.updateappearance(mutcolor_update=1) + affected_mob.domutcheck() affected_mob << "You feel more like yourself." ..() \ No newline at end of file diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 1b83792a13c..b5913c3e71a 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -201,9 +201,8 @@ if(3) if(ishuman(affected_mob)) var/mob/living/carbon/human/human = affected_mob - if(human.dna && human.dna.species.id != "slime") - hardset_dna(human, null, null, null, null, /datum/species/slime) - human.regenerate_icons() + if(human.dna.species.id != "slime") + human.set_species(/datum/species/slime) /datum/disease/transformation/corgi name = "The Barkening" diff --git a/code/datums/martial.dm b/code/datums/martial.dm index 96d8726d596..2929c4b0a2e 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -27,34 +27,22 @@ /datum/martial_art/proc/basic_hit(mob/living/carbon/human/A,mob/living/carbon/human/D) A.do_attack_animation(D) - var/damage = rand(0,9) + var/damage = rand(0,9) + A.dna.species.punchmod - var/atk_verb = "punch" + var/atk_verb = A.dna.species.attack_verb if(D.lying) atk_verb = "kick" - else if(A.dna) - atk_verb = A.dna.species.attack_verb - - if(A.dna) - damage += A.dna.species.punchmod if(!damage) - if(A.dna) - playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) - else - playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - D.visible_message("[A] has attempted to [atk_verb] [D]!") - add_logs(A, D, "attempted to [atk_verb]") - return 0 + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + D.visible_message("[A] has attempted to [atk_verb] [D]!") + add_logs(A, D, "attempted to [atk_verb]") + return 0 var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/armor_block = D.run_armor_check(affecting, "melee") - if(A.dna) - playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) - else - playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) - + playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) D.visible_message("[A] has [atk_verb]ed [D]!", \ "[A] has [atk_verb]ed [D]!") @@ -104,24 +92,18 @@ var/atk_verb = pick("left hook","right hook","straight punch") - var/damage = rand(5,8) - if(A.dna) - damage += A.dna.species.punchmod + var/damage = rand(5,8) + A.dna.species.punchmod if(!damage) - if(A.dna) - playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) - else - playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - D.visible_message("[A] has attempted to hit [D] with a [atk_verb]!") - add_logs(A, D, "attempted to hit", atk_verb) - return 0 + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + D.visible_message("[A] has attempted to hit [D] with a [atk_verb]!") + add_logs(A, D, "attempted to hit", atk_verb) + return 0 var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/armor_block = D.run_armor_check(affecting, "melee") - playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) - + playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) D.visible_message("[A] has hit [D] with a [atk_verb]!", \ "[A] has hit [D] with a [atk_verb]!") diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 116bc8ac19c..f84c04f531a 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -976,10 +976,10 @@ usr << "Resetting DNA failed!" else var/mob/living/carbon/C = current - C.dna = changeling.first_prof.dna + changeling.first_prof.dna.transfer_identity(C, transfer_SE=1) C.real_name = changeling.first_prof.name - updateappearance(C) - domutcheck(C) + C.updateappearance(mutcolor_update=1) + C.domutcheck() else if (href_list["nuclear"]) switch(href_list["nuclear"]) @@ -1409,7 +1409,7 @@ var/mob/living/carbon/human/H = current - hardset_dna(H,null,null,null,null,/datum/species/abductor,null) + H.set_species(/datum/species/abductor) var/datum/species/abductor/S = H.dna.species switch(role) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index 83455d194f7..dab76ebf7d9 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -16,6 +16,9 @@ var/text_gain_indication = "" var/text_lose_indication = "" var/list/visual_indicators = list() + var/above_body = 0 //wether the mutation appear above or below the body layer + var/list/species_allowed = list() //to restrict mutation to only certain species + var/health_req //minimum health required to acquire the mutation /datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) set_block(owner) @@ -33,7 +36,7 @@ return before + injection + after /datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1) - if(owner && istype(owner) && owner.dna) + if(owner && owner.has_dna()) owner.dna.struc_enzymes = set_se(owner.dna.struc_enzymes, on) /datum/mutation/human/proc/check_block_string(se_string) @@ -51,17 +54,19 @@ /datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner) if(!owner || !istype(owner) || (src in owner.dna.mutations)) return 1 + if(species_allowed.len && !species_allowed.Find(owner.dna.species.id)) + return 1 + if(health_req && owner.health < health_req) + return 1 owner.dna.mutations.Add(src) - owner << text_gain_indication + if(text_gain_indication) + owner << text_gain_indication if(visual_indicators.len) - owner.update_mutation_overlays() + owner.update_mutations_overlay() /datum/mutation/human/proc/get_visual_indicator(mob/living/carbon/human/owner) return -/datum/mutation/human/proc/lose_indication(mob/living/carbon/human/owner) - owner.overlays.Remove(visual_indicators) - /datum/mutation/human/proc/on_attack_hand(mob/living/carbon/human/owner, atom/target) return @@ -76,9 +81,10 @@ /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) if(owner && istype(owner) && (owner.dna.mutations.Remove(src))) - owner << text_lose_indication + if(text_lose_indication) + owner << text_lose_indication if(visual_indicators.len) - owner.update_mutation_overlays() + owner.update_mutations_overlay() return 0 return 1 @@ -96,6 +102,8 @@ get_chance = 15 lowest_value = 256 * 12 text_gain_indication = "Your muscles hurt!" + species_allowed = list("human") //no skeleton/lizard hulk + health_req = 25 /datum/mutation/human/hulk/New() ..() @@ -583,32 +591,47 @@ message = replacetext(message," muh valids "," getting my kicks ") return trim(message) - /datum/mutation/human/laser_eyes - name = "Laser Eyes" quality = POSITIVE dna_block = NON_SCANNABLE text_gain_indication = "You feel pressure building up behind your eyes." + above_body = 1 + +/datum/mutation/human/laser_eyes/New() + ..() + visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-FRONT_MUTATIONS_LAYER) + +/datum/mutation/human/laser_eyes/get_visual_indicator(mob/living/carbon/human/owner) + return visual_indicators[1] /datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) if(owner.a_intent == "harm") owner.LaserEyes(target) +/mob/living/carbon/proc/update_mutations_overlay() + return -/mob/living/carbon/human/proc/update_mutation_overlays() - remove_overlay(MUTATIONS_LAYER) - var/image/standing +/mob/living/carbon/human/update_mutations_overlay() + remove_overlay(MUTATIONS_LAYER) //MUTATIONS_LAYER is behind the body layer + remove_overlay(FRONT_MUTATIONS_LAYER) //FRONT_MUTATIONS_LAYER is above the body layer + var/list/standing = list() + var/list/frontstanding = list() for(var/datum/mutation/human/CM in dna.mutations) + if(CM.species_allowed.len && !CM.species_allowed.Find(dna.species.id)) + CM.force_lose(src) + continue if(CM.visual_indicators.len) var/image/V = CM.get_visual_indicator(src) - if(!standing) - standing = V + if(CM.above_body) + frontstanding += V else - standing.overlays += V + standing += V - if(standing) + if(standing.len) overlays_standing[MUTATIONS_LAYER] = standing + if(frontstanding.len) + overlays_standing[FRONT_MUTATIONS_LAYER] = frontstanding apply_overlay(MUTATIONS_LAYER) - + apply_overlay(FRONT_MUTATIONS_LAYER) diff --git a/code/datums/spells/lichdom.dm b/code/datums/spells/lichdom.dm index ee2189c36f4..f199a06048f 100644 --- a/code/datums/spells/lichdom.dm +++ b/code/datums/spells/lichdom.dm @@ -55,7 +55,7 @@ lich.real_name = user.mind.name user.mind.transfer_to(lich) - hardset_dna(lich,null,null,lich.real_name,null,/datum/species/skeleton) + lich.hardset_dna(null,null,lich.real_name,null,/datum/species/skeleton) lich << "Your bones clatter and shutter as they're pulled back into this world!" charge_max += 600 var/mob/old_body = current_body @@ -98,7 +98,7 @@ marked_item.desc = "A terrible aura surrounds this item, its very existence is offensive to life itself..." marked_item.color = "#003300" user << "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As your organs crumble to dust in your fleshless chest you come to terms with your choice. You're a lich!" - hardset_dna(user, null, null, null, null, /datum/species/skeleton) + user.set_species(/datum/species/skeleton) current_body = user.mind.current if(ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a32bae29911..75d971cced4 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -41,7 +41,6 @@ clothes_req = 1 invocation = "BIRUZ BENNAR" invocation_type = "shout" - message = "You feel strong! You feel a pressure building behind your eyes!" range = -1 include_user = 1 centcom_cancast = 0 @@ -248,7 +247,7 @@ sound="sound/magic/Blind.ogg" /obj/effect/proc_holder/spell/targeted/genetic/blind - disabilities = 1 + disabilities = BLIND duration = 300 sound="sound/magic/Blind.ogg" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a59c0d7c867..373d98c3b36 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -280,11 +280,11 @@ var/list/blood_splatter_icons = list() //returns 1 if made bloody, returns 0 otherwise /atom/proc/add_blood(mob/living/carbon/M) - if(ishuman(M) && M.dna) + if(ishuman(M)) var/mob/living/carbon/human/H = M if(NOBLOOD in H.dna.species.specflags) return 0 - if(rejects_blood() || !istype(M) || !check_dna_integrity(M)) + if(rejects_blood() || !M.has_dna()) return 0 return 1 @@ -358,7 +358,7 @@ var/list/blood_splatter_icons = list() // Only adds blood on the floor -- Skie /atom/proc/add_blood_floor(mob/living/carbon/M) if(istype(src, /turf/simulated)) - if(check_dna_integrity(M)) //mobs with dna = (monkeys + humans at time of writing) + if(M.has_dna()) //mobs with dna = (monkeys + humans at time of writing) var/obj/effect/decal/cleanable/blood/B = locate() in contents if(!B) blood_splatter(src,M,1) diff --git a/code/game/dna.dm b/code/game/dna.dm index b402edbda36..59ae91cce50 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -1,19 +1,4 @@ -#define INJECTOR_TIMEOUT 300 -#define REJUVENATORS_INJECT 15 -#define REJUVENATORS_MAX 90 -#define NUMBER_OF_BUFFERS 3 -#define RADIATION_STRENGTH_MAX 15 -#define RADIATION_STRENGTH_MULTIPLIER 1 //larger has a more range - -#define RADIATION_DURATION_MAX 30 -#define RADIATION_ACCURACY_MULTIPLIER 3 //larger is less accurate - -#define RADIATION_IRRADIATION_MULTIPLIER 0.2 //multiplier for how much radiation a test subject recieves - -#define BAD_MUTATION_DIFFICULTY 2 -#define GOOD_MUTATION_DIFFICULTY 4 -#define OP_MUTATION_DIFFICULTY 5 /////////////////////////// DNA DATUM /datum/dna var/unique_enzymes @@ -27,26 +12,26 @@ var/mob/living/carbon/holder /datum/dna/New(mob/living/carbon/new_holder) - if(new_holder && istype(new_holder)) + if(new_holder) holder = new_holder -/datum/dna/proc/transfer_identity(mob/living/carbon/destination) - if(check_dna_integrity(destination)) - destination.dna.unique_enzymes = unique_enzymes - destination.dna.uni_identity = uni_identity - destination.dna.blood_type = blood_type - hardset_dna(destination, null, null, null, null, species.type) - destination.dna.features = features - destination.dna.real_name = real_name - destination.dna.mutations = mutations +/datum/dna/proc/transfer_identity(mob/living/carbon/destination, transfer_SE = 0) + destination.dna.unique_enzymes = unique_enzymes + destination.dna.uni_identity = uni_identity + destination.dna.blood_type = blood_type + destination.set_species(species.type, icon_update=0) + destination.dna.features = features + destination.dna.real_name = real_name + if(transfer_SE) + destination.dna.struc_enzymes = struc_enzymes /datum/dna/proc/copy_dna(datum/dna/new_dna) new_dna.unique_enzymes = unique_enzymes new_dna.struc_enzymes = struc_enzymes new_dna.uni_identity = uni_identity new_dna.blood_type = blood_type - new_dna.species = new species.type new_dna.features = features + new_dna.species = new species.type new_dna.real_name = real_name new_dna.mutations = mutations @@ -70,55 +55,72 @@ for(var/datum/mutation/human/HM in group) HM.force_lose(holder) -/datum/dna/proc/generate_uni_identity(mob/living/carbon/character) +/datum/dna/proc/generate_uni_identity() . = "" var/list/L = new /list(DNA_UNI_IDENTITY_BLOCKS) - if(istype(character)) - L[DNA_GENDER_BLOCK] = construct_block((character.gender!=MALE)+1, 2) - if(istype(character, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = character - if(!H.dna.species) - hardset_dna(H, null, null, null, null, /datum/species/human) - if(!hair_styles_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_list, hair_styles_male_list, hair_styles_female_list) - L[DNA_HAIR_STYLE_BLOCK] = construct_block(hair_styles_list.Find(H.hair_style), hair_styles_list.len) - L[DNA_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.hair_color) - if(!facial_hair_styles_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) - L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(facial_hair_styles_list.Find(H.facial_hair_style), facial_hair_styles_list.len) - L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) - L[DNA_SKIN_TONE_BLOCK] = construct_block(skin_tones.Find(H.skin_tone), skin_tones.len) - L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) + + L[DNA_GENDER_BLOCK] = construct_block((holder.gender!=MALE)+1, 2) + if(ishuman(holder)) + var/mob/living/carbon/human/H = holder + if(!hair_styles_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, hair_styles_list, hair_styles_male_list, hair_styles_female_list) + L[DNA_HAIR_STYLE_BLOCK] = construct_block(hair_styles_list.Find(H.hair_style), hair_styles_list.len) + L[DNA_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.hair_color) + if(!facial_hair_styles_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, facial_hair_styles_list, facial_hair_styles_male_list, facial_hair_styles_female_list) + L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(facial_hair_styles_list.Find(H.facial_hair_style), facial_hair_styles_list.len) + L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) + L[DNA_SKIN_TONE_BLOCK] = construct_block(skin_tones.Find(H.skin_tone), skin_tones.len) + L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) if(L[i]) . += L[i] else . += random_string(DNA_BLOCK_SIZE,hex_characters) return . -/datum/dna/proc/generate_struc_enzymes(mob/living/carbon/character) - var/list/L = list("0","1","2","3","4","5","6") +/datum/dna/proc/generate_struc_enzymes() var/list/sorting = new /list(DNA_STRUC_ENZYMES_BLOCKS) var/result = "" for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations) - if(A.name == RACEMUT && istype(character,/mob/living/carbon/monkey)) + if(A.name == RACEMUT && ismonkey(holder)) sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE) - character.dna.mutations.Add(A) + mutations |= A else - sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, L) + sorting[A.dna_block] = random_string(DNA_BLOCK_SIZE, list("0","1","2","3","4","5","6")) for(var/B in sorting) result += B return result -/datum/dna/proc/generate_unique_enzymes(mob/living/carbon/character) +/datum/dna/proc/generate_unique_enzymes() . = "" - if(istype(character)) - real_name = character.real_name - . += md5(character.real_name) + if(istype(holder)) + real_name = holder.real_name + . += md5(holder.real_name) else - . += repeat_string(DNA_UNIQUE_ENZYMES_LEN, "0") + . += random_string(DNA_UNIQUE_ENZYMES_LEN, hex_characters) return . +/datum/dna/proc/update_ui_block(blocknumber) + if(!blocknumber || !ishuman(holder)) + return + var/mob/living/carbon/human/H = holder + switch(blocknumber) + if(DNA_HAIR_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.hair_color)) + if(DNA_FACIAL_HAIR_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.facial_hair_color)) + if(DNA_SKIN_TONE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(skin_tones.Find(H.skin_tone), skin_tones.len)) + if(DNA_EYE_COLOR_BLOCK) + setblock(uni_identity, blocknumber, sanitize_hexcolor(H.eye_color)) + if(DNA_GENDER_BLOCK) + setblock(uni_identity, blocknumber, construct_block((H.gender!=MALE)+1, 2)) + if(DNA_FACIAL_HAIR_STYLE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(facial_hair_styles_list.Find(H.facial_hair_style), facial_hair_styles_list.len)) + if(DNA_HAIR_STYLE_BLOCK) + setblock(uni_identity, blocknumber, construct_block(hair_styles_list.Find(H.hair_style), hair_styles_list.len)) + /datum/dna/proc/mutations_say_mods(message) if(message) for(var/datum/mutation/human/M in mutations) @@ -131,79 +133,130 @@ spans |= M.get_spans() return spans -/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, features) - if(!ismonkey(owner) && !ishuman(owner)) - return - if(!owner.dna) - create_dna(owner, mrace) +/datum/dna/proc/is_same_as(datum/dna/D) + if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name) + if(species.type == D.species.type && features == D.features && blood_type == D.blood_type) + return 1 + return 0 - if(mrace && !ismonkey(owner)) - if(owner.dna.species.exotic_blood) - var/datum/reagent/exotic_blood = new owner.dna.species.exotic_blood - owner.reagents.del_reagent(exotic_blood.id) - owner.dna.species = new mrace() +//used to update dna UI, UE, and dna.real_name. +/datum/dna/proc/update_dna_identity() + uni_identity = generate_uni_identity() + unique_enzymes = generate_unique_enzymes() - if(features) - owner.dna.features = features +/datum/dna/proc/initialize_dna(newblood_type) + if(newblood_type) + blood_type = newblood_type + unique_enzymes = generate_unique_enzymes() + uni_identity = generate_uni_identity() + struc_enzymes = generate_struc_enzymes() + features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None") - if(real_name) - owner.real_name = real_name - owner.dna.generate_unique_enzymes(owner) - if(blood_type) - owner.dna.blood_type = blood_type - if(ui) - owner.dna.uni_identity = ui - updateappearance(owner) +/////////////////////////// DNA MOB-PROCS ////////////////////// - if(se) - owner.dna.struc_enzymes = se - domutcheck(owner) - - check_dna_integrity(owner) - - owner.regenerate_icons() +/mob/proc/set_species(datum/species/mrace, icon_update = 1) return -/proc/check_dna_integrity(mob/living/carbon/character) - if(!character || !(istype(character, /mob/living/carbon/human) || istype(character, /mob/living/carbon/monkey))) //Evict xenos from carbon 2012 +/mob/living/carbon/set_species(datum/species/mrace, icon_update = 1) + if(has_dna()) + if(dna.species.exotic_blood) + var/datum/reagent/EB = dna.species.exotic_blood + reagents.del_reagent(initial(EB.id)) + dna.species = new mrace() + +/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = 1) + ..() + if(icon_update) + update_body() + update_hair() + update_mutcolor() + update_mutations_overlay()// no lizard with human hulk overlay please. + + +/mob/proc/has_dna() + return + +/mob/living/carbon/has_dna() + return dna + + +/mob/living/carbon/human/proc/hardset_dna(ui, se, newreal_name, newblood_type, datum/species/mrace, newfeatures) + + if(newfeatures) + dna.features = newfeatures + + if(mrace) + set_species(mrace, icon_update=0) + + if(newreal_name) + real_name = newreal_name + dna.generate_unique_enzymes() + + if(newblood_type) + dna.blood_type = newblood_type + + if(ui) + dna.uni_identity = ui + updateappearance(icon_update=0) + + if(se) + dna.struc_enzymes = se + domutcheck() + + if(mrace || newfeatures || ui) + update_body() + update_hair() + update_mutcolor() + update_mutations_overlay() + + +/mob/living/carbon/proc/create_dna() + dna = new /datum/dna(src) + if(!dna.species) + dna.species = new /datum/species/human() + +//proc used to update the mob's appearance after its dna UI has been changed +/mob/living/carbon/proc/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) + if(!has_dna()) return - if(!character.dna) - if(ready_dna(character)) - return character.dna + gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE + +mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) + ..() + var/structure = dna.uni_identity + hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) + facial_hair_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) + skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] + eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) + facial_hair_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] + hair_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] + if(icon_update) + update_body() + update_hair() + if(mutcolor_update) + update_mutcolor() + if(mutations_overlay_update) + update_mutations_overlay() + + +/mob/proc/domutcheck() + return + +/mob/living/carbon/domutcheck() + if(!has_dna()) return - if(length(character.dna.uni_identity) != DNA_UNI_IDENTITY_BLOCKS*DNA_BLOCK_SIZE) - character.dna.uni_identity = character.dna.generate_uni_identity(character) - if(length(character.dna.struc_enzymes)!= DNA_STRUC_ENZYMES_BLOCKS*DNA_BLOCK_SIZE) - character.dna.struc_enzymes = character.dna.generate_struc_enzymes() - if(!character.dna.real_name || length(character.dna.unique_enzymes) != DNA_UNIQUE_ENZYMES_LEN) - character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) - return character.dna + for(var/datum/mutation/human/A in good_mutations | bad_mutations | not_good_mutations) + if(ismob(A.check_block(src))) + return //we got monkeyized/humanized, this mob will be deleted, no need to continue. -/proc/ready_dna(mob/living/carbon/character, blood_type) - if(!istype(character, /mob/living/carbon/monkey) && !istype(character, /mob/living/carbon/human)) - return - if(!character.dna) - create_dna(character) - if(blood_type) - character.dna.blood_type = blood_type - character.dna.real_name = character.real_name - character.dna.uni_identity = character.dna.generate_uni_identity(character) - character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character) - character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) - character.dna.features = character.features - return character.dna + update_mutations_overlay() -/proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna - C.dna = new /datum/dna(C) - C.dna.holder = C - if(S) C.dna.species = new S() // do not remove; this is here to prevent runtimes -/////////////////////////// DNA DATUM -/////////////////////////// DNA HELPER-PROCS +/////////////////////////// DNA HELPER-PROCS ////////////////////////////// /proc/getleftblocks(input,blocknumber,blocksize) if(blocknumber > 1) return copytext(input,1,((blocksize*blocknumber)-(blocksize-1))) @@ -219,45 +272,35 @@ if(!istring || !blocknumber || !replacement || !blocksize) return 0 return getleftblocks(istring, blocknumber, blocksize) + replacement + getrightblocks(istring, blocknumber, blocksize) -/proc/scramble(input,rs,rd) - var/length = length(input) - var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) - if(ran == 0) ran = pick(-1,1) //hacky, statistically should almost never happen. 0-change makes people mad though - else if(ran < 0) ran = round(ran) //negative, so floor it - else ran = -round(-ran) //positive, so ceiling it - return num2hex(Wrap(hex2num(input)+ran, 0, 16**length), length) - -/proc/randomize_radiation_accuracy(position_we_were_supposed_to_hit, radduration, number_of_blocks) - return Wrap(round(position_we_were_supposed_to_hit + gaussian(0, RADIATION_ACCURACY_MULTIPLIER/radduration), 1), 1, number_of_blocks+1) - /proc/randmut(mob/living/carbon/M, list/candidates, difficulty = 2) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return var/datum/mutation/human/num = pick(candidates) . = num.force_give(M) return /proc/randmutb(mob/living/carbon/M) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return var/datum/mutation/human/HM = pick((bad_mutations | not_good_mutations) - mutations_list[RACEMUT]) . = HM.force_give(M) /proc/randmutg(mob/living/carbon/M) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return var/datum/mutation/human/HM = pick(good_mutations) . = HM.force_give(M) /proc/randmuti(mob/living/carbon/M) - if(!check_dna_integrity(M)) return - var/num = rand(1, DNA_STRUC_ENZYMES_BLOCKS) + if(!M.has_dna()) + return + var/num = rand(1, DNA_UNI_IDENTITY_BLOCKS) var/newdna = setblock(M.dna.uni_identity, num, random_string(DNA_BLOCK_SIZE, hex_characters)) M.dna.uni_identity = newdna return /proc/clean_dna(mob/living/carbon/M) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return M.dna.remove_all_mutations() @@ -266,691 +309,20 @@ randmut(M, candidates, difficulty) /proc/scramble_dna(mob/living/carbon/M, ui=FALSE, se=FALSE, probability) - if(!check_dna_integrity(M)) + if(!M.has_dna()) return 0 if(se) for(var/i=1, i<=DNA_STRUC_ENZYMES_BLOCKS, i++) if(prob(probability)) M.dna.struc_enzymes = setblock(M.dna.struc_enzymes, i, random_string(DNA_BLOCK_SIZE, hex_characters)) - domutcheck(M) + M.domutcheck() if(ui) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) if(prob(probability)) M.dna.uni_identity = setblock(M.dna.uni_identity, i, random_string(DNA_BLOCK_SIZE, hex_characters)) - updateappearance(M) + M.updateappearance() return 1 -/////////////////////////// DNA HELPER-PROCS - -/////////////////////////// DNA MISC-PROCS -/proc/updateappearance(mob/living/carbon/C) - if(!check_dna_integrity(C)) - return 0 - - var/structure = C.dna.uni_identity - C.gender = (deconstruct_block(getblock(structure, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE - if(istype(C, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = C - H.hair_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) - H.facial_hair_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) - H.skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] - H.eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) - H.facial_hair_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] - H.hair_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] - - H.update_body() - H.update_hair() - return 1 - -/proc/domutcheck(mob/living/carbon/M) - if(!check_dna_integrity(M)) - return 0 - - var/mob/living/carbon/C = M - var/mob/living/carbon/temp - - for(var/datum/mutation/human/A in good_mutations | bad_mutations | not_good_mutations) - temp = A.check_block(C) - if(ismob(temp)) - C = temp - -//////////////////////////////////////////////////////////// Monkey Block - if(M) - M.regenerate_icons() - return 1 -/////////////////////////// DNA MISC-PROCS - - -/////////////////////////// DNA MACHINES -/obj/machinery/dna_scannernew - name = "\improper DNA scanner" - desc = "It scans DNA structures." - icon = 'icons/obj/Cryogenic2.dmi' - icon_state = "scanner" - density = 1 - var/locked = 0 - anchored = 1 - use_power = 1 - idle_power_usage = 50 - active_power_usage = 300 - var/damage_coeff - var/scan_level - var/precision_coeff - -/obj/machinery/dna_scannernew/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/clonescanner(null) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(null) - component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) - component_parts += new /obj/item/weapon/stock_parts/console_screen(null) - component_parts += new /obj/item/stack/cable_coil(null, 1) - component_parts += new /obj/item/stack/cable_coil(null, 1) - RefreshParts() - - -/obj/machinery/dna_scannernew/RefreshParts() - scan_level = 0 - damage_coeff = 0 - precision_coeff = 0 - for(var/obj/item/weapon/stock_parts/scanning_module/P in component_parts) - scan_level += P.rating - for(var/obj/item/weapon/stock_parts/manipulator/P in component_parts) - precision_coeff = P.rating - for(var/obj/item/weapon/stock_parts/micro_laser/P in component_parts) - damage_coeff = P.rating - -/obj/machinery/dna_scannernew/update_icon() - - //no power or maintenance - if(stat & (NOPOWER|BROKEN)) - icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_unpowered" - return - - if((stat & MAINT) || panel_open) - icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_maintenance" - return - - //running and someone in there - if(occupant) - icon_state = initial(icon_state)+ "_occupied" - return - - //running - icon_state = initial(icon_state)+ (state_open ? "_open" : "") - -/obj/machinery/dna_scannernew/power_change() - ..() - update_icon() - -/obj/machinery/dna_scannernew/proc/toggle_open(mob/user) - if(panel_open) - user << "Close the maintenance panel first." - return - - if(state_open) - close_machine() - return - - else if(locked) - user << "The bolts are locked down, securing the door shut." - return - - open_machine() - -/obj/machinery/dna_scannernew/container_resist() - var/mob/living/user = usr - var/breakout_time = 2 - if(state_open || !locked) //Open and unlocked, no need to escape - state_open = 1 - return - user.changeNext_move(CLICK_CD_BREAKOUT) - user.last_special = world.time + CLICK_CD_BREAKOUT - user << "You lean on the back of [src] and start pushing the door open... (this will take about [breakout_time] minutes.)" - user.visible_message("You hear a metallic creaking from [src]!") - - if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds - if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked) - return - - locked = 0 - visible_message("[user] successfully broke out of [src]!") - user << "You successfully break out of [src]!" - - open_machine() - -/obj/machinery/dna_scannernew/close_machine() - if(!state_open) - return 0 - - ..() - - // search for ghosts, if the corpse is empty and the scanner is connected to a cloner - if(occupant) - if(locate(/obj/machinery/computer/cloning, get_step(src, NORTH)) \ - || locate(/obj/machinery/computer/cloning, get_step(src, SOUTH)) \ - || locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \ - || locate(/obj/machinery/computer/cloning, get_step(src, WEST))) - - occupant.notify_ghost_cloning("Your corpse has been placed into a cloning scanner. Re-enter your corpse if you want to be cloned!") - return 1 - -/obj/machinery/dna_scannernew/open_machine() - if(state_open) - return 0 - - ..() - - return 1 - -/obj/machinery/dna_scannernew/relaymove(mob/user as mob) - if(user.stat || locked) - return - - open_machine() - return - -/obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params) - - if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant... - update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed - return - - if(exchange_parts(user, I)) - return - - if(default_pry_open(I)) - return - - if(default_deconstruction_crowbar(I)) - return - - if(istype(I, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = I - if(!ismob(G.affecting)) - return - - if(!state_open) - user << "Open the scanner first." - return - - var/mob/M = G.affecting - M.loc = loc - user.stop_pulling() - qdel(G) - -/obj/machinery/dna_scannernew/attack_hand(mob/user) - if(..(user,1,0)) //don't set the machine, since there's no dialog - return - - toggle_open(user) - -/obj/machinery/dna_scannernew/blob_act() - if(prob(75)) - qdel(src) - - -//DNA COMPUTER -/obj/machinery/computer/scan_consolenew - name = "\improper DNA scanner access console" - desc = "Scan DNA." - icon_screen = "dna" - icon_keyboard = "med_key" - density = 1 - circuit = /obj/item/weapon/circuitboard/scan_consolenew - var/radduration = 2 - var/radstrength = 1 - - var/list/buffer[NUMBER_OF_BUFFERS] - - var/injectorready = 0 //Quick fix for issue 286 (screwdriver the screen twice to restore injector) -Pete - var/current_screen = "mainmenu" - var/obj/machinery/dna_scannernew/connected = null - var/obj/item/weapon/disk/data/diskette = null - anchored = 1 - use_power = 1 - idle_power_usage = 10 - active_power_usage = 400 - -/obj/machinery/computer/scan_consolenew/attackby(obj/item/I, mob/user, params) - if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES - if (!src.diskette) - if(!user.drop_item()) - return - I.loc = src - src.diskette = I - user << "You insert [I]." - src.updateUsrDialog() - return - else - ..() - return - -/obj/machinery/computer/scan_consolenew/New() - ..() - - spawn(5) - for(dir in list(NORTH,EAST,SOUTH,WEST)) - connected = locate(/obj/machinery/dna_scannernew, get_step(src, dir)) - if(!isnull(connected)) - break - spawn(250) - injectorready = 1 - return - return - -/obj/machinery/computer/scan_consolenew/attack_hand(mob/user) - if(..()) - return - ShowInterface(user) - -/obj/machinery/computer/scan_consolenew/proc/ShowInterface(mob/user, last_change) - if(!user) return - var/datum/browser/popup = new(user, "scannernew", "DNA Modifier Console", 800, 630) // Set up the popup browser window - if(!( in_range(src, user) || istype(user, /mob/living/silicon) )) - popup.close() - return - popup.add_stylesheet("scannernew", 'html/browser/scannernew.css') - - var/mob/living/carbon/viable_occupant - var/occupant_status = "