Voreupdate

This commit is contained in:
izac112
2021-07-20 09:52:23 +02:00
84 changed files with 21830 additions and 20632 deletions
+16
View File
@@ -1,5 +1,6 @@
// Default species get default sprites, VR species get VR sprites
#define VR_SPECIES_SPRITE_SHEETS_SUIT_MOB list(\
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',\
@@ -12,6 +13,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HEAD_MOB list(\
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',\
@@ -25,6 +27,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_GREY_YW = 'icons/inventory/head/mob_grey.dmi' /*ywedit*/)
#define VR_SPECIES_SPRITE_SHEETS_HANDS_MOB list(\
SPECIES_HUMAN = 'icons/inventory/hands/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/mob_unathi.dmi',\
@@ -37,6 +40,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_FEET_MOB list(\
SPECIES_HUMAN = 'icons/inventory/feet/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/mob_unathi.dmi',\
@@ -50,6 +54,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/suit/item.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi',\
@@ -62,6 +67,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/head/item.dmi',\
SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',\
@@ -74,6 +80,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HANDS_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/hands/item.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/item_unathi.dmi',\
@@ -86,6 +93,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_FEET_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/feet/item.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/item_unathi.dmi',\
@@ -100,6 +108,7 @@ SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi')
// All species get VR sprites
#define ALL_VR_SPRITE_SHEETS_SUIT_MOB list(\
SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi',\
@@ -112,6 +121,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_HEAD_MOB list(\
SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi',\
@@ -125,6 +135,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_GREY_YW = 'icons/inventory/head/mob_grey.dmi' /*ywedit*/)
#define ALL_VR_SPRITE_SHEETS_HANDS_MOB list(\
SPECIES_HUMAN = 'icons/inventory/hands/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/mob_vr_unathi.dmi',\
@@ -137,6 +148,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_FEET_MOB list(\
SPECIES_HUMAN = 'icons/inventory/feet/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/mob_vr_unathi.dmi',\
@@ -150,6 +162,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/feet/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_SUIT_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/suit/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/item_vr_unathi.dmi',\
@@ -162,6 +175,7 @@ SPECIES_VULPKANIN = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_HEAD_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/head/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/head/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/item_vr_unathi.dmi',\
@@ -174,6 +188,7 @@ SPECIES_VULPKANIN = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_HANDS_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/hands/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/item_vr_unathi.dmi',\
@@ -186,6 +201,7 @@ SPECIES_VULPKANIN = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_FEET_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/feet/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/item_vr_unathi.dmi',\
+1 -1
View File
@@ -232,7 +232,7 @@ var/list/gamemode_cache = list()
// 15, 45, 70 minutes respectively
var/static/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000)
var/static/aliens_allowed = 0
var/static/aliens_allowed = 1 //Changed to 1 so player xenos can lay eggs.
var/static/ninjas_allowed = 0
var/static/abandon_allowed = 1
var/static/ooc_allowed = 1
+2 -2
View File
@@ -262,8 +262,8 @@
desc = "Station Network"
region = ACCESS_REGION_RESEARCH
// /var/const/free_access_id = 43
// /var/const/free_access_id = 44
// /var/const/free_access_id = 43 // taken in VR
// /var/const/free_access_id = 44 // taken in VR
/var/const/access_surgery = 45
/datum/access/surgery
+6
View File
@@ -5,6 +5,12 @@ var/const/access_explorer = 43
desc = "Explorer"
region = ACCESS_REGION_GENERAL
/var/const/access_pathfinder = 44
/datum/access/pathfinder
id = access_pathfinder
desc = "Pathfinder"
region = ACCESS_REGION_GENERAL
var/const/access_pilot = 67
/datum/access/pilot
id = access_pilot
+2 -2
View File
@@ -43,8 +43,8 @@
pto_type = PTO_EXPLORATION
dept_time_required = 20
access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway)
minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway)
access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway, access_pathfinder)
minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway, access_pathfinder)
outfit_type = /decl/hierarchy/outfit/job/pathfinder
job_description = "The Pathfinder's job is to lead and manage expeditions, and is the primary authority on all off-station expeditions."
alt_titles = list("Expedition Lead" = /datum/alt_title/expedition_lead, "Exploration Manager" = /datum/alt_title/exploration_manager)
+7 -7
View File
@@ -86,17 +86,17 @@
var/mob/living/carbon/human/X = user
if(istype(X.species, /datum/species/xenos))
if(src.locked || src.welded)
visible_message("<span class='alium'>\The [user] begins digging into \the [src] internals!</span>")
visible_message("<span class='alium'>\The [user] begins tearing into \the [src] internals!</span>")
src.do_animate("deny")
if(do_after(user,5 SECONDS,src))
visible_message("<span class='danger'>\The [user] forces \the [src] open, sparks flying from its electronics!</span>")
if(do_after(user,15 SECONDS,src))
visible_message("<span class='danger'>\The [user] tears \the [src] open, sparks flying from its electronics!</span>")
src.do_animate("spark")
playsound(src, 'sound/machines/door/airlock_creaking.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
playsound(src, 'sound/machines/door/airlock_tear_apart.ogg', 100, 1, volume_channel = VOLUME_CHANNEL_DOORS)
src.locked = 0
src.welded = 0
update_icon()
open(1)
src.emag_act()
src.set_broken() //These aren't emags, these be CLAWS
else if(src.density)
visible_message("<span class='alium'>\The [user] begins forcing \the [src] open!</span>")
if(do_after(user, 5 SECONDS,src))
@@ -218,12 +218,12 @@
open_sound_powered = 'sound/machines/door/space1o.ogg'
close_sound_powered = 'sound/machines/door/space1c.ogg'
/obj/machinery/door/airlock/external/glass/bolted
/obj/machinery/door/airlock/external/bolted
icon_state = "door_locked" // So it looks visibly bolted in map editor
locked = 1
// For convenience in making docking ports: one that is pre-bolted with frequency set!
/obj/machinery/door/airlock/external/glass/bolted/cycling
/obj/machinery/door/airlock/external/bolted/cycling
frequency = 1379
/obj/machinery/door/airlock/glass_external
+8 -6
View File
@@ -14,12 +14,13 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
var/helmet_becomes
/datum/suit_cycler_choice/department/proc/can_refit_helmet(obj/item/clothing/head/helmet/helmet)
return !!helmet_becomes
return helmet && !!helmet_becomes
/datum/suit_cycler_choice/department/proc/do_refit_helmet(obj/item/clothing/head/helmet/helmet)
var/obj/item/clothing/tmp = new helmet_becomes()
helmet.name = "refitted [tmp.name]"
helmet.desc = tmp.desc
helmet.icon = tmp.icon
helmet.icon_state = tmp.icon_state
helmet.item_state = tmp.item_state
helmet.item_state_slots = tmp.item_state_slots?.Copy()
@@ -28,12 +29,13 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
helmet.default_worn_icon = tmp.default_worn_icon
/datum/suit_cycler_choice/department/proc/can_refit_suit(obj/item/clothing/suit/space/suit)
return !!suit_becomes
return suit && !!suit_becomes
/datum/suit_cycler_choice/department/proc/do_refit_suit(obj/item/clothing/suit/space/suit)
var/obj/item/clothing/tmp = new suit_becomes()
suit.name = "refitted [tmp.name]"
suit.desc = tmp.desc
suit.icon = tmp.icon
suit.icon_state = tmp.icon_state
suit.item_state = tmp.item_state
suit.item_state_slots = tmp.item_state_slots?.Copy()
@@ -305,16 +307,16 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
// Uses same logic as it used to, which is that it bases an assumption of 'we should have custom sprites' on
// the presence of the species in the sprite_sheets_obj list on the helmet and suit
/datum/suit_cycler_choice/species/proc/can_refit_to(obj/item/clothing/head/helmet/helmet, obj/item/clothing/suit/space/suit)
for(var/obj/item/clothing/C in list(helmet, suit))
/datum/suit_cycler_choice/species/proc/can_refit_to(...)
for(var/obj/item/clothing/C in args)
if(LAZYACCESS(C.sprite_sheets_obj, name))
if(!(C.icon_state in cached_icon_states(C.sprite_sheets_obj[name])))
return FALSE // Species was in sprite_sheets_obj, but had no sprite for this object in particular
return TRUE
/datum/suit_cycler_choice/species/proc/do_refit_to(obj/item/clothing/head/helmet/helmet, obj/item/clothing/suit/space/suit)
for(var/obj/item/clothing/C in list(helmet, suit))
/datum/suit_cycler_choice/species/proc/do_refit_to(...)
for(var/obj/item/clothing/C in args)
C.refit_for_species(name)
/datum/suit_cycler_choice/species/noop
+11 -8
View File
@@ -1114,17 +1114,20 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
/obj/machinery/suit_cycler/proc/apply_paintjob()
if(!target_species || !target_department)
return
if(suit?.helmet)
visible_message("[bicon(src)]<span class='warning'>Separate the suit and helmet before applying any customizations.</span>")
return
if(helmet && target_department.can_refit_helmet(helmet))
// Helmet to new paint
if(target_department.can_refit_helmet(helmet))
target_department.do_refit_helmet(helmet)
if(suit && target_department.can_refit_suit(suit))
// Suit to new paint
if(target_department.can_refit_suit(suit))
target_department.do_refit_suit(suit)
if(target_species.can_refit_to(helmet, suit))
target_species.do_refit_to(helmet, suit)
// Attached voidsuit helmet to new paint
if(target_department.can_refit_helmet(suit?.helmet))
target_department.do_refit_helmet(suit.helmet)
// Species fitting for all 3 potential changes
if(target_species.can_refit_to(helmet, suit, suit?.helmet))
target_species.do_refit_to(helmet, suit, suit?.helmet)
else
visible_message("[bicon(src)]<span class='warning'>Unable to apply specified cosmetics with specified species. Please try again with a different species or cosmetic option selected.</span>")
return
+2 -127
View File
@@ -4,7 +4,6 @@
* Resin
* Weeds
* Acid
* Egg
*/
/*
@@ -204,6 +203,7 @@
layer = ABOVE_TURF_LAYER+0.01
light_range = NODERANGE
light_on = TRUE
light_color = "#673972"
var/node_range = NODERANGE
var/set_color = "#321D37"
@@ -422,129 +422,4 @@
visible_message("<span class='alium'>[src.target] begins to crumble under the acid!</span>")
spawn(rand(150, 200)) tick()
/*
* Egg
*/
/var/const //for the status var
BURST = 0
BURSTING = 1
GROWING = 2
GROWN = 3
MIN_GROWTH_TIME = 1800 //time it takes to grow a hugger
MAX_GROWTH_TIME = 3000
/obj/effect/alien/egg
desc = "It looks like a weird egg"
name = "egg"
// icon_state = "egg_growing" // So the egg looks 'grown', even though it's not.
icon_state = "egg"
density = FALSE
anchored = TRUE
var/health = 100
var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive
/obj/effect/alien/egg/New()
/*
if(config.aliens_allowed)
..()
spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
Grow()
else
qdel(src)
*/
/obj/effect/alien/egg/attack_hand(user as mob)
var/mob/living/carbon/M = user
if(!istype(M) || !(locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs))
return attack_hand(user)
switch(status)
if(BURST)
to_chat(user, "<span class='warning'>You clear the hatched egg.</span>")
qdel(src)
return
/* if(GROWING)
to_chat(user, "<span class='warning'>The child is not developed yet.</span>")
return
if(GROWN)
to_chat(user, "<span class='warning'>You retrieve the child.</span>")
Burst(0)
return
/obj/effect/alien/egg/proc/GetFacehugger() // Commented out for future edit.
return locate(/obj/item/clothing/mask/facehugger) in contents
/obj/effect/alien/egg/proc/Grow()
icon_state = "egg"
// status = GROWN
status = BURST
// new /obj/item/clothing/mask/facehugger(src)
return
*/
/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
if(status == GROWN || status == GROWING)
// var/obj/item/clothing/mask/facehugger/child = GetFacehugger()
icon_state = "egg_hatched"
/* flick("egg_opening", src)
status = BURSTING
spawn(15)
status = BURST
child.loc = get_turf(src)
if(kill && istype(child))
child.Die()
else
for(var/mob/M in range(1,src))
if(CanHug(M))
child.Attach(M)
break
*/
/obj/effect/alien/egg/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return
/obj/effect/alien/egg/attack_generic(var/mob/user, var/damage, var/attack_verb)
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
user.do_attack_animation(src)
health -= damage
healthcheck()
return
/obj/effect/alien/egg/take_damage(var/damage)
health -= damage
healthcheck()
return
/obj/effect/alien/egg/attackby(var/obj/item/weapon/W, var/mob/user)
if(health <= 0)
return
if(LAZYLEN(W.attack_verb))
src.visible_message("<span class='danger'>\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]</span>")
else
src.visible_message("<span class='danger'>\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
var/damage = W.force / 4.0
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
damage = 15
playsound(src, 'sound/items/Welder.ogg', 100, 1)
src.health -= damage
src.healthcheck()
/obj/effect/alien/egg/proc/healthcheck()
if(health <= 0)
Burst()
/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 500 + T0C)
health -= 5
healthcheck()
//Xenomorph Effect egg removed, replaced with Structure Egg.
@@ -118,14 +118,14 @@
///Talon Bags///
/obj/item/weapon/storage/backpack/talon
name = "ITV backpack"
name = "Talon backpack"
desc = "A backpack for carrying a large number of supplies easily."
icon = 'icons/inventory/back/item_vr.dmi'
icon_override = 'icons/inventory/back/mob_vr.dmi'
icon_state = "talon"
/obj/item/weapon/storage/backpack/satchel/talon
name = "ITV satchel"
name = "Talon satchel"
desc = "A satchel for carrying a large number of supplies easily."
icon = 'icons/inventory/back/item_vr.dmi'
icon_override = 'icons/inventory/back/mob_vr.dmi'
@@ -133,7 +133,7 @@
item_state_slots = null
/obj/item/weapon/storage/backpack/messenger/talon
name = "ITV messenger bag"
name = "Talon messenger bag"
desc = "A sturdy backpack worn over one shoulder."
icon = 'icons/inventory/back/item_vr.dmi'
icon_override = 'icons/inventory/back/mob_vr.dmi'
@@ -141,7 +141,7 @@
item_state_slots = null
/obj/item/weapon/storage/backpack/dufflebag/talon
name = "ITV dufflebag"
name = "Talon dufflebag"
desc = "A large dufflebag for holding extra supplies."
icon = 'icons/inventory/back/item_vr.dmi'
icon_override = 'icons/inventory/back/mob_vr.dmi'
@@ -529,7 +529,10 @@
F.update_icon(1)
for(var/mob/M in is_seeing)
M?.client.screen -= W
if(!M.client || QDELETED(M))
hide_from(M)
else
M.client.screen -= W
if(new_location)
if(ismob(loc))
@@ -0,0 +1,117 @@
#define MAX_PROGRESS 100
/obj/structure/alien/egg //Gurg Addition, working alien egg structure.
desc = "It looks like a weird egg."
name = "egg"
icon_state = "egg_growing"
density = 0
anchored = 1
var/progress = 0
/obj/structure/alien/egg/Initialize()
. = ..()
START_PROCESSING(SSobj, src)
/obj/structure/alien/egg/Destroy()
STOP_PROCESSING(SSobj, src)
. = ..()
/obj/structure/alien/egg/CanUseTopic(var/mob/user)
return isobserver(user) ? STATUS_INTERACTIVE : STATUS_CLOSE
/obj/structure/alien/egg/Topic(href, href_list)
if(..())
return 1
if(href_list["spawn"])
attack_ghost(usr)
/obj/structure/alien/egg/process()
progress++
if(progress >= MAX_PROGRESS)
for(var/mob/observer/dead/O in observer_mob_list)
if(O.client)
to_chat(O, "<span class='notice'>An alien is ready to hatch at [get_area(src.loc)]! (<a href='byond://?src=\ref[src];spawn=1'>spawn</a>)</span>")
STOP_PROCESSING(SSobj, src)
update_icon()
/obj/structure/alien/egg/update_icon()
if(progress == -1)
icon_state = "egg_opened"
else if(progress < MAX_PROGRESS)
icon_state = "egg_growing"
else
icon_state = "egg"
// Ghostjoinable icon
var/static/image/I
if(!I)
I = image('icons/mob/hud_vr.dmi', "ghostjoin")
I.invisibility = INVISIBILITY_OBSERVER
I.plane = PLANE_GHOSTS
I.appearance_flags = KEEP_APART|RESET_TRANSFORM
if(progress >= MAX_PROGRESS)
add_overlay(I)
else
cut_overlay(I)
/obj/structure/alien/egg/attack_ghost(var/mob/observer/dead/user)
// Still a ghost?
if(!istype(user))
tgui_alert_async(user, "You have to be an observer to join as this Xenomorph larva.")
return
// Check for bans properly.
if(jobban_isbanned(user, "Xenomorph"))
tgui_alert_async(user, "You are banned from playing a Xenomorph, so you can't join as this Xenomorph larva.")
return
// Check for respawn
if(!user.MayRespawn(1))
tgui_alert_async(user, "You aren't allowed to respawn, so you can't join as this Xenomorph larva.")
return
if(progress == -1)
tgui_alert_async(user, "That egg has already hatched.")
else if(progress >= MAX_PROGRESS)
tgui_alert_async(user, "Are you sure you want to join as a Xenomorph larva?", "Become Larva", list("Yes","No"), CALLBACK(src, .proc/ghost_dunk), 20 SECONDS)
else
tgui_alert_async(user, "\The [src] has not yet matured.")
/obj/structure/alien/egg/proc/ghost_dunk(choice)
if(choice != "Yes")
return
var/mob/observer/dead/user = usr
if(progress < MAX_PROGRESS || !istype(user))
return
progress = -1 // No harvesting pls.
flick("egg_opening",src)
sleep(5) //5ds animation
if(!src || !istype(user))
visible_message("<span class='alium'>\The [src] writhes with internal motion, but nothing comes out.</span>")
progress = MAX_PROGRESS // Someone else can have a go.
return // What a pain.
// Create the mob, transfer over key.
var/mob/living/carbon/alien/larva/larva = new(get_turf(src))
// Move the ghost in
if(user.mind)
user.mind.active = TRUE
user.mind.transfer_to(larva)
else
larva.ckey = user.ckey
qdel(user)
visible_message("<span class='alium'>\The [src] splits open with a wet slithering noise, and \the [larva] writhes free!</span>")
// Turn us into a hatched egg.
name = "hatched alien egg"
desc += " This one has hatched."
update_icon()
#undef MAX_PROGRESS
@@ -0,0 +1,62 @@
/obj/structure/alien //Gurg Addition, framework for alien eggs.
name = "alien thing"
desc = "There's something alien about this."
icon = 'icons/mob/alien.dmi'
layer = ABOVE_JUNK_LAYER
var/health = 50
/obj/structure/alien/proc/healthcheck()
if(health <=0)
set_density(0)
qdel(src)
return
/obj/structure/alien/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
return
/obj/structure/alien/ex_act(severity)
switch(severity)
if(1.0)
health-=50
if(2.0)
health-=50
if(3.0)
if (prob(50))
health-=50
else
health-=25
healthcheck()
return
/obj/structure/alien/hitby(AM as mob|obj)
..()
visible_message("<span class='danger'>\The [src] was hit by \the [AM].</span>")
var/tforce = 0
if(ismob(AM))
tforce = 10
else
tforce = AM:throwforce
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
health = max(0, health - tforce)
healthcheck()
..()
return
/obj/structure/alien/attack_generic()
attack_hand(usr)
/obj/structure/alien/attackby(var/obj/item/weapon/W, var/mob/user)
health = max(0, health - W.force)
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
healthcheck()
..()
return
/obj/structure/alien/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group) return 0
if(istype(mover) && mover.checkpass(PASSGLASS))
return !opacity
return !density
+2 -2
View File
@@ -886,13 +886,13 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/choice
if(ticker.mode.auto_recall_shuttle)
choice = tgui_input_list(usr, "The shuttle will just return if you call it. Call anyway?", list("Confirm", "Cancel"))
choice = tgui_input_list(usr, "The shuttle will just return if you call it. Call anyway?", "Shuttle Call", list("Confirm", "Cancel"))
if(choice == "Confirm")
emergency_shuttle.auto_recall = 1 //enable auto-recall
else
return
choice = tgui_input_list(usr, "Is this an emergency evacuation or a crew transfer?", list("Emergency", "Crew Transfer"))
choice = tgui_input_list(usr, "Is this an emergency evacuation or a crew transfer?", "Shuttle Call", list("Emergency", "Crew Transfer"))
if (choice == "Emergency")
emergency_shuttle.call_evac()
else
+1 -1
View File
@@ -20,7 +20,7 @@ var/const/commandos_possible = 6 //if more Commandos are needed in the future
var/datum/antagonist/deathsquad/team
var/choice = tgui_input_list(usr, "Select type of strike team:", list("Heavy Asset Protection", "Mercenaries"))
var/choice = tgui_input_list(usr, "Select type of strike team:", "Strike Team", list("Heavy Asset Protection", "Mercenaries"))
if(!choice)
return
@@ -117,6 +117,6 @@
Talon pin
*/
/datum/gear/accessory/talonpin
display_name = "ITV pin"
description = "A small enamel pin of the ITV logo."
display_name = "Talon pin"
description = "A small enamel pin of the Talon logo."
path = /obj/item/clothing/accessory/talon
@@ -53,10 +53,10 @@
Talon hats
*/
/datum/gear/head/cap/talon
display_name = "cap, ITV"
display_name = "cap, Talon"
path = /obj/item/clothing/head/soft/talon
/datum/gear/head/beret/talon
display_name = "beret, ITV"
display_name = "beret, Talon"
path = /obj/item/clothing/head/beret
@@ -82,5 +82,5 @@
Talon winter coat
*/
/datum/gear/suit/wintercoat/talon
display_name = "winter coat, ITV"
display_name = "winter coat, Talon"
path = /obj/item/clothing/suit/storage/hooded/wintercoat/talon
@@ -221,8 +221,8 @@ Bluespace jumpsuit
Talon jumpsuit
*/
/datum/gear/uniform/talonbasic
display_name = "ITV Jumpsuit"
description = "A jumpsuit that is usually issued to ITV contractors, however others can purchase it to show their support towards ITV."
display_name = "Talon Jumpsuit"
description = "A jumpsuit that is usually issued to ITV Talon contractors, however others can purchase it to show their support towards the ship."
path = /obj/item/clothing/under/rank/talon/basic
// Summer dresses
@@ -62,7 +62,7 @@
allowed_roles = list("Pathfinder","Explorer")
/datum/gear/utility/dufflebag/talon
display_name = "ITV dufflebag"
display_name = "Talon dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/explorer
/datum/gear/utility/ID
@@ -79,20 +79,33 @@
pref.pos_traits.Cut()
pref.neg_traits.Cut()
// Clean up positive traits
for(var/path in pref.pos_traits)
for(var/datum/trait/path as anything in pref.pos_traits)
if(!(path in positive_traits))
pref.pos_traits -= path
continue
var/take_flags = initial(path.can_take)
if((pref.dirty_synth && !(take_flags & SYNTHETICS)) || (pref.gross_meatbag && !(take_flags & ORGANICS)))
pref.pos_traits -= path
//Neutral traits
for(var/path in pref.neu_traits)
for(var/datum/trait/path as anything in pref.neu_traits)
if(!(path in neutral_traits))
pref.neu_traits -= path
continue
if(!(pref.species == SPECIES_CUSTOM) && !(path in everyone_traits))
pref.neu_traits -= path
continue
var/take_flags = initial(path.can_take)
if((pref.dirty_synth && !(take_flags & SYNTHETICS)) || (pref.gross_meatbag && !(take_flags & ORGANICS)))
pref.neu_traits -= path
//Negative traits
for(var/path in pref.neg_traits)
for(var/datum/trait/path as anything in pref.neg_traits)
if(!(path in negative_traits))
pref.neg_traits -= path
continue
var/take_flags = initial(path.can_take)
if((pref.dirty_synth && !(take_flags & SYNTHETICS)) || (pref.gross_meatbag && !(take_flags & ORGANICS)))
pref.neg_traits -= path
var/datum/species/selected_species = GLOB.all_species[pref.species]
if(selected_species.selects_bodytype)
// Allowed!
+10 -17
View File
@@ -16,13 +16,6 @@
var/list/enables_planes //Enables these planes in the wearing mob's plane_holder
var/list/plane_slots //But only if it's equipped into this specific slot
/*
Sprites used when the clothing item is refit. This is done by setting icon_override.
For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary.
Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits),
while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits).
*/
var/list/sprite_sheets_refit = null
var/ear_protection = 0
var/blood_sprite_state
@@ -163,9 +156,6 @@
species_restricted = list(target_species)
//Set icon
if (sprite_sheets_refit && (target_species in sprite_sheets_refit))
LAZYSET(sprite_sheets, target_species, sprite_sheets_refit[target_species])
if (sprite_sheets_obj && (target_species in sprite_sheets_obj))
icon = sprite_sheets_obj[target_species]
else
@@ -211,9 +201,6 @@
species_restricted = list(target_species)
//Set icon
if (sprite_sheets_refit && (target_species in sprite_sheets_refit))
LAZYSET(sprite_sheets, target_species, sprite_sheets_refit[target_species])
if (sprite_sheets_obj && (target_species in sprite_sheets_obj))
icon = sprite_sheets_obj[target_species]
else
@@ -765,17 +752,23 @@
/obj/item/clothing/suit/equipped(var/mob/user, var/slot)
if(ishuman(user))
var/mob/living/carbon/human/H = user
if((taurized && !istaurtail(H.tail_style)) || (!taurized && istaurtail(H.tail_style)))
taurize(user)
var/taurtail = istaurtail(H.tail_style)
if((taurized && !taurtail) || (!taurized && taurtail))
taurize(user, taurtail)
return ..()
/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur)
if(istaurtail(Taur.tail_style))
/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur, has_taur_tail = FALSE)
if(has_taur_tail)
var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style
if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites)))
icon_override = taurtail.suit_sprites
taurized = TRUE
// means that if a taur puts on an already taurized suit without a taur sprite
// for their taur type, but the previous taur type had a sprite, it stays
// taurized and they end up with that taur style which is funny
else
taurized = FALSE
if(!taurized)
icon_override = initial(icon_override)
+1 -1
View File
@@ -30,7 +30,7 @@
// Talon Winter Hood
/obj/item/clothing/head/hood/winter/talon
name = "ITV winter hood"
name = "Talon winter hood"
desc = "A cozy winter hood attached to a heavy winter jacket."
icon_override = 'icons/inventory/head/mob_vr.dmi'
icon_state = "winterhood_talon"
+8 -8
View File
@@ -98,8 +98,8 @@
//////////TALON HATS//////////
/obj/item/clothing/head/soft/talon
name = "ITV baseball cap"
desc = "It's a ballcap bearing the colors of ITV."
name = "Talon baseball cap"
desc = "It's a ballcap bearing the colors of ITV Talon."
icon = 'icons/inventory/head/item_vr.dmi'
icon_override = 'icons/inventory/head/mob_vr.dmi'
icon_state = "talonsoft"
@@ -107,24 +107,24 @@
item_state_slots = list(slot_r_hand_str = "blacksoft", slot_l_hand_str = "blacksoft")
/obj/item/clothing/head/caphat/talon
name = "ITV nautical hat"
desc = "It's a classic nautical hat bearing the colors of ITV. Perfect for commanding the Talon."
name = "Talon nautical hat"
desc = "It's a classic nautical hat bearing the colors of ITV Talon. Perfect for commanding the ship."
icon = 'icons/inventory/head/item_vr.dmi'
icon_override = 'icons/inventory/head/mob_vr.dmi'
icon_state = "talon_captain_cap"
item_state = "taloncaptaincap"
/obj/item/clothing/head/beret/talon
name = "ITV beret"
desc = "It's a basic baret colored to match ITV's uniforms."
name = "Talon beret"
desc = "It's a basic baret colored to match ITV Talon's uniforms."
icon = 'icons/inventory/head/item_vr.dmi'
icon_override = 'icons/inventory/head/mob_vr.dmi'
icon_state = "beret_talon"
item_state = "baret_talon"
/obj/item/clothing/head/beret/talon/command
name = "ITV officer beret"
desc = "It's a basic baret colored to match ITV's uniforms with a badge pinned on the front. Perfect for commanders."
name = "Talon officer beret"
desc = "It's a basic baret colored to match ITV Talon's uniforms with a badge pinned on the front. Perfect for commanders."
icon = 'icons/inventory/head/item_vr.dmi'
icon_override = 'icons/inventory/head/mob_vr.dmi'
icon_state = "beret_talon_officer"
@@ -48,8 +48,8 @@
//////////Talon Pilot Headgear//////////
/obj/item/clothing/head/pilot_vr/talon
name = "ITV pilot helmet"
desc = "An ITV version of the standard pilot helmet. Protects the head from impacts. This one has a retractable visor"
name = "Talon pilot helmet"
desc = "An ITV Talon version of the standard pilot helmet. Protects the head from impacts. This one has a retractable visor"
icon_state = "pilot3"
item_icons = list(slot_head_str = 'icons/inventory/head/mob_vr.dmi')
sprite_sheets = list(
@@ -239,4 +239,3 @@
SPECIES_ALRAUNE = 'icons/inventory/head/item_vr.dmi',
SPECIES_ZADDAT = 'icons/inventory/head/item_vr.dmi'
)
sprite_sheets_refit = list() //have to nullify this as well just to be thorough
+4 -24
View File
@@ -14,18 +14,8 @@
//Species-specific stuff.
species_restricted = list("Human", "Promethean")
sprite_sheets_refit = list(
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi'
//Teshari have a general sprite sheet defined in modules/clothing/clothing.dm
)
sprite_sheets_obj = list(
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',
SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi',
SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi'
)
sprite_sheets = VR_SPECIES_SPRITE_SHEETS_HEAD_MOB
sprite_sheets_obj = VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM
light_overlay = "helmet_light"
var/no_cycle = FALSE //stop this item from being put in a cycler
@@ -44,18 +34,8 @@
max_pressure_protection = 10 * ONE_ATMOSPHERE
species_restricted = list("Human", SPECIES_SKRELL, "Promethean")
sprite_sheets_refit = list(
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi'
//Teshari have a general sprite sheet defined in modules/clothing/clothing.dm
)
sprite_sheets_obj = list(
SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi',
SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi',
SPECIES_TESHARI = 'icons/inventory/suit/item_teshari.dmi'
)
sprite_sheets = VR_SPECIES_SPRITE_SHEETS_SUIT_MOB
sprite_sheets_obj = VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM
//Breach thresholds, should ideally be inherited by most (if not all) voidsuits.
//With 0.2 resiliance, will reach 10 breach damage after 3 laser carbine blasts or 8 smg hits.
@@ -7,20 +7,10 @@
/obj/item/clothing/head/helmet/space/void
species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA)
sprite_sheets = VR_SPECIES_SPRITE_SHEETS_HEAD_MOB
sprite_sheets_obj = VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM
/obj/item/clothing/suit/space/void
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA)
sprite_sheets = VR_SPECIES_SPRITE_SHEETS_SUIT_MOB
sprite_sheets_obj = VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM
// This is a hack to prevent the item_state variable on the suits from taking effect
// when the item is equipped in outer clothing slot.
// This variable is normally used to set the icon_override when the suit is refitted,
// however the species spritesheet now means we no longer need that anyway!
sprite_sheets_refit = list()
/obj/item/clothing/head/helmet/space/void/heck
name = "\improper H.E.C.K. helmet"
desc = "Hostile Environiment Cross-Kinetic Helmet: A helmet designed to withstand the wide variety of hazards from \[REDACTED\]. It wasn't enough for its last owner."
@@ -106,7 +96,6 @@
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
sprite_sheets = ALL_VR_SPRITE_SHEETS_SUIT_MOB
sprite_sheets_obj = null
sprite_sheets_refit = null
/obj/item/clothing/suit/space/void/autolok/Initialize()
. = ..()
@@ -162,5 +151,4 @@
default_worn_icon = 'icons/inventory/head/mob_vr.dmi'
sprite_sheets = ALL_VR_SPRITE_SHEETS_HEAD_MOB
sprite_sheets_obj = null
sprite_sheets_refit = null
@@ -7,7 +7,6 @@
unacidable = TRUE //No longer shall our kind be foiled by lone chemists with spray bottles!
armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60)
siemens_coefficient = 0.7
sprite_sheets_refit = null
sprite_sheets_obj = null
wizard_garb = 1
@@ -20,6 +19,5 @@
unacidable = TRUE
armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60)
siemens_coefficient = 0.7
sprite_sheets_refit = null
sprite_sheets_obj = null
wizard_garb = 1
+9 -145
View File
@@ -3,131 +3,105 @@
name = "black cloak"
desc = "It drapes over a Teshari's shoulders and closes at the neck with pockets convienently placed inside."
icon = 'icons/inventory/suit/item_teshari.dmi'
default_worn_icon = 'icons/inventory/suit/mob_teshari.dmi'
icon_state = "tesh_cloak_bn"
item_state = "tesh_cloak_bn"
species_restricted = list(SPECIES_TESHARI)
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_red
name = "black and red cloak"
icon_state = "tesh_cloak_br"
item_state = "tesh_cloak_br"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_orange
name = "black and orange cloak"
icon_state = "tesh_cloak_bo"
item_state = "tesh_cloak_bo"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_yellow
name = "black and yellow cloak"
icon_state = "tesh_cloak_by"
item_state = "tesh_cloak_by"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_green
name = "black and green cloak"
icon_state = "tesh_cloak_bgr"
item_state = "tesh_cloak_bgr"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_blue
name = "black and blue cloak"
icon_state = "tesh_cloak_bbl"
item_state = "tesh_cloak_bbl"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_purple
name = "black and purple cloak"
icon_state = "tesh_cloak_bp"
item_state = "tesh_cloak_bp"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_pink
name = "black and pink cloak"
icon_state = "tesh_cloak_bpi"
item_state = "tesh_cloak_bpi"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_brown
name = "black and brown cloak"
icon_state = "tesh_cloak_bbr"
item_state = "tesh_cloak_bbr"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_grey
name = "black and grey cloak"
icon_state = "tesh_cloak_bg"
item_state = "tesh_cloak_bg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_white
name = "black and white cloak"
icon_state = "tesh_cloak_bw"
item_state = "tesh_cloak_bw"
/obj/item/clothing/suit/storage/teshari/cloak/standard/white
name = "white cloak"
icon_state = "tesh_cloak_wn"
item_state = "tesh_cloak_wn"
/obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey
name = "white and grey cloak"
icon_state = "tesh_cloak_wg"
item_state = "tesh_cloak_wg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/red_grey
name = "red and grey cloak"
icon_state = "tesh_cloak_rg"
item_state = "tesh_cloak_rg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/orange_grey
name = "orange and grey cloak"
icon_state = "tesh_cloak_og"
item_state = "tesh_cloak_og"
/obj/item/clothing/suit/storage/teshari/cloak/standard/yellow_grey
name = "yellow and grey cloak"
icon_state = "tesh_cloak_yg"
item_state = "tesh_cloak_yg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/green_grey
name = "green and grey cloak"
icon_state = "tesh_cloak_gg"
item_state = "tesh_cloak_gg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/blue_grey
name = "blue and grey cloak"
icon_state = "tesh_cloak_blug"
item_state = "tesh_cloak_blug"
/obj/item/clothing/suit/storage/teshari/cloak/standard/purple_grey
name = "purple and grey cloak"
icon_state = "tesh_cloak_pg"
item_state = "tesh_cloak_pg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/pink_grey
name = "pink and grey cloak"
icon_state = "tesh_cloak_pig"
item_state = "tesh_cloak_pig"
/obj/item/clothing/suit/storage/teshari/cloak/standard/brown_grey
name = "brown and grey cloak"
icon_state = "tesh_cloak_brg"
item_state = "tesh_cloak_brg"
/obj/item/clothing/suit/storage/teshari/cloak/standard/rainbow
name = "rainbow cloak"
icon_state = "tesh_cloak_rainbow"
item_state = "tesh_cloak_rainbow"
/obj/item/clothing/suit/storage/teshari/cloak/standard/orange
name = "orange cloak"
icon_state = "tesh_cloak_on"
item_state = "tesh_cloak_on"
/obj/item/clothing/suit/storage/teshari/cloak/standard/dark_retrowave
name = "dark aesthetic cloak"
icon_state = "tesh_cloak_dretrowave"
item_state = "tesh_cloak_dretrowave"
/obj/item/clothing/suit/storage/teshari/cloak/standard/black_glow
name = "black and glowing cloak"
icon_state = "tesh_cloak_bglowing"
item_state = "tesh_cloak_bglowing"
// Job Cloaks
@@ -135,7 +109,6 @@
name = "facility director cloak"
desc = "A soft Teshari cloak made for the Facility Director"
icon_state = "tesh_cloak_cap"
item_state = "tesh_cloak_cap"
//Cargo
@@ -143,19 +116,16 @@
name = "quartermaster cloak"
desc = "A soft Teshari cloak made for the Quartermaster"
icon_state = "tesh_cloak_qm"
item_state = "tesh_cloak_qm"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/cargo
name = "cargo cloak"
desc = "A soft Teshari cloak made for the Cargo department"
icon_state = "tesh_cloak_car"
item_state = "tesh_cloak_car"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/mining
name = "mining cloak"
desc = "A soft Teshari cloak made for Mining"
icon_state = "tesh_cloak_mine"
item_state = "tesh_cloak_mine"
//Engineering
@@ -163,19 +133,16 @@
name = "cheif engineer cloak"
desc = "A soft Teshari cloak made the Chief Engineer"
icon_state = "tesh_cloak_ce"
item_state = "tesh_cloak_ce"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/engineer
name = "engineering cloak"
desc = "A soft Teshari cloak made for the Engineering department"
icon_state = "tesh_cloak_engie"
item_state = "tesh_cloak_engie"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/atmos
name = "atmospherics cloak"
desc = "A soft Teshari cloak made for the Atmospheric Technician"
icon_state = "tesh_cloak_atmos"
item_state = "tesh_cloak_atmos"
//Medical
@@ -183,37 +150,31 @@
name = "chief medical officer cloak"
desc = "A soft Teshari cloak made the Cheif Medical Officer"
icon_state = "tesh_cloak_cmo"
item_state = "tesh_cloak_cmo"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/medical
name = "medical cloak"
desc = "A soft Teshari cloak made for the Medical department"
icon_state = "tesh_cloak_doc"
item_state = "tesh_cloak_doc"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/chemistry
name = "chemist cloak"
desc = "A soft Teshari cloak made for the Chemist"
icon_state = "tesh_cloak_chem"
item_state = "tesh_cloak_chem"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/viro
name = "virologist cloak"
desc = "A soft Teshari cloak made for the Virologist"
icon_state = "tesh_cloak_viro"
item_state = "tesh_cloak_viro"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/para
name = "paramedic cloak"
desc = "A soft Teshari cloak made for the Paramedic"
icon_state = "tesh_cloak_para"
item_state = "tesh_cloak_para"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/psych
name = " psychiatrist cloak"
desc = "A soft Teshari cloak made for the Psychiatrist"
icon_state = "tesh_cloak_psych"
item_state = "tesh_cloak_psych"
//Science
@@ -221,19 +182,16 @@
name = "research director cloak"
desc = "A soft Teshari cloak made for the Research Director"
icon_state = "tesh_cloak_rd"
item_state = "tesh_cloak_rd"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/sci
name = "scientist cloak"
desc = "A soft Teshari cloak made for the Science department"
icon_state = "tesh_cloak_sci"
item_state = "tesh_cloak_sci"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/robo
name = "roboticist cloak"
desc = "A soft Teshari cloak made for the Roboticist"
icon_state = "tesh_cloak_robo"
item_state = "tesh_cloak_robo"
//Security
@@ -241,19 +199,16 @@
name = "head of security cloak"
desc = "A soft Teshari cloak made for the Head of Security"
icon_state = "tesh_cloak_hos"
item_state = "tesh_cloak_hos"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/sec
name = "security cloak"
desc = "A soft Teshari cloak made for the Security department"
icon_state = "tesh_cloak_sec"
item_state = "tesh_cloak_sec"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/iaa
name = "internal affairs cloak"
desc = "A soft Teshari cloak made for the Internal Affairs Agent"
icon_state = "tesh_cloak_iaa"
item_state = "tesh_cloak_iaa"
//Service
@@ -261,25 +216,25 @@
name = "head of personnel cloak"
desc = "A soft Teshari cloak made for the Head of Personnel"
icon_state = "tesh_cloak_hop"
item_state = "tesh_cloak_hop"
/obj/item/clothing/suit/storage/teshari/cloak/jobs/service
name = "service cloak"
desc = "A soft Teshari cloak made for the Service department"
icon_state = "tesh_cloak_serv"
item_state = "tesh_cloak_serv"
//Misc
/obj/item/clothing/suit/storage/toggle/labcoat/teshari
name = "Teshari labcoat"
desc = "A small suit that protects against minor chemical spills. This one is a good fit on Teshari."
icon = 'icons/inventory/suit/item_teshari.dmi'
icon_state = "tesh_labcoat"
species_restricted = list(SPECIES_TESHARI)
/obj/item/clothing/suit/storage/toggle/tesharicoat
name = "small black coat"
desc = "A coat that seems too small to fit a human."
icon = 'icons/inventory/suit/item_teshari.dmi'
icon_state = "tesharicoat"
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS
species_restricted = list(SPECIES_TESHARI)
@@ -287,6 +242,7 @@
/obj/item/clothing/suit/storage/toggle/tesharicoatwhite
name = "small coat"
desc = "A coat that seems too small to fit a human."
icon = 'icons/inventory/suit/item_teshari.dmi'
icon_state = "tesharicoatwhite"
body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS
species_restricted = list(SPECIES_TESHARI)
@@ -295,11 +251,11 @@
/obj/item/clothing/suit/storage/hooded/teshari
name = "Hooded Teshari Cloak"
desc = "A soft teshari cloak with an added hood."
icon = 'icons/inventory/suit/item_teshari.dmi'
icon_state = "tesh_hcloak_bo"
item_state_slots = list(slot_r_hand_str = "tesh_hcloak_bo", slot_l_hand_str = "tesh_hcloak_bo")
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
flags_inv = HIDEHOLSTER|HIDETIE
//hooded = 1 Variable no longer exists, hood is now handled by code/modules/clothing/suit/storage/hooded.dm
action_button_name = "Toggle Cloak Hood"
hoodtype = /obj/item/clothing/head/tesh_hood
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
@@ -307,7 +263,10 @@
/obj/item/clothing/head/tesh_hood
name = "Cloak Hood"
desc = "A hood attached to a teshari cloak."
icon = 'icons/inventory/suit/item_teshari.dmi'
default_worn_icon = 'icons/inventory/suit/mob_teshari.dmi'
icon_state = "tesh_hood_bo"
sprite_sheets = null
item_state_slots = list(slot_r_hand_str = "tesh_hood_bo", slot_l_hand_str = "tesh_hood_bo")
flags_inv = BLOCKHAIR
body_parts_covered = HEAD
@@ -315,531 +274,436 @@
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_orange
name = "black and orange hooded cloak"
icon_state = "tesh_hcloak_bo"
item_state = "tesh_hcloak_bo"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_orange
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_grey
name = "black and grey hooded cloak"
icon_state = "tesh_hcloak_bg"
item_state = "tesh_hcloak_bg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_midgrey
name = "black and medium grey hooded cloak"
icon_state = "tesh_hcloak_bmg"
item_state = "tesh_hcloak_bmg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_midgrey
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_lightgrey
name = "black and light grey hooded cloak"
icon_state = "tesh_hcloak_blg"
item_state = "tesh_hcloak_blg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_lightgrey
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_white
name = "black and white hooded cloak"
icon_state = "tesh_hcloak_bw"
item_state = "tesh_hcloak_bw"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_white
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_red
name = "black and red hooded cloak"
icon_state = "tesh_hcloak_br"
item_state = "tesh_hcloak_br"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_red
/obj/item/clothing/suit/storage/hooded/teshari/standard/black
name = "black hooded cloak"
icon_state = "tesh_hcloak_bn"
item_state = "tesh_hcloak_bn"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_yellow
name = "black and yellow hooded cloak"
icon_state = "tesh_hcloak_by"
item_state = "tesh_hcloak_by"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_yellow
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_green
name = "black and green hooded cloak"
icon_state = "tesh_hcloak_bgr"
item_state = "tesh_hcloak_bgr"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_green
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_blue
name = "black and blue hooded cloak"
icon_state = "tesh_hcloak_bbl"
item_state = "tesh_hcloak_bbl"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_blue
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_purple
name = "black and purple hooded cloak"
icon_state = "tesh_hcloak_bp"
item_state = "tesh_hcloak_bp"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_purple
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_pink
name = "black and pink hooded cloak"
icon_state = "tesh_hcloak_bpi"
item_state = "tesh_hcloak_bpi"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_pink
/obj/item/clothing/suit/storage/hooded/teshari/standard/black_brown
name = "black and brown hooded cloak"
icon_state = "tesh_hcloak_bbr"
item_state = "tesh_hcloak_bbr"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/black_brown
/obj/item/clothing/suit/storage/hooded/teshari/standard/orange_grey
name = "orange and grey hooded cloak"
icon_state = "tesh_hcloak_og"
item_state = "tesh_hcloak_og"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/orange_grey
///obj/item/clothing/suit/storage/hooded/teshari/standard/rainbow
// name = "rainbow hooded cloak"
// icon_state = "tesh_hcloak_rainbow"
// item_state = "tesh_hcloak_rainbow"
// hoodtype = /obj/item/clothing/head/tesh_hood/standard/rainbow
/obj/item/clothing/suit/storage/hooded/teshari/standard/lightgrey_grey
name = "light grey and grey hooded cloak"
icon_state = "tesh_hcloak_lgg"
item_state = "tesh_hcloak_lgg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/lightgrey_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/white_grey
name = "white and grey hooded cloak"
icon_state = "tesh_hcloak_wg"
item_state = "tesh_hcloak_wg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/white_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/red_grey
name = "red and grey hooded cloak"
icon_state = "tesh_hcloak_rg"
item_state = "tesh_hcloak_rg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/red_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/orange
name = "orange hooded cloak"
icon_state = "tesh_hcloak_on"
item_state = "tesh_hcloak_on"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/orange
/obj/item/clothing/suit/storage/hooded/teshari/standard/yellow_grey
name = "yellow and grey hooded cloak"
icon_state = "tesh_hcloak_yg"
item_state = "tesh_hcloak_yg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/yellow_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/green_grey
name = "green and grey hooded cloak"
icon_state = "tesh_hcloak_gg"
item_state = "tesh_hcloak_gg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/green_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/blue_grey
name = "blue and grey hooded cloak"
icon_state = "tesh_hcloak_blug"
item_state = "tesh_hcloak_blug"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/blue_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/purple_grey
name = "purple and grey hooded cloak"
icon_state = "tesh_hcloak_pg"
item_state = "tesh_hcloak_pg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/purple_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/pink_grey
name = "pink and grey hooded cloak"
icon_state = "tesh_hcloak_pig"
item_state = "tesh_hcloak_pig"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/pink_grey
/obj/item/clothing/suit/storage/hooded/teshari/standard/brown_grey
name = "brown and grey hooded cloak"
icon_state = "tesh_hcloak_brg"
item_state = "tesh_hcloak_brg"
hoodtype = /obj/item/clothing/head/tesh_hood/standard/brown_grey
//The actual hoods
/obj/item/clothing/head/tesh_hood/standard/black_orange
name = "black and orange cloak hood"
icon_state = "tesh_hood_bo"
item_state = "tesh_hood_bo"
/obj/item/clothing/head/tesh_hood/standard/black_grey
name = "black and grey cloak hood"
icon_state = "tesh_hood_bg"
item_state = "tesh_hood_bg"
/obj/item/clothing/head/tesh_hood/standard/black_midgrey
name = "black and medium grey cloak hood"
icon_state = "tesh_hood_bmg"
item_state = "tesh_hood_bmg"
/obj/item/clothing/head/tesh_hood/standard/black_lightgrey
name = "black and light grey cloak hood"
icon_state = "tesh_hood_blg"
item_state = "tesh_hood_blg"
/obj/item/clothing/head/tesh_hood/standard/black_white
name = "black and white cloak hood"
icon_state = "tesh_hood_bw"
item_state = "tesh_hood_bw"
/obj/item/clothing/head/tesh_hood/standard/black_red
name = "black and red cloak hood"
icon_state = "tesh_hood_br"
item_state = "tesh_hood_br"
/obj/item/clothing/head/tesh_hood/standard/black
name = "black cloak hood"
icon_state = "tesh_hood_bn"
item_state = "tesh_hood_bn"
/obj/item/clothing/head/tesh_hood/standard/black_yellow
name = "black and yellow cloak hood"
icon_state = "tesh_hood_by"
item_state = "tesh_hood_by"
/obj/item/clothing/head/tesh_hood/standard/black_green
name = "black and green cloak hood"
icon_state = "tesh_hood_bgr"
item_state = "tesh_hood_bgr"
/obj/item/clothing/head/tesh_hood/standard/black_blue
name = "black and blue cloak hood"
icon_state = "tesh_hood_bbl"
item_state = "tesh_hood_bbl"
/obj/item/clothing/head/tesh_hood/standard/black_purple
name = "black and purple cloak hood"
icon_state = "tesh_hood_bp"
item_state = "tesh_hood_bp"
/obj/item/clothing/head/tesh_hood/standard/black_pink
name = "black and pink cloak hood"
icon_state = "tesh_hood_bpi"
item_state = "tesh_hood_bpi"
/obj/item/clothing/head/tesh_hood/standard/black_brown
name = "black and brown cloak hood"
icon_state = "tesh_hood_bbr"
item_state = "tesh_hood_bbr"
/obj/item/clothing/head/tesh_hood/standard/orange_grey
name = "orange and grey cloak hood"
icon_state = "tesh_hood_og"
item_state = "tesh_hood_og"
/obj/item/clothing/head/tesh_hood/standard/rainbow
name = "rainbow cloak hood"
icon_state = "tesh_hood_rainbow"
item_state = "tesh_hood_rainbow"
/obj/item/clothing/head/tesh_hood/standard/lightgrey_grey
name = "light grey and grey cloak hood"
icon_state = "tesh_hood_lgg"
item_state = "tesh_hood_lgg"
/obj/item/clothing/head/tesh_hood/standard/white_grey
name = "white and grey cloak hood"
icon_state = "tesh_hood_wg"
item_state = "tesh_hood_wg"
/obj/item/clothing/head/tesh_hood/standard/red_grey
name = "red and grey cloak hood"
icon_state = "tesh_hood_rg"
item_state = "tesh_hood_rg"
/obj/item/clothing/head/tesh_hood/standard/orange
name = "orange cloak hood"
icon_state = "tesh_hood_on"
item_state = "tesh_hood_on"
/obj/item/clothing/head/tesh_hood/standard/yellow_grey
name = "yellow and grey cloak hood"
icon_state = "tesh_hood_yg"
item_state = "tesh_hood_yg"
/obj/item/clothing/head/tesh_hood/standard/green_grey
name = "green and grey cloak hood"
icon_state = "tesh_hood_gg"
item_state = "tesh_hood_gg"
/obj/item/clothing/head/tesh_hood/standard/blue_grey
name = "blue and grey cloak hood"
icon_state = "tesh_hood_blug"
item_state = "tesh_hood_blug"
/obj/item/clothing/head/tesh_hood/standard/purple_grey
name = "purple and grey cloak hood"
icon_state = "tesh_hood_pg"
item_state = "tesh_hood_pg"
/obj/item/clothing/head/tesh_hood/standard/pink_grey
name = "pink and grey cloak hood"
icon_state = "tesh_hood_pig"
item_state = "tesh_hood_pig"
/obj/item/clothing/head/tesh_hood/standard/brown_grey
name = "brown and grey cloak hood"
icon_state = "tesh_hood_brg"
item_state = "tesh_hood_brg"
//Belted cloaks
/obj/item/clothing/suit/storage/teshari/beltcloak
name = "belted cloak"
desc = "A more ridged and stylized Teshari cloak."
icon = 'icons/inventory/suit/item_teshari.dmi'
icon_state = "tesh_beltcloak_bo"
item_state = "tesh_beltcloak_bo"
species_restricted = list(SPECIES_TESHARI)
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_orange
name = "black belted cloak (orange)"
icon_state = "tesh_beltcloak_bo"
item_state = "tesh_beltcloak_bo"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_grey
name = "black belted cloak"
icon_state = "tesh_beltcloak_bg"
item_state = "tesh_beltcloak_bg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_midgrey
name = "black belted cloak (medium grey)"
icon_state = "tesh_beltcloak_bmg"
item_state = "tesh_beltcloak_bmg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_lightgrey
name = "black belted cloak (light grey)"
icon_state = "tesh_beltcloak_blg"
item_state = "tesh_beltcloak_blg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_white
name = "black belted cloak (white)"
icon_state = "tesh_beltcloak_bw"
item_state = "tesh_beltcloak_bw"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_red
name = "black belted cloak (red)"
icon_state = "tesh_beltcloak_br"
item_state = "tesh_beltcloak_br"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black
name = "black simple belted cloak"
icon_state = "tesh_beltcloak_bn"
item_state = "tesh_beltcloak_bn"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_yellow
name = "black belted cloak (yellow)"
icon_state = "tesh_beltcloak_by"
item_state = "tesh_beltcloak_by"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_green
name = "black belted cloak (green)"
icon_state = "tesh_beltcloak_bgr"
item_state = "tesh_beltcloak_bgr"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_blue
name = "black belted cloak (blue)"
icon_state = "tesh_beltcloak_bbl"
item_state = "tesh_beltcloak_bbl"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_purple
name = "black belted cloak (purple)"
icon_state = "tesh_beltcloak_bp"
item_state = "tesh_beltcloak_bp"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_pink
name = "black belted cloak (pink)"
icon_state = "tesh_beltcloak_bpi"
item_state = "tesh_beltcloak_bpi"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/black_brown
name = "black belted cloak (brown)"
icon_state = "tesh_beltcloak_bbr"
item_state = "tesh_beltcloak_bbr"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/orange_grey
name = "orange belted cloak"
icon_state = "tesh_beltcloak_og"
item_state = "tesh_beltcloak_og"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/rainbow
name = "rainbow belted cloak"
icon_state = "tesh_beltcloak_rainbow"
item_state = "tesh_beltcloak_rainbow"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/lightgrey_grey
name = "light grey belted cloak"
icon_state = "tesh_beltcloak_lgg"
item_state = "tesh_beltcloak_lgg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/white_grey
name = "white belted cloak"
icon_state = "tesh_beltcloak_wg"
item_state = "tesh_beltcloak_wg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/red_grey
name = "red belted cloak"
icon_state = "tesh_beltcloak_rg"
item_state = "tesh_beltcloak_rg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/orange
name = "orange simple belted cloak"
icon_state = "tesh_beltcloak_on"
item_state = "tesh_beltcloak_on"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/yellow_grey
name = "yellow belted cloak"
icon_state = "tesh_beltcloak_yg"
item_state = "tesh_beltcloak_yg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/green_grey
name = "green belted cloak"
icon_state = "tesh_beltcloak_gg"
item_state = "tesh_beltcloak_gg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/blue_grey
name = "blue belted cloak"
icon_state = "tesh_beltcloak_blug"
item_state = "tesh_beltcloak_blug"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/purple_grey
name = "purple belted cloak"
icon_state = "tesh_beltcloak_pg"
item_state = "tesh_beltcloak_pg"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/pink_grey
name = "pink belted cloak"
icon_state = "tesh_beltcloak_pig"
item_state = "tesh_beltcloak_pig"
/obj/item/clothing/suit/storage/teshari/beltcloak/standard/brown_grey
name = "brown belted cloak"
icon_state = "tesh_beltcloak_brg"
item_state = "tesh_beltcloak_brg"
//Belted job cloaks
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/cargo
name = "cargo belted cloak"
desc = "A soft Teshari cloak made for the Cargo department"
icon_state = "tesh_beltcloak_car"
item_state = "tesh_beltcloak_car"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/mining
name = "mining belted cloak"
desc = "A soft Teshari cloak made for Mining"
icon_state = "tesh_beltcloak_mine"
item_state = "tesh_beltcloak_mine"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/command
name = "command belted cloak"
desc = "A soft Teshari cloak made for the Command department"
icon_state = "tesh_beltcloak_comm"
item_state = "tesh_beltcloak_comm"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/ce
name = "chief engineer belted cloak"
desc = "A soft Teshari cloak made the Chief Engineer"
icon_state = "tesh_beltcloak_ce"
item_state = "tesh_beltcloak_ce"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/engineer
name = "engineering belted cloak"
desc = "A soft Teshari cloak made for the Engineering department"
icon_state = "tesh_beltcloak_engie"
item_state = "tesh_beltcloak_engie"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/atmos
name = "atmospherics belted cloak"
desc = "A soft Teshari cloak made for the Atmospheric Technician"
icon_state = "tesh_beltcloak_atmos"
item_state = "tesh_beltcloak_atmos"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/cmo
name = "chief medical officer belted cloak"
desc = "A soft Teshari cloak made the Chief Medical Officer"
icon_state = "tesh_beltcloak_cmo"
item_state = "tesh_beltcloak_cmo"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/medical
name = "medical belted cloak"
desc = "A soft Teshari cloak made for the Medical department"
icon_state = "tesh_beltcloak_doc"
item_state = "tesh_beltcloak_doc"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/chemistry
name = "chemist belted cloak"
desc = "A soft Teshari cloak made for the Chemist"
icon_state = "tesh_beltcloak_vrem"
item_state = "tesh_beltcloak_vrem"
icon_state = "tesh_beltcloak_chem"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/viro
name = "virologist belted cloak"
desc = "A soft Teshari cloak made for the Virologist"
icon_state = "tesh_beltcloak_viro"
item_state = "tesh_beltcloak_viro"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/para
name = "paramedic belted cloak"
desc = "A soft Teshari cloak made for the Paramedic"
icon_state = "tesh_beltcloak_para"
item_state = "tesh_beltcloak_para"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/sci
name = "scientist belted cloak"
desc = "A soft Teshari cloak made for the Science department"
icon_state = "tesh_beltcloak_sci"
item_state = "tesh_beltcloak_sci"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/robo
name = "roboticist belted cloak"
desc = "A soft Teshari cloak made for the Roboticist"
icon_state = "tesh_beltcloak_robo"
item_state = "tesh_beltcloak_robo"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/sec
name = "security belted cloak"
desc = "A soft Teshari cloak made for the Security department"
icon_state = "tesh_beltcloak_sec"
item_state = "tesh_beltcloak_sec"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/qm
name = "quartermaster belted cloak"
desc = "A soft Teshari cloak made for the Quartermaster"
icon_state = "tesh_beltcloak_qm"
item_state = "tesh_beltcloak_qm"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/service
name = "service belted cloak"
desc = "A soft Teshari cloak made for the Service department"
icon_state = "tesh_beltcloak_serv"
item_state = "tesh_beltcloak_serv"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/iaa
name = "internal affairs belted cloak"
desc = "A soft Teshari cloak made for the Internal Affairs Agent"
icon_state = "tesh_beltcloak_iaa"
item_state = "tesh_beltcloak_iaa"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/wrdn
name = "warden belted cloak"
desc = "A soft Teshari cloak made for the Warden"
icon_state = "tesh_beltcloak_wrdn"
item_state = "tesh_beltcloak_wrdn"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/hos
name = "security chief belted cloak"
desc = "A soft Teshari cloak made for the Head of Security"
icon_state = "tesh_beltcloak_hos"
item_state = "tesh_beltcloak_hos"
/obj/item/clothing/suit/storage/teshari/beltcloak/jobs/jani
name = "janitor belted cloak"
desc = "A soft Teshari cloak made for the Janitor"
icon_state = "tesh_beltcloak_jani"
item_state = "tesh_beltcloak_jani"
+2 -2
View File
@@ -71,8 +71,8 @@
// Talon Winter Coat
/obj/item/clothing/suit/storage/hooded/wintercoat/talon
name = "ITV winter coat"
desc = "A cozy winter coat, covered in thick fur and baring the colors of ITV."
name = "Talon winter coat"
desc = "A cozy winter coat, covered in thick fur and baring the colors of ITV Talon."
icon = 'icons/inventory/suit/item_vr.dmi'
icon_override = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "taloncoat"
@@ -88,7 +88,7 @@
/obj/item/clothing/suit/storage/det_trench/alt
name = "sleek modern coat"
desc = "A sleek overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside."
icon = 'icons/inventory/suit/item_vr.dmi'
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "cyberpunksleek"
@@ -96,7 +96,7 @@
/obj/item/clothing/suit/storage/det_trench/alt2
name = "sleek modern coat (long)"
desc = "A sleek long overcoat made of neo-laminated fabric. Has a reasonably sized pocket on the inside."
icon = 'icons/inventory/suit/item_vr.dmi'
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "cyberpunksleek_long"
@@ -109,8 +109,8 @@
//Talon Hoodie
/obj/item/clothing/suit/storage/toggle/hoodie/talon
name = "ITV hoodie"
desc = "A warm, blue sweatshirt bearing ITV markings."
name = "Talon hoodie"
desc = "A warm, blue sweatshirt bearing ITV Talon markings."
icon = 'icons/inventory/suit/item_vr.dmi'
icon_override = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "talonhoodie"
@@ -120,7 +120,7 @@
/obj/item/clothing/suit/storage/bladerunner
name = "leather coat"
desc = "An old leather coat. Has probably seen things you wouldn't believe."
icon = 'icons/inventory/suit/item_vr.dmi'
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "bladerunner_coat"
@@ -129,9 +129,8 @@
/obj/item/clothing/suit/cyberpunk
name = "cyberpunk vest"
desc = "A red vest with golden streaks. It's made out of tough materials, and can protect fairly well against bullets. Wake the fuck up, Samurai."
icon = 'icons/inventory/suit/item_vr.dmi'
default_worn_icon = 'icons/inventory/suit/mob_vr.dmi'
icon_state = "cyberpunk"
armor = list("melee" = 10, "bullet" = 20, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0)
@@ -368,8 +368,8 @@
desc = "A silver medal awarded to a group which has demonstrated exceptional teamwork to achieve a notable feat. This one has three bronze service stars, denoting that it has been awarded four times."
/obj/item/clothing/accessory/talon
name = "ITV pin"
desc = "A collectable enamel pin that resembles ITV's company logo."
name = "Talon pin"
desc = "A collectable enamel pin that resembles ITV Talon's ship logo."
icon = 'icons/inventory/accessory/item_vr.dmi'
icon_override = 'icons/inventory/accessory/mob_vr.dmi'
icon_state = "talon_pin"
+11 -11
View File
@@ -149,8 +149,8 @@
//////////////////////TALON JUMPSUITS//////////////////////
/obj/item/clothing/under/rank/talon/basic
name = "ITV jumpsuit"
desc = "A basic jumpsuit that bares the ITV logo on the breast."
name = "Talon jumpsuit"
desc = "A basic jumpsuit that bares the ITV Talon logo on the breast."
icon = 'icons/inventory/uniform/item_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
icon_override = 'icons/inventory/uniform/mob_vr.dmi'
@@ -159,8 +159,8 @@
rolled_sleeves = 0
/obj/item/clothing/under/rank/talon/proper
name = "ITV proper jumpsuit"
desc = "A neat and proper uniform for a proper company."
name = "Talon proper jumpsuit"
desc = "A neat and proper uniform for a proper private ship."
icon = 'icons/inventory/uniform/item_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
icon_override = 'icons/inventory/uniform/mob_vr.dmi'
@@ -169,8 +169,8 @@
rolled_sleeves = 0
/obj/item/clothing/under/rank/talon/security
name = "ITV security jumpsuit"
desc = "A sleek, streamlined version of ITV's standard jumpsuit that bares security markings."
name = "Talon security jumpsuit"
desc = "A sleek, streamlined version of ITV Talon's standard jumpsuit that bares security markings."
icon = 'icons/inventory/uniform/item_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
icon_override = 'icons/inventory/uniform/mob_vr.dmi'
@@ -179,8 +179,8 @@
rolled_sleeves = 0
/obj/item/clothing/under/rank/talon/pilot
name = "ITV pilot jumpsuit"
desc = "A sleek, streamlined version of ITV's standard jumpsuit. Made from cushioned fabric to handle intense flight."
name = "Talon pilot jumpsuit"
desc = "A sleek, streamlined version of ITV Talon's standard jumpsuit. Made from cushioned fabric to handle intense flight."
icon = 'icons/inventory/uniform/item_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
icon_override = 'icons/inventory/uniform/mob_vr.dmi'
@@ -189,7 +189,7 @@
rolled_sleeves = 0
/obj/item/clothing/under/rank/talon/command
name = "ITV command jumpsuit"
name = "Talon command jumpsuit"
desc = "A commanding jumpsuit fit for a commanding officer."
icon = 'icons/inventory/uniform/item_vr.dmi'
rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi'
@@ -202,7 +202,7 @@
/obj/item/clothing/under/excelsior
name = "\improper Excelsior uniform"
desc = "A uniform from a particular spaceship: Excelsior."
icon = 'icons/inventory/uniform/item_vr.dmi'
default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi'
icon_state = "excelsior_white"
@@ -216,7 +216,7 @@
/obj/item/clothing/under/summerdress
name = "summer dress"
desc = "A nice summer dress."
icon = 'icons/inventory/uniform/item_vr.dmi'
default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi'
icon_state = "summerdress"
@@ -81,53 +81,43 @@
/obj/item/clothing/under/teshari/undercoat/standard/worksuit
name = "small black and red worksuit"
icon_state = "teshari_black_red_worksuit"
item_state = "teshari_black_red_worksuit"
desc = "A small worksuit designed for a Teshari"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/blackpurple
name = "small black and purple worksuit"
icon_state = "teshari_black_purple_worksuit"
item_state = "teshari_black_purple_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/blackorange
name = "small black and orange worksuit"
icon_state = "teshari_black_orange_worksuit"
item_state = "teshari_black_orange_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/blackblue
name = "small black and blue worksuit"
icon_state = "teshari_black_blue_worksuit"
item_state = "teshari_black_blue_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/blackgreen
name = "small black and greeen worksuit"
icon_state = "teshari_black_green_worksuit"
item_state = "teshari_black_green_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/whitered
name = "small white and red worksuit"
icon_state = "teshari_white_red_worksuit"
item_state = "teshari_white_red_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/whitepurple
name = "small white and purple worksuit"
icon_state = "teshari_white_purple_worksuit"
item_state = "teshari_white_purple_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/whiteorange
name = "small white and orange worksuit"
icon_state = "teshari_white_orange_worksuit"
item_state = "teshari_white_orange_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/whiteblue
name = "small white and blue worksuit"
icon_state = "teshari_white_blue_worksuit"
item_state = "teshari_white_blue_worksuit"
/obj/item/clothing/under/teshari/undercoat/standard/worksuit/whitegreen
name = "small white and green worksuit"
icon_state = "teshari_white_green_worksuit"
item_state = "teshari_white_green_worksuit"
//Standard Undercoats
@@ -135,247 +125,202 @@
name = "Undercoat"
desc = "A Teshari traditional garb, with a modern twist! Made of micro and nanofibres to make it light and billowy, perfect for going fast and stylishly!"
icon_state = "tesh_uniform_bo"
item_state = "tesh_uniform_bo"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
/obj/item/clothing/under/teshari/undercoat/standard/black_orange
name = "black and orange undercoat"
icon_state = "tesh_uniform_bo"
item_state = "tesh_uniform_bo"
/obj/item/clothing/under/teshari/undercoat/standard/black_grey
name = "black and grey undercoat"
icon_state = "tesh_uniform_bg"
item_state = "tesh_uniform_bg"
/obj/item/clothing/under/teshari/undercoat/standard/black_white
name = "black and white undercoat"
icon_state = "tesh_uniform_bw"
item_state = "tesh_uniform_bw"
/obj/item/clothing/under/teshari/undercoat/standard/black_red
name = "black and red undercoat"
icon_state = "tesh_uniform_br"
item_state = "tesh_uniform_br"
/obj/item/clothing/under/teshari/undercoat/standard/black
name = "black undercoat"
icon_state = "tesh_uniform_bn"
item_state = "tesh_uniform_bn"
/obj/item/clothing/under/teshari/undercoat/standard/black_yellow
name = "black and yellow undercoat"
icon_state = "tesh_uniform_by"
item_state = "tesh_uniform_by"
/obj/item/clothing/under/teshari/undercoat/standard/black_green
name = "black and green undercoat"
icon_state = "tesh_uniform_bgr"
item_state = "tesh_uniform_bgr"
/obj/item/clothing/under/teshari/undercoat/standard/black_blue
name = "black and blue undercoat"
icon_state = "tesh_uniform_bbl"
item_state = "tesh_uniform_bbl"
/obj/item/clothing/under/teshari/undercoat/standard/black_purple
name = "black and purple undercoat"
icon_state = "tesh_uniform_bp"
item_state = "tesh_uniform_bp"
/obj/item/clothing/under/teshari/undercoat/standard/black_pink
name = "black and pink undercoat"
icon_state = "tesh_uniform_bpi"
item_state = "tesh_uniform_bpi"
/obj/item/clothing/under/teshari/undercoat/standard/black_brown
name = "black and brown undercoat"
icon_state = "tesh_uniform_bbr"
item_state = "tesh_uniform_bbr"
/obj/item/clothing/under/teshari/undercoat/standard/orange_grey
name = "orange and grey undercoat"
icon_state = "tesh_uniform_og"
item_state = "tesh_uniform_og"
/obj/item/clothing/under/teshari/undercoat/standard/rainbow
name = "rainbow undercoat"
icon_state = "tesh_uniform_rainbow"
item_state = "tesh_uniform_rainbow"
/obj/item/clothing/under/teshari/undercoat/standard/lightgrey_grey
name = "light grey and grey undercoat"
icon_state = "tesh_uniform_lgg"
item_state = "tesh_uniform_lgg"
/obj/item/clothing/under/teshari/undercoat/standard/white_grey
name = "white and grey undercoat"
icon_state = "tesh_uniform_wg"
item_state = "tesh_uniform_wg"
/obj/item/clothing/under/teshari/undercoat/standard/red_grey
name = "red and grey undercoat"
icon_state = "tesh_uniform_rg"
item_state = "tesh_uniform_rg"
/obj/item/clothing/under/teshari/undercoat/standard/orange
name = "orange undercoat"
icon_state = "tesh_uniform_on"
item_state = "tesh_uniform_on"
/obj/item/clothing/under/teshari/undercoat/standard/yellow_grey
name = "yellow and grey undercoat"
icon_state = "tesh_uniform_yg"
item_state = "tesh_uniform_yg"
/obj/item/clothing/under/teshari/undercoat/standard/green_grey
name = "green and grey undercoat"
icon_state = "tesh_uniform_gg"
item_state = "tesh_uniform_gg"
/obj/item/clothing/under/teshari/undercoat/standard/blue_grey
name = "blue and grey undercoat"
icon_state = "tesh_uniform_blug"
item_state = "tesh_uniform_blug"
/obj/item/clothing/under/teshari/undercoat/standard/purple_grey
name = "purple and grey undercoat"
icon_state = "tesh_uniform_pg"
item_state = "tesh_uniform_pg"
/obj/item/clothing/under/teshari/undercoat/standard/pink_grey
name = "pink and grey undercoat"
icon_state = "tesh_uniform_pig"
item_state = "tesh_uniform_pig"
/obj/item/clothing/under/teshari/undercoat/standard/brown_grey
name = "brown and grey undercoat"
icon_state = "tesh_uniform_brg"
item_state = "tesh_uniform_brg"
//Job Undercoats
/obj/item/clothing/under/teshari/undercoat/jobs/cap
name = "facility director undercoat"
desc = "A traditional Teshari garb made for the Facility Director"
icon_state = "tesh_uniform_cap"
item_state = "tesh_uniform_cap"
/obj/item/clothing/under/teshari/undercoat/jobs/hop
name = "head of personnel undercoat"
desc = "A traditional Teshari garb made for the Head of Personnel"
icon_state = "tesh_uniform_hop"
item_state = "tesh_uniform_hop"
/obj/item/clothing/under/teshari/undercoat/jobs/ce
name = "cheif engineer undercoat"
desc = "A traditional Teshari garb made for the Chief Engineer"
icon_state = "tesh_uniform_ce"
item_state = "tesh_uniform_ce"
/obj/item/clothing/under/teshari/undercoat/jobs/hos
name = "head of security undercoat"
desc = "A traditional Teshari garb made for the Head of Security"
icon_state = "tesh_uniform_hos"
item_state = "tesh_uniform_hos"
/obj/item/clothing/under/teshari/undercoat/jobs/rd
name = "research director undercoat"
desc = "A traditional Teshari garb made for the Research Director"
icon_state = "tesh_uniform_rd"
item_state = "tesh_uniform_rd"
/obj/item/clothing/under/teshari/undercoat/jobs/engineer
name = "engineering undercoat"
desc = "A traditional Teshari garb made for the Engineering department"
icon_state = "tesh_uniform_engie"
item_state = "tesh_uniform_engie"
/obj/item/clothing/under/teshari/undercoat/jobs/atmos
name = "atmospherics undercoat"
desc = "A traditional Teshari garb made for the Atmospheric Technician"
icon_state = "tesh_uniform_atmos"
item_state = "tesh_uniform_atmos"
/obj/item/clothing/under/teshari/undercoat/jobs/cmo
name = "chief medical officer undercoat"
desc = "A traditional Teshari garb made for the Cheif Medical Officer"
icon_state = "tesh_uniform_cmo"
item_state = "tesh_uniform_cmo"
/obj/item/clothing/under/teshari/undercoat/jobs/qm
name = "quartermaster undercoat"
desc = "A traditional Teshari garb made for the Quartermaster"
icon_state = "tesh_uniform_qm"
item_state = "tesh_uniform_qm"
/obj/item/clothing/under/teshari/undercoat/jobs/cargo
name = "cargo undercoat"
desc = "A traditional Teshari garb made for the Cargo department"
icon_state = "tesh_uniform_car"
item_state = "tesh_uniform_car"
/obj/item/clothing/under/teshari/undercoat/jobs/mining
name = "mining undercoat"
desc = "A traditional Teshari garb made for Mining"
icon_state = "tesh_uniform_mine"
item_state = "tesh_uniform_mine"
/obj/item/clothing/under/teshari/undercoat/jobs/medical
name = "medical undercoat"
desc = "A traditional Teshari garb made for the Medical department"
icon_state = "tesh_uniform_doc"
item_state = "tesh_uniform_doc"
/obj/item/clothing/under/teshari/undercoat/jobs/chemistry
name = "chemist undercoat"
desc = "A traditional Teshari garb made for the Chemist"
icon_state = "tesh_uniform_chem"
item_state = "tesh_uniform_chem"
/obj/item/clothing/under/teshari/undercoat/jobs/viro
name = "virologist undercoat"
desc = "A traditional Teshari garb made for the Virologist"
icon_state = "tesh_uniform_viro"
item_state = "tesh_uniform_viro"
/obj/item/clothing/under/teshari/undercoat/jobs/psych
name = "psychiatrist undercoat"
desc = "A traditional Teshari garb made for the Psychiatrist"
icon_state = "tesh_uniform_psych"
item_state = "tesh_uniform_psych"
/obj/item/clothing/under/teshari/undercoat/jobs/para
name = "paramedic undercoat"
desc = "A traditional Teshari garb made for the Paramedic"
icon_state = "tesh_uniform_para"
item_state = "tesh_uniform_para"
/obj/item/clothing/under/teshari/undercoat/jobs/sci
name = "scientist undercoat"
desc = "A traditional Teshari garb made for the Science department"
icon_state = "tesh_uniform_sci"
item_state = "tesh_uniform_sci"
/obj/item/clothing/under/teshari/undercoat/jobs/robo
name = "roboticist undercoat"
desc = "A traditional Teshari garb made for the Roboticist"
icon_state = "tesh_uniform_robo"
item_state = "tesh_uniform_robo"
/obj/item/clothing/under/teshari/undercoat/jobs/sec
name = "security undercoat"
desc = "A traditional Teshari garb made for the Security department"
icon_state = "tesh_uniform_sec"
item_state = "tesh_uniform_sec"
/obj/item/clothing/under/teshari/undercoat/jobs/service
name = "service undercoat"
desc = "A traditional Teshari garb made for the Service department"
icon_state = "tesh_uniform_serv"
item_state = "tesh_uniform_serv"
/obj/item/clothing/under/teshari/undercoat/jobs/iaa
name = "internal affairs undercoat"
desc = "A traditional Teshari garb made for the Internal Affairs Agent"
icon_state = "tesh_uniform_iaa"
item_state = "tesh_uniform_iaa"
+2 -2
View File
@@ -80,7 +80,7 @@
title = null
title = sanitizeSQL(title)
if(href_list["setcategory"])
var/newcategory = tgui_input_list(usr, "Choose a category to search for:", list("Any", "Fiction", "Non-Fiction", "Adult", "Reference", "Religion"))
var/newcategory = tgui_input_list(usr, "Choose a category to search for:", "Category", list("Any", "Fiction", "Non-Fiction", "Adult", "Reference", "Religion"))
if(newcategory)
category = sanitize(newcategory)
else
@@ -393,7 +393,7 @@
if(newauthor)
scanner.cache.author = newauthor
if(href_list["setcategory"])
var/newcategory = tgui_input_list(usr, "Choose a category: ", list("Fiction", "Non-Fiction", "Adult", "Reference", "Religion"))
var/newcategory = tgui_input_list(usr, "Choose a category: ", "Category", list("Fiction", "Non-Fiction", "Adult", "Reference", "Religion"))
if(newcategory)
upload_category = newcategory
@@ -43,10 +43,6 @@
/mob/living/carbon/alien/u_equip(obj/item/W as obj)
return
/mob/living/carbon/alien/Stat()
..()
stat(null, "Progress: [amount_grown]/[max_grown]")
/mob/living/carbon/alien/restrained()
return 0
@@ -1,3 +1,8 @@
/mob/living/carbon/alien/diona/Stat() //Specified where progression is at, doesn't work right for some things in carbon/alien
. = ..()
if(. && statpanel("Status"))
stat("Growth", "[round(amount_grown)]/[max_grown]")
/mob/living/carbon/alien/diona/confirm_evolution()
if(!is_alien_whitelisted(src, GLOB.all_species[SPECIES_DIONA]))
@@ -5,9 +5,10 @@
speak_emote = list("hisses")
icon_state = "larva"
language = "Hivemind"
maxHealth = 25
health = 25
maxHealth = 50
health = 50
faction = "xeno"
max_grown = 325 //Increase larva growth time due to not needing hosts.
/mob/living/carbon/alien/larva/Initialize()
. = ..()
@@ -1,3 +1,8 @@
/mob/living/carbon/alien/larva/Stat() //Specified where progression stats come from, because for some reason it doesn't work right in carbon/alien
. = ..()
if(. && statpanel("Status"))
stat("Growth", "[round(amount_grown)]/[max_grown]")
/mob/living/carbon/alien/larva/confirm_evolution()
to_chat(src, "<span class='notice'><b>You are growing into a beautiful alien! It is time to choose a caste.</b></span>")
+1 -1
View File
@@ -28,7 +28,7 @@
var/rads = radiation/25
radiation -= rads
adjust_nutrition(rads)
//adjust_nutrition(rads) //Commented out to prevent alien obesity.
heal_overall_damage(rads,rads)
adjustOxyLoss(-(rads))
adjustToxLoss(-(rads))
@@ -36,7 +36,7 @@
set name = "Set Gender Identity"
set desc = "Sets the pronouns when examined and performing an emote."
set category = "IC"
var/new_gender_identity = tgui_input_list(usr, "Please select a gender Identity.", list(FEMALE, MALE, NEUTER, PLURAL, HERM))
var/new_gender_identity = tgui_input_list(usr, "Please select a gender Identity:", "Set Gender Identity", list(FEMALE, MALE, NEUTER, PLURAL, HERM))
if(!new_gender_identity)
return 0
change_gender_identity(new_gender_identity)
@@ -472,7 +472,7 @@ emp_act
mass = I.w_class/THROWNOBJ_KNOCKBACK_DIVISOR
var/momentum = speed*mass
if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED)
if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED && !buckled)
var/dir = get_dir(O.throw_source, src)
visible_message("<font color='red'>[src] staggers under the impact!</font>","<font color='red'>You stagger under the impact!</font>")
@@ -84,7 +84,11 @@
h_style = "vulpkanin, dual-color"
return ..(new_loc, SPECIES_VULPKANIN)
/mob/living/carbon/human/dummy/mannequin/autoequip/teshari
icon = 'icons/mob/human_races/r_teshari.dmi'
/mob/living/carbon/human/dummy/mannequin/autoequip/teshari/Initialize(var/new_loc)
//h_style = "teshari, dual-color"
return ..(new_loc, SPECIES_TESHARI)
/mob/living/carbon/human/skrell/Initialize(var/new_loc)
h_style = "Skrell Short Tentacles"
@@ -64,11 +64,11 @@
/datum/unarmed_attack/claws/strong/xeno
attack_verb = list("slashed", "gouged", "stabbed")
damage = 10
damage = 15
/datum/unarmed_attack/claws/strong/xeno/queen
attack_verb = list("slashed", "gouged", "stabbed", "gored")
damage = 15
damage = 20
/datum/unarmed_attack/bite/strong
attack_name = "strong bite"
@@ -77,7 +77,7 @@
shredding = 1
/datum/unarmed_attack/bite/strong/xeno
damage = 10
damage = 15
/datum/unarmed_attack/slime_glomp
attack_name = "glomp"
@@ -71,6 +71,7 @@
desc = "You are able to withstand much colder temperatures than other species, and can even be comfortable in extremely cold environments. You are also more vulnerable to hot environments, and have a lower body temperature as a consequence of these adaptations."
cost = 0
var_changes = list("cold_level_1" = 200, "cold_level_2" = 150, "cold_level_3" = 90, "breath_cold_level_1" = 180, "breath_cold_level_2" = 100, "breath_cold_level_3" = 60, "cold_discomfort_level" = 210, "heat_level_1" = 330, "heat_level_2" = 380, "heat_level_3" = 700, "breath_heat_level_1" = 360, "breath_heat_level_2" = 400, "breath_heat_level_3" = 850, "heat_discomfort_level" = 295, "body_temperature" = 290)
can_take = ORGANICS
excludes = list(/datum/trait/neutral/hotadapt)
/datum/trait/neutral/hotadapt
@@ -78,6 +79,7 @@
desc = "You are able to withstand much hotter temperatures than other species, and can even be comfortable in extremely hot environments. You are also more vulnerable to cold environments, and have a higher body temperature as a consequence of these adaptations."
cost = 0
var_changes = list("heat_level_1" = 420, "heat_level_2" = 460, "heat_level_3" = 1100, "breath_heat_level_1" = 440, "breath_heat_level_2" = 510, "breath_heat_level_3" = 1500, "heat_discomfort_level" = 390, "cold_level_1" = 280, "cold_level_2" = 220, "cold_level_3" = 140, "breath_cold_level_1" = 260, "breath_cold_level_2" = 240, "breath_cold_level_3" = 120, "cold_discomfort_level" = 280, "body_temperature" = 330)
can_take = ORGANICS // negates the need for suit coolers entirely for synths, so no
excludes = list(/datum/trait/neutral/coldadapt)
YW change end */
@@ -250,6 +250,7 @@
cost = 2
var_changes = list("cold_level_1" = 200, "cold_level_2" = 150, "cold_level_3" = 90, "breath_cold_level_1" = 180, "breath_cold_level_2" = 100, "breath_cold_level_3" = 60, "cold_discomfort_level" = 210, "heat_level_1" = 305, "heat_level_2" = 360, "heat_level_3" = 700, "breath_heat_level_1" = 345, "breath_heat_level_2" = 380, "breath_heat_level_3" = 780, "heat_discomfort_level" = 295)
excludes = list(/datum/trait/positive/hotadapt)
can_take = ORGANICS
/datum/trait/positive/hotadapt
name = "Heat-Adapted"
@@ -257,6 +258,7 @@
cost = 2
var_changes = list("heat_level_1" = 420, "heat_level_2" = 460, "heat_level_3" = 1100, "breath_heat_level_1" = 440, "breath_heat_level_2" = 510, "breath_heat_level_3" = 1500, "heat_discomfort_level" = 390, "cold_level_1" = 280, "cold_level_2" = 220, "cold_level_3" = 140, "breath_cold_level_1" = 260, "breath_cold_level_2" = 240, "breath_cold_level_3" = 120, "cold_discomfort_level" = 280)
excludes = list(/datum/trait/positive/coldadapt)
can_take = ORGANICS
//YW ADDITIONS: END
/datum/trait/positive/snowwalker
@@ -1,161 +0,0 @@
// This is to replace the previous datum/disease/alien_embryo for slightly improved handling and maintainability
// It functions almost identically (see code/datums/diseases/alien_embryo.dm)
/*
/obj/item/alien_embryo //Commented out as reference for future reproduction methods, or addition later.
name = "alien embryo"
desc = "All slimy and yuck."
icon = 'icons/mob/alien.dmi'
icon_state = "larva0_dead"
var/mob/living/affected_mob
var/stage = 0
/obj/item/alien_embryo/New()
if(istype(loc, /mob/living))
affected_mob = loc
START_PROCESSING(SSobj, src)
spawn(0)
AddInfectionImages(affected_mob)
else
qdel(src)
/obj/item/alien_embryo/Destroy()
if(affected_mob)
affected_mob.status_flags &= ~(XENO_HOST)
spawn(0)
RemoveInfectionImages(affected_mob)
..()
/obj/item/alien_embryo/process()
if(!affected_mob) return
if(loc != affected_mob)
affected_mob.status_flags &= ~(XENO_HOST)
STOP_PROCESSING(SSobj, src)
spawn(0)
RemoveInfectionImages(affected_mob)
affected_mob = null
return
if(stage < 5 && prob(3))
stage++
spawn(0)
RefreshInfectionImage(affected_mob)
switch(stage)
if(2, 3)
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
to_chat(affected_mob, "<span class='danger'>Your throat feels sore.</span>")
if(prob(1))
to_chat(affected_mob, "<span class='danger'>Mucous runs down the back of your throat.</span>")
if(4)
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
affected_mob.emote("cough")
if(prob(2))
to_chat(affected_mob, "<span class='danger'> Your muscles ache.</span>")
if(prob(20))
affected_mob.take_organ_damage(1)
if(prob(2))
to_chat(affected_mob, "<span class='danger'>Your stomach hurts.</span>")
if(prob(20))
affected_mob.adjustToxLoss(1)
affected_mob.updatehealth()
if(5)
to_chat(affected_mob, "<span class='danger'>You feel something tearing its way out of your stomach...</span>")
affected_mob.adjustToxLoss(10)
affected_mob.updatehealth()
if(prob(50))
AttemptGrow()
/obj/item/alien_embryo/proc/AttemptGrow(var/gib_on_success = 1)
var/list/candidates = get_alien_candidates()
var/picked = null
// To stop clientless larva, we will check that our host has a client
// if we find no ghosts to become the alien. If the host has a client
// he will become the alien but if he doesn't then we will set the stage
// to 2, so we don't do a process heavy check everytime.
if(candidates.len)
picked = pick(candidates)
else if(affected_mob.client)
picked = affected_mob.key
else
stage = 4 // Let's try again later.
return
if(affected_mob.lying)
affected_mob.add_overlay("burst_lie")
else
affected_mob.add_overlay("burst_stand")
spawn(6)
var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc)
new_xeno.key = picked
new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention
if(gib_on_success)
affected_mob.gib()
qdel(src)
/*----------------------------------------
Proc: RefreshInfectionImage()
Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens.
----------------------------------------*/
/obj/item/alien_embryo/proc/RefreshInfectionImage()
for(var/mob/living/carbon/alien in player_list)
if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
continue
if(alien.client)
for(var/image/I in alien.client.images)
if(dd_hasprefix_case(I.icon_state, "infected"))
qdel(I)
for(var/mob/living/L in mob_list)
if(iscorgi(L) || iscarbon(L))
if(L.status_flags & XENO_HOST)
var/I = image('icons/mob/alien.dmi', loc = L, icon_state = "infected[stage]")
alien.client.images += I
/*----------------------------------------
Proc: AddInfectionImages(C)
Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C.
----------------------------------------*/
/obj/item/alien_embryo/proc/AddInfectionImages(var/mob/living/C)
if(C)
for(var/mob/living/carbon/alien in player_list)
if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
continue
if(alien.client)
if(C.status_flags & XENO_HOST)
var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]")
alien.client.images += I
/*----------------------------------------
Proc: RemoveInfectionImage(C)
Des: Removes the alien infection image from all aliens in the world located in passed mob (C).
----------------------------------------*/
/obj/item/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C)
if(C)
for(var/mob/living/carbon/alien in player_list)
if(!locate(/obj/item/organ/internal/xenos/hivenode) in alien.internal_organs)
continue
if(alien.client)
for(var/image/I in alien.client.images)
if(I.loc == C)
if(dd_hasprefix_case(I.icon_state, "infected"))
qdel(I)
*/
@@ -1,221 +0,0 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
//TODO: Make these simple_mobs
/* //Commented out as reference for future reproduction methods, or addition later if needed. - Mech
var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
var/const/MAX_IMPREGNATION_TIME = 150
var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 400
/obj/item/clothing/mask/facehugger
name = "alien"
desc = "It has some sort of a tube at the end of its tail."
icon = 'icons/mob/alien.dmi'
icon_state = "facehugger"
item_state = "facehugger"
w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4
body_parts_covered = FACE|EYES
throw_range = 5
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
var/sterile = 0
var/strength = 5
var/attached = 0
/obj/item/clothing/mask/facehugger/attack_hand(user as mob)
if((stat == CONSCIOUS && !sterile))
if(Attach(user))
return
..()
/obj/item/clothing/mask/facehugger/attack(mob/living/M as mob, mob/user as mob)
..()
user.drop_from_inventory(src)
Attach(M)
/obj/item/clothing/mask/facehugger/New()
if(config.aliens_allowed)
..()
else
qdel(src)
/obj/item/clothing/mask/facehugger/examine(mob/user)
..(user)
switch(stat)
if(DEAD,UNCONSCIOUS)
to_chat(user, "<span class='danger'><b>[src] is not moving.</b></span>")
if(CONSCIOUS)
to_chat(user, "<span class='danger'><b>[src] seems to be active.</b></span>")
if (sterile)
to_chat(user, "<span class='danger'><b>It looks like the proboscis has been removed.</b></span>")
return
/obj/item/clothing/mask/facehugger/attackby(obj/item/I, mob/user)
if(I.force)
user.do_attack_animation(src)
Die()
return
/obj/item/clothing/mask/facehugger/bullet_act()
Die()
return
/obj/item/clothing/mask/facehugger/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > T0C+80)
Die()
return
/obj/item/clothing/mask/facehugger/equipped(mob/M)
..()
Attach(M)
/obj/item/clothing/mask/facehugger/Crossed(atom/target)
HasProximity(target)
return
/obj/item/clothing/mask/facehugger/on_found(mob/finder as mob)
if(stat == CONSCIOUS)
HasProximity(finder)
return 1
return
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
if(CanHug(AM))
Attach(AM)
/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed)
..()
if(stat == CONSCIOUS)
icon_state = "[initial(icon_state)]_thrown"
spawn(15)
if(icon_state == "[initial(icon_state)]_thrown")
icon_state = "[initial(icon_state)]"
/obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom)
..()
if(stat == CONSCIOUS)
icon_state = "[initial(icon_state)]"
throwing = 0
GoIdle(30,100) //stunned for a few seconds - allows throwing them to be useful for positioning but not as an offensive action (unless you're setting up a trap)
/obj/item/clothing/mask/facehugger/proc/Attach(M as mob)
if((!iscorgi(M) && !iscarbon(M)))
return
if(attached)
return
var/mob/living/carbon/C = M
if(istype(C) && locate(/obj/item/organ/internal/xenos/hivenode) in C.internal_organs)
return
attached++
spawn(MAX_IMPREGNATION_TIME)
attached = 0
var/mob/living/L = M //just so I don't need to use :
if(loc == L) return
if(stat != CONSCIOUS) return
if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage
L.visible_message("<span class='danger'><b> [src] leaps at [L]'s face!</b></span>")
if(iscarbon(M))
var/mob/living/carbon/target = L
if(target.wear_mask)
if(prob(20)) return
var/obj/item/clothing/W = target.wear_mask
if(!W.canremove) return
target.drop_from_inventory(W)
target.visible_message("<span class='danger'><b> [src] tears [W] off of [target]'s face!"</b></span>)
target.equip_to_slot(src, slot_wear_mask)
target.contents += src // Monkey sanity check - Snapshot
if(!sterile) L.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings
GoIdle() //so it doesn't jump the people that tear it off
spawn(rand(MIN_IMPREGNATION_TIME,MAX_IMPREGNATION_TIME))
Impregnate(L)
return
/obj/item/clothing/mask/facehugger/proc/Impregnate(mob/living/target as mob)
if(!target || target.wear_mask != src || target.stat == DEAD) //was taken off or something
return
if(!sterile)
new /obj/item/alien_embryo(target)
target.status_flags |= XENO_HOST
target.visible_message("<span class='danger'><b> [src] falls limp after violating [target]'s face!</b></span>")
Die()
icon_state = "[initial(icon_state)]_impregnated"
else
target.visible_message("<span class='danger'><b> [src] violates [target]'s face!</b></span>")
return
/obj/item/clothing/mask/facehugger/proc/GoActive()
if(stat == DEAD || stat == CONSCIOUS)
return
stat = CONSCIOUS
icon_state = "[initial(icon_state)]"
return
/obj/item/clothing/mask/facehugger/proc/GoIdle(var/min_time=MIN_ACTIVE_TIME, var/max_time=MAX_ACTIVE_TIME)
if(stat == DEAD || stat == UNCONSCIOUS)
return
/* RemoveActiveIndicators() */
stat = UNCONSCIOUS
icon_state = "[initial(icon_state)]_inactive"
spawn(rand(min_time,max_time))
GoActive()
return
/obj/item/clothing/mask/facehugger/proc/Die()
if(stat == DEAD)
return
/* RemoveActiveIndicators() */
icon_state = "[initial(icon_state)]_dead"
stat = DEAD
src.visible_message("<span class='danger'><b>[src] curls up into a ball!</b></span>")
return
/proc/CanHug(var/mob/M)
if(iscorgi(M))
return 1
if(!iscarbon(M))
return 0
var/mob/living/carbon/C = M
if(istype(C) && locate(/obj/item/organ/internal/xenos/hivenode) in C.internal_organs)
return 0
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL))
return 0
return 1
*/
@@ -79,7 +79,7 @@
// Queen verbs.
/mob/living/carbon/human/proc/lay_egg()
set name = "Lay Egg (75)"
set name = "Lay Egg (200)"
set desc = "Lay an egg to produce huggers to impregnate prey with."
set category = "Abilities"
@@ -88,13 +88,13 @@
verbs -= /mob/living/carbon/human/proc/lay_egg
return
if(locate(/obj/effect/alien/egg) in get_turf(src))
if(locate(/obj/structure/alien/egg) in get_turf(src))
to_chat(src, "There's already an egg here.")
return
if(check_alien_ability(75,1,O_EGG))
if(check_alien_ability(200,1,O_EGG))
visible_message("<span class='alium'><B>[src] has laid an egg!</B></span>")
new /obj/effect/alien/egg(loc)
new /obj/structure/alien/egg(loc)
return
@@ -144,7 +144,7 @@
P.firer = src
P.old_style_target(A)
P.fire()
playsound(src, 'sound/weapons/pierce.ogg', 25, 0)
playsound(src, 'sound/weapons/alien_spitacid.ogg', 25, 0)
/mob/living/carbon/human/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
set name = "Corrosive Acid (200)"
@@ -329,7 +329,7 @@
/mob/living/carbon/human/proc/gut()
set category = "Abilities"
set name = "Gut"
set name = "Slaughter"
set desc = "While grabbing someone aggressively, rip their guts out or tear them apart."
if(last_special > world.time)
@@ -345,7 +345,7 @@
return
if(G.state < GRAB_AGGRESSIVE)
to_chat(src, "<span class='danger'>You must have an aggressive grab to gut your prey!</span>")
to_chat(src, "<span class='danger'>You must have an aggressive grab to slaughter your prey!</span>")
return
last_special = world.time + 50
@@ -14,8 +14,8 @@
siemens_coefficient = 0
gluttonous = 2
brute_mod = 0.5 // Hardened carapace.
burn_mod = 2 // Weak to fire.
brute_mod = 0.6 // Hardened carapace.
burn_mod = 1.75 // Weak to fire.
warning_low_pressure = 50
hazard_low_pressure = -1
@@ -33,18 +33,19 @@
flesh_color = "#282846"
gibbed_anim = "gibbed-a"
dusted_anim = "dust-a"
death_message = "lets out a waning guttural screech, green blood bubbling from its maw."
death_message = "lets out a guttural screech, green blood bubbling from its maw."
death_sound = 'sound/voice/hiss6.ogg'
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
speech_chance = 100
speech_chance = 75
virus_immune = 1
breath_type = null
poison_type = null
vision_flags = SEE_SELF|SEE_MOBS
vision_flags = SEE_SELF|SEE_MOBS|SEE_TURFS
darksight = 10
has_organ = list(
O_HEART = /obj/item/organ/internal/heart,
@@ -83,7 +84,7 @@
return SPECIES_XENO
/datum/species/xenos/get_random_name()
return "alien [caste_name] ([alien_number])"
return "xenomorph [caste_name] ([alien_number])"
/datum/species/xenos/can_understand(var/mob/other)
if(istype(other, /mob/living/carbon/alien/larva))
@@ -101,7 +102,7 @@
H.mind.special_role = "Alien"
alien_number++ //Keep track of how many aliens we've had so far.
H.real_name = "alien [caste_name] ([alien_number])"
H.real_name = "xenomorph [caste_name] ([alien_number])"
H.name = H.real_name
..()
@@ -154,15 +155,6 @@
return 1
return 0
/*
/datum/species/xenos/handle_login_special(var/mob/living/carbon/human/H)
H.AddInfectionImages()
..()
/datum/species/xenos/handle_logout_special(var/mob/living/carbon/human/H)
H.RemoveInfectionImages()
..()
*/
/datum/species/xenos/drone
name = SPECIES_XENO_DRONE
@@ -208,7 +200,7 @@
name = SPECIES_XENO_HUNTER
weeds_plasma_rate = 5
caste_name = "hunter"
slowdown = -2
slowdown = -1
total_health = 150
tail = "xenos_hunter_tail"
@@ -269,11 +261,11 @@
/datum/species/xenos/queen
name = SPECIES_XENO_QUEEN
total_health = 250
total_health = 300
weeds_heal_rate = 5
weeds_plasma_rate = 20
caste_name = "queen"
slowdown = 4
slowdown = 3
tail = "xenos_queen_tail"
rarity_value = 10
@@ -312,10 +304,10 @@
..()
// Make sure only one official queen exists at any point.
if(!alien_queen_exists(1,H))
H.real_name = "alien queen ([alien_number])"
H.real_name = "xenomorph queen ([alien_number])"
H.name = H.real_name
else
H.real_name = "alien princess ([alien_number])"
H.real_name = "xenomorph princess ([alien_number])"
H.name = H.real_name
/datum/hud_data/alien
@@ -334,8 +326,6 @@
has_internals = 0
gear = list(
"o_clothing" = list("loc" = ui_belt, "name" = "Suit", "slot" = slot_wear_suit, "state" = "equip", "dir" = SOUTH),
"head" = list("loc" = ui_id, "name" = "Hat", "slot" = slot_head, "state" = "hair"),
"storage1" = list("loc" = ui_storage1, "name" = "Left Pocket", "slot" = slot_l_store, "state" = "pocket"),
"storage2" = list("loc" = ui_storage2, "name" = "Right Pocket", "slot" = slot_r_store, "state" = "pocket"),
)
) //Removed hat and outer slots, it caused too many problems that required admin intervention.
@@ -27,30 +27,4 @@
faction = "xeno"
..(new_loc, SPECIES_XENO_QUEEN)
// I feel like we should generalize/condense down all the various icon-rendering antag procs.
/*----------------------------------------
Proc: AddInfectionImages()
Des: Gives the client of the alien an image on each infected mob.
----------------------------------------*/
/*
/mob/living/carbon/human/proc/AddInfectionImages()
if (client)
for (var/mob/living/C in mob_list)
if(C.status_flags & XENO_HOST)
var/obj/item/alien_embryo/A = locate() in C
var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]")
client.images += I
return
*/
/*----------------------------------------
Proc: RemoveInfectionImages()
Des: Removes all infected images from the alien.
----------------------------------------*/
/*
/mob/living/carbon/human/proc/RemoveInfectionImages()
if (client)
for(var/image/I in client.images)
if(dd_hasprefix_case(I.icon_state, "infected"))
qdel(I)
return
*/
//Removed AddInfectionImages, no longer required.
@@ -282,7 +282,7 @@
switch(choice)
if("Colour")
var/newcolour = tgui_input_list(usr, "Which colour would you like to use?", list("black","blue","red","green","yellow"))
var/newcolour = tgui_input_list(usr, "Which colour would you like to use?", "Color Choice", list("black","blue","red","green","yellow"))
if(newcolour) colour = newcolour
if("Mode")
@@ -401,7 +401,7 @@
set category = "Object"
set src in range(0)
var/N = tgui_input_list(usr, "How much damage should the shield absorb?", list("5","10","25","50","75","100"))
var/N = tgui_input_list(usr, "How much damage should the shield absorb?", "Shield Level", list("5","10","25","50","75","100"))
if (N)
shield_level = text2num(N)/100
@@ -32,7 +32,7 @@
. = ..()
/mob/living/silicon/robot/platform/attack_ghost(mob/observer/ghost/user)
/mob/living/silicon/robot/platform/attack_ghost(mob/observer/dead/user)
if(client || key || stat == DEAD || !ticker || !ticker.mode)
return ..()
+8 -1
View File
@@ -43,7 +43,9 @@
var/list/megalist = client.prefs.pos_traits + client.prefs.neu_traits + client.prefs.neg_traits
var/points_left = client.prefs.starting_trait_points
var/traits_left = client.prefs.max_traits
for(var/T in megalist)
var/pref_synth = client.prefs.dirty_synth
var/pref_meat = client.prefs.gross_meatbag
for(var/datum/trait/T as anything in megalist)
var/cost = traits_costs[T]
if(cost)
@@ -57,6 +59,11 @@
else
points_left -= traits_costs[T]
var/take_flags = initial(T.can_take)
if((pref_synth && !(take_flags & SYNTHETICS)) || (pref_meat && !(take_flags & ORGANICS)))
pass = FALSE
to_chat(src, "<span class='warning'>Some of your traits are not usable by your character type (synthetic traits on organic, or vice versa).</span>")
//Went into negatives
if(points_left < 0 || traits_left < 0)
pass = FALSE
@@ -97,7 +97,7 @@
uninstall_component(user, portable_drive)
update_uis()
/obj/item/modular_computer/attack_ghost(var/mob/observer/ghost/user)
/obj/item/modular_computer/attack_ghost(var/mob/observer/dead/user)
if(enabled)
tgui_interact(user)
else if(check_rights(R_ADMIN|R_EVENT, 0, user))
+1 -1
View File
@@ -89,7 +89,7 @@
return FALSE
return TRUE
/mob/observer/ghost/may_climb_ladders(var/ladder)
/mob/observer/dead/may_climb_ladders(var/ladder)
return TRUE
/obj/structure/ladder/proc/climbLadder(var/mob/M, var/obj/target_ladder)
+26 -9
View File
@@ -17,13 +17,21 @@
item_state = "bolt"
throwforce = 10
w_class = ITEMSIZE_NORMAL
sharp = FALSE
sharp = TRUE
edge = TRUE
embed_chance = 0 // it fizzles!
catchable = FALSE // oh god
/obj/item/weapon/arrow/energy/throw_impact(atom/hit_atom)
. = ..()
qdel(src)
/obj/item/weapon/arrow/energy/equipped()
if(isliving(loc))
var/mob/living/L = loc
L.drop_from_inventory(src)
qdel(src) // noh
/obj/item/weapon/gun/launcher/crossbow/bow
name = "shortbow"
desc = "A common shortbow, capable of firing arrows at high speed towards a target. Useful for hunting while keeping quiet."
@@ -35,15 +43,20 @@
fire_sound_text = "a solid thunk"
fire_delay = 25
slot_flags = SLOT_BACK
tension = 3
release_force = 20
release_speed = 15
var/drawn = FALSE
/obj/item/weapon/gun/launcher/crossbow/bow/update_release_force(obj/item/projectile)
return 0
/obj/item/weapon/gun/launcher/crossbow/bow/proc/unload(mob/user)
var/obj/item/weapon/arrow/A = bolt
bolt = null
drawn = FALSE
A.forceMove(get_turf(user))
user.put_in_hands(A)
update_icon()
/obj/item/weapon/gun/launcher/crossbow/bow/consume_next_projectile(mob/user)
if(!drawn)
@@ -57,10 +70,17 @@
update_icon()
..()
/obj/item/weapon/gun/launcher/crossbow/bow/attack_self(mob/living/user)
if(bolt)
user.visible_message("[user] relaxes the tension on [src]'s string and removes [bolt].","You relax the tension on [src]'s string and remove [bolt].")
/obj/item/weapon/gun/launcher/crossbow/bow/attack_hand(mob/living/user)
if(loc == user && bolt && !drawn)
user.visible_message("<b>[user]</b> removes [bolt] from [src].","You remove [bolt] from [src].")
unload(user)
else
return ..()
/obj/item/weapon/gun/launcher/crossbow/bow/attack_self(mob/living/user)
if(drawn)
user.visible_message("<b>[user]</b> relaxes the tension on [src]'s string.","You relax the tension on [src]'s string.")
drawn = FALSE
update_icon()
else
draw(user)
@@ -75,13 +95,9 @@
current_user = user
user.visible_message("<b>[user]</b> begins to draw back the string of [src].","<span class='notice'>You begin to draw back the string of [src].</span>")
if(do_after(user, 25, src, exclusive = TASK_ALL_EXCLUSIVE))
drawn = TRUE
user.visible_message("<b>[user]</b> draws the string on [src] back fully!", "You draw the string on [src] back fully!")
else
user.visible_message("<b>[user]</b> stops drawing and relaxes the string of [src].","<span class='warning'>You stop drawing back and relax the string of [src].</span>")
drawn = FALSE
update_icon()
/obj/item/weapon/gun/launcher/crossbow/bow/attackby(obj/item/W as obj, mob/user)
@@ -109,6 +125,7 @@
/obj/item/weapon/gun/launcher/crossbow/bow/hardlight/unload(mob/user)
qdel_null(bolt)
update_icon()
/obj/item/weapon/gun/launcher/crossbow/bow/hardlight/attack_self(mob/living/user)
if(drawn)
@@ -144,17 +144,21 @@
agony = 10
check_armour = "bio"
armor_penetration = 25 // It's acid
hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg'
hitsound = 'sound/weapons/effects/alien_spit_wall.ogg'
combustion = FALSE
/obj/item/projectile/energy/neurotoxin
name = "neurotoxic spit"
icon_state = "neurotoxin"
damage = 5
damage = 0
damage_type = BIOACID
agony = 80
check_armour = "bio"
armor_penetration = 25 // It's acid-based
hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg'
hitsound = 'sound/weapons/effects/alien_spit_wall.ogg'
combustion = FALSE
@@ -28,6 +28,7 @@
/obj/item/stack/material/sandstone = list("silicon", "oxygen"),
/obj/item/stack/material/glass = list("silicon"),
/obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon,
/obj/item/stack/material/supermatter = list("supermatter")
)
var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine")
@@ -53,6 +53,11 @@
name = "vial (amorphorovir)"
prefill = list("amorphorovir" = 1)
/obj/item/weapon/reagent_containers/glass/beaker/vial/supermatter
name = "vial (supermatter)"
desc = "A glass vial containing the extremely dangerous results of grinding a shard of supermatter down to a fine powder."
prefill = list("supermatter" = 5)
/obj/item/weapon/reagent_containers/glass/beaker/measuring_cup
name = "measuring cup"
desc = "A measuring cup."
+4
View File
@@ -306,6 +306,10 @@
/datum/reagent/supermatter
name = "Supermatter"
id = "supermatter"
color = "#fffd6b"
reagent_state = SOLID
affects_dead = TRUE
affects_robots = TRUE
description = "The immense power of a supermatter crystal, in liquid form. You're not entirely sure how that's possible, but it's probably best handled with care."
taste_description = "taffy" // 0. The supermatter is tasty, tasty taffy.
+1 -41
View File
@@ -14,48 +14,8 @@
return 0
return affected && affected.open == (affected.encased ? 3 : 2)
//Removed unused Embryo Surgery, derelict and broken.
//////////////////////////////////////////////////////////////////
// ALIEN EMBRYO SURGERY //
////////////////////////////////////////////////////////////////// // Here for future reference incase it's needed. See: Alien_embryo.dm and Alien_facehugger.dm
/*
/datum/surgery_step/internal/remove_embryo
allowed_tools = list(
/obj/item/weapon/surgical/hemostat = 100, \
/obj/item/weapon/material/kitchen/utensil/fork = 20
)
allowed_procs = list(IS_WIRECUTTER = 75)
blood_level = 2
min_duration = 80
max_duration = 100
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/embryo = 0
for(var/obj/item/alien_embryo/A in target)
embryo = 1
break
if (!hasorgans(target))
return
var/obj/item/organ/external/affected = target.get_organ(target_zone)
return ..() && affected && embryo && affected.open == 3 && target_zone == BP_TORSO
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/msg = "[user] starts to pull something out from [target]'s ribcage with \the [tool]."
var/self_msg = "You start to pull something out from [target]'s ribcage with \the [tool]."
user.visible_message(msg, self_msg)
target.custom_pain("Something hurts horribly in your chest!",1)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
user.visible_message("<span class='warning'>[user] rips the larva out of [target]'s ribcage!</span>",
"You rip the larva out of [target]'s ribcage!")
for(var/obj/item/alien_embryo/A in target)
A.loc = A.loc.loc
*/
//////////////////////////////////////////////////////////////////
// CHEST INTERNAL ORGAN SURGERY //
//////////////////////////////////////////////////////////////////
Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 KiB

