spider_tier)
visible_message("[src] bows in respect for the terrifying presence of [target].")
@@ -163,22 +165,21 @@ var/global/list/ts_spiderlist = list()
spider_specialattack(G,can_poison)
else
G.attack_animal(src)
+ else if(istype(target, /obj/structure/alien/resin))
+ var/obj/structure/alien/resin/E = target
+ do_attack_animation(E)
+ E.health -= rand(melee_damage_lower, melee_damage_upper)
+ E.healthcheck()
else
target.attack_animal(src)
-/mob/living/simple_animal/hostile/poison/terror_spider/proc/spider_specialattack(mob/living/carbon/human/L, var/poisonable)
+/mob/living/simple_animal/hostile/poison/terror_spider/proc/spider_specialattack(mob/living/carbon/human/L, poisonable)
L.attack_animal(src)
-
-
-
-
-
// --------------------------------------------------------------------------------
// --------------------- TERROR SPIDERS: PROC OVERRIDES ---------------------------
// --------------------------------------------------------------------------------
-
/mob/living/simple_animal/hostile/poison/terror_spider/examine(mob/user)
..()
var/list/msgs = list()
@@ -195,18 +196,20 @@ var/global/list/ts_spiderlist = list()
msgs += "It has many injuries."
else if(health > (maxHealth*0.25))
msgs += "It is barely clinging on to life!"
+ if(degenerate)
+ msgs += "It appears to be dying."
else if(health < maxHealth && regen_points > regen_points_per_kill)
msgs += "It appears to be regenerating quickly."
if(killcount >= 1)
msgs += "It has blood dribbling from its mouth."
to_chat(usr,msgs.Join("
"))
-
/mob/living/simple_animal/hostile/poison/terror_spider/New()
..()
ts_spiderlist += src
add_language("Spider Hivemind")
- add_language("Galactic Common")
+ if(spider_tier >= TS_TIER_2)
+ add_language("Galactic Common")
default_language = all_languages["Spider Hivemind"]
web_action = new()
@@ -215,6 +218,7 @@ var/global/list/ts_spiderlist = list()
wrap_action.Grant(src)
name += " ([rand(1, 1000)])"
+ real_name = name
msg_terrorspiders("[src] has grown in [get_area(src)].")
if(is_away_level(z))
spider_awaymission = 1
@@ -233,7 +237,7 @@ var/global/list/ts_spiderlist = list()
if(ckey)
var/image/alert_overlay = image('icons/mob/terrorspider.dmi', icon_state)
notify_ghosts("[src] has appeared in [get_area(src)]. (already player-controlled)", source = src, alert_overlay = alert_overlay)
- else if(ai_playercontrol_allowingeneral && ai_playercontrol_allowtype)
+ else if(ai_playercontrol_allowtype)
var/image/alert_overlay = image('icons/mob/terrorspider.dmi', icon_state)
notify_ghosts("[src] has appeared in [get_area(src)].", enter_link = "(Click to control)", source = src, alert_overlay = alert_overlay, action = NOTIFY_ATTACK)
@@ -243,13 +247,15 @@ var/global/list/ts_spiderlist = list()
return ..()
/mob/living/simple_animal/hostile/poison/terror_spider/Life()
- ..()
- if(stat == DEAD)
+ . = ..()
+ if(!.) // if mob is dead
if(prob(2))
// 2% chance every cycle to decompose
visible_message("\The dead body of the [src] decomposes!")
gib()
else
+ if(degenerate > 0)
+ adjustToxLoss(rand(1,10))
if(regen_points < regen_points_max)
regen_points += regen_points_per_tick
if((bruteloss > 0) || (fireloss > 0))
@@ -263,9 +269,6 @@ var/global/list/ts_spiderlist = list()
if(prob(5))
CheckFaction()
-
-
-
/mob/living/simple_animal/hostile/poison/terror_spider/proc/handle_dying()
if(!hasdied)
hasdied = 1
@@ -282,7 +285,6 @@ var/global/list/ts_spiderlist = list()
handle_dying()
..()
-
/mob/living/simple_animal/hostile/poison/terror_spider/proc/spider_special_action()
return
diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm
new file mode 100644
index 00000000000..191eed19c47
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/white.dm
@@ -0,0 +1,42 @@
+
+// --------------------------------------------------------------------------------
+// ----------------- TERROR SPIDERS: T2 WHITE TERROR ------------------------------
+// --------------------------------------------------------------------------------
+// -------------: ROLE: stealthy reproduction
+// -------------: AI: injects a venom that makes you grow spiders in your body, then retreats
+// -------------: SPECIAL: stuns you on first attack - vulnerable to groups while it does this
+// -------------: TO FIGHT IT: blast it before it can get away
+// -------------: SPRITES FROM: FoS, http://nanotrasen.se/phpBB3/memberlist.php?mode=viewprofile&u=386
+
+/mob/living/simple_animal/hostile/poison/terror_spider/white
+ name = "White Terror spider"
+ desc = "An ominous-looking white spider, its ghostly eyes and vicious-looking fangs are the stuff of nightmares."
+ spider_role_summary = "Rare, bite-and-run spider that infects hosts with spiderlings"
+
+ icon_state = "terror_white"
+ icon_living = "terror_white"
+ icon_dead = "terror_white_dead"
+ maxHealth = 100
+ health = 100
+ melee_damage_lower = 5
+ melee_damage_upper = 15
+ move_to_delay = 4
+ spider_tier = TS_TIER_2
+ loot = list(/obj/item/clothing/accessory/medal)
+
+
+/mob/living/simple_animal/hostile/poison/terror_spider/white/spider_specialattack(mob/living/carbon/human/L, poisonable)
+ if(!poisonable)
+ ..()
+ return
+ var/inject_target = pick("chest","head")
+ L.attack_animal(src)
+ if(L.stunned || L.paralysis || L.can_inject(null,0,inject_target,0))
+ if(!IsInfected(L))
+ visible_message("[src] buries its long fangs deep into the [inject_target] of [L]!")
+ new /obj/item/organ/internal/body_egg/terror_eggs(L)
+
+/mob/living/simple_animal/hostile/poison/terror_spider/proc/IsInfected(mob/living/carbon/C) // Terror AI requires this
+ if(C.get_int_organ(/obj/item/organ/internal/body_egg))
+ return 1
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 0a9e0e77912..9922fed8789 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -617,3 +617,6 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM)
return FALSE
// Cast to 1/0
return !!(client.prefs.toggles & toggleflag)
+
+
+#define isterrorspider(A) (istype((A), /mob/living/simple_animal/hostile/poison/terror_spider))
\ No newline at end of file
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index 80f45fa0eaf..a1df4a961ac 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -130,12 +130,12 @@ var/list/alldepartments = list()
if(href_list["dept"])
if(authenticated)
var/lastdestination = destination
- var/list/combineddepartments = alldepartments
+ var/list/combineddepartments = alldepartments.Copy()
if(long_range_enabled)
- combineddepartments += admin_departments
+ combineddepartments += admin_departments.Copy()
if(emagged)
- combineddepartments += hidden_admin_departments
+ combineddepartments += hidden_admin_departments.Copy()
destination = input(usr, "To which department?", "Choose a department", "") as null|anything in combineddepartments
if(!destination)
diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm
index 1c03c3f7039..12bf7ff8750 100644
--- a/code/modules/shuttle/syndicate.dm
+++ b/code/modules/shuttle/syndicate.dm
@@ -8,6 +8,7 @@
shuttleId = "syndicate"
possible_destinations = "syndicate_away;syndicate_z5;syndicate_z3;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s"
var/challenge = FALSE
+ var/moved = FALSE
/obj/machinery/computer/shuttle/syndicate/recall
name = "syndicate shuttle recall terminal"
@@ -18,6 +19,7 @@
if(challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.")
return 0
+ moved = TRUE
..()
/obj/machinery/computer/shuttle/syndicate/drop_pod
diff --git a/code/modules/surgery/organs/parasites.dm b/code/modules/surgery/organs/parasites.dm
index 61e72743464..3d1917fe258 100644
--- a/code/modules/surgery/organs/parasites.dm
+++ b/code/modules/surgery/organs/parasites.dm
@@ -1,3 +1,6 @@
+
+// Traitor-only space spider eggs
+
/obj/item/organ/internal/body_egg/spider_eggs
name = "spider eggs"
icon = 'icons/effects/effects.dmi'
@@ -34,3 +37,82 @@
M.reagents.del_reagent("spidereggs") //purge all remaining spider eggs reagent if caught, in time.
qdel(src) //We don't want people re-implanting these for near instant gibbings.
return null
+
+
+
+// Terror Spiders - white spider infection
+
+/obj/item/organ/internal/body_egg/terror_eggs
+ name = "terror eggs"
+ icon = 'icons/effects/effects.dmi'
+ icon_state = "eggs"
+ var/current_cycle = 0
+ var/awaymission_infection = 0
+ var/alternate_ending = 0
+
+/obj/item/organ/internal/body_egg/terror_eggs/on_life()
+ current_cycle += 1
+ if(owner.health < -25)
+ to_chat(owner,"You feel a strange, blissful senstation.")
+ owner.adjustBruteLoss(-5)
+ owner.adjustFireLoss(-5)
+ owner.adjustToxLoss(-5)
+ // the spider eggs secrete stimulants to keep their host alive until they hatch
+ switch(current_cycle)
+ if(1) // immediately
+ to_chat(owner,"Your spider bite wound hurts horribly! ")
+ if(istype(get_area(owner), /area/awaycontent) || istype(get_area(owner), /area/awaymission))
+ awaymission_infection = 1
+ if(15) // 30 seconds... enough time for the nerve agent to kick in, the pain to be blocked, and healing to begin
+ to_chat(owner,"The pain has faded, and stopped bleeding, though the skin around it has turned black.")
+ owner.adjustBruteLoss(-10)
+ if(60) // 2 minutes... the point where the venom uses and accellerates the healing process, to feed the eggs
+ to_chat(owner,"Your bite wound has completely sealed up, though the skin is still black. You feel significantly better.")
+ owner.adjustBruteLoss(-20)
+ if(120) // 4 minutes... where the eggs are developing, and the wound is turning into a hatching site, but invisibly
+ to_chat(owner,"The black flesh around your old spider bite wound has started to peel off.")
+ if(150) // 5 minutes... where the victim realizes something is wrong - this is not a normal wound
+ to_chat(owner,"The black flesh around your spider bite wound has cracked, and started to split open!")
+ if(165) // 5m 30s
+ to_chat(owner,"The black flesh splits open completely, revealing a cluster of small black oval shapes inside you, shapes that seem to be moving!")
+ if(180) // 6m
+ if(awaymission_infection && is_away_level(owner.z))
+ // we started in the awaymission, we ended on the station.
+ // To prevent someone bringing an infection back, we're going to trigger an alternate, equally-bad result here.
+ // Actually, let's make it slightly worse... just to discourage people from bringing back infections.
+ alternate_ending = 1
+ to_chat(owner,"The shapes extend tendrils out of your wound... no... those are legs! SPIDER LEGS! You have spiderlings growing inside you! You scratch at the wound, but it just aggrivates them - they swarm out of the wound, biting you all over!")
+ owner.visible_message("[owner] flails around on the floor as spiderlings erupt from their skin and swarm all over them! ")
+ owner.Stun(20)
+ owner.Weaken(20)
+ // yes, this is a long stun - that's intentional. Gotta give the spiderlings time to escape.
+ var/obj/effect/spider/spiderling/terror_spiderling/S1 = new(get_turf(owner))
+ S1.grow_as = /mob/living/simple_animal/hostile/poison/terror_spider/red
+ S1.name = "red spiderling"
+ if(prob(50))
+ S1.stillborn = 1
+ var/obj/effect/spider/spiderling/terror_spiderling/S2 = new(get_turf(owner))
+ S2.grow_as = /mob/living/simple_animal/hostile/poison/terror_spider/gray
+ S2.name = "gray spiderling"
+ if(prob(50))
+ S2.stillborn = 1
+ var/obj/effect/spider/spiderling/terror_spiderling/S3 = new(get_turf(owner))
+ S3.grow_as = /mob/living/simple_animal/hostile/poison/terror_spider/green
+ S3.name = "green spiderling"
+ if(prob(50))
+ S3.stillborn = 1
+ if(alternate_ending)
+ S1.stillborn = 1
+ S2.stillborn = 1
+ S3.stillborn = 1
+ owner.gib()
+ else
+ owner.adjustToxLoss(rand(100,180)) // normal case, range: 100-180, average 140, almost crit (150).
+ if(190) // 6m 30s
+ to_chat(owner,"The spiderlings are gone. Your wound, though, looks worse than ever. Remnants of tiny spider eggs, and dead spiders, inside your flesh. Disgusting.")
+ qdel(src)
+
+/obj/item/organ/internal/body_egg/terror_eggs/remove(var/mob/living/carbon/M, var/special = 0)
+ ..()
+ qdel(src) // prevent people re-implanting them into others
+ return null
diff --git a/goon/browserassets/css/browserOutput.css b/goon/browserassets/css/browserOutput.css
index 970e94bb3b4..f954af6dc9c 100644
--- a/goon/browserassets/css/browserOutput.css
+++ b/goon/browserassets/css/browserOutput.css
@@ -300,6 +300,7 @@ h1.alert, h2.alert {color: #000000;}
.confirm {color: #00af3b;}
.rose {color: #ff5050;}
.sans {font-family: 'Comic Sans MS', cursive, sans-serif;}
+.wingdings {font-family: Wingdings, Webdings;}
.ancient {color: #008B8B; font-stye: italic;}
.newscaster {color: #800000;}
.mod {color: #735638; font-weight: bold;}
diff --git a/html/changelog.html b/html/changelog.html
index 5664b2a3bd5..e4ae03dde1f 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -55,6 +55,52 @@
-->
+
13 February 2017
+
Crazylemon64 updated:
+
+ - Achieving higher growth rates on kudzu will result in a faster-growing vine when planted
+
+
Fethas updated:
+
+ - Metastation: The escape shuttle doors should no longer be security access only.
+ - Metastation: Hooks up disposals door control.
+ - Cyberiad: Untriggers Neca and makes the floor tiles in the emergecny wing sec area plating.
+ - Cyberiad: Moves the cargo mail room table onto the otherside of the window so you can actually OPEN IT.
+
+
Fluff12 updated:
+
+ - Greys can now choose to speak in wingdings or not. The Voice option is right below Species in character creation if Grey is selected - make sure you have it set to what you want!
+
+
Fox McCloud updated:
+
+ - improves the tatortot sprite
+
+
Kyep updated:
+
+ - Playtime requirements for IAAs have been set at 5 hours (similar to Sec Officer). Playtime requirements for Captains and AI have been increased from 10 hours to 20 hours.
+ - Mech-mounted teleporters are no longer massively overpowered. They now consume a huge amount of energy to use, to the point that crew mechs with them can only use them a few times. They can no longer be spammed. Dark Gygax mechs used by nuclear operatives get a better version of the teleporter, which has around 40 uses, and is more precise.
+ - Fixed several bugs related to Terror Spider webs.
+ - Terror Spiders have been rebalanced. Spiders are no longer spaceproof, princes are now proper minibosses, and more.
+ - Several new classes of Terror Spiders (green, white, purple, queen, mother) have been added - including types which can breed. This creates new strategy around nest defense.
+
+
Markolie updated:
+
+ - Fixed a number of genetics powers not working.
+ - Posibrains can no longer whisper when silenced.
+ - Syndicate turrets will no longer target the Syndicate pAI found on their outpost.
+ - Fixed the "Swedish" disability occasionally hiding parts of speech.
+ - Mouthless players can no longer eat crayons (such as IPC's).
+ - Instruments can now be interacted with while buckled.
+ - Emagging a single fax machine will no longer give all fax machines access to the Syndicate destination.
+ - Evidence bags will now always show the item inside of them.
+ - Spacepods leaving a trail of humans instead of ion trail effects.
+
+
uraniummeltdown updated:
+
+ - Nuclear Operatives can customize the Declaration of War.
+ - The RSF has a unique sprite.
+
+
12 February 2017
Fox McCloud updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 47e1e1b810f..e4e78e06518 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -3642,3 +3642,51 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
uraniummeltdown:
- rscadd: Whetstones have been resprited
- rscadd: Drying racks have new sprites.
+2017-02-13:
+ Crazylemon64:
+ - bugfix: Achieving higher growth rates on kudzu will result in a faster-growing
+ vine when planted
+ Fethas:
+ - tweak: 'Metastation: The escape shuttle doors should no longer be security access
+ only.'
+ - tweak: 'Metastation: Hooks up disposals door control.'
+ - tweak: 'Cyberiad: Untriggers Neca and makes the floor tiles in the emergecny wing
+ sec area plating.'
+ - tweak: 'Cyberiad: Moves the cargo mail room table onto the otherside of the window
+ so you can actually OPEN IT.'
+ Fluff12:
+ - rscadd: Greys can now choose to speak in wingdings or not. The Voice option is
+ right below Species in character creation if Grey is selected - make sure you
+ have it set to what you want!
+ Fox McCloud:
+ - tweak: improves the tatortot sprite
+ Kyep:
+ - tweak: Playtime requirements for IAAs have been set at 5 hours (similar to Sec
+ Officer). Playtime requirements for Captains and AI have been increased from
+ 10 hours to 20 hours.
+ - tweak: Mech-mounted teleporters are no longer massively overpowered. They now
+ consume a huge amount of energy to use, to the point that crew mechs with them
+ can only use them a few times. They can no longer be spammed. Dark Gygax mechs
+ used by nuclear operatives get a better version of the teleporter, which has
+ around 40 uses, and is more precise.
+ - bugfix: Fixed several bugs related to Terror Spider webs.
+ - tweak: Terror Spiders have been rebalanced. Spiders are no longer spaceproof,
+ princes are now proper minibosses, and more.
+ - rscadd: Several new classes of Terror Spiders (green, white, purple, queen, mother)
+ have been added - including types which can breed. This creates new strategy
+ around nest defense.
+ Markolie:
+ - bugfix: Fixed a number of genetics powers not working.
+ - bugfix: Posibrains can no longer whisper when silenced.
+ - bugfix: Syndicate turrets will no longer target the Syndicate pAI found on their
+ outpost.
+ - bugfix: Fixed the "Swedish" disability occasionally hiding parts of speech.
+ - bugfix: Mouthless players can no longer eat crayons (such as IPC's).
+ - bugfix: Instruments can now be interacted with while buckled.
+ - bugfix: Emagging a single fax machine will no longer give all fax machines access
+ to the Syndicate destination.
+ - bugfix: Evidence bags will now always show the item inside of them.
+ - bugfix: Spacepods leaving a trail of humans instead of ion trail effects.
+ uraniummeltdown:
+ - rscadd: Nuclear Operatives can customize the Declaration of War.
+ - rscadd: The RSF has a unique sprite.
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index cecb8427e84..5c12ccecd5b 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index fe42152fb5f..2a9a6774d27 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
index f08feb413f3..25edd2c325a 100644
Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 1e8b80b314e..186e7d05232 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
new file mode 100644
index 00000000000..332afbbdb71
Binary files /dev/null and b/icons/obj/tools.dmi differ
diff --git a/nano/templates/faxmachine.tmpl b/nano/templates/faxmachine.tmpl
index 76e68027a5c..e52c40eb927 100644
--- a/nano/templates/faxmachine.tmpl
+++ b/nano/templates/faxmachine.tmpl
@@ -59,9 +59,9 @@ Used In File(s): \code\modules\paperwork\faxmachine.dm
{{if data.authenticated}}
- {{:helper.link(data.cooldown && data.respectcooldown ? "Realigning" : "Send", data.cooldown && data.respectcooldown ? 'clock-o' : "mail-closed", {'send' : 1}, data.cooldown && data.respectcooldown ? 'disabled' : "")}}
+ {{:helper.link(data.cooldown && data.respectcooldown ? "Realigning" : "Send", data.cooldown && data.respectcooldown ? 'clock-o' : "envelope-o", {'send' : 1}, data.cooldown && data.respectcooldown ? 'disabled' : "")}}
{{else}}
- {{:helper.link(data.cooldown && data.respectcooldown ? "Realigning" : "Send", data.cooldown && data.respectcooldown ? 'clock-o' : "mail-closed", null, !data.authenticated ? 'disabled' : "")}}
+ {{:helper.link(data.cooldown && data.respectcooldown ? "Realigning" : "Send", data.cooldown && data.respectcooldown ? 'clock-o' : "envelope-o", null, !data.authenticated ? 'disabled' : "")}}
{{/if}}
\ No newline at end of file
diff --git a/paradise.dme b/paradise.dme
index 4f8a12f79f9..15ba163910a 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1299,6 +1299,7 @@
#include "code\modules\events\slaughterevent.dm"
#include "code\modules\events\spacevine.dm"
#include "code\modules\events\spider_infestation.dm"
+#include "code\modules\events\spider_terror.dm"
#include "code\modules\events\spontaneous_appendicitis.dm"
#include "code\modules\events\tear.dm"
#include "code\modules\events\traders.dm"
@@ -1734,9 +1735,16 @@
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\chem.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\ghost.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\gray.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\green.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\hive.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\mother.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\prince.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\purple.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\queen.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\red.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\reproduction.dm"
#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\terror_spiders.dm"
+#include "code\modules\mob\living\simple_animal\hostile\terror_spiders\white.dm"
#include "code\modules\mob\new_player\login.dm"
#include "code\modules\mob\new_player\logout.dm"
#include "code\modules\mob\new_player\new_player.dm"