Voreupdate
@@ -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',\
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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 //
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
|
Before Width: | Height: | Size: 557 KiB After Width: | Height: | Size: 558 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 237 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||