After

Width:  |  Height:  |  Size: 558 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

+28
View File
@@ -186,3 +186,31 @@ VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
/area/tether_away/aerostat/surface/unexplored
name = "Away Mission - Aerostat Surface (UE)"
icon_state = "unexplored"
VIRGO2_TURF_CREATE(/turf/simulated/floor/hull)
/area/tether_away/aerostat/surface/outpost
requires_power = TRUE
dynamic_lighting = TRUE
ambience = null
/area/tether_away/aerostat/surface/outpost/backroom
name = "V4 Outpost - Research Area"
/area/tether_away/aerostat/surface/outpost/hallway
name = "V4 Outpost - Hallway"
/area/tether_away/aerostat/surface/outpost/cafe
name = "V4 Outpost - Cafe"
/area/tether_away/aerostat/surface/outpost/park
name = "V4 Outpost - Park"
/area/tether_away/aerostat/surface/outpost/officerone
name = "V4 Outpost - Officer's Quarters 1"
/area/tether_away/aerostat/surface/outpost/officertwo
name = "V4 Outpost - Officer's Quarters 2"
/area/tether_away/aerostat/surface/outpost/barracks
name = "V4 Outpost - Barracks"
/area/tether_away/aerostat/surface/outpost/airlock
name = "V4 Outpost - Airlock"
/area/tether_away/aerostat/surface/outpost/powerroom
name = "V4 Outpost - Power Room"
/area/tether_away/aerostat/surface/outpost/guardpost
name = "V4 Outpost - Guard Post"
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -979,7 +979,7 @@
/area/shuttle/curabitur/curashuttle/med)
"bM" = (
/obj/structure/fans/hardlight,
/obj/machinery/door/airlock/external/glass/bolted{
/obj/machinery/door/airlock/external/bolted{
frequency = 1480;
id_tag = "curadocking"
},
+1 -1
View File
@@ -9,6 +9,6 @@
allowed_roles = list("Pilot")
/datum/gear/head/pilot/talon
display_name = "helmet, ITV pilot (Pilot)"
display_name = "helmet, Talon pilot (Pilot)"
path = /obj/item/clothing/head/pilot_vr/talon
allowed_roles = list("Pilot")
@@ -870,7 +870,6 @@
/turf/simulated/floor/tiled/dark,
/area/submap/debrisfield/derelict/interior)
"cF" = (
/obj/effect/alien/egg,
/obj/effect/alien/weeds,
/turf/simulated/floor/tiled/dark,
/area/submap/debrisfield/derelict/interior)
@@ -166,7 +166,7 @@
/turf/simulated/floor/tiled/airless,
/area/submap/debrisfield/mining_outpost)
"E" = (
/obj/machinery/door/airlock/external/glass{
/obj/machinery/door/airlock/external{
density = 0;
health = 0;
icon_state = "door_open";
@@ -175,7 +175,7 @@
/turf/simulated/floor/airless,
/area/submap/debrisfield/mining_outpost)
"F" = (
/obj/machinery/door/airlock/external/glass/bolted,
/obj/machinery/door/airlock/external/bolted,
/turf/simulated/floor/airless,
/area/submap/debrisfield/mining_outpost)
"G" = (
@@ -66,7 +66,6 @@
/area/submap/debrisfield/misc_debris)
"W" = (
/obj/effect/alien/weeds,
/obj/effect/alien/egg,
/turf/simulated/floor/airless,
/area/submap/debrisfield/misc_debris)
"X" = (
@@ -2,7 +2,7 @@
"ab" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo_frigate)
"ac" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"ad" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/template_noop)
"ae" = (/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"ae" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"af" = (/mob/living/simple_mob/animal/space/alien/drone,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"ag" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
"ah" = (/obj/structure/table/alien,/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
@@ -11,7 +11,7 @@
"ak" = (/obj/machinery/porta_turret/alien{faction = "xeno"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"al" = (/turf/simulated/floor/outdoors/ice,/area/submap/cave/crashed_ufo_frigate)
"am" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"an" = (/obj/structure/window/phoronreinforced,/obj/effect/alien/egg,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"an" = (/obj/structure/window/phoronreinforced,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"ao" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo_frigate)
"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
"aq" = (/obj/structure/prop/alien/pod/open,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo_frigate)
@@ -7,7 +7,7 @@
"g" = (/obj/effect/alien/weeds/node,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"i" = (/obj/effect/alien/weeds,/mob/living/simple_mob/animal/space/alien,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"j" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
"j" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault4)
(1,1,1) = {"
aaaaaaaaa
@@ -6,7 +6,7 @@
"f" = (/obj/effect/alien/weeds,/obj/item/clothing/suit/storage/vest/tactical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"g" = (/obj/effect/alien/weeds,/obj/structure/bed/nest,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"h" = (/obj/effect/alien/weeds,/obj/random/multiple/minevault,/mob/living/simple_mob/animal/space/alien/sentinel/praetorian,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"i" = (/obj/effect/alien/weeds,/obj/effect/alien/egg,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"i" = (/obj/effect/alien/weeds,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"j" = (/obj/effect/alien/weeds,/obj/effect/alien/weeds/node,/mob/living/simple_mob/animal/space/alien/queen/empress,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
"k" = (/obj/effect/alien/weeds,/obj/item/clothing/head/helmet/tac,/obj/item/weapon/gun/projectile/SVD,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/vault5)
+11 -11
View File
@@ -42,7 +42,7 @@
dir = 1
},
/mob/living/simple_mob/animal/sif/fluffy,
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"aag" = (
/obj/structure/sign/securearea{
@@ -8732,7 +8732,7 @@
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"auU" = (
/obj/item/weapon/stool,
@@ -9142,7 +9142,7 @@
/obj/machinery/light,
/obj/structure/dogbed,
/mob/living/simple_mob/animal/sif/fluffy/silky,
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"awh" = (
/obj/machinery/power/apc{
@@ -9157,7 +9157,7 @@
d2 = 8;
icon_state = "0-8"
},
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"awj" = (
/obj/machinery/requests_console{
@@ -18052,7 +18052,7 @@
/obj/effect/floor_decal/spline/fancy/wood{
dir = 1
},
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"ekj" = (
/obj/structure/table/reinforced,
@@ -24186,7 +24186,7 @@
d2 = 4;
icon_state = "1-4"
},
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"kCD" = (
/obj/machinery/mineral/stacking_machine,
@@ -25977,7 +25977,7 @@
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"mau" = (
/obj/item/weapon/storage/backpack/parachute{
@@ -28063,7 +28063,7 @@
/turf/simulated/floor/tiled,
/area/ai_monitored/storage/eva)
"nZQ" = (
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"oaR" = (
/obj/structure/cable/green{
@@ -29365,7 +29365,7 @@
/obj/effect/floor_decal/spline/fancy/wood{
dir = 1
},
/turf/simulated/floor/outdoors/grass/forest,
/turf/simulated/floor/grass,
/area/quartermaster/qm)
"pOQ" = (
/obj/machinery/embedded_controller/radio/airlock/docking_port{
@@ -33274,8 +33274,8 @@
},
/obj/machinery/door/airlock/science{
name = "Pathfinder";
req_access = list(62,43,67);
req_one_access = newlist()
req_access = null;
req_one_access = list(44)
},
/turf/simulated/floor/tiled/steel_grid,
/area/tether/exploration/pathfinder_office)
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -1522,6 +1522,8 @@
#include "code\game\objects\structures\window.dm"
#include "code\game\objects\structures\window_spawner.dm"
#include "code\game\objects\structures\window_vr.dm"
#include "code\game\objects\structures\alien\alien egg.dm"
#include "code\game\objects\structures\alien\alien.dm"
#include "code\game\objects\structures\crates_lockers\__closets.dm"
#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm"
#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions_vr.dm"