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
delta 8590
zcmc(kc{r5c|NjS-DD;jNNs~~vD3KzRNGN3ADWvSOGu)!`mXNWNE&DQt7;8*Ywqh{G
z*oTm1FxDB2nfcw*`}4W3-}n2^_qu++@Avxp!?~~fKKFT@^L(B2Jdblv-XiPR6zh8t
zmgaa-AzkgpB9MxdW}kJLmMsxwYzq^b-4aSna4)WAo~{|q$Esev^VQin#DcNAW`4#0sVRc*{B=NyPw{H$7
z@lJh`?c*F+{UobjAt5a(T)%urKSvj(YqSbrtH{NQ?4=(v)DwSNy<-<}cwc${fWTU9
zx5mRtmU%c?&aOb-)oxw2II%)Ocj969nGG>GnUxdOJXQDX+H7&;aL);^K!2qTNV{x+
zL<+aw_~SscMTBfv#Sp)JIY~VtxqLuw%JTBf8m^sMubl4fD|fzFT>WlVp)=&-n4{?r
z_(p`nk2NiK?>c{}OaIGJg}-3h>CQF(V-ML{th8*q_L^@#_VT)o85)lK#W@_wvpe}|
z=-oMsJN3wgCP^;JSu^{~+rS+_?6hO$sh<;vsBv!JQsd+@<1B~$&06>mjhjTImU-{W
zxmJ50PdW31Yt{LA=4tJ#`lTkgCpRsnoPGc=#fOvx4tgIs7cPAACsrnBnK}TmMdpHH!?{>5{Z;a}BauBN@4dU3$um^c@@YTaM-Xmi}bI%SKMjy&}
z?=m7L_ezvD%Py0a)w^)GgX3E|@4H9k{N3W`Duu10?|oxY`s&+xRy~fu7W69k$(qG7
zT|Ledd9?CEt0h%$|8LQcMH@s)SW-QAe&dF@Rq;pSb!dpCq-(G15Az&f17xC06x)k=<4stic~f;
z)PVi#bEk_fVq{}y65|K{Ds&7wl+E5zo2TrzWj6l-yXjfj8~DbrujD&>5q5nlcL;jL
zE_eHHV{J9ILz``<&yTnsfAXnGr0nG+2KuAf+O%e4rp0}s#r9fkr7(=tj25U@4MhUP
zx3aBHjmQUgOCH$^`Sid=lLFPwd}c`-#Yn*vLN$A%2^K<6(VS{6ku*+Zparf%_Fa}
z%;~k->>_(c=}#j+9L<$Xk*TX_lmf~p^El)OjkLQDWJj~v20oshBWNQA+
zl;;6rCG-vSezp_!3$E3+A|qp^o=y9TaJ(%1|PwoCxW%w
zzZM}nNm!U;xb36vOPL=4we$~aJ(Ls|(--RSn#xj(6e?^Kx9YmnwLLq8$dcDdHp6<~
zy?+DVd`h>QE8B19{+Ywj>rIR%xUfa4((CKv48aghW*DS+zW&babw~t>u-YtQKaG9L
z9%~=v+v;y1kVyE9WO}Q-Co(7!(l&R>)1SepTk_oljiFD4mT{lmE786EXRvIP_PydblsROQBJh
z9&=5`;OlxXE(;Y)>}-VrQ~a|;BPaoaaJ+wWe}X@kE?hSQ*?W!CgqGbv9oXbpsEcc>%_n*r7{FNUdmS#
zHrngRzyxqehkbR73|rVZw_pRXZ-W%!=YSggZXRRlt5`X-m;LB(noOouA{P|nHd+C$&b&KoFh$qm
z0PWuxJKkx-?gQ@sv^xKZ@!&SghwH)OA_Ug2;~Zby@jp?&UospYrden+j8kcKDQX*+
z&;QJXEc^BB?`^5(9iuY7_?uXQDdc-9?)l&VSoJ(mcV~&0F5H*5$32SLJf`Ja+JM$S_Yez2&UuFF$`!*V*6X_R$5Ct=5tX?
zh2ZE$8I+%l#e+(ra33)hAbq#h5&_SzjjeB2Q4H;sUP78Tz#4pUj*sUe
zF<=s6@vExixqa_~dXn<%EPU^$+3odGuPURw^5P+$rR+4l;EAZc_|Z4ZchMq(qlCh5
z{X#P=`R`-mE{bYF&qnFMK|R}@ixTXi)ZM9R;dW=8flrQvn(+8DVEa|-z`**beU!uX
zow1=%%2mn9F~q}+P`~Y}pw}uw79bzp>d5bE?w)=wEh%W0dXq83zI<%~P+`c1hILzKsJqp&R
zbu68G8@IHg>Z^3_cFJXHp|Jw-$kK|lDV=Y5VOpi5NS_=5{91T_0hNY^fr;5j0rZSt
zI1HN|wys^yFp0t=ztk+k^WXC0Djs}Uo=Uo*n7{5bunvKbF~A2Skc*CLk3CGAs_6LM
zw1iAZV?U$O-1a@*HhtyJ_jk_1hGxO6A1oCz&l=9ZR8^d0h}I#iB%E6c9b8j3itHBi
zl+I?WjquQic35`XHbou7!}C3jJCit41wWUsvuPJ4
z#InC1rw404b!1CToc(EharIM-;
zOJOi`v#GuMh!|y>sCsbBvgZ4`cp`0z0Ot10r3ooQ;XPNx6qM4%|8)6(xz
zEj##Lym+}XOD`e=TxWi9jDdAJ(z>>yN-eTjlamFzbLCD%A}ood)?Kx7#sEb9kT!oW<+Px$3kt%+-a
zjJFU-)tgY{gBsVU6h8~OB5?TOGveP)#B|Q=>qxXw{OBQ3%{THY>4Rn$HsiX)jX>jU
zwq9XQ1u#+827+>mEE6@0^I5>Uj{$w7q%`#rqP0!)6XomkhUw}j_fY$DhB2@7GA0<`
z`g51JkoiA7d|1zvxaphfM3>P>x7IWZ670d3GHFLspHLGMm
z`AD5T{=nN%3izKa100!kq)nJ(q$pR|Z
zTKya2*Pd5XJz}7px(wJ{ia=)AUfU)Pk7~owdHfjnx~gU_5hLG)(pM%kj%Hs6{m%J=
z4`^uX4-Rjj9O*ZAZ@a3^yd{{?sEIw^k-iMdb2+DMw0!>DFxBd+(|CR5n
z&0TBHGmMt-A1#n?48(oEbquDZe(e3m_nrM`GXu<@8%f(G*wmu6yRxF3BWwM@Rt@Wd
zp@2dVxO~BFtPD(Mw0kk0te~{DfM#@??fe9qPb$6YZEktgzn4=r3jX_TLwI%z=03XR
ztp{rTnQpNAqlmegMUv|l`{>t=e->XiQ1$Y;-xdE@!&$&c$tkwc!lDMilVW7hJzPR5
zHi9_NW)*ADJ^i!*B7NmAOfJps%q^HY_(cAk$_uJT%9U?0rOn1%hc{ISAcBGHs)Y%BY(aAZ|?u^l?KTSj4n?neGL;ls$D
z+_lGm`&XAG;1>^OfGIY)1+5cIAQW`#58tO{bp0@
z>E=uq@%iOe6v778Es^=be9wMwDi=n6FH}p!<|H}NwK#9SKIMdCX;pTjY0I3?bi7E{kkiR185%Xme7@l{;D5V
z&>#=5%%x739umG&yto>Pcq3B|E{}<4JDuo%xD-Q(e7<)q6(ohMf7b?SA?83XlN~0^
zx6wF$)n{_BSz9(5M(i7X9%S>s<8HR>Uq`plW~vc^_acv_W%-3B{}MM8>AJs@DEkti
zz9f~`o^h6_MorlLA?O!MKC=?*Psv}>)4wWjZzY^lf{dajm{g8p`0aSkK+f0Q)s!Z6
zol8ys>b8rEyX6Pj8UXMooEa-?)9oy`-6LbITDlzJ4z8S(1UJ>S;eTUwF|Dp`e&j5~
zr?A%%0UkxOJU~rJq-={L+EH=
zeP-xqT*b8I?aqJD8>#o_;Gk;dTPA-gz{+2xWjlP8K~Vn(t3NP$7x=80I1SM~#lpud
z?GAt?lYjqQ{4bTv`2TeW)WI`>XYTHFsU-q58EbQ1BkQTVS_V!}-g5hOY|oJxDIMxG
z(U=qP{5`u8krH8*LIffr$fr#w7LVEf$^)LELsTA0Y?rB+l{S8f4EhbkF7$TPDZc0<
z10LcK$WcKp^*cs_GW&K>s9&Tq9O!AWJE^+wMCB8;Z-VIUkGJ+WKXKwjx}tCCXYjlv
zo~i2+5MV~cBmMWi1DFqujg8?VXo8HE_QixHA`!cZQT5m&+I@d}!bD3e>TPuN9ECc!
z9fZT-3Y@Y6+dDHgoxY=^
z_r}GGU{ez3;v~V&J2-r+3W9vlfG7iZ1=p`?6(|l1rig%R
zzuh_ev`*INH$O2mY**7<=SCfmAi&*OTovYbvG9gX)3vK}4r?;TnpWu*53bNcC|-!M
znzs9p8~S-4IjR0X?OGlRk|`hXlv0zlP<*rBkT%a*mLIUq$reT*7>W-&D8UNsL5UgJSf
z`Tpc8ld-?gfD{)T6eOZ0EDVD6n5`38ev3j8D7&nMQK6O_o0=BwuiaEsTnbp}@9%eA
zi|d$?kdeW!PBbBUdvzy*NzJhUKu3yCI%nSZA&wCy%W>%8cD!ZmHo?qQYd{ZZG)iEV
zA62TF{V<+A9xUC3qpEC7V#@ikvZ}htA<^{t(}5(XA>1{XqQU27Z^9`|Z>Ex7Qy(bW
zWuU~=JG?_w3)~4omU^%T2LV?*wm^{Qyi3aEnpIaRJh`Ig_klRT=?_wYcoeHEv@(T1
zE;9gcf4h9Zvk_C2YorZ2vaq2(Rpo)iwo~x2@}mN2Uq^YT#v3oS!-H~tzpc|1@nNu(ozW}7N0x@*tmqWbT9e*vBRhT6`Yrs7o6kX
zpBYS*eOFNUQUv1Ru3;sa?Dr30OPw^7JCl^ip)xl&cZQ$;>PfZi5VAS(SG0`DjkC!j
zuhoQ1FWUL7z5V_~5%611onaBFV@!MA`15Vi)y3u75Cfd#PcMbJZ!tz)kV$xA5BWSF
zC;z{~FZx&nlb5d^zx^n+^wM?nJo_{u-qua*t|ss_DJhhGEa+bFZM@s)v{r0^{KULr
zrEK}m?FZm2x97d01Un?zmcF{l&yiiLRSrYwMopR#Gjx4c@BGW-(l5qF3#&Ur&sUjGn<@R$UGTV22icMi=->KYmn;
zh=^e3;{36`!4gBT$vW4OUumhS`k)K2z6?7arB1fFaajR&h?ONNG4V70H#
zqHR)X_b%mtCc~5##Rv%rNe5p$f2=d~(1WUA4_VkK=sX|$i|^gL#~0Tjuc%ns-~TAj
zu=tr=X>ILw6bdEI$N3yI4X_c)WH54mxXK=!?51LT1^@v36ZDOmP*O^Y07o_$v&u|L
ziFV{r1OV3We`eIv(^EkPFj>mlMOe<)Y9p91aX%7A_LbbACkZHqr*_vTkHEv(*_X}9
zmobYEZew;0Dn0d|%PkJo8ZTU;%jCMgy@lcs45OZS0aq@|^q
z*15O0H#jy{HaTf?kd;Mv+pr`N^bzAnk8;8JxxKx;IN?u_2lsb{SLzr35?;K)Ij
z4FoTX==9K@EakC)oz4}sAggW2HZGh5TsbZGhx#(tICx|EWHu9Rb=Q2pnrDW)M81!h
z@B$`=&B~JNH>t-!Q5vhNOxT-d?zKg(^mEAsg0!X$PnI)TfS&4+tKA>0Ab{>buJEZX
zTwHtpV+9>@9?k)ZhTmiCZ(@Q$r9`yA)%sTbLVGfF6qIVPBYD3OMZt0lwY9Z@x3&4r
z4!+ke;EPh1yLHP|4mP|&1%U4-O#2wq)61a_y!)YO7n*IOPe~EDt-$5{SFM=C8Q!?t
z6bi0rOH0ezLd#&)m16@~Y~DzN6Kp~k
zL4caaKE6vncOR@hpAAeV1RqPVTmbI}Xro=M5lD@mW2;2jN$iU|B
z9?+M5|7Vhd^iJO7$YJscWMAG1#r_AH!Z6VgPUfvE;r}fq@LxCdv2*1JM8E!|l-U$n
z6pZ}k{KXt*4GC#+dO%g
z7a$@y2uY1w(38)|T%pZ7-=Z5=a>r^&J^9?twT9nIB4Q5-2QRKH-}L^Ji?KP>ge=g2
zzdKaTRB;50SI&H{)jcVoHA;E9QGR#f4J|o|N)-%pD-u~8RrL6cNVm@HA
zc><%VylYA9a{+c6noNB{Z)}a~j!@JU6)2(%8y$EBy?caS>*Qutie_xLHPk`nvS|Q-HSp#p>RXWEUX!?8F$Y3{4r0eY_9;h+0$8XspdJh
zo&XN?hUBSPA$0&k|5#V&@8#ivyb%BQOoIN!Z00k8Q-eb45PEGTbJgWkTFsLG{5SyN
sWc$C)E?~v~@1u(z^APm^($F^s`$8=BW1mw?81sEC4PEsLHM{Wt14Y%@f&c&j
From 19550009ce8f249c3d61838eb30a88f01e1ff444 Mon Sep 17 00:00:00 2001
From: Casey
Date: Mon, 3 Jul 2023 06:21:45 -0400
Subject: [PATCH 04/21] Tweaks and tidying
---
code/_helpers/global_lists_vr.dm | 12 +-
.../objects/effects/semirandom_mobs_vr.dm | 62 +-
.../objects/items/devices/denecrotizer_vr.dm | 2 +-
.../objects/items/weapons/capture_crystal.dm | 30 +-
code/game/objects/micro_structures.dm | 2 +-
code/game/objects/mob_spawner_vr.dm | 2 +-
code/game/objects/random/mob_vr.dm | 2 +-
.../crates_lockers/largecrate_vr.dm | 24 +-
.../objects/structures/ghost_pods/event_vr.dm | 15 +
code/game/turfs/flooring/seasonal.dm | 28 +-
code/modules/casino/spawnergrenade_casino.dm | 4 +-
code/modules/food/food/snacks.dm | 4 +-
code/modules/mob/living/simple_mob/sd_pets.dm | 6 +-
.../subtypes/animal/farm animals/chicken.dm | 2 +-
.../living/simple_mob/subtypes/vore/jelly.dm | 13 +-
.../subtypes/vore/mobs_monsters/clowns/Big.dm | 6 +-
.../vore/mobs_monsters/clowns/Clowns.dm | 2 +-
.../vore/mobs_monsters/clowns/bigclowns.dm | 46 +-
.../subtypes/vore/mobs_monsters/clowns/bus.dm | 6 +-
.../vore/mobs_monsters/clowns/busclowns.dm | 44 +-
.../vore/mobs_monsters/clowns/c_shift.dm | 12 +-
.../vore/mobs_monsters/clowns/hespawner.dm | 4 +-
.../mobs_monsters/clowns/honkelemental.dm | 6 +-
.../mobs_monsters/clowns/regularclowns.dm | 48 +-
.../simple_mob/subtypes/vore/morph/morph.dm | 56 +-
.../living/simple_mob/subtypes/vore/otie.dm | 54 +-
.../living/simple_mob/subtypes/vore/wolf.dm | 24 +-
.../subtypes/vore/zz_vore_overrides.dm | 5 -
code/modules/mob/theme_lists.dm | 10 +
code/modules/rogueminer_vr/controller.dm | 8 +-
code/modules/rogueminer_vr/roguemines_mobs.dm | 4 +-
code/modules/telesci/telesci_computer.dm | 8 +-
code/modules/vore/eating/belly_obj_vr.dm | 4 +-
code/modules/vore/eating/living_vr.dm | 4 +-
code/modules/vore/mouseray.dm | 16 +-
.../artifacts/replicator_vr.dm | 6 +-
maps/expedition_vr/aerostat/_aerostat.dm | 8 +
.../aerostat/_aerostat_science_outpost.dm | 2 +-
maps/gateway_archive_vr/snow_outpost.dm | 2 +-
maps/gateway_vr/snow_outpost.dm | 2 +-
maps/gateway_vr/snowfield.dm | 4 +-
maps/gateway_vr/wildwest.dm | 8 +-
maps/gateway_vr/zoo.dmm | 2 +-
maps/stellar_delight/stellar_delight2.dmm | 2 +-
.../surface_submaps/plains/emptycabin.dmm | 328 +++
.../surface_submaps/plains/greatwolfden.dmm | 1597 ++++++++++++++
.../plains/leopardmanderden.dmm | 1055 ++++++++++
.../surface_submaps/plains/otieshelter.dmm | 1095 ++++++++++
.../surface_submaps/wilderness/dogbase.dmm | 1866 +++++++++++++++++
.../surface_submaps/wilderness/dogbaseAlt.dmm | 123 ++
.../surface_submaps/wilderness/emptycabin.dmm | 2 +-
.../wilderness/greatwolfden.dmm | 1567 ++++++++++++++
.../wilderness/leopardmanderden.dmm | 2 +-
.../wilderness/otieshelter.dmm | 1073 ++++++++++
.../underdark_pois/rykka_easter_egg.dmm | 2 +-
.../underdark_pois/underdark_things.dm | 2 +-
.../submaps/underdark_pois/wolf_den.dmm | 4 +-
maps/yw/submaps/gateway/snowfield.dm | 4 +-
vorestation.dme | 1 +
59 files changed, 9044 insertions(+), 288 deletions(-)
create mode 100644 code/modules/mob/theme_lists.dm
create mode 100644 maps/submaps/surface_submaps/plains/emptycabin.dmm
create mode 100644 maps/submaps/surface_submaps/plains/greatwolfden.dmm
create mode 100644 maps/submaps/surface_submaps/plains/leopardmanderden.dmm
create mode 100644 maps/submaps/surface_submaps/plains/otieshelter.dmm
diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index 17fb795809..27e000d0ba 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -728,15 +728,15 @@ var/global/list/xenobio_gold_mobs_hostile = list(
/mob/living/simple_mob/vore/aggressive/dino,
/mob/living/simple_mob/vore/aggressive/dragon,
/mob/living/simple_mob/vore/aggressive/frog,
- /mob/living/simple_mob/otie,
- /mob/living/simple_mob/otie/red,
+ /mob/living/simple_mob/vore/otie,
+ /mob/living/simple_mob/vore/otie/red,
/mob/living/simple_mob/vore/aggressive/panther,
/mob/living/simple_mob/vore/aggressive/rat,
/mob/living/simple_mob/vore/aggressive/giant_snake,
/mob/living/simple_mob/vore/sect_drone,
/mob/living/simple_mob/vore/sect_queen,
/mob/living/simple_mob/vore/weretiger,
- /mob/living/simple_mob/animal/wolf,
+ /mob/living/simple_mob/vore/wolf,
/mob/living/simple_mob/vore/xeno_defanged)
var/global/list/xenobio_gold_mobs_bosses = list(
@@ -783,7 +783,7 @@ var/global/list/xenobio_gold_mobs_safe = list(
/mob/living/simple_mob/vore/fennix,
/mob/living/simple_mob/vore/hippo,
/mob/living/simple_mob/vore/horse,
- /mob/living/simple_mob/animal/space/jelly,
+ /mob/living/simple_mob/vore/jelly,
/mob/living/simple_mob/vore/oregrub,
/mob/living/simple_mob/vore/oregrub/lava,
/mob/living/simple_mob/vore/rabbit,
@@ -935,14 +935,14 @@ var/global/list/event_wildlife_roaming = list(
list(
list(/mob/living/simple_mob/vore/aggressive/frog = 1),
list(/mob/living/simple_mob/tomato = 1),
- list(/mob/living/simple_mob/animal/wolf = 1),
+ list(/mob/living/simple_mob/vore/wolf = 1),
list(/mob/living/simple_mob/vore/aggressive/dino = 1),
list(/mob/living/simple_mob/animal/space/bats = 1)
),
list(
list(/mob/living/simple_mob/animal/space/bear = 1),
list(/mob/living/simple_mob/vore/aggressive/deathclaw = 1),
- list(/mob/living/simple_mob/otie = 1),
+ list(/mob/living/simple_mob/vore/otie = 1),
list(/mob/living/simple_mob/vore/aggressive/panther = 1),
list(/mob/living/simple_mob/vore/aggressive/rat = 1),
list(/mob/living/simple_mob/vore/aggressive/giant_snake = 1),
diff --git a/code/game/objects/effects/semirandom_mobs_vr.dm b/code/game/objects/effects/semirandom_mobs_vr.dm
index 343bf77e7f..1143078536 100644
--- a/code/game/objects/effects/semirandom_mobs_vr.dm
+++ b/code/game/objects/effects/semirandom_mobs_vr.dm
@@ -56,8 +56,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/tindalos),
list(/mob/living/simple_mob/animal/passive/yithian),
list(
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5,
/mob/living/simple_mob/vore/greatwolf = 1,
/mob/living/simple_mob/vore/greatwolf/black = 1,
/mob/living/simple_mob/vore/greatwolf/grey = 1
@@ -75,10 +75,10 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/space/bear/brown
),
list(
- /mob/living/simple_mob/otie/feral,
- /mob/living/simple_mob/otie/feral/chubby,
- /mob/living/simple_mob/otie/red,
- /mob/living/simple_mob/otie/red/chubby
+ /mob/living/simple_mob/vore/otie/feral,
+ /mob/living/simple_mob/vore/otie/feral/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
),
list(/mob/living/simple_mob/animal/sif/diyaab),
list(/mob/living/simple_mob/animal/sif/duck),
@@ -144,7 +144,7 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/space/carp/large/huge = 5
),
list(/mob/living/simple_mob/animal/space/goose),
- list(/mob/living/simple_mob/animal/space/jelly),
+ list(/mob/living/simple_mob/vore/jelly),
list(/mob/living/simple_mob/animal/space/tree),
list(
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
@@ -245,12 +245,12 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/mechanical/wahlem),
list(/mob/living/simple_mob/animal/passive/fox/syndicate),
list(/mob/living/simple_mob/animal/passive/fox),
- list(/mob/living/simple_mob/animal/space/jelly),
+ list(/mob/living/simple_mob/vore/jelly),
list(
- /mob/living/simple_mob/otie/feral,
- /mob/living/simple_mob/otie/feral/chubby,
- /mob/living/simple_mob/otie/red,
- /mob/living/simple_mob/otie/red/chubby
+ /mob/living/simple_mob/vore/otie/feral,
+ /mob/living/simple_mob/vore/otie/feral/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
),
list(
/mob/living/simple_mob/shadekin/blue = 100,
@@ -377,8 +377,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/animal/passive/tindalos) = 10,
list(/mob/living/simple_mob/animal/passive/yithian) = 10,
list(
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5,
/mob/living/simple_mob/vore/greatwolf = 1,
/mob/living/simple_mob/vore/greatwolf/black = 1,
/mob/living/simple_mob/vore/greatwolf/grey = 1
@@ -396,10 +396,10 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/space/bear/brown
) = 1,
list(
- /mob/living/simple_mob/otie/feral = 50,
- /mob/living/simple_mob/otie/feral/chubby = 10,
- /mob/living/simple_mob/otie/red = 5,
- /mob/living/simple_mob/otie/red/chubby = 1
+ /mob/living/simple_mob/vore/otie/feral = 50,
+ /mob/living/simple_mob/vore/otie/feral/chubby = 10,
+ /mob/living/simple_mob/vore/otie/red = 5,
+ /mob/living/simple_mob/vore/otie/red/chubby = 1
) = 5,
list(/mob/living/simple_mob/vore/aggressive/rat) = 15,
list(/mob/living/simple_mob/animal/sif/diyaab) = 5,
@@ -467,8 +467,8 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/shadekin/purple = 10
) = 1,
list(
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5,
/mob/living/simple_mob/vore/greatwolf = 1,
/mob/living/simple_mob/vore/greatwolf/black = 1,
/mob/living/simple_mob/vore/greatwolf/grey = 1
@@ -502,13 +502,13 @@ var/global/list/semirandom_mob_spawner_decisions = list()
/mob/living/simple_mob/animal/space/carp/large/huge = 5
) = 50,
list(/mob/living/simple_mob/animal/space/goose) = 50,
- list(/mob/living/simple_mob/animal/space/jelly) = 40,
+ list(/mob/living/simple_mob/vore/jelly) = 40,
list(/mob/living/simple_mob/animal/space/tree) = 15,
list(
- /mob/living/simple_mob/otie/feral = 50,
- /mob/living/simple_mob/otie/feral/chubby = 10,
- /mob/living/simple_mob/otie/red = 5,
- /mob/living/simple_mob/otie/red/chubby = 1
+ /mob/living/simple_mob/vore/otie/feral = 50,
+ /mob/living/simple_mob/vore/otie/feral/chubby = 10,
+ /mob/living/simple_mob/vore/otie/red = 5,
+ /mob/living/simple_mob/vore/otie/red/chubby = 1
) = 40,
list(
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
@@ -719,17 +719,17 @@ var/global/list/semirandom_mob_spawner_decisions = list()
possible_mob_types = list(
list(
- /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5,
/mob/living/simple_mob/vore/greatwolf = 1,
/mob/living/simple_mob/vore/greatwolf/black = 1,
/mob/living/simple_mob/vore/greatwolf/grey = 1
) = 100,
- list(/mob/living/simple_mob/animal/space/jelly) = 70,
+ list(/mob/living/simple_mob/vore/jelly) = 70,
list(
- /mob/living/simple_mob/otie/feral,
- /mob/living/simple_mob/otie/feral/chubby,
- /mob/living/simple_mob/otie/red,
- /mob/living/simple_mob/otie/red/chubby
+ /mob/living/simple_mob/vore/otie/feral,
+ /mob/living/simple_mob/vore/otie/feral/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
) = 50,
list(
/mob/living/simple_mob/shadekin/blue = 100,
diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm
index 3b8fb1c761..2416dbe6ed 100644
--- a/code/game/objects/items/devices/denecrotizer_vr.dm
+++ b/code/game/objects/items/devices/denecrotizer_vr.dm
@@ -29,7 +29,7 @@
//The stuff we want to be revivable normally
/mob/living/simple_mob/animal
ic_revivable = TRUE
-/mob/living/simple_mob/otie
+/mob/living/simple_mob/vore/otie
ic_revivable = TRUE
/mob/living/simple_mob/vore
ic_revivable = TRUE
diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm
index da096cd0f0..3b982d39ae 100644
--- a/code/game/objects/items/weapons/capture_crystal.dm
+++ b/code/game/objects/items/weapons/capture_crystal.dm
@@ -592,8 +592,8 @@
list(/mob/living/simple_mob/animal/passive/tindalos),
list(/mob/living/simple_mob/animal/passive/yithian),
list(
- /mob/living/simple_mob/animal/wolf,
- /mob/living/simple_mob/animal/wolf/direwolf
+ /mob/living/simple_mob/vore/wolf,
+ /mob/living/simple_mob/vore/wolf/direwolf
),
list(/mob/living/simple_mob/vore/rabbit),
list(/mob/living/simple_mob/vore/redpanda),
@@ -608,10 +608,10 @@
/mob/living/simple_mob/animal/space/bear/brown
),
list(
- /mob/living/simple_mob/otie/feral,
- /mob/living/simple_mob/otie/feral/chubby,
- /mob/living/simple_mob/otie/red,
- /mob/living/simple_mob/otie/red/chubby
+ /mob/living/simple_mob/vore/otie/feral,
+ /mob/living/simple_mob/vore/otie/feral/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
),
list(/mob/living/simple_mob/animal/sif/diyaab),
list(/mob/living/simple_mob/animal/sif/duck),
@@ -650,8 +650,8 @@
/mob/living/simple_mob/animal/giant_spider/webslinger = 5,
/mob/living/simple_mob/animal/giant_spider/broodmother = 1),
list(
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 5,
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5,
/mob/living/simple_mob/vore/greatwolf = 1,
/mob/living/simple_mob/vore/greatwolf/black = 1,
/mob/living/simple_mob/vore/greatwolf/grey = 1
@@ -684,7 +684,7 @@
/mob/living/simple_mob/animal/space/carp/large/huge = 5
),
list(/mob/living/simple_mob/animal/space/goose),
- list(/mob/living/simple_mob/animal/space/jelly),
+ list(/mob/living/simple_mob/vore/jelly),
list(/mob/living/simple_mob/animal/space/tree),
list(
/mob/living/simple_mob/vore/aggressive/corrupthound = 10,
@@ -785,13 +785,13 @@
list(/mob/living/simple_mob/mechanical/wahlem),
list(/mob/living/simple_mob/animal/passive/fox/syndicate),
list(/mob/living/simple_mob/animal/passive/fox),
- list(/mob/living/simple_mob/animal/wolf/direwolf),
- list(/mob/living/simple_mob/animal/space/jelly),
+ list(/mob/living/simple_mob/vore/wolf/direwolf),
+ list(/mob/living/simple_mob/vore/jelly),
list(
- /mob/living/simple_mob/otie/feral,
- /mob/living/simple_mob/otie/feral/chubby,
- /mob/living/simple_mob/otie/red,
- /mob/living/simple_mob/otie/red/chubby
+ /mob/living/simple_mob/vore/otie/feral,
+ /mob/living/simple_mob/vore/otie/feral/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
),
list(
/mob/living/simple_mob/shadekin/blue = 100,
diff --git a/code/game/objects/micro_structures.dm b/code/game/objects/micro_structures.dm
index f47ced1475..55c0cbe81a 100644
--- a/code/game/objects/micro_structures.dm
+++ b/code/game/objects/micro_structures.dm
@@ -13,7 +13,7 @@
var/static/non_micro_types = list(
/mob/living/simple_mob/vore/squirrel,
/mob/living/simple_mob/vore/alienanimals/catslug,
- /mob/living/simple_mob/vore/hostile/morph,
+ /mob/living/simple_mob/vore/morph,
/mob/living/simple_mob/protean_blob,
/mob/living/simple_mob/slime
)
diff --git a/code/game/objects/mob_spawner_vr.dm b/code/game/objects/mob_spawner_vr.dm
index 3693bf85e2..6feebec885 100644
--- a/code/game/objects/mob_spawner_vr.dm
+++ b/code/game/objects/mob_spawner_vr.dm
@@ -157,7 +157,7 @@ It also makes it so a ghost wont know where all the goodies/mobs are.
invisibility = 101
spawn_types = list(
/mob/living/simple_mob/animal/passive/gaslamp = 20,
-// /mob/living/simple_mob/otie/feral = 10,
+// /mob/living/simple_mob/vore/otie/feral = 10,
/mob/living/simple_mob/vore/aggressive/dino/virgo3b = 5,
/mob/living/simple_mob/vore/aggressive/dragon/virgo3b = 1
)
diff --git a/code/game/objects/random/mob_vr.dm b/code/game/objects/random/mob_vr.dm
index 5eb18d7de0..66c058a68a 100644
--- a/code/game/objects/random/mob_vr.dm
+++ b/code/game/objects/random/mob_vr.dm
@@ -184,7 +184,7 @@
/obj/random/outside_mob/item_to_spawn() // Special version for mobs to have the same faction.
return pick(
prob(50);/mob/living/simple_mob/animal/passive/gaslamp,
-// prob(50);/mob/living/simple_mob/otie/feral, // Removed until Otie code is unfucked.
+// prob(50);/mob/living/simple_mob/vore/otie/feral, // Removed until Otie code is unfucked.
prob(20);/mob/living/simple_mob/vore/aggressive/dino/virgo3b,
prob(1);/mob/living/simple_mob/vore/aggressive/dragon/virgo3b)
diff --git a/code/game/objects/structures/crates_lockers/largecrate_vr.dm b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
index 47ec0eedf0..a52a729e0b 100644
--- a/code/game/objects/structures/crates_lockers/largecrate_vr.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
@@ -47,7 +47,7 @@
/mob/living/simple_mob/vore/horse,
/mob/living/simple_mob/vore/aggressive/panther,
/mob/living/simple_mob/vore/aggressive/giant_snake,
- /mob/living/simple_mob/animal/wolf,
+ /mob/living/simple_mob/vore/wolf,
/mob/living/simple_mob/animal/space/bear;0.5,
/mob/living/simple_mob/animal/space/carp,
/mob/living/simple_mob/vore/aggressive/mimic,
@@ -56,7 +56,11 @@
/mob/living/simple_mob/otie/zorgoia, //CHOMPstation edit
/mob/living/simple_mob/vore/rabbit,
/mob/living/simple_mob/vore/weretiger;0.5,
+<<<<<<< HEAD
/mob/living/simple_mob/otie;0.5
+=======
+// /mob/living/simple_mob/vore/otie;0.5
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
))
return ..()
@@ -72,9 +76,14 @@
/mob/living/simple_mob/animal/space/alien/drone,
/mob/living/simple_mob/animal/space/alien/sentinel,
/mob/living/simple_mob/animal/space/alien/queen,
+<<<<<<< HEAD
/mob/living/simple_mob/otie/feral,
/mob/living/simple_mob/otie/feral/chubby,
/mob/living/simple_mob/otie/red,
+=======
+// /mob/living/simple_mob/vore/otie/feral,
+// /mob/living/simple_mob/vore/otie/red,
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
/mob/living/simple_mob/vore/aggressive/corrupthound))
return ..()
@@ -83,7 +92,7 @@
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs."
icon = 'icons/obj/storage_vr.dmi'
icon_state = "sotiecrate"
- starts_with = list(/mob/living/simple_mob/otie/security)
+ starts_with = list(/mob/living/simple_mob/vore/otie/security)
/obj/structure/largecrate/animal/otie/guardbeast/Initialize()
starts_with = list(pick(/mob/living/simple_mob/otie/security,
@@ -95,7 +104,7 @@
desc = "The VARMAcorp bioengineering division flagship product on trained optimal snowflake guard dogs. This one can survive hostile atmosphere."
icon = 'icons/obj/storage_vr.dmi'
icon_state = "sotiecrate"
- starts_with = list(/mob/living/simple_mob/otie/security/phoron)
+ starts_with = list(/mob/living/simple_mob/vore/otie/security/phoron)
/obj/structure/largecrate/animal/otie/guardmutant/Initialize()
starts_with = list(pick(/mob/living/simple_mob/otie/security/phoron;2,
@@ -108,7 +117,7 @@
desc = "A warning on the side says the creature inside was returned to the supplier after injuring or devouring several unlucky members of the previous adoption family. It was given a second chance with the next customer. Godspeed and good luck with your new pet!"
icon = 'icons/obj/storage_vr.dmi'
icon_state = "otiecrate2"
- starts_with = list(/mob/living/simple_mob/otie/cotie)
+ starts_with = list(/mob/living/simple_mob/vore/otie/cotie)
var/taped = 1
/obj/structure/largecrate/animal/otie/Initialize()
@@ -119,12 +128,17 @@
/obj/structure/largecrate/animal/otie/phoron
name = "VARMAcorp adaptive beta subject (Experimental)"
desc = "VARMAcorp experimental hostile environment adaptive breeding development kit. WARNING, DO NOT RELEASE IN WILD!"
- starts_with = list(/mob/living/simple_mob/otie/cotie/phoron)
+ starts_with = list(/mob/living/simple_mob/vore/otie/cotie/phoron)
/obj/structure/largecrate/animal/otie/phoron/Initialize()
+<<<<<<< HEAD
starts_with = list(pick(/mob/living/simple_mob/otie/cotie/phoron;2,
/mob/living/simple_mob/otie/red/friendly;0.5,
/mob/living/simple_mob/otie/red/chubby;0.5))
+=======
+ starts_with = list(pick(/mob/living/simple_mob/vore/otie/cotie/phoron;2,
+ /mob/living/simple_mob/vore/otie/red/friendly;0.5))
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
return ..()
/obj/structure/largecrate/animal/otie/attack_hand(mob/living/carbon/human/M as mob)//I just couldn't decide between the icons lmao
diff --git a/code/game/objects/structures/ghost_pods/event_vr.dm b/code/game/objects/structures/ghost_pods/event_vr.dm
index 9d951133eb..32e673a7d2 100644
--- a/code/game/objects/structures/ghost_pods/event_vr.dm
+++ b/code/game/objects/structures/ghost_pods/event_vr.dm
@@ -29,11 +29,16 @@
"Lizardman" = /mob/living/simple_mob/vore/aggressive/lizardman,//CHOMPedit: more mobs
"Giant Frog" = /mob/living/simple_mob/vore/aggressive/frog,
"Giant Rat" = /mob/living/simple_mob/vore/aggressive/rat,
+<<<<<<< HEAD
"Jelly Blob" = /mob/living/simple_mob/animal/space/jelly,
"Wolf" = /mob/living/simple_mob/animal/wolf,
"Dire Wolf" = /mob/living/simple_mob/animal/wolf/direwolf,//CHOMPedit: more mobs
"Large Dog" = /mob/living/simple_mob/animal/wolf/direwolf/dog,//CHOMPedit: more mobs
"Hyena" = /mob/living/simple_mob/animal/hyena,//CHOMPedit: more mobs
+=======
+ "Jelly Blob" = /mob/living/simple_mob/vore/jelly,
+ "Wolf" = /mob/living/simple_mob/vore/wolf,
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
"Juvenile Solargrub" = /mob/living/simple_mob/vore/solargrub,
"Sect Queen" = /mob/living/simple_mob/vore/sect_queen,
"Sect Drone" = /mob/living/simple_mob/vore/sect_drone,
@@ -41,6 +46,7 @@
"Panther" = /mob/living/simple_mob/vore/aggressive/panther,
"Giant Snake" = /mob/living/simple_mob/vore/aggressive/giant_snake,
"Deathclaw" = /mob/living/simple_mob/vore/aggressive/deathclaw,
+<<<<<<< HEAD
"Otie" = /mob/living/simple_mob/otie,
"Chubby Otie" = /mob/living/simple_mob/otie/friendly/chubby,//CHOMPedit: more mobs
"Mutated Otie" = /mob/living/simple_mob/otie/feral,
@@ -48,6 +54,11 @@
"Red Otie" = /mob/living/simple_mob/otie/red,
"Chubby Red Otie" = /mob/living/simple_mob/otie/red/chubby,//CHOMPedit: more mobs
"Zorgoia" = /mob/living/simple_mob/otie/zorgoia,//CHOMPedit: more mobs
+=======
+ "Otie" = /mob/living/simple_mob/vore/otie,
+ "Mutated Otie" =/mob/living/simple_mob/vore/otie/feral,
+ "Red Otie" = /mob/living/simple_mob/vore/otie/red,
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
"Corrupt Hound" = /mob/living/simple_mob/vore/aggressive/corrupthound,
"Corrupt Corrupt Hound" = /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi,
"Hunter Giant Spider" = /mob/living/simple_mob/animal/giant_spider/hunter,
@@ -125,9 +136,13 @@
/obj/structure/ghost_pod/ghost_activated/morphspawn/create_occupant(var/mob/M)
..()
+<<<<<<< HEAD
var/mob/living/simple_mob/vore/hostile/morph/newMorph = new /mob/living/simple_mob/vore/hostile/morph(get_turf(src))
newMorph.voremob_loaded = TRUE //CHOMPedit: On-demand belly loading.
newMorph.init_vore() //CHOMPedit: On-demand belly loading.
+=======
+ var/mob/living/simple_mob/vore/morph/newMorph = new /mob/living/simple_mob/vore/morph(get_turf(src))
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
if(M.mind)
M.mind.transfer_to(newMorph)
to_chat(M, "You are a Morph, somehow having gotten aboard the station in your wandering. \
diff --git a/code/game/turfs/flooring/seasonal.dm b/code/game/turfs/flooring/seasonal.dm
index 21ebbccbdc..1ff4695ca6 100644
--- a/code/game/turfs/flooring/seasonal.dm
+++ b/code/game/turfs/flooring/seasonal.dm
@@ -55,9 +55,9 @@ var/world_time_season
/mob/living/simple_mob/vore/alienanimals/dustjumper = 20,
/mob/living/simple_mob/vore/bee = 20,
/mob/living/simple_mob/vore/horse/big = 5,
- /mob/living/simple_mob/animal/wolf = 5,
- /mob/living/simple_mob/animal/wolf/direwolf = 1,
- /mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
+ /mob/living/simple_mob/vore/wolf = 5,
+ /mob/living/simple_mob/vore/wolf/direwolf = 1,
+ /mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
/mob/living/simple_mob/vore/squirrel = 20
)
grass_types = list(
@@ -97,7 +97,7 @@ var/world_time_season
/mob/living/simple_mob/vore/horse/big = 5,
/mob/living/simple_mob/vore/pakkun = 2,
/mob/living/simple_mob/vore/fennix = 1,
- /mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
+ /mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
/mob/living/simple_mob/animal/passive/bird/parrot = 1,
/mob/living/simple_mob/vore/squirrel = 20
)
@@ -123,9 +123,9 @@ var/world_time_season
/mob/living/simple_mob/vore/horse/big = 10,
/mob/living/simple_mob/vore/alienanimals/dustjumper = 20,
/mob/living/simple_mob/vore/horse/big = 1,
- /mob/living/simple_mob/animal/wolf = 1,
- /mob/living/simple_mob/animal/wolf/direwolf = 1,
- /mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
+ /mob/living/simple_mob/vore/wolf = 1,
+ /mob/living/simple_mob/vore/wolf/direwolf = 1,
+ /mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
/mob/living/simple_mob/vore/squirrel = 20
)
grass_types = list(
@@ -148,13 +148,13 @@ var/world_time_season
/mob/living/simple_mob/vore/alienanimals/teppi = 10,
/mob/living/simple_mob/vore/alienanimals/teppi/mutant = 1,
/mob/living/simple_mob/vore/redpanda = 10,
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 1,
- /mob/living/simple_mob/animal/wolf/direwolf/dog = 1,
- /mob/living/simple_mob/otie/friendly = 2,
- /mob/living/simple_mob/otie/friendly/chubby = 1,
- /mob/living/simple_mob/otie/red/friendly = 1,
- /mob/living/simple_mob/otie/red/chubby = 1,
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 1,
+ /mob/living/simple_mob/vore/wolf/direwolf/dog = 1,
+ /mob/living/simple_mob/vore/otie/friendly = 2,
+ /mob/living/simple_mob/vore/otie/friendly/chubby = 1,
+ /mob/living/simple_mob/vore/otie/red/friendly = 1,
+ /mob/living/simple_mob/vore/otie/red/chubby = 1,
/mob/living/simple_mob/vore/squirrel = 20
)
if(prob(snow_chance))
diff --git a/code/modules/casino/spawnergrenade_casino.dm b/code/modules/casino/spawnergrenade_casino.dm
index 4a3cf8e535..70bf00bf16 100644
--- a/code/modules/casino/spawnergrenade_casino.dm
+++ b/code/modules/casino/spawnergrenade_casino.dm
@@ -73,7 +73,7 @@
/obj/item/weapon/grenade/spawnergrenade/casino/otie
desc = "It is set to detonate in 5 seconds. It will release a otie won from the casino prize vendor!"
name = "Casino Creature Container (Otie)"
- spawner_type = /mob/living/simple_mob/otie/friendly
+ spawner_type = /mob/living/simple_mob/vore/otie/friendly
/obj/item/weapon/grenade/spawnergrenade/casino/goldcrest
desc = "It is set to detonate in 5 seconds. It will release a bird won from the casino prize vendor!"
@@ -102,4 +102,4 @@
/obj/item/weapon/grenade/spawnergrenade/casino/gygax/shuttlepod
name = "Casino Mech Container (Shuttlepod)"
- spawner_type = /obj/mecha/working/hoverpod/shuttlepod
\ No newline at end of file
+ spawner_type = /obj/mecha/working/hoverpod/shuttlepod
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 7dd6269339..14004df83f 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -4784,8 +4784,8 @@
var/composition_reagent
var/composition_reagent_quantity
-/mob/living/simple_mob/adultslime
- composition_reagent = "slimejelly"
+///mob/living/simple_mob/adultslime //The literal only thing in the game that uses this is commented out, so I comment out this too
+// composition_reagent = "slimejelly"
/mob/living/carbon/alien/diona
composition_reagent = "nutriment"//Dionae are plants, so eating them doesn't give animal protein
diff --git a/code/modules/mob/living/simple_mob/sd_pets.dm b/code/modules/mob/living/simple_mob/sd_pets.dm
index 87a0216b8f..119bb2c23d 100644
--- a/code/modules/mob/living/simple_mob/sd_pets.dm
+++ b/code/modules/mob/living/simple_mob/sd_pets.dm
@@ -104,7 +104,7 @@
value = CATALOGUER_REWARD_TRIVIAL //Worth less points since it lives on the ship
-/mob/living/simple_mob/otie/red/chubby/cocoa
+/mob/living/simple_mob/vore/otie/red/chubby/cocoa
name = "Cocoa"
desc = "A good boi, eats the scraps when you're not looking."
devourable = 0
@@ -113,9 +113,9 @@
mob_bump_flag = 32
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/otie/cocoa
catalogue_data = list(/datum/category_item/catalogue/fauna/otie/cocoa)
-
+
/datum/ai_holder/simple_mob/melee/evasive/otie/cocoa
hostile = 0
retaliate = 0
- violent_breakthrough = 0
\ No newline at end of file
+ violent_breakthrough = 0
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
index 95a6eea482..7a22edf533 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/farm animals/chicken.dm
@@ -5,7 +5,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) // How mant chickens DO we have?
name = "chicken"
desc = "Hopefully the eggs are good this season."
tt_desc = "E Gallus gallus"
- icon_state = "chicken"
+ icon_state = "chicken_white"
icon_living = "chicken"
icon_dead = "chicken_dead"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm b/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm
index 0715a62d0c..1c364a0a54 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/jelly.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/animal/space/jelly
+/mob/living/simple_mob/vore/jelly
name = "jelly blob"
desc = "Some sort of undulating blob of slime!"
@@ -19,8 +19,17 @@
can_be_drop_prey = FALSE //CHOMP Add
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
// Activate Noms!
-/mob/living/simple_mob/animal/space/jelly
vore_active = 1
vore_pounce_chance = 0
vore_icons = SA_ICON_LIVING
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm
index 92a8a46306..62c53af4d6 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big
+/mob/living/simple_mob/clowns/big
tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk
faction = "clown"
@@ -18,8 +18,6 @@
loot_list = list(/obj/item/weapon/bikehorn = 100)
-
-/mob/living/simple_mob/mobs_monsters/clowns/big
min_oxy = 0
max_oxy = 500
min_tox = 0
@@ -41,4 +39,4 @@
can_flee = FALSE
speak_chance = 3
wander = TRUE
- base_wander_delay = 9
\ No newline at end of file
+ base_wander_delay = 9
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm
index 9e0130f2aa..78dd49c4ab 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/
+/mob/living/simple_mob/clowns/
tt_desc = "E Homo sapiens corydon" //this is a clown
faction = "clown"
movement_sound = 'sound/effects/clownstep2.ogg'
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm
index 7602016b9e..6232d96d00 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big/normal
+/mob/living/simple_mob/clowns/big/normal
name = "Clown"
desc = "A regular, every tuesday Clown."
tt_desc = "E Homo sapiens corydon" //this is a clown
@@ -10,7 +10,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/honkmunculus
+/mob/living/simple_mob/clowns/big/honkmunculus
name = "A Clown?"
desc = "That clown has some interesting proportions."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -28,7 +28,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/cluwne
+/mob/living/simple_mob/clowns/big/cluwne
name = "A Clown?"
desc = "Oh no not that thing."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -40,7 +40,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/tunnelclown
+/mob/living/simple_mob/clowns/big/tunnelclown
name = "A Clown?"
desc = "Have you heard about our lord and savior, Honkus Chrust?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -52,7 +52,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/sentinel
+/mob/living/simple_mob/clowns/big/sentinel
name = "A Clown?"
desc = "This guy means business..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -64,7 +64,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/punished
+/mob/living/simple_mob/clowns/big/punished
name = "A Clown?"
desc = "A clown at peak performance."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -82,7 +82,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/thicc
+/mob/living/simple_mob/clowns/big/thicc
name = "A Clown..."
desc = "I mean, you see it don't you?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -100,7 +100,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/perm
+/mob/living/simple_mob/clowns/big/perm
name = "A Clown?"
desc = "That clown really needs to get that hair under control."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -118,7 +118,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/wide
+/mob/living/simple_mob/clowns/big/wide
name = "A Clown?"
desc = "He looks good from some angles!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -136,7 +136,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/thin
+/mob/living/simple_mob/clowns/big/thin
name = "A Clown?"
desc = "Is he eating enough?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -148,7 +148,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/hulk
+/mob/living/simple_mob/clowns/big/hulk
name = "A Clown?"
desc = "Just look at those muscles."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -168,7 +168,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/longface
+/mob/living/simple_mob/clowns/big/longface
name = "A Clown?"
desc = "Why the long face?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -186,7 +186,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/giggles
+/mob/living/simple_mob/clowns/big/giggles
name = "A Giggles?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -198,7 +198,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/destroyer
+/mob/living/simple_mob/clowns/big/destroyer
name = "A Clown?"
desc = "That clown looks like he means business."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -239,7 +239,7 @@
)
-/mob/living/simple_mob/mobs_monsters/clowns/big/chlown
+/mob/living/simple_mob/clowns/big/chlown
name = "A Clown?"
desc = "No."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -257,7 +257,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/scary
+/mob/living/simple_mob/clowns/big/scary
name = "A Clown?"
desc = "Hey that clown looks familiar!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -269,7 +269,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/flesh
+/mob/living/simple_mob/clowns/big/flesh
name = "A Clown?"
desc = "WOOOOO STREAKING WOOOO!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -281,7 +281,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/clowns
+/mob/living/simple_mob/clowns/big/clowns
name = "Definitely a singular clown"
desc = "Is it one clown, or many clowns in not a trenchcoat?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -299,7 +299,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/mutant
+/mob/living/simple_mob/clowns/big/mutant
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -317,7 +317,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/blob
+/mob/living/simple_mob/clowns/big/blob
name = "A Clown?"
desc = "Go to a gym fatty!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -335,7 +335,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/mayor
+/mob/living/simple_mob/clowns/big/mayor
name = "A clown?"
desc = "One speaks in riddles..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -353,7 +353,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/honkling
+/mob/living/simple_mob/clowns/big/honkling
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -367,7 +367,7 @@
//template
-///mob/living/simple_mob/mobs_monsters/clowns/big/
+///mob/living/simple_mob/clowns/big/
// name = "A Clown?"
// desc = "Oh sweet space christ."
// tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm
index 8a51b77018..6ecc2b5bb7 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm
@@ -1,7 +1,7 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift
+/mob/living/simple_mob/clowns/big/c_shift
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
faction = "clown"
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/New()
+/mob/living/simple_mob/clowns/big/c_shift/New()
..()
- verbs += /mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift
\ No newline at end of file
+ verbs += /mob/living/simple_mob/clowns/big/c_shift/proc/phase_shift
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm
index 21b201bb37..6c0311ec0a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/anormal
+/mob/living/simple_mob/clowns/big/c_shift/anormal
name = "Clown"
desc = "A regular, every tuesday Clown."
tt_desc = "E Homo sapiens corydon" //this is a clown
@@ -10,7 +10,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkmunculus
+/mob/living/simple_mob/clowns/big/c_shift/honkmunculus
name = "A Clown?"
desc = "That clown has some interesting proportions."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -28,7 +28,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/cluwne
+/mob/living/simple_mob/clowns/big/c_shift/cluwne
name = "A Clown?"
desc = "Oh no not that thing."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -40,7 +40,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/tunnelclown
+/mob/living/simple_mob/clowns/big/c_shift/tunnelclown
name = "A Clown?"
desc = "Have you heard about our lord and savior, Honkus Chrust?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -52,7 +52,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/sentinel
+/mob/living/simple_mob/clowns/big/c_shift/sentinel
name = "A Clown?"
desc = "This guy means business..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -64,7 +64,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/punished
+/mob/living/simple_mob/clowns/big/c_shift/punished
name = "A Clown?"
desc = "A clown at peak performance."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -82,7 +82,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thicc
+/mob/living/simple_mob/clowns/big/c_shift/thicc
name = "A Clown..."
desc = "I mean, you see it don't you?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -100,7 +100,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/perm
+/mob/living/simple_mob/clowns/big/c_shift/perm
name = "A Clown?"
desc = "That clown really needs to get that hair under control."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -118,7 +118,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/wide
+/mob/living/simple_mob/clowns/big/c_shift/wide
name = "A Clown?"
desc = "He looks good from some angles!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -136,7 +136,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thin
+/mob/living/simple_mob/clowns/big/c_shift/thin
name = "A Clown?"
desc = "Is he eating enough?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -148,7 +148,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/hulk
+/mob/living/simple_mob/clowns/big/c_shift/hulk
name = "A Clown?"
desc = "Just look at those muscles."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -168,7 +168,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/longface
+/mob/living/simple_mob/clowns/big/c_shift/longface
name = "A Clown?"
desc = "Why the long face?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -186,7 +186,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/giggles
+/mob/living/simple_mob/clowns/big/c_shift/giggles
name = "A Giggles?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -198,7 +198,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/destroyer
+/mob/living/simple_mob/clowns/big/c_shift/destroyer
name = "A Clown?"
desc = "That clown looks like he means business."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -239,7 +239,7 @@
)
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/chlown
+/mob/living/simple_mob/clowns/big/c_shift/chlown
name = "A Clown?"
desc = "No."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -257,7 +257,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/scary
+/mob/living/simple_mob/clowns/big/c_shift/scary
name = "A Clown?"
desc = "Hey that clown looks familiar!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -269,7 +269,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/flesh
+/mob/living/simple_mob/clowns/big/c_shift/flesh
name = "A Clown?"
desc = "WOOOOO STREAKING WOOOO!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -281,7 +281,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/clowns
+/mob/living/simple_mob/clowns/big/c_shift/clowns
name = "Definitely a singular clown"
desc = "Is it one clown, or many clowns in not a trenchcoat?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -299,7 +299,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mutant
+/mob/living/simple_mob/clowns/big/c_shift/mutant
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -317,7 +317,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/blob
+/mob/living/simple_mob/clowns/big/c_shift/blob
name = "A Clown?"
desc = "Go to a gym fatty!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -335,7 +335,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mayor
+/mob/living/simple_mob/clowns/big/c_shift/mayor
name = "A clown?"
desc = "One speaks in riddles..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -353,7 +353,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkling
+/mob/living/simple_mob/clowns/big/c_shift/honkling
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm
index bf56fd4e0e..a576a3e39e 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm
@@ -1,8 +1,8 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift
+/mob/living/simple_mob/clowns/big/c_shift
var/ability_flags = 0 //Flags for active abilities
// Phase shifting procs (and related procs)
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift()
+/mob/living/simple_mob/clowns/big/c_shift/proc/phase_shift()
var/turf/T = get_turf(src)
if(!T.CanPass(src,T) || loc != T)
to_chat(src,"You can't use that here!")
@@ -73,23 +73,23 @@
density = FALSE
force_max_speed = TRUE
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/UnarmedAttack()
+/mob/living/simple_mob/clowns/big/c_shift/UnarmedAttack()
if(ability_flags & AB_PHASE_SHIFTED)
return FALSE //Nope.
. = ..()
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/can_fall()
+/mob/living/simple_mob/clowns/big/c_shift/can_fall()
if(ability_flags & AB_PHASE_SHIFTED)
return FALSE //Nope!
return ..()
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/zMove(direction)
+/mob/living/simple_mob/clowns/big/c_shift/zMove(direction)
if(ability_flags & AB_PHASE_SHIFTED)
var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
if(destination)
forceMove(destination)
return TRUE
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm
index f92a9a07e6..42d553b8f1 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm
@@ -17,7 +17,7 @@
/obj/structure/ghost_pod/manual/clegg/create_occupant(var/mob/M)
lightning_strike(get_turf(src), cosmetic = TRUE)
- var/list/choices = list(/mob/living/simple_mob/mobs_monsters/clowns/normal, /mob/living/simple_mob/mobs_monsters/clowns/honkling, /mob/living/simple_mob/mobs_monsters/clowns/mayor, /mob/living/simple_mob/mobs_monsters/clowns/blob, /mob/living/simple_mob/mobs_monsters/clowns/mutant, /mob/living/simple_mob/mobs_monsters/clowns/clowns, /mob/living/simple_mob/mobs_monsters/clowns/flesh, /mob/living/simple_mob/mobs_monsters/clowns/scary, /mob/living/simple_mob/mobs_monsters/clowns/chlown, /mob/living/simple_mob/mobs_monsters/clowns/destroyer, /mob/living/simple_mob/mobs_monsters/clowns/giggles, /mob/living/simple_mob/mobs_monsters/clowns/longface, /mob/living/simple_mob/mobs_monsters/clowns/hulk, /mob/living/simple_mob/mobs_monsters/clowns/thin, /mob/living/simple_mob/mobs_monsters/clowns/wide, /mob/living/simple_mob/mobs_monsters/clowns/perm, /mob/living/simple_mob/mobs_monsters/clowns/thicc, /mob/living/simple_mob/mobs_monsters/clowns/punished, /mob/living/simple_mob/mobs_monsters/clowns/sentinel, /mob/living/simple_mob/mobs_monsters/clowns/tunnelclown, /mob/living/simple_mob/mobs_monsters/clowns/cluwne, /mob/living/simple_mob/mobs_monsters/clowns/honkmunculus)
+ var/list/choices = list(/mob/living/simple_mob/clowns/normal, /mob/living/simple_mob/clowns/honkling, /mob/living/simple_mob/clowns/mayor, /mob/living/simple_mob/clowns/blob, /mob/living/simple_mob/clowns/mutant, /mob/living/simple_mob/clowns/clowns, /mob/living/simple_mob/clowns/flesh, /mob/living/simple_mob/clowns/scary, /mob/living/simple_mob/clowns/chlown, /mob/living/simple_mob/clowns/destroyer, /mob/living/simple_mob/clowns/giggles, /mob/living/simple_mob/clowns/longface, /mob/living/simple_mob/clowns/hulk, /mob/living/simple_mob/clowns/thin, /mob/living/simple_mob/clowns/wide, /mob/living/simple_mob/clowns/perm, /mob/living/simple_mob/clowns/thicc, /mob/living/simple_mob/clowns/punished, /mob/living/simple_mob/clowns/sentinel, /mob/living/simple_mob/clowns/tunnelclown, /mob/living/simple_mob/clowns/cluwne, /mob/living/simple_mob/clowns/honkmunculus)
var/chosen_clown = tgui_input_list(M, "Redspace clowns like themes, what's yours?", "Theme Choice", choices)
density = FALSE
var/mob/living/simple_mob/R = new chosen_clown(get_turf(src))
@@ -27,4 +27,4 @@
R.ckey = M.ckey
visible_message("With a bright flash of light, \the [src] disappears, and in its place you see a... Clown?")
log_and_message_admins("successfully touched \a [src] and summoned a mistake!")
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm
index 00dab095de..66807e24a2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental
+/mob/living/simple_mob/clowns/big/c_shift/honkelemental
name = "Honk Elemental"
desc = "That thing can't be real, right?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -23,7 +23,7 @@
speak = list("HONK", "Honk!", "Henk!")
emote_see = list("honks")
-/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental/verb/spawn_egg()
+/mob/living/simple_mob/clowns/big/c_shift/honkelemental/verb/spawn_egg()
set category = "Abilities"
set name = "Spawn Clown Egg"
set desc = "Spawns an egg that a player can touch, which will call on ghosts to spawn as clowns."
@@ -32,4 +32,4 @@
return
new /obj/structure/ghost_pod/manual/clegg(get_turf(src))
- flick("he_lay",src)
\ No newline at end of file
+ flick("he_lay",src)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm
index d32af4a5ab..0db552feba 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_mob/mobs_monsters/clowns/
+/mob/living/simple_mob/clowns/
response_help = "pokes"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -13,7 +13,7 @@
-/mob/living/simple_mob/mobs_monsters/clowns/honkmunculus
+/mob/living/simple_mob/clowns/honkmunculus
name = "A Clown?"
desc = "That clown has some interesting proportions."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -31,7 +31,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/cluwne
+/mob/living/simple_mob/clowns/cluwne
name = "A Clown?"
desc = "Oh no not that thing."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -43,7 +43,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/tunnelclown
+/mob/living/simple_mob/clowns/tunnelclown
name = "A Clown?"
desc = "Have you heard about our lord and savior, Honkus Chrust?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -55,7 +55,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/sentinel
+/mob/living/simple_mob/clowns/sentinel
name = "A Clown?"
desc = "This guy means business..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -68,7 +68,7 @@
-/mob/living/simple_mob/mobs_monsters/clowns/punished
+/mob/living/simple_mob/clowns/punished
name = "A Clown?"
desc = "A clown at peak performance."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -86,7 +86,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/thicc
+/mob/living/simple_mob/clowns/thicc
name = "A Clown..."
desc = "I mean, you see it don't you?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -104,7 +104,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/perm
+/mob/living/simple_mob/clowns/perm
name = "A Clown?"
desc = "That clown really needs to get that hair under control."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -122,7 +122,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/wide
+/mob/living/simple_mob/clowns/wide
name = "A Clown?"
desc = "He looks good from some angles!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -140,7 +140,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/thin
+/mob/living/simple_mob/clowns/thin
name = "A Clown?"
desc = "Is he eating enough?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -152,7 +152,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/hulk
+/mob/living/simple_mob/clowns/hulk
name = "A Clown?"
desc = "Just look at those muscles."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -170,7 +170,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/longface
+/mob/living/simple_mob/clowns/longface
name = "A Clown?"
desc = "Why the long face?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -188,7 +188,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/giggles
+/mob/living/simple_mob/clowns/giggles
name = "A Giggles?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -200,7 +200,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/destroyer
+/mob/living/simple_mob/clowns/destroyer
name = "A Clown?"
desc = "That clown looks like he means business."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -218,7 +218,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/chlown
+/mob/living/simple_mob/clowns/chlown
name = "A Clown?"
desc = "No."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -236,7 +236,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/scary
+/mob/living/simple_mob/clowns/scary
name = "A Clown?"
desc = "Hey that clown looks familiar!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -248,7 +248,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/flesh
+/mob/living/simple_mob/clowns/flesh
name = "A Clown?"
desc = "WOOOOO STREAKING WOOOO!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -260,7 +260,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/clowns
+/mob/living/simple_mob/clowns/clowns
name = "Definitely a singular clown"
desc = "Is it one clown, or many clowns in not a trenchcoat?"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -278,7 +278,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/mutant
+/mob/living/simple_mob/clowns/mutant
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -296,7 +296,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/blob
+/mob/living/simple_mob/clowns/blob
name = "A Clown?"
desc = "Go to a gym fatty!"
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -314,7 +314,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/mayor
+/mob/living/simple_mob/clowns/mayor
name = "A clown?"
desc = "One speaks in riddles..."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -332,7 +332,7 @@
pixel_y = 0
-/mob/living/simple_mob/mobs_monsters/clowns/honkling
+/mob/living/simple_mob/clowns/honkling
name = "A Clown?"
desc = "Oh sweet space christ."
tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown
@@ -344,7 +344,7 @@
vis_height = 32
-/mob/living/simple_mob/mobs_monsters/clowns/normal
+/mob/living/simple_mob/clowns/normal
name = "Clown"
desc = "A regular, every tuesday Clown."
tt_desc = "E Homo sapiens corydon" //this is a clown
@@ -361,4 +361,4 @@
response_help = "pokes"
response_disarm = "gently pushes aside"
- response_harm = "hits"
\ No newline at end of file
+ response_harm = "hits"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
index 7308bf7f8c..83f001f04a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm
@@ -1,6 +1,6 @@
#define MORPH_COOLDOWN 50
-/mob/living/simple_mob/vore/hostile/morph
+/mob/living/simple_mob/vore/morph
name = "morph"
real_name = "morph"
desc = "A revolting, pulsating pile of flesh."
@@ -58,25 +58,25 @@
var/static/list/blacklist_typecache = typecacheof(list(
/obj/screen,
/obj/singularity,
- /mob/living/simple_mob/vore/hostile/morph,
+ /mob/living/simple_mob/vore/morph,
/obj/effect))
-/mob/living/simple_mob/vore/hostile/morph/Initialize()
+/mob/living/simple_mob/vore/morph/Initialize()
verbs += /mob/living/proc/ventcrawl
- verbs += /mob/living/simple_mob/vore/hostile/morph/proc/take_over_prey
- if(!istype(src, /mob/living/simple_mob/vore/hostile/morph/dominated_prey))
- verbs += /mob/living/simple_mob/vore/hostile/morph/proc/morph_color
+ verbs += /mob/living/simple_mob/vore/morph/proc/take_over_prey
+ if(!istype(src, /mob/living/simple_mob/vore/morph/dominated_prey))
+ verbs += /mob/living/simple_mob/vore/morph/proc/morph_color
return ..()
-/mob/living/simple_mob/vore/hostile/morph/Destroy()
+/mob/living/simple_mob/vore/morph/Destroy()
form = null
return ..()
-/mob/living/simple_mob/vore/hostile/morph/proc/allowed(atom/movable/A)
+/mob/living/simple_mob/vore/morph/proc/allowed(atom/movable/A)
return !is_type_in_typecache(A, blacklist_typecache) && (isobj(A) || ismob(A))
-/mob/living/simple_mob/vore/hostile/morph/examine(mob/user)
+/mob/living/simple_mob/vore/morph/examine(mob/user)
if(morphed)
. = form.examine(user)
if(get_dist(user, src) <= 3 && !resting)
@@ -84,7 +84,7 @@
else
. = ..()
-/mob/living/simple_mob/vore/hostile/morph/ShiftClickOn(atom/movable/A)
+/mob/living/simple_mob/vore/morph/ShiftClickOn(atom/movable/A)
if(Adjacent(A))
if(morph_time <= world.time && !stat)
if(A == src)
@@ -97,7 +97,7 @@
else
..()
-/mob/living/simple_mob/vore/hostile/morph/proc/assume(atom/movable/target)
+/mob/living/simple_mob/vore/morph/proc/assume(atom/movable/target)
var/mob/living/carbon/human/humantarget = target
if(istype(humantarget) && humantarget.resleeve_lock && ckey != humantarget.resleeve_lock)
to_chat(src, "[target] cannot be impersonated!")
@@ -142,7 +142,7 @@
return
-/mob/living/simple_mob/vore/hostile/morph/proc/restore(var/silent = FALSE)
+/mob/living/simple_mob/vore/morph/proc/restore(var/silent = FALSE)
if(!morphed)
to_chat(src, "You're already in your normal form!")
return
@@ -187,21 +187,21 @@
morph_time = world.time + MORPH_COOLDOWN
-/mob/living/simple_mob/vore/hostile/morph/death(gibbed)
+/mob/living/simple_mob/vore/morph/death(gibbed)
if(morphed)
visible_message("[src] twists and dissolves into a pile of flesh!")
restore(TRUE)
..()
-/mob/living/simple_mob/vore/hostile/morph/will_show_tooltip()
+/mob/living/simple_mob/vore/morph/will_show_tooltip()
return (!morphed)
-/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
+/mob/living/simple_mob/vore/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
if(morphed && !ismob(form))
return
return ..()
-/mob/living/simple_mob/vore/hostile/morph/lay_down()
+/mob/living/simple_mob/vore/morph/lay_down()
if(morphed)
var/temp_state = icon_state
..()
@@ -225,18 +225,18 @@
else
..()
-/mob/living/simple_mob/vore/hostile/morph/update_icon()
+/mob/living/simple_mob/vore/morph/update_icon()
if(morphed)
return
return ..()
-/mob/living/simple_mob/vore/hostile/morph/update_icons()
+/mob/living/simple_mob/vore/morph/update_icons()
if(morphed)
return
return ..()
-/mob/living/simple_mob/vore/hostile/morph/update_transform()
+/mob/living/simple_mob/vore/morph/update_transform()
if(morphed)
var/matrix/M = matrix()
M.Scale(icon_scale_x, icon_scale_y)
@@ -245,7 +245,7 @@
else
..()
-/mob/living/simple_mob/vore/hostile/morph/proc/morph_color()
+/mob/living/simple_mob/vore/morph/proc/morph_color()
set name = "Pick Color"
set category = "Abilities"
set desc = "You can set your color!"
@@ -255,7 +255,7 @@
chosen_color = newcolor
-/mob/living/simple_mob/vore/hostile/morph/proc/take_over_prey()
+/mob/living/simple_mob/vore/morph/proc/take_over_prey()
set name = "Take Over Prey"
set category = "Abilities"
set desc = "Take command of your prey's body."
@@ -302,23 +302,23 @@
stop_pulling()
original_ckey = ckey
log_and_message_admins("[key_name_admin(src)] has swapped bodies with [key_name_admin(M)] as a morph at [get_area(src)] - [COORD(src)].")
- new /mob/living/simple_mob/vore/hostile/morph/dominated_prey(M.vore_selected, M.ckey, src, M)
+ new /mob/living/simple_mob/vore/morph/dominated_prey(M.vore_selected, M.ckey, src, M)
else
to_chat(src, "\The [M] declined your request for control.")
else
to_chat(src, "\The [M] declined your request for control.")
-/mob/living/simple_mob/vore/hostile/morph/dominated_prey
+/mob/living/simple_mob/vore/morph/dominated_prey
name = "subservient node"
color = "#171717"
digestable = 0
devourable = 0
- var/mob/living/simple_mob/vore/hostile/morph/parent_morph
+ var/mob/living/simple_mob/vore/morph/parent_morph
var/mob/living/carbon/human/prey_body
var/prey_ckey
-/mob/living/simple_mob/vore/hostile/morph/dominated_prey/New(loc, pckey, parent, prey)
+/mob/living/simple_mob/vore/morph/dominated_prey/New(loc, pckey, parent, prey)
. = ..()
if(pckey)
prey_ckey = pckey
@@ -336,17 +336,17 @@
else
qdel(src)
-/mob/living/simple_mob/vore/hostile/morph/dominated_prey/death(gibbed)
+/mob/living/simple_mob/vore/morph/dominated_prey/death(gibbed)
. = ..()
undo_prey_takeover(FALSE)
-/mob/living/simple_mob/vore/hostile/morph/dominated_prey/Destroy()
+/mob/living/simple_mob/vore/morph/dominated_prey/Destroy()
. = ..()
parent_morph = null
prey_body = null
-/mob/living/simple_mob/vore/hostile/morph/dominated_prey/proc/undo_prey_takeover(ooc_escape)
+/mob/living/simple_mob/vore/morph/dominated_prey/proc/undo_prey_takeover(ooc_escape)
if(buckled)
buckled.unbuckle_mob()
if(prey_body.buckled)
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
index ba3a14bccd..2ddc698837 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm
@@ -6,7 +6,7 @@
**the catalogue entry ends here.**"
value = CATALOGUER_REWARD_MEDIUM
-/mob/living/simple_mob/otie //Spawn this one only if you're looking for a bad time. Not friendly.
+/mob/living/simple_mob/vore/otie //Spawn this one only if you're looking for a bad time. Not friendly.
name = "otie"
desc = "The classic bioengineered longdog."
tt_desc = "Otus robustus"
@@ -57,7 +57,7 @@
// Activate Noms!
-/mob/living/simple_mob/otie
+/mob/living/simple_mob/vore/otie
vore_active = 1
vore_capacity = 1
vore_pounce_chance = 20
@@ -68,7 +68,7 @@
vore_default_contamination_color = "black"
vore_default_item_mode = IM_DIGEST
-/mob/living/simple_mob/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
+/mob/living/simple_mob/vore/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
name = "mutated feral otie"
desc = "The classic bioengineered longdog. No pets. Only bite. This one seems to have developed a mutation from an abnormally phoron-rich diet." //CHOMPedit
tt_desc = "Otus phoronis"
@@ -89,14 +89,14 @@
max_n2 = 0
has_eye_glow = TRUE
-/mob/living/simple_mob/otie/feral/chubby
+/mob/living/simple_mob/vore/otie/feral/chubby
name = "chubby mutated feral otie"
desc = "The classic bioengineered longdog. No pets. Only bite. This one seems to have developed a mutation from an abnormally phoron-rich diet. What an absolute unit." //CHOMPedit
icon_state = "photiec"
icon_living = "photiec"
icon_rest = "photiec_rest"
-/mob/living/simple_mob/otie/red
+/mob/living/simple_mob/vore/otie/red
name = "feral red otie"
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces."
tt_desc = "Otus infernalis"
@@ -118,13 +118,13 @@
maxbodytemp = 1000
has_eye_glow = TRUE
-/mob/living/simple_mob/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
+/mob/living/simple_mob/vore/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
name = "red otie"
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though."
faction = "neutral"
tamed = 1
-/mob/living/simple_mob/otie/red/chubby //gets the pet2tame feature and doesn't kill you right away
+/mob/living/simple_mob/vore/otie/red/chubby //gets the pet2tame feature and doesn't kill you right away
name = "chubby red otie"
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit."
icon_state = "hotiec"
@@ -133,20 +133,20 @@
faction = "neutral"
tamed = 1
-/mob/living/simple_mob/otie/friendly //gets the pet2tame feature and doesn't kill you right away
+/mob/living/simple_mob/vore/otie/friendly //gets the pet2tame feature and doesn't kill you right away
name = "otie"
desc = "The classic bioengineered longdog. This one might even tolerate you!"
faction = "neutral"
tamed = 1
-/mob/living/simple_mob/otie/friendly/chubby
+/mob/living/simple_mob/vore/otie/friendly/chubby
name = "chubby otie"
desc = "The classic bioengineered longdog. This one might even tolerate you! What an absolute unit"
icon_state = "fotie"
icon_living = "fotie"
icon_rest = "fotie_rest"
-/mob/living/simple_mob/otie/cotie //same as above but has a little collar :v
+/mob/living/simple_mob/vore/otie/cotie //same as above but has a little collar :v
name = "tamed otie"
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration."
icon_state = "cotie"
@@ -155,14 +155,14 @@
faction = "neutral"
tamed = 1
-/mob/living/simple_mob/otie/cotie/chubby
+/mob/living/simple_mob/vore/otie/cotie/chubby
name = "chubby tamed otie"
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. What an absolute unit."
icon_state = "fcotie"
icon_living = "fcotie"
icon_rest = "fcotie_rest"
-/mob/living/simple_mob/otie/cotie/phoron //friendly phoron pup with collar
+/mob/living/simple_mob/vore/otie/cotie/phoron //friendly phoron pup with collar
name = "mutated otie"
desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass."
tt_desc = "Otus phoronis"
@@ -180,7 +180,7 @@
max_n2 = 0
has_eye_glow = TRUE
-/mob/living/simple_mob/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
+/mob/living/simple_mob/vore/otie/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
name = "guard otie"
desc = "The VARMAcorp bioengineering division flagship product on big mean guard dogs."
icon_state = "sotie"
@@ -198,7 +198,7 @@
var/check_records = 0 // If true, arrests people without a record.
var/check_arrest = 1 // If true, arrests people who are set to arrest.
-/mob/living/simple_mob/otie/security/chubby
+/mob/living/simple_mob/vore/otie/security/chubby
name = "chubby guard otie"
desc = "The VARMAcorp bioengineering division flagship product on big mean guard dogs. What an absolute unit."
icon_state = "fsotie"
@@ -206,7 +206,7 @@
icon_rest = "fsotie_rest"
icon_dead = "fsotie-dead"
-/mob/living/simple_mob/otie/security/phoron
+/mob/living/simple_mob/vore/otie/security/phoron
name = "mutated guard otie"
desc = "An extra rare phoron resistant version of the VARMAcorp trained guard dogs adapted for hostile environments."
tt_desc = "Otus phoronis"
@@ -223,7 +223,7 @@
min_n2 = 0
max_n2 = 0
-/mob/living/simple_mob/otie/security/phoron/red
+/mob/living/simple_mob/vore/otie/security/phoron/red
name = "red guard otie"
desc = "An ominous looking version of the big mean VARMAcorp guard dogs."
tt_desc = "Otus infernalis"
@@ -233,20 +233,20 @@
icon_dead = "sechotie-dead"
maxbodytemp = 1000
-/mob/living/simple_mob/otie/security/phoron/red/chubby
+/mob/living/simple_mob/vore/otie/security/phoron/red/chubby
name = "chubby red guard otie"
desc = "An ominous looking version of the big mean VARMAcorp guard dogs. What an absolute unit."
icon_state = "hotiesc"
icon_living = "hotiesc"
icon_rest = "hotiesc_rest"
-/mob/living/simple_mob/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
+/mob/living/simple_mob/vore/otie/attackby(var/obj/item/O, var/mob/user) // Trade donuts for bellybrig victims.
if(istype(O, /obj/item/weapon/reagent_containers/food))
qdel(O)
playsound(src,'sound/items/eatfood.ogg', rand(10,50), 1)
if(!has_AI())//No autobarf on player control.
return
- if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/otie/security))
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/vore/otie/security))
to_chat(user,"The guard pup accepts your offer for their catch.")
release_vore_contents()
else if(prob(2)) //Small chance to get prey out from non-sec oties.
@@ -255,7 +255,7 @@
return
. = ..()
-/mob/living/simple_mob/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
+/mob/living/simple_mob/vore/otie/security/feed_grabbed_to_self(var/mob/living/user, var/mob/living/prey) // Make the gut start out safe for bellybrigging.
if(ishuman(prey))
vore_selected.digest_mode = DM_HOLD
if(check_threat(prey) >= 4)
@@ -264,12 +264,12 @@
vore_selected.digest_mode = DM_DIGEST
. = ..()
-/mob/living/simple_mob/otie/security/proc/check_threat(var/mob/living/M)
+/mob/living/simple_mob/vore/otie/security/proc/check_threat(var/mob/living/M)
if(!M || !ishuman(M) || M.stat == DEAD || src == M)
return 0
return M.assess_perp(0, 0, 0, check_records, check_arrest)
-/mob/living/simple_mob/otie/security/proc/target_name(mob/living/T)
+/mob/living/simple_mob/vore/otie/security/proc/target_name(mob/living/T)
if(ishuman(T))
var/mob/living/carbon/human/H = T
return H.get_id_name("unidentified person")
@@ -277,7 +277,7 @@
//Pet 4 friendly
-/mob/living/simple_mob/otie/attack_hand(mob/living/carbon/human/M as mob)
+/mob/living/simple_mob/vore/otie/attack_hand(mob/living/carbon/human/M as mob)
switch(M.a_intent)
if(I_HELP)
@@ -314,12 +314,12 @@
else
..()
-/mob/living/simple_mob/otie/death(gibbed, deathmessage = "dies!")
+/mob/living/simple_mob/vore/otie/death(gibbed, deathmessage = "dies!")
.=..()
resting = 0
icon_state = icon_dead
-/mob/living/simple_mob/otie/Login()
+/mob/living/simple_mob/vore/otie/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
@@ -327,7 +327,7 @@
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 0
-/mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user)
+/mob/living/simple_mob/vore/otie/MouseDrop_T(mob/living/M, mob/living/user)
return
/datum/say_list/otie
@@ -339,7 +339,7 @@
/datum/ai_holder/simple_mob/melee/evasive/otie
-/datum/ai_holder/simple_mob/melee/evasive/otie/New(var/mob/living/simple_mob/otie/new_holder)
+/datum/ai_holder/simple_mob/melee/evasive/otie/New(var/mob/living/simple_mob/vore/otie/new_holder)
.=..()
if(new_holder.tamed)
hostile = FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
index d0f63a8730..428f68e113 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm
@@ -5,7 +5,7 @@
love to nip and bite at things, as well as sniffing around. They seem to mark their territory by way of scent-marking/urinating on things."
value = CATALOGUER_REWARD_EASY
-/mob/living/simple_mob/animal/wolf
+/mob/living/simple_mob/vore/wolf
name = "grey wolf"
desc = "My, what big jaws it has!"
tt_desc = "Canis lupus"
@@ -42,7 +42,7 @@
// Activate Noms!
-/mob/living/simple_mob/animal/wolf
+/mob/living/simple_mob/vore/wolf
vore_active = 1
vore_icons = SA_ICON_LIVING
@@ -59,7 +59,7 @@
B.belly_fullscreen = "anim_belly" // CHOMPedit - Belly Fullscreen
// Space edition, stronger and bitier
-/mob/living/simple_mob/animal/wolf/space
+/mob/living/simple_mob/vore/wolf/space
name = "space wolf"
tt_desc = "Canis lupus aetherius"
@@ -83,10 +83,10 @@
minbodytemp = 0
maxbodytemp = 700
-/mob/living/simple_mob/animal/wolf/space/Process_Spacemove(var/check_drift = 0)
+/mob/living/simple_mob/vore/wolf/space/Process_Spacemove(var/check_drift = 0)
return TRUE
-/mob/living/simple_mob/animal/wolf/direwolf
+/mob/living/simple_mob/vore/wolf/direwolf
name = "dire wolf"
desc = "The biggest and baddest wolf around."
tt_desc = "Canis maxdirus"
@@ -116,7 +116,7 @@
buckle_lying = FALSE
vore_icons = SA_ICON_LIVING | SA_ICON_REST
-/mob/living/simple_mob/animal/wolf/direwolf/Login()
+/mob/living/simple_mob/vore/wolf/direwolf/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
@@ -124,10 +124,10 @@
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = -1
-/mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user)
+/mob/living/simple_mob/vore/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user)
return
-/mob/living/simple_mob/animal/wolf/direwolf/dog
+/mob/living/simple_mob/vore/wolf/direwolf/dog
name = "large dog"
desc = "The biggest and goodest dog around."
tt_desc = "Canis maxdirus familiaris"
@@ -136,7 +136,7 @@
icon_state = "diredog"
icon_rest = "diredog_rest"
-/mob/living/simple_mob/animal/wolf/direwolf/dog/sec
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec
name = "large guard dog"
desc = "The biggest and goodest guard dog around."
icon_dead = "diredogs-dead"
@@ -144,7 +144,7 @@
icon_state = "diredogs"
icon_rest = "diredogs_rest"
-/mob/living/simple_mob/animal/wolf/direwolf/sec
+/mob/living/simple_mob/vore/wolf/direwolf/sec
name = "dire guard wolf"
desc = "The biggest and baddest guard wolf around."
icon_dead = "direwolfs-dead"
@@ -152,7 +152,7 @@
icon_state = "direwolfs"
icon_rest = "direwolfs_rest"
-/mob/living/simple_mob/animal/wolf/direwolf/rykka
+/mob/living/simple_mob/vore/wolf/direwolf/rykka
name = "Rykka"
desc = "This big canine looks like a GSD. It has a collar tagged, 'Bitch'"
tt_desc = "Canidae"
@@ -186,7 +186,7 @@
vore_stomach_name = "Gut"
vore_stomach_flavor = "A black-and-purple veined gut, pulsing warmly around you. Loud gurgles sound around you as the gut squishes inwards and attempts to crush you - Rykka seems intent on digesting you, like the meat you are."
-/mob/living/simple_mob/animal/wolf/direwolf/andrews
+/mob/living/simple_mob/vore/wolf/direwolf/andrews
name = "andrewsarchus"
desc = "That's one massive mean-looking piece of long extinct megafauna."
tt_desc = "Andrewsarchus mongoliensis"
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm b/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm
index 48cb351290..e65025a51f 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/zz_vore_overrides.dm
@@ -223,11 +223,6 @@
response_disarm = "gently pushes aside"
response_harm = "hits"
-
-/mob/living/simple_mob/hostile/carp/pike
- vore_active = 1
- // NO VORE SPRITES
-
/mob/living/simple_mob/animal/space/carp/holographic
vore_icons = 0 // NO VORE SPRITES
vore_digest_chance = 0
diff --git a/code/modules/mob/theme_lists.dm b/code/modules/mob/theme_lists.dm
new file mode 100644
index 0000000000..f93277c3c1
--- /dev/null
+++ b/code/modules/mob/theme_lists.dm
@@ -0,0 +1,10 @@
+//For use with various spawners! Put your selections inside of a list!
+/var/global/list/theme_animal = list()
+/var/global/list/theme_monster = list()
+/var/global/list/theme_alien = list()
+/var/global/list/theme_cold = list()
+/var/global/list/theme_hot = list()
+/var/global/list/theme_aquatic = list()
+/var/global/list/theme_dark = list()
+/var/global/list/theme_forest = list()
+/var/global/list/theme_humanoid = list()
diff --git a/code/modules/rogueminer_vr/controller.dm b/code/modules/rogueminer_vr/controller.dm
index efff235f2e..47017c7620 100644
--- a/code/modules/rogueminer_vr/controller.dm
+++ b/code/modules/rogueminer_vr/controller.dm
@@ -75,17 +75,17 @@ var/datum/controller/rogue/rm_controller
/mob/living/simple_mob/animal/space/bats/roguemines = 1,
/mob/living/simple_mob/animal/space/carp/roguemines = 2,
/mob/living/simple_mob/animal/space/goose/roguemines = 2,
- /mob/living/simple_mob/animal/wolf/space/roguemines = 1),
+ /mob/living/simple_mob/vore/wolf/space/roguemines = 1),
"tier3" = list(
/mob/living/simple_mob/animal/space/carp/roguemines = 1,
/mob/living/simple_mob/animal/space/goose/roguemines = 1,
- /mob/living/simple_mob/animal/wolf/space/roguemines = 3,
+ /mob/living/simple_mob/vore/wolf/space/roguemines = 3,
/mob/living/simple_mob/animal/space/carp/large/roguemines = 2,
/mob/living/simple_mob/animal/space/bear/roguemines = 1),
"tier4" = list(
- /mob/living/simple_mob/animal/wolf/space/roguemines = 1,
+ /mob/living/simple_mob/vore/wolf/space/roguemines = 1,
/mob/living/simple_mob/animal/space/carp/large/roguemines = 4,
/mob/living/simple_mob/animal/space/bear/roguemines = 2),
@@ -199,4 +199,4 @@ var/datum/controller/rogue/rm_controller
var/datum/rogue/zonemaster/ZM_oldest = get_oldest_zone()
if(ZM_oldest) ZM_oldest.clean_zone()
- return ZM_target
\ No newline at end of file
+ return ZM_target
diff --git a/code/modules/rogueminer_vr/roguemines_mobs.dm b/code/modules/rogueminer_vr/roguemines_mobs.dm
index a296c6d811..85c581d61e 100644
--- a/code/modules/rogueminer_vr/roguemines_mobs.dm
+++ b/code/modules/rogueminer_vr/roguemines_mobs.dm
@@ -7,7 +7,7 @@
/mob/living/simple_mob/animal/space/goose/roguemines
faction = "roguemines"
-/mob/living/simple_mob/animal/wolf/space/roguemines
+/mob/living/simple_mob/vore/wolf/space/roguemines
faction = "roguemines"
/mob/living/simple_mob/animal/space/carp/large/roguemines
@@ -20,4 +20,4 @@
faction = "roguemines"
/mob/living/simple_mob/animal/space/carp/large/huge/roguemines
- faction = "roguemines"
\ No newline at end of file
+ faction = "roguemines"
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index 2ef55c1f03..d58956c110 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -207,12 +207,14 @@
sparks()
if(telepad)
var/L = get_turf(telepad)
- var/blocked = list(/mob/living/simple_mob/hostile)
- var/list/hostiles = typesof(/mob/living/simple_mob/hostile) - blocked
+ var/blocked = list(/mob/living/simple_mob/vore)
+ var/list/hostiles = typesof(/mob/living/simple_mob/vore) - blocked
playsound(L, 'sound/effects/phasein.ogg', 100, 1, extrarange = 3, falloff = 5)
for(var/i in 1 to rand(1,4))
var/chosen = pick(hostiles)
- var/mob/living/simple_mob/hostile/H = new chosen
+ var/mob/living/simple_mob/vore/H = new chosen
+ if(H.ai_holder)
+ H.ai_holder.hostile = TRUE
H.forceMove(L)
return
if(99)
diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm
index 79fae032e4..238d556dc2 100644
--- a/code/modules/vore/eating/belly_obj_vr.dm
+++ b/code/modules/vore/eating/belly_obj_vr.dm
@@ -700,8 +700,8 @@
if (!(M in contents))
return 0 // They weren't in this belly anyway
- if(istype(M, /mob/living/simple_mob/vore/hostile/morph/dominated_prey))
- var/mob/living/simple_mob/vore/hostile/morph/dominated_prey/p = M
+ if(istype(M, /mob/living/simple_mob/vore/morph/dominated_prey))
+ var/mob/living/simple_mob/vore/morph/dominated_prey/p = M
p.undo_prey_takeover(FALSE)
return 0
for(var/mob/living/L in M.contents)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 7a429a2db0..28067cb97d 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -501,8 +501,8 @@
//You're in a belly!
if(isbelly(loc))
//You've been taken over by a morph
- if(istype(src, /mob/living/simple_mob/vore/hostile/morph/dominated_prey))
- var/mob/living/simple_mob/vore/hostile/morph/dominated_prey/s = src
+ if(istype(src, /mob/living/simple_mob/vore/morph/dominated_prey))
+ var/mob/living/simple_mob/vore/morph/dominated_prey/s = src
s.undo_prey_takeover(TRUE)
return
var/obj/belly/B = loc
diff --git a/code/modules/vore/mouseray.dm b/code/modules/vore/mouseray.dm
index 725deaef9c..ba154ea205 100644
--- a/code/modules/vore/mouseray.dm
+++ b/code/modules/vore/mouseray.dm
@@ -393,18 +393,18 @@
"space bear" = /mob/living/simple_mob/animal/space/bear,
"voracious lizard" = /mob/living/simple_mob/vore/aggressive/dino,
"giant frog" = /mob/living/simple_mob/vore/aggressive/frog,
- "jelly blob" = /mob/living/simple_mob/animal/space/jelly,
- "wolf" = /mob/living/simple_mob/animal/wolf,
- "direwolf" = /mob/living/simple_mob/animal/wolf/direwolf,
+ "jelly blob" = /mob/living/simple_mob/vore/jelly,
+ "wolf" = /mob/living/simple_mob/vore/wolf,
+ "direwolf" = /mob/living/simple_mob/vore/wolf/direwolf,
"great wolf" = /mob/living/simple_mob/vore/greatwolf,
"sect queen" = /mob/living/simple_mob/vore/sect_queen,
"sect drone" = /mob/living/simple_mob/vore/sect_drone,
"panther" = /mob/living/simple_mob/vore/aggressive/panther,
"giant snake" = /mob/living/simple_mob/vore/aggressive/giant_snake,
"deathclaw" = /mob/living/simple_mob/vore/aggressive/deathclaw,
- "otie" = /mob/living/simple_mob/otie,
- "mutated otie" =/mob/living/simple_mob/otie/feral,
- "red otie" = /mob/living/simple_mob/otie/red,
+ "otie" = /mob/living/simple_mob/vore/otie,
+ "mutated otie" =/mob/living/simple_mob/vore/otie/feral,
+ "red otie" = /mob/living/simple_mob/vore/otie/red,
"defanged xenomorph" = /mob/living/simple_mob/vore/xeno_defanged,
"catslug" = /mob/living/simple_mob/vore/alienanimals/catslug,
"teppi" = /mob/living/simple_mob/vore/alienanimals/teppi,
@@ -471,11 +471,11 @@
/obj/item/weapon/gun/energy/mouseray/otie
name = "otie ray"
- tf_type = /mob/living/simple_mob/otie
+ tf_type = /mob/living/simple_mob/vore/otie
/obj/item/weapon/gun/energy/mouseray/direwolf
name = "dire wolf ray"
- tf_type = /mob/living/simple_mob/animal/wolf/direwolf
+ tf_type = /mob/living/simple_mob/vore/wolf/direwolf
/obj/item/weapon/gun/energy/mouseray/giantrat
name = "giant rat ray"
diff --git a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm
index 8d5fc2cb0b..31763d9adc 100644
--- a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm
+++ b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm
@@ -19,8 +19,8 @@
/mob/living/simple_mob/vore/rabbit,
/mob/living/simple_mob/animal/goat,
/mob/living/simple_mob/animal/sif/tymisian,
- /mob/living/simple_mob/animal/wolf/direwolf,
- /mob/living/simple_mob/otie/friendly,
+ /mob/living/simple_mob/vore/wolf/direwolf,
+ /mob/living/simple_mob/vore/otie/friendly,
/mob/living/simple_mob/vore/alienanimals/catslug,
/mob/living/simple_mob/vore/alienanimals/teppi,
/mob/living/simple_mob/vore/fennec,
@@ -595,4 +595,4 @@
update_use_power(USE_POWER_ACTIVE)
icon_state = "borgcharger1(old)"
else
- visible_message(fail_message)
\ No newline at end of file
+ visible_message(fail_message)
diff --git a/maps/expedition_vr/aerostat/_aerostat.dm b/maps/expedition_vr/aerostat/_aerostat.dm
index fc63ab8678..f83c068782 100644
--- a/maps/expedition_vr/aerostat/_aerostat.dm
+++ b/maps/expedition_vr/aerostat/_aerostat.dm
@@ -139,9 +139,17 @@
prob_fall = 30
//guard = 20
mobs_to_pick_from = list(
+<<<<<<< HEAD
/mob/living/simple_mob/animal/space/jelly = 1,
/mob/living/simple_mob/mechanical/viscerator = 1,
/mob/living/simple_mob/vore/aggressive/corrupthound = 1
+=======
+ /mob/living/simple_mob/vore/jelly = 6,
+ /mob/living/simple_mob/mechanical/viscerator = 6,
+ /mob/living/simple_mob/vore/aggressive/corrupthound = 3,
+ /mob/living/simple_mob/vore/oregrub = 2,
+ /mob/living/simple_mob/vore/oregrub/lava = 1
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
)
/obj/structure/old_roboprinter
diff --git a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
index 329f95d0d8..c181fba6a6 100644
--- a/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
+++ b/maps/expedition_vr/aerostat/_aerostat_science_outpost.dm
@@ -72,7 +72,7 @@
prob_fall = 50
//guard = 20
mobs_to_pick_from = list(
- /mob/living/simple_mob/animal/space/jelly = 6,
+ /mob/living/simple_mob/vore/jelly = 6,
/mob/living/simple_mob/mechanical/viscerator = 6,
/mob/living/simple_mob/vore/aggressive/corrupthound = 3,
/mob/living/simple_mob/vore/oregrub = 2,
diff --git a/maps/gateway_archive_vr/snow_outpost.dm b/maps/gateway_archive_vr/snow_outpost.dm
index de9d70dfb1..c1e0adc8ae 100644
--- a/maps/gateway_archive_vr/snow_outpost.dm
+++ b/maps/gateway_archive_vr/snow_outpost.dm
@@ -17,7 +17,7 @@
power_environ = 0
mobcountmax = 100
floracountmax = 7000
- valid_mobs = list(/mob/living/simple_mob/animal/sif/savik, /mob/living/simple_mob/animal/wolf, /mob/living/simple_mob/animal/sif/shantak,
+ valid_mobs = list(/mob/living/simple_mob/animal/sif/savik, /mob/living/simple_mob/vore/wolf, /mob/living/simple_mob/animal/sif/shantak,
/mob/living/simple_mob/animal/sif/kururak, /mob/living/simple_mob/animal/sif/frostfly)
valid_flora = list(/obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine,
/obj/structure/flora/tree/dead, /obj/structure/flora/grass/brown, /obj/structure/flora/grass/green,
diff --git a/maps/gateway_vr/snow_outpost.dm b/maps/gateway_vr/snow_outpost.dm
index 1814683c45..84aae8da2f 100644
--- a/maps/gateway_vr/snow_outpost.dm
+++ b/maps/gateway_vr/snow_outpost.dm
@@ -23,7 +23,7 @@
dynamic_lighting = 0
mobcountmax = 50
floracountmax = 300
- valid_mobs = list(/mob/living/simple_mob/animal/sif/savik, /mob/living/simple_mob/animal/wolf, /mob/living/simple_mob/animal/sif/shantak,
+ valid_mobs = list(/mob/living/simple_mob/animal/sif/savik, /mob/living/simple_mob/vore/wolf, /mob/living/simple_mob/animal/sif/shantak,
/mob/living/simple_mob/animal/sif/kururak, /mob/living/simple_mob/animal/sif/frostfly)
valid_flora = list(/obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine,
/obj/structure/flora/tree/dead, /obj/structure/flora/grass/brown, /obj/structure/flora/grass/green,
diff --git a/maps/gateway_vr/snowfield.dm b/maps/gateway_vr/snowfield.dm
index 3aed3117ba..8127505ae9 100644
--- a/maps/gateway_vr/snowfield.dm
+++ b/maps/gateway_vr/snowfield.dm
@@ -32,7 +32,7 @@
valid_mobs = list(/mob/living/simple_mob/animal/sif/sakimm/polar, /mob/living/simple_mob/animal/sif/diyaab/polar,
/mob/living/simple_mob/animal/sif/shantak/polar, /mob/living/simple_mob/animal/space/bear/polar,
- /mob/living/simple_mob/animal/wolf)
+ /mob/living/simple_mob/vore/wolf)
valid_flora = list(/obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine,
/obj/structure/flora/tree/dead, /obj/structure/flora/grass/brown, /obj/structure/flora/grass/green,
/obj/structure/flora/grass/both, /obj/structure/flora/bush, /obj/structure/flora/ausbushes/grassybush,
@@ -180,4 +180,4 @@
/obj/effect/floor_decal/derelict/d16
name = "derelict16"
- icon_state = "derelict16"
\ No newline at end of file
+ icon_state = "derelict16"
diff --git a/maps/gateway_vr/wildwest.dm b/maps/gateway_vr/wildwest.dm
index 69c3a26f21..eaeef9426e 100644
--- a/maps/gateway_vr/wildwest.dm
+++ b/maps/gateway_vr/wildwest.dm
@@ -208,8 +208,8 @@
/mob/living/simple_mob/humanoid/merc/melee = 100,
/mob/living/simple_mob/humanoid/merc/ranged = 50,
/mob/living/simple_mob/humanoid/merc/ranged/space = 5,
- /mob/living/simple_mob/otie/feral = 10,
- /mob/living/simple_mob/otie/feral/chubby = 5
+ /mob/living/simple_mob/vore/otie/feral = 10,
+ /mob/living/simple_mob/vore/otie/feral/chubby = 5
),
list(
@@ -224,8 +224,8 @@
list(
/mob/living/simple_mob/humanoid/pirate = 100,
/mob/living/simple_mob/humanoid/pirate/ranged = 50,
- /mob/living/simple_mob/animal/wolf = 10,
- /mob/living/simple_mob/animal/wolf/direwolf = 5
+ /mob/living/simple_mob/vore/wolf = 10,
+ /mob/living/simple_mob/vore/wolf/direwolf = 5
)
)
diff --git a/maps/gateway_vr/zoo.dmm b/maps/gateway_vr/zoo.dmm
index 19fa7fc4da..688e547acf 100644
--- a/maps/gateway_vr/zoo.dmm
+++ b/maps/gateway_vr/zoo.dmm
@@ -7806,7 +7806,7 @@
/turf/simulated/floor/wood,
/area/awaymission/zoo)
"un" = (
-/mob/living/simple_mob/animal/wolf{
+/mob/living/simple_mob/vore/wolf{
faction = "zoo"
},
/turf/simulated/floor/holofloor/snow,
diff --git a/maps/stellar_delight/stellar_delight2.dmm b/maps/stellar_delight/stellar_delight2.dmm
index fd6a33cfea..162ac136ba 100644
--- a/maps/stellar_delight/stellar_delight2.dmm
+++ b/maps/stellar_delight/stellar_delight2.dmm
@@ -1010,7 +1010,7 @@
dir = 1;
pixel_y = 24
},
-/mob/living/simple_mob/otie/red/chubby/cocoa,
+/mob/living/simple_mob/vore/otie/red/chubby/cocoa,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/crew_quarters/bar)
>>>>>>> 3917d1a8d1... Merge pull request #14701 from KillianKirilenko/kk-misc2
diff --git a/maps/submaps/surface_submaps/plains/emptycabin.dmm b/maps/submaps/surface_submaps/plains/emptycabin.dmm
new file mode 100644
index 0000000000..707aaa9bab
--- /dev/null
+++ b/maps/submaps/surface_submaps/plains/emptycabin.dmm
@@ -0,0 +1,328 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/effect/decal/cleanable/filth,
+/obj/item/weapon/bone/arm,
+/obj/item/weapon/bone/skull/unathi,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"c" = (
+/obj/structure/curtain/black,
+/obj/structure/simple_door/sifwood,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"d" = (
+/obj/structure/closet/wardrobe,
+/obj/item/weapon/material/fishing_rod/modern,
+/obj/item/weapon/storage/toolbox/mechanical,
+/obj/item/weapon/storage/toolbox/lunchbox/nymph/filled,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"e" = (
+/turf/simulated/wall/sifwood,
+/area/submap/EmptyCabin)
+"f" = (
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"g" = (
+/obj/structure/bed/double/padded,
+/obj/item/weapon/bedsheet/purpledouble,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"h" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/template_noop,
+/area/template_noop)
+"i" = (
+/obj/structure/bed/chair/sofa/left/blue{
+ dir = 1
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"j" = (
+/obj/effect/decal/cleanable/blood,
+/mob/living/simple_mob/vore/otie/friendly/chubby{
+ desc = "The classic bioengineered longdog. This one still probably won't tolerate you. What an absolute unit";
+ faction = "spiders";
+ max_co2 = 0;
+ max_tox = 0
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"k" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/obj/structure/bed/chair/sofa/left{
+ dir = 8
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"l" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/obj/structure/bed/chair/sofa{
+ dir = 8
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"n" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/weapon/storage/fancy/candle_box,
+/obj/item/weapon/paper/crumpled/bloody{
+ info = "I found an otie while picking flowers today. He's so cute! I took him back home, and he seemed quite happy to share food with me. He really likes fish. Though, he never really seems to not be hungry..."
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"q" = (
+/obj/structure/railing/grey{
+ dir = 4
+ },
+/turf/template_noop,
+/area/submap/EmptyCabin)
+"r" = (
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"t" = (
+/obj/structure/railing/grey,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"y" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/curtain/black,
+/obj/structure/grille/rustic,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"z" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"A" = (
+/obj/structure/bonfire/permanent/sifwood,
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/virgo3b_indoors,
+/area/submap/EmptyCabin)
+"B" = (
+/turf/template_noop,
+/area/submap/EmptyCabin)
+"C" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"D" = (
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"G" = (
+/obj/structure/bed/chair/sofa/blue{
+ dir = 1
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"I" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/pizzabox/meat,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"J" = (
+/obj/structure/bed/chair/sofa/right/blue{
+ dir = 1
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"L" = (
+/obj/structure/table/sifwoodentable,
+/obj/item/weapon/flame/candle/candelabra,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"M" = (
+/obj/item/weapon/bone/leg,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"O" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/obj/structure/bed/chair/sofa/right{
+ dir = 8
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"Q" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"T" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/template_noop,
+/area/submap/EmptyCabin)
+"V" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"W" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"X" = (
+/obj/item/weapon/bone,
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+"Z" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/turf/simulated/floor/wood/sif/virgo3b,
+/area/submap/EmptyCabin)
+
+(1,1,1) = {"
+a
+q
+e
+O
+l
+l
+k
+C
+e
+a
+"}
+(2,1,1) = {"
+a
+B
+D
+D
+D
+D
+D
+D
+t
+a
+"}
+(3,1,1) = {"
+a
+T
+f
+e
+e
+c
+e
+e
+t
+a
+"}
+(4,1,1) = {"
+a
+a
+e
+e
+b
+M
+D
+e
+e
+a
+"}
+(5,1,1) = {"
+a
+a
+e
+g
+j
+X
+L
+i
+e
+a
+"}
+(6,1,1) = {"
+a
+a
+y
+n
+W
+D
+I
+G
+e
+a
+"}
+(7,1,1) = {"
+a
+a
+e
+d
+Z
+r
+D
+J
+e
+a
+"}
+(8,1,1) = {"
+a
+a
+e
+e
+z
+V
+Q
+e
+e
+a
+"}
+(9,1,1) = {"
+a
+a
+h
+e
+e
+A
+e
+e
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+h
+e
+e
+e
+a
+a
+a
+"}
diff --git a/maps/submaps/surface_submaps/plains/greatwolfden.dmm b/maps/submaps/surface_submaps/plains/greatwolfden.dmm
new file mode 100644
index 0000000000..d8ac2577ee
--- /dev/null
+++ b/maps/submaps/surface_submaps/plains/greatwolfden.dmm
@@ -0,0 +1,1597 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/decal/cleanable/blood/drip,
+/mob/living/simple_mob/vore/wolf/direwolf{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The biggest and baddest wolf around. Seems pretty chill, for a wolf.";
+ faction = "sif";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"bp" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"bz" = (
+/obj/structure/flora/bboulder1,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"bI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"bY" = (
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"dM" = (
+/obj/structure/flora/bboulder2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"dX" = (
+/obj/structure/cliff/automatic{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"eq" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"fh" = (
+/obj/structure/cliff/automatic{
+ dir = 2
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"fX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"ge" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"hJ" = (
+/obj/structure/cliff/automatic{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"iX" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"jg" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"ju" = (
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"kg" = (
+/obj/item/weapon/bone/skull/unathi,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"kk" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gib2_flesh"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"kL" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass3"
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"lu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/a10mm,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"lL" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"lQ" = (
+/obj/effect/decal/cleanable/filth,
+/obj/item/weapon/card/emag_broken,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"mk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"mm" = (
+/obj/random/trash_pile,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"nd" = (
+/obj/structure/flora/rocks2,
+/obj/effect/decal/remains/lizard,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"nv" = (
+/mob/living/simple_mob/vore/greatwolf{
+ dir = 8;
+ max_co2 = 0;
+ min_oxy = 0
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"pS" = (
+/turf/template_noop,
+/area/template_noop)
+"qb" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"rn" = (
+/obj/structure/loot_pile/mecha/gygax/dark/adv,
+/obj/effect/decal/cleanable/blood/gibs/robot/down,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"rM" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "eyeplant2"
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"tb" = (
+/obj/structure/flora/smallbould,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"tm" = (
+/turf/simulated/mineral/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"tC" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"uz" = (
+/mob/living/simple_mob/vore/wolf/direwolf{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The biggest and baddest wolf around. Seems pretty chill, for a wolf.";
+ faction = "sif";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"uY" = (
+/obj/item/ammo_casing/a10mm,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"vu" = (
+/obj/item/weapon/bone/skull/tajaran,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"wc" = (
+/obj/item/weapon/bone/skull/unathi,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"xt" = (
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"xu" = (
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"xK" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/under/syndicate,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"yi" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"yF" = (
+/obj/structure/flora/smallbould,
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"yG" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"yH" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"zl" = (
+/obj/structure/flora/bboulder1,
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"zs" = (
+/obj/structure/flora/bboulder2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"zV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"AG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/rocks/virgo3b,
+/area/submap/GreatWolfDen)
+"AK" = (
+/obj/structure/cliff/automatic/ramp{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"BR" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Cd" = (
+/mob/living/simple_mob/vore/otie/feral/chubby{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The classic bioengineered longdog. No pets. Only bite. What an absolute unit.";
+ faction = "sif";
+ minbodytemp = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"CR" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Dj" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"DV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"EU" = (
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Fy" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "eyeplant1"
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"GZ" = (
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Hb" = (
+/obj/structure/closet/crate/secure/loot,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"HC" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Ic" = (
+/obj/effect/decal/remains/deer,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Id" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/template_noop,
+/area/template_noop)
+"If" = (
+/obj/effect/decal/cleanable/blood/gibs/robot/limb,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Iw" = (
+/obj/effect/decal/remains/deer,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Kb" = (
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Ko" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gibdown1_flesh"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Kp" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"KU" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass3"
+ },
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"Lx" = (
+/obj/structure/cliff/automatic{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Lz" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gib1_flesh"
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"LJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"LP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"LT" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Mc" = (
+/obj/effect/decal/cleanable/ash,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Mv" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"MD" = (
+/obj/structure/flora/tree/sif{
+ icon_state = "tree_sif4"
+ },
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"OB" = (
+/obj/item/stack/material/log{
+ amount = 25
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"OL" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"OV" = (
+/obj/structure/cliff/automatic{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"OW" = (
+/obj/structure/cliff/automatic{
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Pa" = (
+/obj/structure/cliff/automatic/ramp,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Pf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Pl" = (
+/obj/effect/decal/remains/lizard,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"PC" = (
+/obj/structure/closet/crate/secure/loot,
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"PX" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Qb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks1,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Qv" = (
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"QA" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass2"
+ },
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"QJ" = (
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"QM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Rb" = (
+/obj/item/weapon/bone/leg,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Rf" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle"
+ },
+/obj/item/weapon/gun/projectile/pistol,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Rj" = (
+/obj/structure/flora/grass/both,
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"Rx" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"RW" = (
+/obj/structure/flora/rocks2,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"SO" = (
+/obj/item/weapon/telecube/mated,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"SQ" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Tf" = (
+/obj/item/weapon/paper/card/heart{
+ desc = "A gift card with a heart on the cover. This appears to be a thank-you to the.. wolves??"
+ },
+/obj/item/weapon/paper/crumpled{
+ icon_state = "scrap_bloodied";
+ info = "The wolves dragged me back to their den when they found me incapacitated, and nursed me back to health, instead of eating me. I don't know why. Anyway, they're a bunch of goodboyes. Don't let the bones strewn about their den frighten you. Just be nice to them and they won't hurt you.";
+ name = "survivor's note"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Tn" = (
+/obj/structure/bonfire,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"Ty" = (
+/obj/random/trash_pile,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"UV" = (
+/obj/structure/cliff/automatic{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Vq" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"WH" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/item/weapon/storage/toolbox/syndicate,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"WR" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant1"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"WY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Xx" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass1"
+ },
+/turf/simulated/floor/outdoors/snow/virgo3b,
+/area/submap/GreatWolfDen)
+"Xy" = (
+/obj/item/weapon/bone/ribs,
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Yw" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Yy" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Zj" = (
+/turf/simulated/floor/outdoors/grass/sif/virgo3b,
+/area/submap/GreatWolfDen)
+"Zk" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant2"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+"Zu" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/GreatWolfDen)
+
+(1,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(2,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Ty
+pS
+pS
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(3,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+HC
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+"}
+(4,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+Qv
+Qv
+Qv
+bp
+dX
+dX
+dX
+dX
+dX
+dX
+dX
+Dj
+Qv
+HC
+Qv
+pS
+pS
+pS
+pS
+Qv
+Qv
+pS
+pS
+"}
+(5,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+bp
+dX
+dX
+OV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+dX
+dX
+Dj
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+"}
+(6,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+dX
+Dj
+Qv
+Qv
+pS
+pS
+pS
+pS
+"}
+(7,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+Qv
+bp
+OV
+tm
+tm
+tm
+tm
+jg
+BR
+Mv
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+Dj
+Qv
+pS
+pS
+pS
+pS
+"}
+(8,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+fh
+tm
+tm
+tm
+yi
+CR
+xK
+uY
+xu
+Zu
+zs
+xu
+xu
+Mv
+tm
+tm
+tm
+tm
+OW
+Dj
+Qv
+pS
+pS
+pS
+"}
+(9,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+fh
+tm
+tm
+Mc
+QJ
+qb
+lu
+mk
+uY
+xu
+xu
+kk
+xu
+xu
+xu
+tb
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+pS
+"}
+(10,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+mm
+Rb
+EU
+lQ
+BR
+Kb
+QM
+Iw
+xu
+RW
+Zk
+xu
+xu
+tm
+tm
+tm
+OL
+Qv
+Qv
+Qv
+pS
+"}
+(11,1,1) = {"
+pS
+pS
+pS
+Qv
+Qv
+Qv
+fh
+tm
+tm
+bz
+Pl
+bI
+DV
+tm
+wc
+xu
+xu
+xu
+xu
+xu
+Cd
+xu
+kg
+tm
+tm
+OW
+Dj
+Qv
+Qv
+pS
+"}
+(12,1,1) = {"
+pS
+pS
+pS
+Qv
+HC
+Qv
+LT
+UV
+tm
+tm
+bI
+CR
+tm
+tm
+rn
+PX
+Tn
+Zj
+Zj
+uz
+xu
+xu
+BR
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(13,1,1) = {"
+pS
+pS
+Id
+pS
+Qv
+Qv
+Qv
+fh
+tm
+tm
+Tf
+Ko
+tm
+tm
+OB
+uz
+Zj
+Xx
+rM
+Zj
+Iw
+xu
+xu
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(14,1,1) = {"
+pS
+pS
+pS
+pS
+Id
+Qv
+Qv
+fh
+tm
+tm
+CR
+CR
+tm
+yF
+Yy
+Fy
+Zj
+Rj
+Kp
+Lz
+Zj
+xu
+uz
+Xy
+tm
+tm
+OL
+Qv
+Qv
+Qv
+"}
+(15,1,1) = {"
+pS
+Qv
+Id
+fX
+pS
+dM
+Pa
+OV
+tm
+LJ
+Pf
+CR
+tm
+ju
+aa
+Lz
+eq
+bY
+MD
+yG
+Zj
+xu
+If
+xu
+tm
+tm
+OL
+Qv
+HC
+Qv
+"}
+(16,1,1) = {"
+Qv
+pS
+Qv
+Id
+Rx
+zV
+LP
+Qb
+AG
+CR
+CR
+CR
+tm
+SO
+tC
+Zj
+Zj
+bY
+QA
+Zj
+kL
+uz
+xu
+Mv
+tm
+tm
+OL
+Qv
+Qv
+Qv
+"}
+(17,1,1) = {"
+pS
+pS
+Qv
+Rx
+WY
+Rx
+AK
+UV
+tm
+tm
+tm
+tm
+tm
+vu
+WR
+GZ
+nv
+KU
+Rj
+Zj
+xu
+xu
+xu
+xu
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(18,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+zs
+xu
+xK
+Ic
+Zj
+Zj
+bY
+Zj
+nd
+xu
+xu
+lL
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(19,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+Hb
+xu
+uz
+xu
+Zj
+Zj
+Zj
+xu
+uz
+xt
+tm
+tm
+hJ
+SQ
+Qv
+pS
+Qv
+"}
+(20,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+PC
+xu
+Yy
+kk
+Ic
+uz
+xu
+Vq
+xt
+Rf
+tm
+tm
+OL
+Qv
+Qv
+pS
+pS
+"}
+(21,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+tm
+xu
+WH
+iX
+yH
+Yy
+xu
+Vq
+Yw
+tm
+tm
+tm
+OL
+Qv
+Qv
+Qv
+pS
+"}
+(22,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+HC
+fh
+tm
+tm
+tm
+tm
+zl
+BR
+xu
+ge
+xu
+Vq
+xt
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Ty
+Qv
+pS
+"}
+(23,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Qv
+pS
+pS
+pS
+"}
+(24,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+LT
+Lx
+UV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Qv
+Qv
+pS
+pS
+pS
+"}
+(25,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+pS
+Qv
+Qv
+Qv
+LT
+Lx
+UV
+tm
+tm
+hJ
+Lx
+Lx
+Lx
+Lx
+SQ
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+"}
+(26,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+Qv
+Ty
+LT
+Lx
+Lx
+SQ
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(27,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(28,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+HC
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+pS
+pS
+pS
+"}
+(29,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(30,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
diff --git a/maps/submaps/surface_submaps/plains/leopardmanderden.dmm b/maps/submaps/surface_submaps/plains/leopardmanderden.dmm
new file mode 100644
index 0000000000..006b3c6689
--- /dev/null
+++ b/maps/submaps/surface_submaps/plains/leopardmanderden.dmm
@@ -0,0 +1,1055 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aK" = (
+/obj/item/weapon/ore/silver,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"aT" = (
+/obj/structure/table/bench/sifwooden/padded,
+/mob/living/simple_mob/animal/sif/siffet{
+ faction = "neutral";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0;
+ minbodytemp = 0
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"bj" = (
+/obj/item/weapon/bluespace_crystal,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"bO" = (
+/obj/item/stack/material/gold,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"cu" = (
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"dA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/simple_door/sifwood,
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"eD" = (
+/obj/structure/railing/grey{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"eF" = (
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/rocks/virgo3b,
+/area/template_noop)
+"fe" = (
+/obj/item/weapon/coin/diamond,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"fQ" = (
+/obj/effect/landmark/loot_spawn/low,
+/obj/item/weapon/ore/gold,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"gg" = (
+/obj/random/obstruction,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"gC" = (
+/obj/item/weapon/flame/lighter/zippo/gold,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"gD" = (
+/obj/structure/flora/smallbould,
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"gP" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"gU" = (
+/obj/item/weapon/coin/gold,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"hi" = (
+/obj/structure/sign/warning/falling,
+/turf/simulated/wall/gold,
+/area/submap/LeopardmanderDen)
+"hr" = (
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"hw" = (
+/obj/structure/cliff/automatic{
+ dir = 9
+ },
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"iV" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"jb" = (
+/obj/machinery/crystal/ice,
+/turf/template_noop,
+/area/template_noop)
+"jE" = (
+/obj/structure/cliff/automatic{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"ki" = (
+/obj/structure/table/bench/sifwooden/padded,
+/obj/item/clothing/head/pin/flower/violet,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"kx" = (
+/obj/item/stack/material/gold,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"kO" = (
+/obj/structure/cliff/automatic{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"lb" = (
+/obj/structure/cliff/automatic{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"ll" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"mi" = (
+/obj/structure/cliff/automatic/ramp{
+ dir = 9
+ },
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"mu" = (
+/obj/structure/flora/rocks2,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"mW" = (
+/obj/structure/railing/grey,
+/obj/structure/railing/grey{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"nG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"nR" = (
+/mob/living/simple_mob/animal/sif/sakimm,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"oD" = (
+/obj/fiftyspawner/silver,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"pQ" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"qa" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"qg" = (
+/obj/structure/bed/chair/sofa/right{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"rn" = (
+/turf/template_noop,
+/area/template_noop)
+"ro" = (
+/obj/structure/flora/lily3,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"rD" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"rG" = (
+/obj/structure/flora/pottedplant/flower,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"sl" = (
+/obj/machinery/crystal/ice,
+/obj/structure/railing/grey{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"sN" = (
+/mob/living/simple_mob/vore/otie/red/chubby{
+ desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit. It has a collar around one of its ankles that reads 'Tawny'.";
+ name = "Tawny"
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"sY" = (
+/mob/living/simple_mob/animal/sif/sakimm{
+ faction = "neutral";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0;
+ minbodytemp = 0
+ },
+/turf/template_noop,
+/area/template_noop)
+"tC" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"tP" = (
+/mob/living/simple_mob/animal/sif/sakimm{
+ faction = "neutral";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0;
+ minbodytemp = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"uw" = (
+/obj/structure/ledge/ledge_stairs{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/virgo3b,
+/area/template_noop)
+"uz" = (
+/obj/structure/cliff/automatic{
+ dir = 8
+ },
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"xf" = (
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"xg" = (
+/obj/item/weapon/ore/silver,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"xL" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"yl" = (
+/turf/simulated/wall/golddiamond,
+/area/submap/LeopardmanderDen)
+"zJ" = (
+/mob/living/simple_mob/animal/sif/siffet{
+ faction = "neutral";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0;
+ minbodytemp = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"zW" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Ah" = (
+/obj/structure/flora/grass/green,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"AF" = (
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"AP" = (
+/obj/structure/bed/chair/sofa/right{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"BE" = (
+/obj/item/stack/material/diamond,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"DI" = (
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"DJ" = (
+/obj/structure/flora/log1,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Ez" = (
+/obj/structure/flora/bboulder2,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"EH" = (
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Gl" = (
+/obj/structure/cliff/automatic{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Gw" = (
+/obj/item/weapon/ore/gold,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Hx" = (
+/obj/structure/sign/warning/falling,
+/turf/simulated/wall/sifwood,
+/area/template_noop)
+"HV" = (
+/obj/structure/bed/chair/sofa/left{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Ih" = (
+/obj/random/obstruction,
+/turf/template_noop,
+/area/template_noop)
+"IQ" = (
+/turf/simulated/mineral/ignore_mapgen,
+/area/submap/LeopardmanderDen)
+"Jk" = (
+/turf/simulated/floor/outdoors/rocks/virgo3b,
+/area/template_noop)
+"Kd" = (
+/obj/structure/cliff/automatic,
+/obj/structure/railing/grey{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Kv" = (
+/obj/random/outcrop,
+/turf/template_noop,
+/area/template_noop)
+"KT" = (
+/obj/structure/flora/ausbushes/brflowers,
+/obj/structure/flora/tree/bigtree,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Lb" = (
+/obj/structure/cliff/automatic{
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Ls" = (
+/obj/structure/cliff/automatic{
+ dir = 2
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"MQ" = (
+/obj/machinery/crystal/ice,
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"NS" = (
+/obj/structure/cliff/automatic{
+ dir = 10
+ },
+/obj/structure/railing/grey,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Pc" = (
+/obj/item/stack/material/diamond,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"PO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Qa" = (
+/obj/machinery/crystal/ice,
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"QQ" = (
+/obj/item/stack/material/gold,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"RA" = (
+/obj/fiftyspawner/gold,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Sk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Sm" = (
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"SM" = (
+/obj/structure/flora/log2,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Te" = (
+/obj/item/weapon/coin/silver,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Tj" = (
+/mob/living/simple_mob/animal/sif/tymisian{
+ faction = "neutral";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0;
+ minbodytemp = 0
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Tt" = (
+/obj/structure/flora/ausbushes/brflowers,
+/obj/item/weapon/coin/iron,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"TF" = (
+/obj/structure/bed/chair/sofa/left{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Uc" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Ul" = (
+/obj/item/weapon/ore/gold,
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"UA" = (
+/obj/structure/flora/ausbushes/brflowers,
+/obj/item/weapon/coin/gold,
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Vi" = (
+/obj/structure/flora/lily2,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"VM" = (
+/turf/simulated/wall/gold,
+/area/submap/LeopardmanderDen)
+"VV" = (
+/obj/structure/flora/lily1,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"WB" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/rocks/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Xt" = (
+/mob/living/simple_mob/vore/leopardmander{
+ max_co2 = 0;
+ min_oxy = 0
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"XR" = (
+/obj/effect/map_effect/interval/effect_emitter/steam,
+/turf/simulated/floor/water/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Yq" = (
+/obj/structure/cliff/automatic{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"YJ" = (
+/obj/item/weapon/ore/diamond,
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+"Zj" = (
+/mob/living/simple_mob/animal/sif/tymisian{
+ faction = "neutral"
+ },
+/turf/simulated/floor/outdoors/grass/sif/virgo3b{
+ outdoors = 0
+ },
+/area/submap/LeopardmanderDen)
+
+(1,1,1) = {"
+rn
+Ih
+iV
+Yq
+Yq
+Yq
+Yq
+Yq
+Yq
+Yq
+pQ
+Sm
+Sm
+Sm
+Sm
+rn
+rn
+rn
+rn
+rn
+"}
+(2,1,1) = {"
+rn
+iV
+kO
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+Lb
+Yq
+Yq
+Yq
+pQ
+Sm
+sY
+rn
+Sm
+rn
+"}
+(3,1,1) = {"
+iV
+kO
+IQ
+IQ
+Qa
+yl
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+Lb
+Yq
+pQ
+Sm
+Ih
+rn
+"}
+(4,1,1) = {"
+Ls
+IQ
+IQ
+cu
+xf
+bj
+Pc
+xf
+IQ
+cu
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+Lb
+pQ
+Sm
+rn
+"}
+(5,1,1) = {"
+Ls
+IQ
+IQ
+xL
+BE
+DI
+PO
+DI
+kx
+gU
+DI
+Uc
+xL
+cu
+IQ
+IQ
+IQ
+Lb
+Yq
+pQ
+"}
+(6,1,1) = {"
+Ls
+IQ
+IQ
+xf
+fe
+Xt
+AF
+Vi
+YJ
+AF
+Ah
+xg
+Zj
+Qa
+cu
+IQ
+IQ
+IQ
+IQ
+gP
+"}
+(7,1,1) = {"
+Ls
+IQ
+IQ
+RA
+DI
+AF
+SM
+AF
+AF
+ro
+AF
+nR
+DI
+Pc
+xL
+IQ
+IQ
+IQ
+IQ
+gP
+"}
+(8,1,1) = {"
+Ls
+IQ
+cu
+xf
+mu
+AF
+AF
+AF
+UA
+XR
+AF
+DJ
+hr
+tC
+Uc
+IQ
+Qa
+IQ
+IQ
+gP
+"}
+(9,1,1) = {"
+Ls
+IQ
+IQ
+IQ
+QQ
+AF
+AF
+rD
+KT
+Tt
+AF
+AF
+AF
+fQ
+xf
+IQ
+HV
+AP
+IQ
+gP
+"}
+(10,1,1) = {"
+Ls
+IQ
+IQ
+cu
+gC
+nG
+AF
+XR
+Ez
+VV
+AF
+AF
+ki
+Gw
+bO
+cu
+cu
+cu
+IQ
+gP
+"}
+(11,1,1) = {"
+Ls
+IQ
+IQ
+cu
+xL
+DI
+DI
+AF
+AF
+AF
+AF
+AF
+aT
+Ul
+qa
+VM
+qg
+TF
+IQ
+gP
+"}
+(12,1,1) = {"
+ll
+lb
+IQ
+IQ
+VM
+Qa
+sN
+aK
+Te
+DJ
+Ah
+rG
+Sk
+qa
+oD
+IQ
+IQ
+IQ
+IQ
+gP
+"}
+(13,1,1) = {"
+rn
+ll
+lb
+IQ
+IQ
+IQ
+IQ
+Qa
+DI
+hr
+DI
+xf
+xf
+xL
+cu
+IQ
+IQ
+IQ
+IQ
+gP
+"}
+(14,1,1) = {"
+rn
+gg
+Ls
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+IQ
+xf
+cu
+cu
+Qa
+cu
+IQ
+IQ
+IQ
+Gl
+zW
+"}
+(15,1,1) = {"
+rn
+Sm
+ll
+jE
+lb
+IQ
+IQ
+IQ
+IQ
+IQ
+gD
+cu
+WB
+IQ
+IQ
+IQ
+IQ
+Gl
+zW
+rn
+"}
+(16,1,1) = {"
+rn
+Sm
+gg
+Sm
+ll
+lb
+IQ
+IQ
+IQ
+IQ
+IQ
+hi
+dA
+VM
+IQ
+Gl
+jE
+zW
+rn
+Kv
+"}
+(17,1,1) = {"
+rn
+rn
+Sm
+rn
+Sm
+ll
+jE
+jE
+jE
+jE
+jE
+NS
+uw
+hw
+jE
+zW
+Sm
+jb
+zJ
+rn
+"}
+(18,1,1) = {"
+rn
+Sm
+Sm
+Sm
+Tj
+Sm
+Sm
+Hx
+Sm
+sl
+eD
+mW
+uw
+Kd
+tP
+rn
+Tj
+rn
+rn
+rn
+"}
+(19,1,1) = {"
+rn
+rn
+Sm
+rn
+Sm
+tP
+Sm
+zJ
+Sm
+EH
+eF
+eF
+Jk
+Kd
+Sm
+Ih
+rn
+rn
+rn
+rn
+"}
+(20,1,1) = {"
+rn
+rn
+rn
+rn
+rn
+Sm
+Sm
+Sm
+Sm
+MQ
+mi
+uz
+uz
+zW
+rn
+rn
+rn
+rn
+rn
+rn
+"}
diff --git a/maps/submaps/surface_submaps/plains/otieshelter.dmm b/maps/submaps/surface_submaps/plains/otieshelter.dmm
new file mode 100644
index 0000000000..137930b5f8
--- /dev/null
+++ b/maps/submaps/surface_submaps/plains/otieshelter.dmm
@@ -0,0 +1,1095 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"aj" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"ar" = (
+/obj/structure/closet/secure_closet/medical_wall/anesthetics,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"cq" = (
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"cU" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"eI" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"fw" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"gr" = (
+/obj/machinery/porta_turret/poi,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"gN" = (
+/obj/structure/undies_wardrobe,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"hh" = (
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"hk" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"hD" = (
+/obj/effect/decal/cleanable/filth,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"iv" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid/surgery,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"iC" = (
+/obj/effect/decal/cleanable/blood,
+/mob/living/simple_mob/vore/otie/friendly{
+ health = 0
+ },
+/turf/template_noop,
+/area/template_noop)
+"iY" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/item/trash/bowl,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"jc" = (
+/obj/machinery/optable,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"jo" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"jy" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"jI" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ color = "red";
+ desc = "Your instincts say you shouldn't be following these.";
+ dir = 4;
+ icon = 'icons/effects/blood.dmi';
+ icon_state = "tracks"
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"kF" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"kX" = (
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"lv" = (
+/obj/structure/door_assembly,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"lP" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"lQ" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"lY" = (
+/obj/machinery/light,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"mu" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/mob/living/simple_mob/vore/otie/friendly/chubby,
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"mC" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -28
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"mJ" = (
+/obj/structure/sign/warning/secure_area,
+/turf/simulated/wall/r_wall,
+/area/submap/OtieShelter)
+"nK" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"nR" = (
+/obj/structure/table/marble,
+/obj/item/weapon/newspaper,
+/obj/item/weapon/paper/card/heart,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"ob" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"od" = (
+/obj/machinery/door/window,
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"op" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"pa" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/filth,
+/obj/effect/decal/cleanable/filth,
+/obj/random/handgun/sec,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"pd" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"rb" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"sJ" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"tt" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/cotie,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"tz" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"tP" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"uw" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"uD" = (
+/obj/machinery/light,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"uS" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"vA" = (
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"vB" = (
+/obj/machinery/door/window{
+ dir = 8
+ },
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"vV" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"wg" = (
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"wO" = (
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"xf" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"xj" = (
+/obj/structure/table/marble,
+/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"xI" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/friendly,
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"yD" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid/adv,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Aa" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/cotie/phoron,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"At" = (
+/obj/structure/table/marble,
+/obj/item/weapon/paper_bin,
+/obj/item/weapon/pen,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"AO" = (
+/obj/structure/table/glass,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"AQ" = (
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"BM" = (
+/obj/item/weapon/melee/baton/cattleprod,
+/obj/effect/decal/cleanable/blood/tracks{
+ color = "red";
+ desc = "Your instincts say you shouldn't be following these.";
+ dir = 4;
+ icon = 'icons/effects/blood.dmi';
+ icon_state = "tracks"
+ },
+/obj/effect/decal/cleanable/filth,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Cw" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"CM" = (
+/obj/structure/closet/wardrobe,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"EE" = (
+/obj/machinery/door/airlock/engineering,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"EI" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Hk" = (
+/obj/machinery/door/window,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"HV" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Ih" = (
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Ij" = (
+/mob/living/simple_mob/vore/otie/cotie{
+ max_co2 = 0;
+ max_tox = 0
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"IF" = (
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"JY" = (
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"KJ" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Lr" = (
+/obj/structure/door_assembly,
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/OtieShelter)
+"LF" = (
+/obj/structure/ghost_pod/manual/lost_drone/dogborg,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Mc" = (
+/obj/structure/fireaxecabinet{
+ pixel_y = 29
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Mg" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Mn" = (
+/mob/living/simple_mob/vore/otie/red/chubby,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Mz" = (
+/turf/simulated/wall/r_wall,
+/area/submap/OtieShelter)
+"MK" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"Nd" = (
+/obj/structure/table/marble,
+/obj/structure/table/marble,
+/obj/item/device/radio/phone,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"Nh" = (
+/obj/item/weapon/bedsheet/browndouble,
+/obj/structure/bed/double/padded,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"Np" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"NJ" = (
+/obj/machinery/door/window{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Of" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"OJ" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/obj/effect/decal/cleanable/blood/tracks/paw{
+ icon_state = "paw1"
+ },
+/obj/item/ammo_casing/spent,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Pn" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Px" = (
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"Qr" = (
+/turf/template_noop,
+/area/template_noop)
+"Ro" = (
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"RW" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "PAPC";
+ pixel_y = 24
+ },
+/obj/structure/cable/green{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"Sn" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"SD" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"TP" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/obj/structure/cable/green{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"UF" = (
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"UH" = (
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"VE" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/effect/decal/cleanable/blood/tracks/paw{
+ icon_state = "paw1"
+ },
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"VL" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/carpet/turcarpet/virgo3b,
+/area/submap/OtieShelter)
+"VY" = (
+/mob/living/simple_mob/vore/otie/cotie/chubby,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Wl" = (
+/obj/effect/decal/cleanable/blood,
+/obj/structure/windoor_assembly,
+/obj/structure/windoor_assembly{
+ dir = 2
+ },
+/turf/simulated/floor/virgo3b_indoors,
+/area/submap/OtieShelter)
+"WY" = (
+/obj/machinery/oxygen_pump/mobile/anesthetic,
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"XB" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/table/rack/shelf/steel,
+/obj/item/weapon/storage/toolbox/mechanical,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/virgo3b,
+/area/submap/OtieShelter)
+"XG" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/red/friendly,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+
+(1,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(2,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(3,1,1) = {"
+Qr
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+"}
+(4,1,1) = {"
+Qr
+Mz
+wO
+Of
+kF
+Of
+kF
+Of
+xI
+Of
+kF
+Of
+Mz
+Nh
+MK
+gN
+Mz
+Qr
+Qr
+Qr
+"}
+(5,1,1) = {"
+Qr
+Mz
+IF
+VY
+tt
+IF
+Aa
+Ih
+lQ
+IF
+lQ
+IF
+Mz
+vV
+Ro
+Ro
+Mz
+Qr
+Qr
+Qr
+"}
+(6,1,1) = {"
+Qr
+Mz
+hh
+Hk
+tP
+Hk
+Np
+od
+Np
+Hk
+mu
+Hk
+Mz
+CM
+Ro
+Ro
+Mz
+gr
+Qr
+Qr
+"}
+(7,1,1) = {"
+Qr
+Mz
+ar
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Mz
+Mz
+fw
+Mz
+mJ
+rb
+Lr
+Qr
+"}
+(8,1,1) = {"
+Qr
+Mz
+jo
+AQ
+AQ
+AQ
+AQ
+AQ
+AQ
+AQ
+AQ
+AQ
+fw
+mC
+nK
+ag
+AQ
+aj
+op
+iC
+"}
+(9,1,1) = {"
+Qr
+Mz
+Mc
+AQ
+AQ
+AO
+Cw
+yD
+AO
+AQ
+AQ
+uD
+Mz
+Mz
+lv
+Mz
+mJ
+rb
+JY
+Qr
+"}
+(10,1,1) = {"
+Qr
+Mz
+HV
+WY
+jc
+AO
+iv
+AO
+AO
+vA
+hD
+AQ
+sJ
+Sn
+tz
+wg
+Mz
+gr
+Qr
+Qr
+"}
+(11,1,1) = {"
+Qr
+Mz
+jo
+AQ
+AQ
+AQ
+AQ
+AQ
+hD
+pa
+OJ
+AQ
+ob
+jy
+Nd
+nR
+Mz
+Qr
+Qr
+Qr
+"}
+(12,1,1) = {"
+Qr
+Mz
+LF
+UF
+UF
+UF
+UF
+UF
+UF
+BM
+kX
+EI
+hk
+wg
+xj
+cq
+Mz
+Qr
+Qr
+Qr
+"}
+(13,1,1) = {"
+Qr
+Mz
+UH
+NJ
+Pn
+vB
+Pn
+NJ
+Mg
+jI
+xf
+lY
+Mz
+VL
+At
+wg
+Mz
+Qr
+Qr
+Qr
+"}
+(14,1,1) = {"
+Qr
+Mz
+IF
+Ij
+XG
+IF
+lQ
+Mn
+iY
+lP
+XB
+pd
+Wl
+VE
+wg
+wg
+Mz
+Qr
+Qr
+Qr
+"}
+(15,1,1) = {"
+Qr
+Mz
+wO
+uS
+kF
+uS
+kF
+uS
+uw
+SD
+KJ
+AQ
+Mz
+wg
+wg
+wg
+Mz
+Qr
+Qr
+Qr
+"}
+(16,1,1) = {"
+Qr
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+EE
+Mz
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+"}
+(17,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+RW
+cU
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(18,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+TP
+eI
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(19,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(20,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
diff --git a/maps/submaps/surface_submaps/wilderness/dogbase.dmm b/maps/submaps/surface_submaps/wilderness/dogbase.dmm
index 697c7da787..b837c26ce4 100644
--- a/maps/submaps/surface_submaps/wilderness/dogbase.dmm
+++ b/maps/submaps/surface_submaps/wilderness/dogbase.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"ab" = (
/obj/machinery/light{
@@ -1886,3 +1887,1868 @@ hp
hp
hp
"}
+=======
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ab" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/vending/coffee,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"ae" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"ay" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/remains/tajaran,
+/obj/random/maintenance/medical,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"aF" = (
+/obj/structure/sign/securearea,
+/turf/simulated/wall/r_wall,
+/area/submap/DogBase)
+"aX" = (
+/obj/structure/dogbed,
+/obj/effect/decal/remains/tajaran,
+/obj/effect/decal/cleanable/filth,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone,
+/obj/random/maintenance/security,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"bl" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/danger{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/submap/DogBase)
+"bw" = (
+/obj/item/weapon/storage/belt/janitor,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"bx" = (
+/obj/machinery/porta_turret/poi{
+ faction = "syndicate"
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"bT" = (
+/obj/structure/safe,
+/obj/effect/floor_decal/borderfloor{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"cS" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"ec" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"eA" = (
+/obj/machinery/vending/cola,
+/obj/effect/floor_decal/borderfloor{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"eI" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"eZ" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"fg" = (
+/obj/structure/closet/l3closet/janitor,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"fI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/cargo,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"hl" = (
+/obj/effect/floor_decal/borderfloor/corner,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"hp" = (
+/turf/template_noop,
+/area/template_noop)
+"hA" = (
+/obj/structure/table/woodentable,
+/obj/item/stolenpackage,
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"hZ" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"ik" = (
+/obj/random/mob/merc/all,
+/turf/template_noop,
+/area/template_noop)
+"iv" = (
+/obj/structure/dogbed,
+/obj/effect/decal/remains/human,
+/obj/effect/decal/cleanable/filth,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone/ribs,
+/obj/random/maintenance/research,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"jz" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/floor_decal/borderfloor{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"jD" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"jO" = (
+/obj/structure/dogbed,
+/obj/effect/decal/remains/unathi,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/security,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"kl" = (
+/obj/effect/decal/remains/human,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/cargo,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"km" = (
+/obj/effect/decal/remains/human,
+/turf/template_noop,
+/area/template_noop)
+"lb" = (
+/obj/random/mob/merc/all,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"lg" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"lh" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"lk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"lm" = (
+/obj/structure/table/woodentable,
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"lr" = (
+/obj/effect/floor_decal/industrial/danger{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/submap/DogBase)
+"lN" = (
+/obj/machinery/porta_turret/poi{
+ faction = "syndicate"
+ },
+/turf/simulated/floor,
+/area/submap/DogBase)
+"lX" = (
+/obj/effect/floor_decal/borderfloor,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"ng" = (
+/mob/living/bot/cleanbot{
+ faction = "malf_drone"
+ },
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"np" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/gun/projectile/pistol,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"oW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"pR" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/obj/effect/floor_decal/borderfloor{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"qg" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/red/border{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"qk" = (
+/obj/machinery/porta_turret/poi{
+ faction = "syndicate"
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"qI" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone,
+/obj/random/maintenance/security,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"qO" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"qZ" = (
+/obj/effect/decal/remains/ribcage,
+/turf/template_noop,
+/area/template_noop)
+"re" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"rH" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"se" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"tp" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor,
+/area/submap/DogBase)
+"tt" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/obj/structure/cable/green,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"tz" = (
+/obj/effect/floor_decal/corner/red/border{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"tN" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"vq" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"vX" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"wI" = (
+/obj/structure/bed/chair{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"wQ" = (
+/obj/effect/floor_decal/corner/red/border{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"wS" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/turf/template_noop,
+/area/template_noop)
+"xc" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"xe" = (
+/obj/structure/closet/secure_closet/guncabinet,
+/obj/random/projectile/scrapped_smg,
+/obj/random/projectile/scrapped_smg,
+/obj/random/projectile/scrapped_smg,
+/obj/random/projectile/scrapped_shotgun,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"xp" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/remains/human,
+/obj/random/contraband/nofail,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"yl" = (
+/obj/structure/dogbed,
+/obj/effect/decal/remains/deer,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/contraband/nofail,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"yx" = (
+/obj/machinery/door/airlock/external,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"yX" = (
+/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,
+/obj/structure/table/woodentable,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Am" = (
+/obj/machinery/door/blast/gate/thin,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"AJ" = (
+/obj/machinery/door/airlock/engineering,
+/turf/simulated/floor/tiled,
+/area/submap/DogBase)
+"AY" = (
+/obj/structure/closet/secure_closet/guncabinet,
+/obj/random/projectile,
+/obj/random/projectile,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Bk" = (
+/turf/simulated/wall/r_wall,
+/area/submap/DogBase)
+"Bx" = (
+/obj/structure/table/woodentable,
+/obj/random/projectile/scrapped_pistol,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"BA" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"BB" = (
+/obj/structure/table/woodentable,
+/obj/random/cash/big,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"BY" = (
+/obj/machinery/light,
+/obj/effect/floor_decal/borderfloor,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ce" = (
+/obj/structure/janitorialcart,
+/obj/item/weapon/storage/bag/trash,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Cz" = (
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"CQ" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone,
+/obj/random/contraband/nofail,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"Dt" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 9
+ },
+/obj/effect/landmark/loot_spawn,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Dv" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ez" = (
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/template_noop,
+/area/template_noop)
+"Fm" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled,
+/area/submap/DogBase)
+"FD" = (
+/obj/structure/fence,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"FO" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/red/border{
+ dir = 10
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ge" = (
+/obj/structure/table/woodentable,
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/obj/random/cash/huge,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Gf" = (
+/obj/effect/decal/remains/human,
+/obj/effect/decal/cleanable/filth,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/cargo,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"GB" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"GJ" = (
+/obj/structure/closet/secure_closet/guncabinet,
+/obj/random/projectile,
+/obj/random/projectile,
+/obj/effect/landmark/loot_spawn,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Hl" = (
+/turf/simulated/floor,
+/area/submap/DogBase)
+"HF" = (
+/obj/random/mob/merc/all,
+/obj/structure/bed/chair,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"HM" = (
+/obj/structure/table/woodentable,
+/obj/random/contraband/nofail,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Iz" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Jm" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/research,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"Ki" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"Kt" = (
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"Le" = (
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"Lm" = (
+/obj/effect/landmark/loot_spawn,
+/obj/effect/floor_decal/borderfloor{
+ dir = 5
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"LJ" = (
+/obj/effect/decal/remains/tajaran,
+/turf/template_noop,
+/area/template_noop)
+"LP" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ng" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/vending/security,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ni" = (
+/obj/effect/floor_decal/borderfloor/corner{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ok" = (
+/obj/structure/table/woodentable,
+/obj/item/device/radio/phone,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Ol" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone/leg,
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"OR" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/floor_decal/industrial/danger{
+ dir = 1
+ },
+/turf/simulated/floor,
+/area/submap/DogBase)
+"OS" = (
+/obj/effect/floor_decal/corner/red/border,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Pi" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 9
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"PB" = (
+/obj/effect/floor_decal/borderfloor/corner{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"PJ" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/obj/structure/table/rack/shelf/steel,
+/obj/item/stack/material/phoron{
+ amount = 10
+ },
+/obj/item/stack/material/phoron{
+ amount = 10;
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+"Qp" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/template_noop,
+/area/template_noop)
+"Qu" = (
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"QB" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Rz" = (
+/obj/structure/table/woodentable,
+/obj/item/device/radio/phone,
+/obj/random/contraband/nofail,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"RW" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"SW" = (
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"To" = (
+/obj/structure/fence/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"UW" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"UY" = (
+/obj/structure/dogbed,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/security,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"Vm" = (
+/obj/structure/loot_pile/maint/technical,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Vy" = (
+/obj/effect/decal/remains/unathi,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"VG" = (
+/obj/structure/bed/chair,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Wm" = (
+/obj/structure/table/woodentable,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/obj/random/curseditem,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Wq" = (
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Wu" = (
+/obj/structure/bed,
+/obj/item/weapon/bedsheet,
+/obj/effect/floor_decal/borderfloor{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"WH" = (
+/obj/effect/floor_decal/borderfloor/corner{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"WU" = (
+/obj/structure/table/woodentable,
+/obj/effect/floor_decal/corner/red/border{
+ dir = 1
+ },
+/obj/random/cash/huge,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Xz" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Ya" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Yi" = (
+/obj/structure/table/rack/shelf/steel,
+/obj/effect/floor_decal/corner/purple/diagonal,
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"Yr" = (
+/obj/effect/floor_decal/borderfloor{
+ dir = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/submap/DogBase)
+"YJ" = (
+/obj/random/mob/merc/all,
+/turf/simulated/floor,
+/area/submap/DogBase)
+"YX" = (
+/obj/structure/dogbed,
+/obj/effect/decal/remains/deer,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/maintenance/medical,
+/turf/simulated/floor/outdoors/dirt,
+/area/submap/DogBase)
+"ZK" = (
+/obj/machinery/power/apc{
+ cell_type = /obj/item/weapon/cell/super;
+ dir = 8;
+ name = "Unknown APC";
+ pixel_x = -24
+ },
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/mob/living/simple_mob/mechanical/viscerator/mercenary,
+/turf/simulated/floor/plating,
+/area/submap/DogBase)
+
+(1,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+km
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+km
+hp
+"}
+(2,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(3,1,1) = {"
+hp
+km
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Ez
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(4,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+lN
+Hl
+hp
+hp
+hp
+Hl
+lN
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(5,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Hl
+Bk
+Bk
+Bk
+Bk
+Bk
+FD
+FD
+FD
+FD
+FD
+To
+Qp
+hp
+hp
+hp
+hp
+Xz
+hp
+hp
+km
+hp
+hp
+"}
+(6,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Bk
+fg
+ng
+Vm
+Bk
+iv
+yl
+YX
+qI
+jO
+GB
+Qp
+LJ
+hp
+hp
+Xz
+Xz
+Ez
+hp
+SW
+hp
+hp
+"}
+(7,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+ik
+wS
+hp
+Bk
+Yi
+Qu
+Vm
+Bk
+UY
+Gf
+Ol
+Vy
+fI
+Am
+oW
+oW
+oW
+oW
+oW
+hp
+SW
+hp
+hp
+hp
+hp
+"}
+(8,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Bk
+lg
+Qu
+bw
+Bk
+aX
+lk
+ae
+kl
+lk
+Am
+oW
+oW
+QB
+oW
+hp
+hp
+hp
+hp
+SW
+hp
+hp
+"}
+(9,1,1) = {"
+hp
+hp
+lN
+Hl
+hp
+hp
+hp
+hp
+Bk
+eI
+Qu
+Ce
+Bk
+Jm
+xp
+ay
+CQ
+YX
+GB
+LJ
+hp
+hp
+Qp
+Qp
+tp
+lN
+hp
+hp
+hp
+hp
+"}
+(10,1,1) = {"
+hp
+hp
+Hl
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Fm
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Hl
+hp
+km
+hp
+hp
+"}
+(11,1,1) = {"
+hp
+hp
+hp
+Bk
+pR
+RW
+Wu
+vq
+Bk
+Ng
+wQ
+FO
+Bk
+Dt
+tN
+tN
+Dv
+RW
+vq
+Bk
+Pi
+tN
+qk
+vq
+Bk
+Hl
+Hl
+hp
+hp
+hp
+"}
+(12,1,1) = {"
+km
+hp
+Ez
+Bk
+Ge
+Wq
+Bx
+lX
+Bk
+GJ
+lb
+OS
+Bk
+Yr
+VG
+HM
+wI
+Wq
+lX
+Bk
+eZ
+Wq
+Wq
+lX
+Bk
+lr
+Hl
+hp
+hp
+SW
+"}
+(13,1,1) = {"
+hp
+Ez
+hp
+Bk
+qO
+Wq
+BA
+lX
+Bk
+AY
+Wq
+OS
+Bk
+Yr
+HF
+Rz
+wI
+Wq
+Ni
+RW
+PB
+hl
+se
+jz
+Bk
+OR
+Hl
+SW
+SW
+hp
+"}
+(14,1,1) = {"
+hp
+Hl
+Hl
+Bk
+hA
+Wq
+Iz
+lX
+Bk
+xe
+Wq
+OS
+Bk
+rH
+VG
+HM
+wI
+Wq
+hl
+se
+WH
+BY
+Bk
+Bk
+aF
+bl
+Hl
+SW
+hp
+hp
+"}
+(15,1,1) = {"
+hp
+lN
+Hl
+Bk
+qO
+lb
+BA
+lX
+LP
+Cz
+Wq
+OS
+LP
+Yr
+VG
+Ok
+wI
+re
+lX
+Bk
+Yr
+lX
+yx
+Wq
+yx
+lr
+YJ
+SW
+SW
+SW
+"}
+(16,1,1) = {"
+hp
+Hl
+Hl
+Bk
+hA
+Wq
+BB
+lX
+Bk
+Wm
+Wq
+OS
+Bk
+rH
+VG
+np
+wI
+Wq
+Ni
+tN
+PB
+BY
+Bk
+Bk
+aF
+bl
+Hl
+SW
+SW
+hp
+"}
+(17,1,1) = {"
+hp
+Ez
+hp
+Bk
+qO
+Wq
+BA
+lX
+Bk
+yX
+wI
+OS
+Bk
+Yr
+VG
+HM
+wI
+lb
+hl
+jD
+WH
+Ni
+tN
+eA
+Bk
+OR
+Hl
+SW
+SW
+hp
+"}
+(18,1,1) = {"
+hp
+hp
+Ez
+Bk
+lm
+Wq
+Iz
+lX
+Bk
+WU
+lb
+OS
+Bk
+Yr
+VG
+HM
+wI
+Wq
+lX
+Bk
+Yr
+Wq
+Wq
+lX
+Bk
+lr
+Hl
+hp
+SW
+hp
+"}
+(19,1,1) = {"
+km
+hp
+hp
+Bk
+bT
+jD
+se
+UW
+Bk
+ab
+tz
+qg
+Bk
+Lm
+se
+se
+se
+jD
+Ya
+Bk
+ec
+se
+bx
+UW
+Bk
+Hl
+Hl
+hp
+hp
+hp
+"}
+(20,1,1) = {"
+hp
+hp
+Hl
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+AJ
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Bk
+Hl
+hp
+hp
+hp
+hp
+"}
+(21,1,1) = {"
+hp
+hp
+lN
+Hl
+hp
+hp
+hp
+hp
+Bk
+ZK
+Le
+Ki
+Bk
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Hl
+lN
+hp
+hp
+hp
+km
+"}
+(22,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+Ez
+hp
+Bk
+PJ
+xc
+vX
+Bk
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+wS
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(23,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+wS
+hp
+Bk
+lh
+cS
+lh
+Bk
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Ez
+hp
+hp
+hp
+hp
+"}
+(24,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+ik
+hp
+hp
+Bk
+hZ
+Kt
+tt
+Bk
+hp
+hp
+km
+hp
+hp
+km
+hp
+hp
+hp
+km
+hp
+hp
+hp
+hp
+hp
+km
+hp
+"}
+(25,1,1) = {"
+hp
+hp
+km
+hp
+hp
+hp
+hp
+Hl
+Bk
+Bk
+Bk
+Bk
+Bk
+Hl
+hp
+hp
+hp
+Ez
+hp
+hp
+qZ
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(26,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+lN
+Hl
+hp
+hp
+hp
+Hl
+lN
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(27,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+Ez
+hp
+hp
+hp
+km
+hp
+hp
+km
+hp
+hp
+"}
+(28,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+km
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(29,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+km
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+(30,1,1) = {"
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+km
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+hp
+"}
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
diff --git a/maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm b/maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
index 84bb92f974..597de56f49 100644
--- a/maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
+++ b/maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
@@ -5,10 +5,20 @@
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"aB" = (
/obj/structure/safe,
/obj/effect/floor_decal/borderfloor{
dir = 5
+=======
+"ae" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
@@ -86,8 +96,14 @@
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"ec" = (
/mob/living/simple_mob/animal/giant_spider/nurse{
+=======
+"eZ" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
faction = "syndicate";
name = "trained giant spider"
},
@@ -244,8 +260,23 @@
/obj/item/weapon/bedsheet,
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"md" = (
/obj/machinery/door/airlock,
+=======
+"qZ" = (
+/obj/effect/decal/remains/ribcage,
+/turf/template_noop,
+/area/template_noop)
+"re" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
"mF" = (
@@ -307,9 +338,32 @@
/obj/effect/landmark/loot_spawn,
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"pT" = (
/obj/machinery/light{
dir = 1
+=======
+"wS" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/turf/template_noop,
+/area/template_noop)
+"xc" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
},
/obj/effect/floor_decal/borderfloor{
dir = 1
@@ -428,9 +482,19 @@
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"yr" = (
/obj/effect/floor_decal/borderfloor{
dir = 10
+=======
+"Dv" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
@@ -575,9 +639,40 @@
/obj/random/projectile/scrapped_pistol,
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"Io" = (
/obj/machinery/light,
/obj/effect/floor_decal/borderfloor,
+=======
+"Ol" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/bone/leg,
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/submap/DogBase)
+"OR" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/floor_decal/industrial/danger{
+ dir = 1
+ },
+/turf/simulated/floor/plating/external/virgo3b,
+/area/submap/DogBase)
+"OS" = (
+/obj/effect/floor_decal/corner/red/border,
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
"Ju" = (
@@ -612,7 +707,23 @@
},
/turf/simulated/floor/tiled/dark,
/area/submap/DogBase)
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
"KH" = (
+=======
+"QB" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Rz" = (
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
/obj/structure/table/woodentable,
/obj/random/contraband/nofail,
/turf/simulated/floor/tiled/dark,
@@ -709,6 +820,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
+<<<<<<< HEAD:maps/submaps/surface_submaps/wilderness/dogbaseAlt.dmm
/turf/simulated/floor/outdoors/dirt/sif/planetuse,
/area/submap/DogBase)
"QF" = (
@@ -716,6 +828,17 @@
dir = 4;
icon_state = "tube1";
pixel_x = 0
+=======
+/turf/simulated/floor/outdoors/dirt/virgo3b,
+/area/template_noop)
+"Ya" = (
+/mob/living/simple_mob/vore/wolf/direwolf/dog/sec{
+ desc = "The biggest and baddest guard dog around.";
+ faction = "syndicate";
+ max_co2 = 0;
+ max_tox = 0;
+ name = "syndicate guard dog"
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks:maps/submaps/surface_submaps/plains/dogbase.dmm
},
/obj/effect/floor_decal/borderfloor{
dir = 4
diff --git a/maps/submaps/surface_submaps/wilderness/emptycabin.dmm b/maps/submaps/surface_submaps/wilderness/emptycabin.dmm
index 9008166129..71f9cb72b4 100644
--- a/maps/submaps/surface_submaps/wilderness/emptycabin.dmm
+++ b/maps/submaps/surface_submaps/wilderness/emptycabin.dmm
@@ -117,7 +117,7 @@
/turf/simulated/floor/wood/sif,
/area/submap/EmptyCabin)
"F" = (
-/mob/living/simple_mob/otie/friendly/chubby{
+/mob/living/simple_mob/vore/otie/friendly/chubby{
desc = "The classic bioengineered longdog. This one still probably won't tolerate you. What an absolute unit";
faction = "spiders"
},
diff --git a/maps/submaps/surface_submaps/wilderness/greatwolfden.dmm b/maps/submaps/surface_submaps/wilderness/greatwolfden.dmm
index a029394e8b..2d2d5adb87 100644
--- a/maps/submaps/surface_submaps/wilderness/greatwolfden.dmm
+++ b/maps/submaps/surface_submaps/wilderness/greatwolfden.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/obj/effect/decal/cleanable/blood/drip,
@@ -1553,3 +1554,1569 @@ pS
pS
pS
"}
+=======
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/decal/cleanable/blood/drip,
+/mob/living/simple_mob/vore/wolf/direwolf{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The biggest and baddest wolf around. Seems pretty chill, for a wolf.";
+ faction = "sif";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"bp" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"bz" = (
+/obj/structure/flora/bboulder1,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"bI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"bY" = (
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"dM" = (
+/obj/structure/flora/bboulder2,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"dX" = (
+/obj/structure/cliff/automatic{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"eq" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"fh" = (
+/obj/structure/cliff/automatic{
+ dir = 2
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"fX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"ge" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"hJ" = (
+/obj/structure/cliff/automatic{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"iX" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"jg" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"ju" = (
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"kg" = (
+/obj/item/weapon/bone/skull/unathi,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"kk" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gib2_flesh"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"kL" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass3"
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"lu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/a10mm,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"lL" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"lQ" = (
+/obj/effect/decal/cleanable/filth,
+/obj/item/weapon/card/emag_broken,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"mk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"mm" = (
+/obj/random/trash_pile,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"nd" = (
+/obj/structure/flora/rocks2,
+/obj/effect/decal/remains/lizard,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"nv" = (
+/mob/living/simple_mob/vore/greatwolf{
+ dir = 8;
+ max_co2 = 0;
+ min_oxy = 0
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"pS" = (
+/turf/template_noop,
+/area/template_noop)
+"qb" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"rn" = (
+/obj/structure/loot_pile/mecha/gygax/dark/adv,
+/obj/effect/decal/cleanable/blood/gibs/robot/down,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"rM" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "eyeplant2"
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"tb" = (
+/obj/structure/flora/smallbould,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"tm" = (
+/turf/simulated/mineral/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"tC" = (
+/obj/effect/decal/remains/mouse,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"uz" = (
+/mob/living/simple_mob/vore/wolf/direwolf{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The biggest and baddest wolf around. Seems pretty chill, for a wolf.";
+ faction = "sif";
+ max_co2 = 0;
+ max_tox = 0;
+ min_oxy = 0
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"uY" = (
+/obj/item/ammo_casing/a10mm,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"vu" = (
+/obj/item/weapon/bone/skull/tajaran,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"wc" = (
+/obj/item/weapon/bone/skull/unathi,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"xt" = (
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"xK" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/under/syndicate,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"yi" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle2"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"yF" = (
+/obj/structure/flora/smallbould,
+/obj/effect/decal/cleanable/cobweb,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"yG" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"yH" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"zl" = (
+/obj/structure/flora/bboulder1,
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"zs" = (
+/obj/structure/flora/bboulder2,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"zV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"AG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/rocks,
+/area/submap/GreatWolfDen)
+"AK" = (
+/obj/structure/cliff/automatic/ramp{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Cd" = (
+/mob/living/simple_mob/vore/otie/feral/chubby{
+ ai_holder_type = /datum/ai_holder/simple_mob/retaliate;
+ desc = "The classic bioengineered longdog. No pets. Only bite. What an absolute unit.";
+ faction = "sif";
+ minbodytemp = 0
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"CR" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Dj" = (
+/obj/structure/cliff/automatic/corner,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"DV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/random/outcrop,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"EU" = (
+/obj/structure/flora/rocks1,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Fy" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "eyeplant1"
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Hb" = (
+/obj/structure/closet/crate/secure/loot,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"HC" = (
+/obj/random/outcrop,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Ic" = (
+/obj/effect/decal/remains/deer,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Id" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/template_noop,
+/area/template_noop)
+"If" = (
+/obj/effect/decal/cleanable/blood/gibs/robot/limb,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Iw" = (
+/obj/effect/decal/remains/deer,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Kb" = (
+/obj/item/ammo_casing/a10mm{
+ dir = 8
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Ko" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gibdown1_flesh"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Kp" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"KU" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass3"
+ },
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"Lx" = (
+/obj/structure/cliff/automatic{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Lz" = (
+/obj/effect/decal/cleanable/blood/gibs{
+ color = "red";
+ icon_state = "gib1_flesh"
+ },
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"LJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant2"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"LP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks2,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"LT" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Mc" = (
+/obj/effect/decal/cleanable/ash,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Mv" = (
+/obj/random/outcrop,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"MD" = (
+/obj/structure/flora/tree/sif{
+ icon_state = "tree_sif4"
+ },
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"OB" = (
+/obj/item/stack/material/log{
+ amount = 25
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"OL" = (
+/obj/structure/cliff/automatic,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"OV" = (
+/obj/structure/cliff/automatic{
+ dir = 6
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"OW" = (
+/obj/structure/cliff/automatic{
+ dir = 5
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Pa" = (
+/obj/structure/cliff/automatic/ramp,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Pf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Pl" = (
+/obj/effect/decal/remains/lizard,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"PC" = (
+/obj/structure/closet/crate/secure/loot,
+/obj/effect/decal/cleanable/cobweb2,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"PX" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Qb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks1,
+/obj/structure/ledge/ledge_stairs,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Qv" = (
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"QA" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass2"
+ },
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"QJ" = (
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"QM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Rb" = (
+/obj/item/weapon/bone/leg,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Rf" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/structure/flora/sif/subterranean{
+ icon_state = "frostbelle"
+ },
+/obj/item/weapon/gun/projectile/pistol,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Rj" = (
+/obj/structure/flora/grass/both,
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"Rx" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"RW" = (
+/obj/structure/flora/rocks2,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"SO" = (
+/obj/item/weapon/telecube/mated,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"SQ" = (
+/obj/structure/cliff/automatic/corner{
+ dir = 9
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Tf" = (
+/obj/item/weapon/paper/card/heart{
+ desc = "A gift card with a heart on the cover. This appears to be a thank-you to the.. wolves??"
+ },
+/obj/item/weapon/paper/crumpled{
+ icon_state = "scrap_bloodied";
+ info = "The wolves dragged me back to their den when they found me incapacitated, and nursed me back to health, instead of eating me. I don't know why. Anyway, they're a bunch of goodboyes. Don't let the bones strewn about their den frighten you. Just be nice to them and they won't hurt you.";
+ name = "survivor's note"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Tn" = (
+/obj/structure/bonfire,
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Ty" = (
+/obj/random/trash_pile,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"UV" = (
+/obj/structure/cliff/automatic{
+ dir = 10
+ },
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Vq" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"WH" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/item/weapon/storage/toolbox/syndicate,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"WR" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant1"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"WY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/rocks1,
+/turf/simulated/floor/outdoors/dirt,
+/area/template_noop)
+"Xx" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "grass1"
+ },
+/turf/simulated/floor/outdoors/snow,
+/area/submap/GreatWolfDen)
+"Xy" = (
+/obj/item/weapon/bone/ribs,
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Yw" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Zj" = (
+/turf/simulated/floor/outdoors/grass/sif/forest{
+ outdoors = 0
+ },
+/area/submap/GreatWolfDen)
+"Zk" = (
+/obj/structure/flora/sif/subterranean{
+ icon_state = "glowplant2"
+ },
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+"Zu" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/landmark/loot_spawn/low,
+/obj/effect/decal/cleanable/dirt,
+/obj/random/projectile/scrapped_gun,
+/turf/simulated/mineral/floor/ignore_mapgen,
+/area/submap/GreatWolfDen)
+
+(1,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(2,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Ty
+pS
+pS
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(3,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+HC
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+"}
+(4,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+Qv
+Qv
+Qv
+bp
+dX
+dX
+dX
+dX
+dX
+dX
+dX
+Dj
+Qv
+HC
+Qv
+pS
+pS
+pS
+pS
+Qv
+Qv
+pS
+pS
+"}
+(5,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+bp
+dX
+dX
+OV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+dX
+dX
+Dj
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+"}
+(6,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+dX
+Dj
+Qv
+Qv
+pS
+pS
+pS
+pS
+"}
+(7,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+Qv
+bp
+OV
+tm
+tm
+tm
+tm
+jg
+yi
+Mv
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+OW
+Dj
+Qv
+pS
+pS
+pS
+pS
+"}
+(8,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+fh
+tm
+tm
+tm
+yi
+CR
+xK
+uY
+QJ
+Zu
+zs
+QJ
+QJ
+Mv
+tm
+tm
+tm
+tm
+OW
+Dj
+Qv
+pS
+pS
+pS
+"}
+(9,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+fh
+tm
+tm
+Mc
+QJ
+qb
+lu
+mk
+uY
+QJ
+QJ
+kk
+QJ
+QJ
+QJ
+tb
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+pS
+"}
+(10,1,1) = {"
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+mm
+Rb
+EU
+lQ
+yi
+Kb
+QM
+Iw
+QJ
+RW
+Zk
+QJ
+QJ
+tm
+tm
+tm
+OL
+Qv
+Qv
+Qv
+pS
+"}
+(11,1,1) = {"
+pS
+pS
+pS
+Qv
+Qv
+Qv
+fh
+tm
+tm
+bz
+Pl
+bI
+DV
+tm
+wc
+QJ
+QJ
+QJ
+QJ
+QJ
+Cd
+QJ
+kg
+tm
+tm
+OW
+Dj
+Qv
+Qv
+pS
+"}
+(12,1,1) = {"
+pS
+pS
+pS
+Qv
+HC
+Qv
+LT
+UV
+tm
+tm
+bI
+CR
+tm
+tm
+rn
+PX
+Tn
+Zj
+Zj
+uz
+QJ
+QJ
+yi
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(13,1,1) = {"
+pS
+pS
+Id
+pS
+Qv
+Qv
+Qv
+fh
+tm
+tm
+Tf
+Ko
+tm
+tm
+OB
+uz
+Zj
+Xx
+rM
+Zj
+Iw
+QJ
+QJ
+tm
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(14,1,1) = {"
+pS
+pS
+pS
+pS
+Id
+Qv
+Qv
+fh
+tm
+tm
+CR
+CR
+tm
+yF
+qb
+Fy
+Zj
+Rj
+Kp
+Lz
+Zj
+QJ
+uz
+Xy
+tm
+tm
+OL
+Qv
+Qv
+Qv
+"}
+(15,1,1) = {"
+pS
+Qv
+Id
+fX
+pS
+dM
+Pa
+OV
+tm
+LJ
+Pf
+CR
+tm
+ju
+aa
+Lz
+eq
+bY
+MD
+yG
+Zj
+QJ
+If
+QJ
+tm
+tm
+OL
+Qv
+HC
+Qv
+"}
+(16,1,1) = {"
+Qv
+pS
+Qv
+Id
+Rx
+zV
+LP
+Qb
+AG
+CR
+CR
+CR
+tm
+SO
+tC
+Zj
+Zj
+bY
+QA
+Zj
+kL
+uz
+QJ
+Mv
+tm
+tm
+OL
+Qv
+Qv
+Qv
+"}
+(17,1,1) = {"
+pS
+pS
+Qv
+Rx
+WY
+Rx
+AK
+UV
+tm
+tm
+tm
+tm
+tm
+vu
+WR
+EU
+nv
+KU
+Rj
+Zj
+QJ
+QJ
+QJ
+QJ
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(18,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+zs
+QJ
+xK
+Ic
+Zj
+Zj
+bY
+Zj
+nd
+QJ
+QJ
+lL
+tm
+tm
+OL
+Qv
+Qv
+pS
+"}
+(19,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+Hb
+QJ
+uz
+QJ
+Zj
+Zj
+Zj
+QJ
+uz
+xt
+tm
+tm
+hJ
+SQ
+Qv
+pS
+Qv
+"}
+(20,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+fh
+tm
+tm
+tm
+tm
+PC
+QJ
+qb
+kk
+Ic
+uz
+QJ
+Vq
+xt
+Rf
+tm
+tm
+OL
+Qv
+Qv
+pS
+pS
+"}
+(21,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+tm
+QJ
+WH
+iX
+yH
+qb
+QJ
+Vq
+Yw
+tm
+tm
+tm
+OL
+Qv
+Qv
+Qv
+pS
+"}
+(22,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+HC
+fh
+tm
+tm
+tm
+tm
+zl
+yi
+QJ
+ge
+QJ
+Vq
+xt
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Ty
+Qv
+pS
+"}
+(23,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+LT
+UV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Qv
+pS
+pS
+pS
+"}
+(24,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+LT
+Lx
+UV
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+tm
+hJ
+SQ
+Qv
+Qv
+Qv
+pS
+pS
+pS
+"}
+(25,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+pS
+Qv
+Qv
+Qv
+LT
+Lx
+UV
+tm
+tm
+hJ
+Lx
+Lx
+Lx
+Lx
+SQ
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+"}
+(26,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+Qv
+Ty
+LT
+Lx
+Lx
+SQ
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(27,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+Qv
+Qv
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(28,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+HC
+Qv
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+Qv
+pS
+pS
+pS
+"}
+(29,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+Qv
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+(30,1,1) = {"
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+pS
+"}
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
diff --git a/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm b/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm
index 305a26567d..f0fd28901d 100644
--- a/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm
+++ b/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm
@@ -242,7 +242,7 @@
/turf/simulated/floor/outdoors/dirt,
/area/template_noop)
"sN" = (
-/mob/living/simple_mob/otie/red/chubby{
+/mob/living/simple_mob/vore/otie/red/chubby{
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit. It has a collar around one of its ankles that reads 'Tawny'.";
name = "Tawny"
},
diff --git a/maps/submaps/surface_submaps/wilderness/otieshelter.dmm b/maps/submaps/surface_submaps/wilderness/otieshelter.dmm
index be1981d224..5bbdc2cedc 100644
--- a/maps/submaps/surface_submaps/wilderness/otieshelter.dmm
+++ b/maps/submaps/surface_submaps/wilderness/otieshelter.dmm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"ag" = (
/obj/machinery/light{
@@ -1067,3 +1068,1075 @@ Qr
Qr
Qr
"}
+=======
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"aj" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"ar" = (
+/obj/structure/closet/secure_closet/medical_wall/anesthetics,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"cq" = (
+/obj/structure/bed/chair/office/light{
+ dir = 1
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"cU" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"eI" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"fw" = (
+/obj/machinery/door/airlock,
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"gr" = (
+/obj/machinery/porta_turret/poi,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"gN" = (
+/obj/structure/undies_wardrobe,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"hh" = (
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"hk" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"hD" = (
+/obj/effect/decal/cleanable/filth,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"iv" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid/surgery,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"iC" = (
+/obj/effect/decal/cleanable/blood,
+/mob/living/simple_mob/vore/otie/friendly{
+ health = 0
+ },
+/turf/template_noop,
+/area/template_noop)
+"iY" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/item/trash/bowl,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"jc" = (
+/obj/machinery/optable,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"jo" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"jy" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"jI" = (
+/obj/item/weapon/material/shard{
+ icon_state = "medium"
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ color = "red";
+ desc = "Your instincts say you shouldn't be following these.";
+ dir = 4;
+ icon = 'icons/effects/blood.dmi';
+ icon_state = "tracks"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"kF" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"kX" = (
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"lv" = (
+/obj/structure/door_assembly,
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"lP" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"lQ" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"lY" = (
+/obj/machinery/light,
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"mu" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/mob/living/simple_mob/vore/otie/friendly/chubby,
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"mC" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -28
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"mJ" = (
+/obj/structure/sign/warning/secure_area,
+/turf/simulated/wall/r_wall,
+/area/submap/OtieShelter)
+"nK" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"nR" = (
+/obj/structure/table/marble,
+/obj/item/weapon/newspaper,
+/obj/item/weapon/paper/card/heart,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"ob" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"od" = (
+/obj/machinery/door/window,
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"op" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "4"
+ },
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"pa" = (
+/obj/structure/loot_pile/surface/bones,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/filth,
+/obj/effect/decal/cleanable/filth,
+/obj/random/handgun/sec,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"pd" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"rb" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"sJ" = (
+/obj/structure/grille/rustic,
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/structure/window/phoronreinforced,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"tt" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/cotie,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"tz" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"tP" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"uD" = (
+/obj/machinery/light,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"uS" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"vA" = (
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"vB" = (
+/obj/machinery/door/window{
+ dir = 8
+ },
+/obj/item/weapon/bone,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"vV" = (
+/obj/structure/table/woodentable,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"wO" = (
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"xf" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"xj" = (
+/obj/structure/table/marble,
+/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"xI" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/friendly,
+/obj/structure/dogbed,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"yD" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid/adv,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Aa" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/cotie/phoron,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"At" = (
+/obj/structure/table/marble,
+/obj/item/weapon/paper_bin,
+/obj/item/weapon/pen,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"AO" = (
+/obj/structure/table/glass,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"BM" = (
+/obj/item/weapon/melee/baton/cattleprod,
+/obj/effect/decal/cleanable/blood/tracks{
+ color = "red";
+ desc = "Your instincts say you shouldn't be following these.";
+ dir = 4;
+ icon = 'icons/effects/blood.dmi';
+ icon_state = "tracks"
+ },
+/obj/effect/decal/cleanable/filth,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Cw" = (
+/obj/structure/table/glass,
+/obj/item/weapon/storage/firstaid,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"CM" = (
+/obj/structure/closet/wardrobe,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"EE" = (
+/obj/machinery/door/airlock/engineering,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"EI" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Hk" = (
+/obj/machinery/door/window,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"HV" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Ih" = (
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Ij" = (
+/mob/living/simple_mob/vore/otie/cotie{
+ max_co2 = 0;
+ max_tox = 0
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"IF" = (
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"JY" = (
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"KJ" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Lr" = (
+/obj/structure/door_assembly,
+/turf/simulated/floor/plating,
+/area/submap/OtieShelter)
+"LF" = (
+/obj/structure/ghost_pod/manual/lost_drone/dogborg,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Mc" = (
+/obj/structure/fireaxecabinet{
+ pixel_y = 29
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Mg" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Mn" = (
+/mob/living/simple_mob/vore/otie/red/chubby,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Mz" = (
+/turf/simulated/wall/r_wall,
+/area/submap/OtieShelter)
+"MK" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"Nd" = (
+/obj/structure/table/marble,
+/obj/structure/table/marble,
+/obj/item/device/radio/phone,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"Nh" = (
+/obj/item/weapon/bedsheet/browndouble,
+/obj/structure/bed/double/padded,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"Np" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 4
+ },
+/obj/item/trash/bowl,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"NJ" = (
+/obj/machinery/door/window{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Of" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"OJ" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "5"
+ },
+/obj/effect/decal/cleanable/blood/tracks/paw{
+ icon_state = "paw1"
+ },
+/obj/item/ammo_casing/spent,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Pn" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Px" = (
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Qr" = (
+/turf/template_noop,
+/area/template_noop)
+"Ro" = (
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"RW" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "PAPC";
+ pixel_y = 24
+ },
+/obj/structure/cable/green{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"TP" = (
+/obj/machinery/power/smes/buildable/point_of_interest,
+/obj/structure/cable/green{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"UF" = (
+/obj/effect/floor_decal/industrial/warning{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"UH" = (
+/obj/structure/window/phoronreinforced{
+ dir = 8
+ },
+/obj/item/trash/bowl,
+/obj/item/weapon/reagent_containers/food/snacks/meat/human,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"VE" = (
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "3"
+ },
+/obj/effect/decal/cleanable/blood/tracks/paw{
+ icon_state = "paw1"
+ },
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"VL" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ icon_state = "2"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/simulated/floor/carpet/turcarpet,
+/area/submap/OtieShelter)
+"VY" = (
+/mob/living/simple_mob/vore/otie/cotie/chubby,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"Wl" = (
+/obj/effect/decal/cleanable/blood,
+/obj/structure/windoor_assembly,
+/obj/structure/windoor_assembly{
+ dir = 2
+ },
+/turf/simulated/floor/tiled/techfloor/grid,
+/area/submap/OtieShelter)
+"WY" = (
+/obj/machinery/oxygen_pump/mobile/anesthetic,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"XB" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/obj/structure/table/rack/shelf/steel,
+/obj/item/weapon/storage/toolbox/mechanical,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+"XG" = (
+/obj/structure/window/phoronreinforced{
+ dir = 1
+ },
+/mob/living/simple_mob/vore/otie/red/friendly,
+/turf/simulated/floor/tiled,
+/area/submap/OtieShelter)
+
+(1,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(2,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(3,1,1) = {"
+Qr
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+"}
+(4,1,1) = {"
+Qr
+Mz
+wO
+Of
+kF
+Of
+kF
+Of
+xI
+Of
+kF
+Of
+Mz
+Nh
+MK
+gN
+Mz
+Qr
+Qr
+Qr
+"}
+(5,1,1) = {"
+Qr
+Mz
+IF
+VY
+tt
+IF
+Aa
+Ih
+lQ
+IF
+lQ
+IF
+Mz
+vV
+Ro
+Ro
+Mz
+Qr
+Qr
+Qr
+"}
+(6,1,1) = {"
+Qr
+Mz
+hh
+Hk
+tP
+Hk
+Np
+od
+Np
+Hk
+mu
+Hk
+Mz
+CM
+Ro
+Ro
+Mz
+gr
+Qr
+Qr
+"}
+(7,1,1) = {"
+Qr
+Mz
+ar
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Px
+Mz
+Mz
+fw
+Mz
+mJ
+rb
+Lr
+Qr
+"}
+(8,1,1) = {"
+Qr
+Mz
+jo
+IF
+IF
+IF
+IF
+IF
+IF
+IF
+IF
+IF
+fw
+mC
+nK
+ag
+IF
+aj
+op
+iC
+"}
+(9,1,1) = {"
+Qr
+Mz
+Mc
+IF
+IF
+AO
+Cw
+yD
+AO
+IF
+IF
+uD
+Mz
+Mz
+lv
+Mz
+mJ
+rb
+JY
+Qr
+"}
+(10,1,1) = {"
+Qr
+Mz
+HV
+WY
+jc
+AO
+iv
+AO
+AO
+vA
+hD
+IF
+sJ
+MK
+tz
+Ro
+Mz
+gr
+Qr
+Qr
+"}
+(11,1,1) = {"
+Qr
+Mz
+jo
+IF
+IF
+IF
+IF
+IF
+hD
+pa
+OJ
+IF
+ob
+jy
+Nd
+nR
+Mz
+Qr
+Qr
+Qr
+"}
+(12,1,1) = {"
+Qr
+Mz
+LF
+UF
+UF
+UF
+UF
+UF
+UF
+BM
+kX
+EI
+hk
+Ro
+xj
+cq
+Mz
+Qr
+Qr
+Qr
+"}
+(13,1,1) = {"
+Qr
+Mz
+UH
+NJ
+Pn
+vB
+Pn
+NJ
+Mg
+jI
+xf
+lY
+Mz
+VL
+At
+Ro
+Mz
+Qr
+Qr
+Qr
+"}
+(14,1,1) = {"
+Qr
+Mz
+IF
+Ij
+XG
+IF
+lQ
+Mn
+iY
+lP
+XB
+pd
+Wl
+VE
+Ro
+Ro
+Mz
+Qr
+Qr
+Qr
+"}
+(15,1,1) = {"
+Qr
+Mz
+wO
+uS
+kF
+uS
+kF
+uS
+kF
+uS
+KJ
+IF
+Mz
+Ro
+Ro
+Ro
+Mz
+Qr
+Qr
+Qr
+"}
+(16,1,1) = {"
+Qr
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+Mz
+EE
+Mz
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+"}
+(17,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+RW
+cU
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(18,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+TP
+eI
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(19,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Mz
+Mz
+Mz
+Mz
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+(20,1,1) = {"
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+Qr
+"}
+>>>>>>> c60995d1f4... Merge pull request #15106 from Very-Soft/tidying_and_tweaks
diff --git a/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm b/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm
index 65b4b5135c..dfe8845755 100644
--- a/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm
+++ b/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm
@@ -7,7 +7,7 @@
/area/mine/explored/underdark)
"c" = (
/obj/structure/dogbed,
-/mob/living/simple_mob/animal/wolf/direwolf/rykka{
+/mob/living/simple_mob/vore/wolf/direwolf/rykka{
attacktext = list("attacked, bites, gnaws");
friendly = list("nuzzles, cuddles, rubs against")
},
diff --git a/maps/tether/submaps/underdark_pois/underdark_things.dm b/maps/tether/submaps/underdark_pois/underdark_things.dm
index 499d5a924c..210fad46b9 100644
--- a/maps/tether/submaps/underdark_pois/underdark_things.dm
+++ b/maps/tether/submaps/underdark_pois/underdark_things.dm
@@ -15,7 +15,7 @@
poison_chance = 20
// Adds Phoron Wolf
-/mob/living/simple_mob/animal/wolf/phoron
+/mob/living/simple_mob/vore/wolf/phoron
faction = "underdark"
movement_cooldown = -1.5
diff --git a/maps/tether/submaps/underdark_pois/wolf_den.dmm b/maps/tether/submaps/underdark_pois/wolf_den.dmm
index 59b5e79aec..efcaf437d2 100644
--- a/maps/tether/submaps/underdark_pois/wolf_den.dmm
+++ b/maps/tether/submaps/underdark_pois/wolf_den.dmm
@@ -23,7 +23,7 @@
/turf/simulated/mineral/floor/ignore_cavegen/virgo3b,
/area/mine/explored/underdark)
"g" = (
-/mob/living/simple_mob/animal/wolf/phoron,
+/mob/living/simple_mob/vore/wolf/phoron,
/turf/simulated/mineral/floor/ignore_cavegen/virgo3b,
/area/mine/explored/underdark)
"h" = (
@@ -36,7 +36,7 @@
/turf/simulated/mineral/floor/ignore_cavegen/virgo3b,
/area/mine/explored/underdark)
"j" = (
-/mob/living/simple_mob/otie/feral{
+/mob/living/simple_mob/vore/otie/feral{
faction = "underdark"
},
/turf/simulated/mineral/floor/ignore_cavegen/virgo3b,
diff --git a/maps/yw/submaps/gateway/snowfield.dm b/maps/yw/submaps/gateway/snowfield.dm
index 6d6f7b1b2d..6548ca6f0d 100644
--- a/maps/yw/submaps/gateway/snowfield.dm
+++ b/maps/yw/submaps/gateway/snowfield.dm
@@ -28,7 +28,7 @@
valid_mobs = list(/mob/living/simple_mob/animal/sif/sakimm/polar, /mob/living/simple_mob/animal/sif/diyaab/polar,
/mob/living/simple_mob/animal/sif/shantak/polar, /mob/living/simple_mob/animal/space/bear/polar,
- /mob/living/simple_mob/animal/wolf)
+ /mob/living/simple_mob/vore/wolf)
valid_flora = list(/obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine, /obj/structure/flora/tree/pine,
/obj/structure/flora/tree/dead, /obj/structure/flora/grass/brown, /obj/structure/flora/grass/green,
/obj/structure/flora/grass/both, /obj/structure/flora/bush, /obj/structure/flora/ausbushes/grassybush,
@@ -176,4 +176,4 @@
/obj/effect/floor_decal/derelict/d16
name = "derelict16"
- icon_state = "derelict16"
\ No newline at end of file
+ icon_state = "derelict16"
diff --git a/vorestation.dme b/vorestation.dme
index 90ea5ab8ab..06f7d6020a 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2894,6 +2894,7 @@
#include "code\modules\mob\say_ch.dm"
#include "code\modules\mob\say_vr.dm"
#include "code\modules\mob\skillset.dm"
+#include "code\modules\mob\theme_lists.dm"
#include "code\modules\mob\transform_procs.dm"
#include "code\modules\mob\typing_indicator.dm"
#include "code\modules\mob\update_icons.dm"
From df938de65e857daa0af2e740e54fbc813cb831cf Mon Sep 17 00:00:00 2001
From: Fluff
Date: Mon, 3 Jul 2023 09:41:40 -0400
Subject: [PATCH 05/21] Rebalancing spiders again
Making the spider event actually varied with it's spawns, while toning it down a bit, while also fixing my typos and dumb mistakes when adjusting spiders the first time.
---
code/modules/events/spider_infestation.dm | 7 +--
.../simple_mob/subtypes/animal/spider.dm | 51 +++++++++++--------
2 files changed, 33 insertions(+), 25 deletions(-)
diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm
index cccf1485a6..58fc5e3298 100644
--- a/code/modules/events/spider_infestation.dm
+++ b/code/modules/events/spider_infestation.dm
@@ -11,7 +11,7 @@
kill()
return
announceWhen = rand(announceWhen, announceWhen + 60)
- spawncount = rand(6 * severity, 14 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: old: 2/4 new: 6/14
+ spawncount = rand(4 * severity, 10 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: old: 2/4 new: 6/14 new: 4/10
sent_spiders_to_station = 0
/datum/event/spider_infestation/announce()
@@ -35,8 +35,9 @@
var/obj/vent = pick(vents)
//CHOMPEDIT START adding spider EGGS to the possible spawns instead of singular spiderling spawns.
var/spawn_spiderlings = pickweight(list(
- /obj/effect/spider/spiderling = 90,
- /obj/effect/spider/eggcluster = 10
+ /obj/effect/spider/spiderling = 85,
+ /obj/effect/spider/eggcluster = 10,
+ /obj/effect/spider/eggcluster/royal = 5
))
new spawn_spiderlings(vent.loc) //VOREStation Edit - No nurses //Oh my JESUS CHRIST, this slipped past me. Literally no nurses. Well guess what, nurses are back.
//CHOMPEDIT END
diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/animal/spider.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/animal/spider.dm
index 0d24d4e28a..2fa6c9dcac 100644
--- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/animal/spider.dm
+++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/animal/spider.dm
@@ -1,45 +1,52 @@
//Unfiying spider health, into two catagories. Disrupters and tanks.
/mob/living/simple_mob/animal/giant_spider/carrier //Disrupter, old 100
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
/mob/living/simple_mob/animal/giant_spider/electric //disrupter, old 210
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
projectiletype = /obj/item/projectile/energy/mob/electric_spider
/mob/living/simple_mob/animal/giant_spider/frost //tank, old 175
- maxHealth = 130
- health = 130
+ maxHealth = 120
+ health = 120
+
+/mob/living/simple_mob/animal/giant_spider //tank, old 200
+ maxHealth = 120
+ health = 120
/mob/living/simple_mob/animal/giant_spider/ion //disrupter, old 90
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
/mob/living/simple_mob/animal/giant_spider/hunter //disrupter, old 120
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
/mob/living/simple_mob/animal/giant_spider/lurker //disrupter, old 100
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
/mob/living/simple_mob/animal/giant_spider/pepper //tank, old 210
- maxHealth = 130
- health = 130
+ maxHealth = 120
+ health = 120
/mob/living/simple_mob/animal/giant_spider/phorogenic //tank, old 225
- maxHealth = 130
- health = 130
+ maxHealth = 120
+ health = 120
/mob/living/simple_mob/animal/giant_spider/thermic //tank, old 175
- maxHealth = 130
- health = 130
+ maxHealth = 120
+ health = 120
/mob/living/simple_mob/animal/giant_spider/tunneler_spider //disrupter, old 120
- maxHealth = 70
- health = 70
+ maxHealth = 60
+ health = 60
/mob/living/simple_mob/animal/giant_spider/webslinger //disrupter, old 90
- maxHealth = 70
- health = 70
\ No newline at end of file
+ maxHealth = 60
+ health = 60
+
+/obj/effect/spider/eggcluster
+ spider_type = /obj/effect/spider/spiderling/varied
\ No newline at end of file
From e2fb4081d0d06d54cac2fc841e278e51fe18d66b Mon Sep 17 00:00:00 2001
From: Casey
Date: Tue, 4 Jul 2023 19:20:19 -0400
Subject: [PATCH 06/21] Medical Guidance
---
.../objects/items/devices/scanners/guide.dm | 99 +++++
.../objects/items/devices/scanners/health.dm | 358 ++++++++++++++++++
icons/obj/device.dmi | Bin 91352 -> 91710 bytes
maps/groundbase/gb-z2.dmm | 3 +
maps/stellar_delight/stellar_delight2.dmm | 2 +
maps/tether/tether-03-surface3.dmm | 4 +
vorestation.dme | 1 +
7 files changed, 467 insertions(+)
create mode 100644 code/game/objects/items/devices/scanners/guide.dm
diff --git a/code/game/objects/items/devices/scanners/guide.dm b/code/game/objects/items/devices/scanners/guide.dm
new file mode 100644
index 0000000000..d41116754a
--- /dev/null
+++ b/code/game/objects/items/devices/scanners/guide.dm
@@ -0,0 +1,99 @@
+/obj/item/device/healthanalyzer/verb/toggle_guide()
+ name = "Toggle Guidance"
+ desc = "Toggles whether or not \the [src] will provide guidance and instruction in addition to scanning."
+ guide = !guide
+ to_chat(usr, "You toggle \the [src]'s guidance system.")
+
+
+/obj/item/device/healthanalyzer/guide
+ name = "Instructional health analyzer"
+ desc = "A hand-held body scanner able to distinguish vital signs of the subject. It shows extra information to medical personnel!"
+ guide = TRUE
+ icon_state = "health-g"
+
+/obj/item/device/healthanalyzer/proc/guide(var/mob/living/carbon/human/M, mob/living/user)
+
+ var/obj/item/weapon/card/id/ourid = user?.GetIdCard()
+ if(!ourid)
+ return
+ if(access_change_ids in ourid.access)
+ playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
+ return
+ if(access_medical in ourid.access)
+ playsound(src, 'sound/effects/pop.ogg', 50, FALSE)
+ else
+ playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
+ return
+ if(!ishuman(M))
+ return
+
+ var/dat = ""
+
+ var/bleeding_external = FALSE
+ var/bleeding_internal = FALSE
+ var/infection = FALSE
+ var/organ = FALSE
+ var/bone = FALSE
+ var/bloodloss = FALSE
+ var/robotparts = FALSE
+
+ for(var/obj/item/organ/org in M.organs)
+ if(org.robotic >= ORGAN_ROBOT)
+ robotparts = TRUE
+ continue
+ if(istype(org,/obj/item/organ/external))
+ var/obj/item/organ/external/e = org
+ if(e.status & ORGAN_BLEEDING)
+ bleeding_external = TRUE
+ if(e.status & ORGAN_BROKEN && (!e.splinted))
+ bone = TRUE
+ if(istype(org,/obj/item/organ/internal))
+ if(org.status & ORGAN_BLEEDING)
+ bleeding_internal = TRUE
+ if(org.damage)
+ organ = TRUE
+ if(org.germ_level > INFECTION_LEVEL_ONE)
+ infection = TRUE
+
+ var/blood_volume = M.vessel.get_reagent_amount("blood")
+ if(blood_volume <= M.species.blood_volume*M.species.blood_level_safe)
+ bloodloss = TRUE
+
+ if(bleeding_external)
+ dat += "Surface bleeding - Bandage immediately or apply brute-damage fixing chemicals (i.e. Bicaridine) if no bandages available.
"
+ if(bleeding_internal && (advscan >= 1 && showadvscan == 1))
+ dat += "Internal bleeding - Commence internal vein repair surgery or apply clotting chemicals (i.e. Myelamine).
"
+ if(M.getOxyLoss())
+ dat += "Suffociation - Give Dexalin or Dexaline Plus. Check for heart or lung damage.
"
+ if(infection)
+ dat += "Infection - Give Spaceacilin. If severe, overdose on Spaceacilin and monitor until well.
"
+ if((M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1) || M.getBrainLoss() >= 10)
+ dat += "Brain damage - Commence brain repair surgery, apply Alkysine, or universal organ-repair chemicals. (i.e. Peridaxon)
"
+ if(M.radiation || M.accumulated_rads)
+ dat += "Radiation - Give Hyroanlin or Arithazine. Monitor for genetic damage.
"
+ if(organ && (advscan >= 1 && showadvscan == 1))
+ dat += "Organ damage - Give Peridaxon. Perform full body scan for targetted organ repair surgery.
"
+ if(bloodloss)
+ dat += "Low blood volume - Commence blood transfusion via IV drip or provide blood-restorative chemicals (i.e. Iron)."
+ if(M.getToxLoss())
+ dat += "Toxins - Give Dylovene or Cartholine. Vomitting is normal and helpful. Tends to be a symptom of larger issues, such as infection.
"
+ if(M.getBruteLoss())
+ dat += "Brute Trauma - Bandage wounded body part. Give Bicaridine or Vermicetol.
"
+ if(M.getFireLoss())
+ dat += "Surface burn - Salve wounded body part in ointment. Give Kelotane or Dermaline. Check for infections.
"
+ if(M.getCloneLoss())
+ dat += "Genetic damage - Utilize cryogenic pod with appropriate chemicals (i.e. Cryoxadone) and below 70 K, or give Rezadone.
"
+ if(bone)
+ dat += "Bone fracture - Splint damaged area. Treat with bone repair surgery or Osteodaxon after treating brute damage.
"
+ if(M.virus2.len)
+ dat += "Viral infection - Proceed with virology pathogen curing procedures or apply antiviral chemicals (i.e. Corophizine)
"
+ if(robotparts)
+ dat += "Robotic body parts - Should not be repaired by medical personnel, refer to robotics if damaged."
+
+ var/peeb
+ if(dat)
+ peeb +="GUIDANCE SYSTEM BEGIN
"
+ peeb += dat
+ peeb += "For more detailed information about patient condition, use the stationary scanner in medbay."
+
+ user.show_message(peeb, 1)
diff --git a/code/game/objects/items/devices/scanners/health.dm b/code/game/objects/items/devices/scanners/health.dm
index a747dc5f09..c88d17fead 100644
--- a/code/game/objects/items/devices/scanners/health.dm
+++ b/code/game/objects/items/devices/scanners/health.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
#define DEFIB_TIME_LIMIT (10 MINUTES) //VOREStation addition- past this many seconds, defib is useless.
/obj/item/device/healthanalyzer
@@ -348,3 +349,360 @@
icon_state = "health3"
#undef DEFIB_TIME_LIMIT //VOREStation addition
+=======
+#define DEFIB_TIME_LIMIT (10 MINUTES) //VOREStation addition- past this many seconds, defib is useless.
+
+/obj/item/device/healthanalyzer
+ name = "health analyzer"
+ desc = "A hand-held body scanner able to distinguish vital signs of the subject."
+ icon_state = "health"
+ item_state = "healthanalyzer"
+ slot_flags = SLOT_BELT
+ throwforce = 3
+ w_class = ITEMSIZE_SMALL
+ throw_speed = 5
+ throw_range = 10
+ matter = list(MAT_STEEL = 200)
+ origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
+ var/mode = 1;
+ var/advscan = 0
+ var/showadvscan = 1
+ var/guide = FALSE
+
+/obj/item/device/healthanalyzer/New()
+ if(advscan >= 1)
+ verbs += /obj/item/device/healthanalyzer/proc/toggle_adv
+ ..()
+
+/obj/item/device/healthanalyzer/examine(mob/user)
+ . = ..()
+ if(guide)
+ . += "Guidance is currently enabled."
+ else
+ . += "Guidance is currently disabled."
+
+/obj/item/device/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
+ if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
+ return ..()
+ scan_mob(M, user) //default surgery behaviour is just to scan as usual
+ return 1
+
+/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/user)
+ scan_mob(M, user)
+
+/obj/item/device/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user)
+ var/dat = ""
+ if ((CLUMSY in user.mutations) && prob(50))
+ user.visible_message("\The [user] has analyzed the floor's vitals!", "You try to analyze the floor's vitals!")
+ dat += "Analyzing Results for the floor:
"
+ dat += "Overall Status: Healthy
"
+ dat += "\tDamage Specifics: 0-0-0-0
"
+ dat += "Key: Suffocation/Toxin/Burns/Brute
"
+ dat += "Body Temperature: ???"
+ user.show_message("[dat]", 1)
+ return
+ if (!user.IsAdvancedToolUser())
+ to_chat(user, "You don't have the dexterity to do this!")
+ return
+
+ flick("[icon_state]-scan", src) //makes it so that it plays the scan animation on a succesful scan
+ user.visible_message("[user] has analyzed [M]'s vitals.","You have analyzed [M]'s vitals.")
+
+ if (!ishuman(M) || M.isSynthetic())
+ //these sensors are designed for organic life
+ dat += "Analyzing Results for ERROR:\n\tOverall Status: ERROR
"
+ dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
+ dat += "\tDamage Specifics: ? - ? - ? - ?
"
+ dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
+ dat += "Warning: Blood Level ERROR: --% --cl. Type: ERROR
"
+ dat += "Subject's pulse: -- bpm."
+ user.show_message(dat, 1)
+ return
+
+ var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
+ var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss()
+ var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : M.getToxLoss()
+ var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss()
+ var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss()
+ if(M.status_flags & FAKEDEATH)
+ OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy
+ dat += "Analyzing Results for [M]:
"
+ dat += "Overall Status: dead
"
+ else
+ dat += "Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]
"
+ dat += "\tKey: Suffocation/Toxin/Burns/Brute
"
+ dat += "\tDamage Specifics: [OX] - [TX] - [BU] - [BR]
"
+ dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)
"
+ //VOREStation edit/addition starts
+ if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
+ dat += "Time of Death: [worldtime2stationtime(M.timeofdeath)]
"
+ var/tdelta = round(world.time - M.timeofdeath)
+ if(tdelta < (DEFIB_TIME_LIMIT * 10))
+ dat += "Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!
"
+ //VOREStation edit/addition ends
+ if(istype(M, /mob/living/carbon/human) && mode == 1)
+ var/mob/living/carbon/human/H = M
+ var/list/damaged = H.get_damaged_organs(1,1)
+ dat += "Localized Damage, Brute/Burn:
"
+ if(length(damaged)>0)
+ for(var/obj/item/organ/external/org in damaged)
+ if(org.robotic >= ORGAN_ROBOT)
+ continue
+ else
+ dat += " [capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : 0]"
+ dat += "[(org.status & ORGAN_BLEEDING)?"\[Bleeding\]":""] - "
+ dat += "[(org.burn_dam > 0) ? "[org.burn_dam]" : 0]
"
+ else
+ dat += " Limbs are OK.
"
+
+ OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
+ TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal"
+ BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K"
+ BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K"
+ if(M.status_flags & FAKEDEATH)
+ OX = fake_oxy > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal"
+ dat += "[OX] | [TX] | [BU] | [BR]
"
+ if(M.radiation)
+ if(advscan >= 2 && showadvscan == 1)
+ var/severity = ""
+ if(M.radiation >= 1500)
+ severity = "Lethal"
+ else if(M.radiation >= 600)
+ severity = "Critical"
+ else if(M.radiation >= 400)
+ severity = "Severe"
+ else if(M.radiation >= 300)
+ severity = "Moderate"
+ else if(M.radiation >= 100)
+ severity = "Low"
+ dat += "[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]
"
+ else
+ dat += "Acute radiation sickness detected.
"
+ if(M.accumulated_rads)
+ if(advscan >= 2 && showadvscan == 1)
+ var/severity = ""
+ if(M.accumulated_rads >= 1500)
+ severity = "Critical"
+ else if(M.accumulated_rads >= 600)
+ severity = "Severe"
+ else if(M.accumulated_rads >= 400)
+ severity = "Moderate"
+ else if(M.accumulated_rads >= 300)
+ severity = "Mild"
+ else if(M.accumulated_rads >= 100)
+ severity = "Low"
+ dat += "[severity] levels of chronic radiation sickness detected. [round(M.accumulated_rads/50)]Gy.
"
+ else
+ dat += "Chronic radiation sickness detected.
"
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(C.reagents.total_volume)
+ var/unknown = 0
+ var/reagentdata[0]
+ var/unknownreagents[0]
+ for(var/datum/reagent/R as anything in C.reagents.reagent_list)
+ if(R.scannable)
+ reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ else
+ unknown++
+ unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(reagentdata.len)
+ dat += "Beneficial reagents detected in subject's blood:
"
+ for(var/d in reagentdata)
+ dat += reagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:
"
+ for(var/d in unknownreagents)
+ dat += unknownreagents[d]
+ else
+ dat += "Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.
"
+ if(C.ingested && C.ingested.total_volume)
+ var/unknown = 0
+ var/stomachreagentdata[0]
+ var/stomachunknownreagents[0]
+ for(var/datum/reagent/R as anything in C.ingested.reagent_list)
+ if(R.scannable)
+ stomachreagentdata["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if (advscan == 0 || showadvscan == 0)
+ dat += "[R.name] found in subject's stomach.
"
+ else
+ ++unknown
+ stomachunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(advscan >= 1 && showadvscan == 1)
+ dat += "Beneficial reagents detected in subject's stomach:
"
+ for(var/d in stomachreagentdata)
+ dat += stomachreagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:
"
+ for(var/d in stomachunknownreagents)
+ dat += stomachunknownreagents[d]
+ else
+ dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.
"
+ if(C.touching && C.touching.total_volume)
+ var/unknown = 0
+ var/touchreagentdata[0]
+ var/touchunknownreagents[0]
+ for(var/datum/reagent/R as anything in C.touching.reagent_list)
+ if(R.scannable)
+ touchreagentdata["[R.id]"] = "\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if (advscan == 0 || showadvscan == 0)
+ dat += "[R.name] found in subject's dermis.
"
+ else
+ ++unknown
+ touchunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose" : ""]
"
+ if(advscan >= 1 && showadvscan == 1)
+ dat += "Beneficial reagents detected in subject's dermis:
"
+ for(var/d in touchreagentdata)
+ dat += touchreagentdata[d]
+ if(unknown)
+ if(advscan >= 3 && showadvscan == 1)
+ dat += "Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:
"
+ for(var/d in touchunknownreagents)
+ dat += touchunknownreagents[d]
+ else
+ dat += "Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.
"
+ if(C.virus2.len)
+ for (var/ID in C.virus2)
+ if (ID in virusDB)
+ var/datum/data/record/V = virusDB[ID]
+ dat += "Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]
"
+ else
+ dat += "Warning: Unknown pathogen detected in subject's blood.
"
+ if (M.getCloneLoss())
+ dat += "Subject appears to have been imperfectly cloned.
"
+// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
+// user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
+ if (M.has_brain_worms())
+ dat += "Subject suffering from aberrant brain activity. Recommend further scanning.
"
+ else if (M.getBrainLoss() >= 60 || !M.has_brain())
+ dat += "Subject is brain dead.
"
+ else if (M.getBrainLoss() >= 25)
+ dat += "Severe brain damage detected. Subject likely to have a traumatic brain injury.
"
+ else if (M.getBrainLoss() >= 10)
+ dat += "Significant brain damage detected. Subject may have had a concussion.
"
+ else if (M.getBrainLoss() >= 1 && advscan >= 2 && showadvscan == 1)
+ dat += "Minor brain damage detected.
"
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ for(var/obj/item/organ/internal/appendix/a in H.internal_organs)
+ var/severity = ""
+ if(a.inflamed > 3)
+ severity = "Severe"
+ else if(a.inflamed > 2)
+ severity = "Moderate"
+ else if(a.inflamed >= 1)
+ severity = "Mild"
+ if(severity)
+ dat += "[severity] inflammation detected in subject [a.name].
"
+ // Infections, fractures, and IB
+ var/basic_fracture = 0 // If it's a basic scanner
+ var/basic_ib = 0 // If it's a basic scanner
+ var/fracture_dat = "" // All the fractures
+ var/infection_dat = "" // All the infections
+ var/ib_dat = "" // All the IB
+ for(var/obj/item/organ/external/e in H.organs)
+ if(!e)
+ continue
+ // Broken limbs
+ if(e.status & ORGAN_BROKEN)
+ if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
+ fracture_dat += "Unsecured fracture in subject [e.name]. Splinting recommended for transport.
"
+ else if(advscan >= 1 && showadvscan == 1)
+ fracture_dat += "Bone fractures detected in subject [e.name].
"
+ else
+ basic_fracture = 1
+ // Infections
+ if(e.has_infected_wound())
+ dat += "Infected wound detected in subject [e.name]. Disinfection recommended.
"
+ // IB
+ for(var/datum/wound/W in e.wounds)
+ if(W.internal)
+ if(advscan >= 1 && showadvscan == 1)
+ ib_dat += "Internal bleeding detected in subject [e.name].
"
+ else
+ basic_ib = 1
+ if(basic_fracture)
+ fracture_dat += "Bone fractures detected. Advanced scanner required for location.
"
+ if(basic_ib)
+ ib_dat += "Internal bleeding detected. Advanced scanner required for location.
"
+ dat += fracture_dat
+ dat += infection_dat
+ dat += ib_dat
+
+ // Blood level
+ if(M:vessel)
+ var/blood_volume = H.vessel.get_reagent_amount("blood")
+ var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
+ var/blood_type = H.dna.b_type
+ if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
+ dat += "Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
+ dat += "Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
+ dat += "Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ else
+ dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
"
+ dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.
" // VORE Edit: Missed a linebreak here.
+ if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera.
+ if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment())
+ dat += "WARNING: Protein levels low. Subject incapable of reconstitution."
+ else if(H.revive_ready == REVIVING_NOW)
+ dat += "Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds."
+ else if(H.revive_ready == REVIVING_DONE)
+ dat += "Subject is ready to hatch. Transfer to dark room for holding with food available."
+ else if(H.stat == DEAD)
+ dat+= "WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation."
+ else // If they bop them and they're not dead or reviving, give 'em a little notice.
+ dat += "Subject is a Xenochimera. Treat accordingly."
+ // VOREStation Edit End
+ user.show_message(dat, 1)
+ if(guide)
+ guide(M, user)
+
+/obj/item/device/healthanalyzer/verb/toggle_mode()
+ set name = "Switch Verbosity"
+ set category = "Object"
+
+ mode = !mode
+ switch (mode)
+ if(1)
+ to_chat(usr, "The scanner now shows specific limb damage.")
+ if(0)
+ to_chat(usr, "The scanner no longer shows limb damage.")
+
+/obj/item/device/healthanalyzer/proc/toggle_adv()
+ set name = "Toggle Advanced Scan"
+ set category = "Object"
+
+ showadvscan = !showadvscan
+ switch (showadvscan)
+ if(1)
+ to_chat(usr, "The scanner will now perform an advanced analysis.")
+ if(0)
+ to_chat(usr, "The scanner will now perform a basic analysis.")
+
+/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
+ name = "improved health analyzer"
+ desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
+ advscan = 1
+ origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
+ icon_state = "health1"
+
+/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
+ name = "advanced health analyzer"
+ desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
+ advscan = 2
+ origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
+ icon_state = "health2"
+
+/obj/item/device/healthanalyzer/phasic //reports all of the above, as well as name and quantity of nonmed reagents in stomach
+ name = "phasic health analyzer"
+ desc = "Possibly the most advanced health analyzer to ever have existed, utilising bluespace technology to determine almost everything worth knowing about a patient."
+ advscan = 3
+ origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
+ icon_state = "health3"
+
+#undef DEFIB_TIME_LIMIT //VOREStation addition
+>>>>>>> 167cb9c2aa... Merge pull request #15109 from Very-Soft/fancyscanner
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 9672e0feb1199654eb2de7bb964d58ff5e289d17..35911a76e862e3afa611d81492e87b183f6ca7ed 100644
GIT binary patch
literal 91710
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