Lots of work on hardsuits, commented out some broken WIP code, did some renaming, deleted now-redundant species-specific hardsuits.

Conflicts:
	code/game/machinery/suit_storage_unit.dm
	code/game/objects/items.dm
	code/game/objects/items/devices/modkit.dm
	code/modules/clothing/masks/breath.dm
	code/modules/clothing/spacesuits/alien.dm
	code/modules/clothing/spacesuits/rig.dm
This commit is contained in:
Zuhayr
2014-05-27 01:18:07 +09:30
committed by ZomgPonies
parent 05809ec585
commit f97f7cedcc
22 changed files with 209 additions and 231 deletions
+15 -16
View File
@@ -226,24 +226,23 @@ proc/issyndicate(mob/living/M as mob)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol(synd_mob), slot_belt)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(synd_mob.back), slot_in_backpack)
var/obj/item/clothing/suit/space/rig/syndi/new_suit = new(synd_mob)
var/obj/item/clothing/head/helmet/space/rig/syndi/new_helmet = new(synd_mob)
if(synd_mob.species)
var/race = synd_mob.species.name
if(race == "Unathi")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/unathi(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/unathi(synd_mob), slot_head)
else if(race == "Tajaran")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/tajara(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/tajara(synd_mob), slot_head)
else if(race == "Skrell")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/skrell(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/skrell(synd_mob), slot_head)
else
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/human(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/human(synd_mob), slot_head)
else
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi/human(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi/human(synd_mob), slot_head)
switch(race)
if("Unathi")
new_suit.species_restricted = list("Unathi")
if("Tajaran")
new_suit.species_restricted = list("Tajaran")
if("Skrell")
new_suit.species_restricted = list("Skrell")
synd_mob.equip_to_slot_or_del(new_suit, slot_wear_suit)
synd_mob.equip_to_slot_or_del(new_helmet, slot_head)
var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(synd_mob)
@@ -377,4 +376,4 @@ proc/issyndicate(mob/living/M as mob)
if(FEMALE)
synd_mind.name = "[pick(first_names_female)] [pick(last_names)]"
synd_mind.current.real_name = synd_mind.name
return
return
+61 -149
View File
@@ -1056,152 +1056,64 @@
if(helmet) helmet.species_restricted = list("Tajaran")
if(suit) suit.species_restricted = list("Tajaran")
if(target_department == "Engineering")
if(helmet) helmet.name = "engineering hardsuit helmet"
if(suit) suit.name = "engineering hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-engineering"
helmet.item_state = "eng_helm"
helmet._color = "engineering"
if(suit)
suit.icon_state = "rig-engineering"
suit.item_state = "eng_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
if(helmet)
helmet.icon_state = "rig0-taj-helmet"
helmet.item_state = "rig0-taj-helmet"
helmet._color = "taj-helmet"
if(suit)
suit.icon_state = "rig-taj"
suit.item_state = "rig-taj"
else if(target_department == "Mining")
if(helmet) helmet.name = "mining hardsuit helmet"
if(suit) suit.name = "mining hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-mining"
helmet.item_state = "mining_helm"
helmet._color = "mining"
if(suit)
suit.icon_state = "rig-mining"
suit.item_state = "mining_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
return //TODO
else if(target_department == "^%###^%$")
if(helmet) helmet.name = "blood-red hardsuit helmet"
if(suit) suit.name = "blood-red hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-syndie-human"
helmet.item_state = "syndie_helm"
helmet._color = "syndie-human"
if(suit)
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie-human"
if("Skrell")
if(helmet)
helmet.icon_state = "rig0-syndie-skrell"
helmet.item_state = "syndie_helm"
helmet._color = "syndie-skrell"
if(suit)
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie-skrell"
if("Unathi")
if(helmet)
helmet.icon_state = "rig0-syndie-unathi"
helmet.item_state = "syndie_helm"
helmet._color = "syndie-unathi"
if(suit)
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie-unathi"
if("Tajaran")
if(helmet)
helmet.icon_state = "rig0-syndie-taj"
helmet.item_state = "syndie_helm"
helmet._color = "syndie-taj"
if(suit)
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie-taj"
else if(target_department == "Medical")
if(helmet) helmet.name = "medical hardsuit helmet"
if(suit) suit.name = "medical hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-medical"
helmet.item_state = "medical_helm"
helmet._color = "medical"
if(suit)
suit.icon_state = "rig-medical"
suit.item_state = "medical_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
return //TODO
else if(target_department == "Security")
if(helmet) helmet.name = "security hardsuit helmet"
if(suit) suit.name = "security hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-sec"
helmet.item_state = "sec_helm"
helmet._color = "sec"
if(suit)
suit.icon_state = "rig-sec"
suit.item_state = "sec_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
return //TODO
else if(target_department == "Atmos")
if(helmet) helmet.name = "atmospherics hardsuit helmet"
if(suit) suit.name = "atmospherics hardsuit"
switch(target_species)
if("Human")
if(helmet)
helmet.icon_state = "rig0-atmos"
helmet.item_state = "atmos_helm"
helmet._color = "atmos"
if(suit)
suit.icon_state = "rig-atmos"
suit.item_state = "atmos_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
return //TODO
switch(target_department)
if("Engineering")
if(helmet)
helmet.name = "engineering hardsuit helmet"
helmet.icon_state = "rig0-engineering"
helmet.item_state = "eng_helm"
helmet._color = "engineering"
if(suit)
suit.name = "engineering hardsuit"
suit.icon_state = "rig-engineering"
suit.item_state = "eng_hardsuit"
if("Mining")
if(helmet)
helmet.name = "mining hardsuit helmet"
helmet.icon_state = "rig0-mining"
helmet.item_state = "mining_helm"
helmet._color = "mining"
if(suit)
suit.name = "mining hardsuit"
suit.icon_state = "rig-mining"
suit.item_state = "mining_hardsuit"
if("Medical")
if(helmet)
helmet.name = "medical hardsuit helmet"
helmet.icon_state = "rig0-medical"
helmet.item_state = "medical_helm"
helmet._color = "medical"
if(suit)
suit.name = "medical hardsuit"
suit.icon_state = "rig-medical"
suit.item_state = "medical_hardsuit"
if("Security")
if(helmet)
helmet.name = "security hardsuit helmet"
helmet.icon_state = "rig0-sec"
helmet.item_state = "sec_helm"
helmet._color = "sec"
if(suit)
suit.name = "security hardsuit"
suit.icon_state = "rig-sec"
suit.item_state = "sec_hardsuit"
if("Atmos")
if(helmet)
helmet.name = "atmospherics hardsuit helmet"
helmet.icon_state = "rig0-atmos"
helmet.item_state = "atmos_helm"
helmet._color = "atmos"
if(suit)
suit.name = "atmospherics hardsuit"
suit.icon_state = "rig-atmos"
suit.item_state = "atmos_hardsuit"
if("^%###^%$")
if(helmet)
helmet.name = "blood-red hardsuit helmet"
helmet.icon_state = "rig0-syndie"
helmet.item_state = "syndie_helm"
helmet._color = "syndie"
if(suit)
suit.name = "blood-red hardsuit"
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie"
+8
View File
@@ -40,6 +40,14 @@
var/list/allowed = null //suit storage stuff.
var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
/* Species-specific sprites, concept stolen from Paradise//vg/.
ex:
sprite_sheets = list(
"Tajaran" = 'icons/cat/are/bad'
)
If index term exists and icon_override is not set, this sprite sheet will be used.
*/
var/list/sprite_sheets = null
var/icon_override = null //Used to override hardcoded clothing dmis in human clothing proc.
var/list/species_fit = null //This object has a different appearance when worn by these species
+57
View File
@@ -0,0 +1,57 @@
#define MODKIT_HELMET 1
#define MODKIT_SUIT 2
#define MODKIT_FULL 3
/obj/item/device/modkit
name = "hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user."
icon_state = "modkit"
var/parts = MODKIT_FULL
var/list/target_species = list("Human","Skrell")
var/list/permitted_types = list(
/obj/item/clothing/head/helmet/space/rig,
/obj/item/clothing/suit/space/rig
)
/obj/item/device/modkit/afterattack(obj/O, mob/user as mob)
if(!parts)
user << "<span class='warning'>This kit has no parts for this modification left.</span>"
user.drop_from_inventory(src)
del(src)
return
/* TODO: list comparison
if(istype(O,to_type))
user << "<span class='notice'>[O] is already modified.</span>"
return
*/
if(!isturf(O.loc))
user << "<span class='warning'>[O] must be safely placed on the ground for modification.</span>"
return
playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("\red [user] opens \the [src] and modifies \the [O].","\red You open \the [src] and modify \the [O].")
var/obj/item/clothing/I = O
if(istype(I))
I.species_restricted = target_species.Copy()
parts--
if(!parts)
user.drop_from_inventory(src)
del(src)
/obj/item/device/modkit/tajaran
name = "tajaran hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajara."
target_species = list("Tajaran")
/obj/item/device/modkit/examine()
..()
usr << "It looks as though it modifies hardsuits to fit the following users:"
for(var/species in target_species)
usr << "- [species]"
+5 -1
View File
@@ -9,6 +9,11 @@
permeability_coefficient = 0.50
var/hanging = 0
species_fit = list("Vox", "Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/mask.dmi',
)
verb/toggle()
set category = "Object"
@@ -37,4 +42,3 @@
icon_state = "medical"
item_state = "medical"
permeability_coefficient = 0.01
species_fit = list("Vox")
+22 -46
View File
@@ -14,7 +14,6 @@
species_restricted = list("Tajaran")
//Skrell space gear. Sleek like a wetsuit.
/obj/item/clothing/head/helmet/space/skrell
name = "Skrellian helmet"
desc = "Smoothly contoured and polished to a shine. Still looks like a fishbowl."
@@ -52,10 +51,8 @@
_color = "skrell_suit_black"
// Vox space gear (vaccuum suit, low pressure armour)
// Can't be equipped by any other species due to bone structure and vox cybernetics.
/obj/item/clothing/suit/space/vox
w_class = 3
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank)
@@ -63,12 +60,20 @@
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Vox")
species_restricted = list("Vox", "Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/suit.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/suit.dmi',
)
/obj/item/clothing/head/helmet/space/vox
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)
flags = HEADCOVERSEYES|STOPSPRESSUREDMAGE
species_restricted = list("Vox")
species_restricted = list("Vox","Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/head.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/head.dmi',
)
/obj/item/clothing/head/helmet/space/vox/pressure
name = "alien helmet"
@@ -143,19 +148,25 @@
item_state = "gloves-vox"
siemens_coefficient = 0
permeability_coefficient = 0.05
_color="gloves-vox"
_color = "gloves-vox"
species_restricted = list("Vox","Vox Armalis")
species_fit = list("Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/gloves.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/gloves.dmi',
)
/obj/item/clothing/shoes/magboots/vox
desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor."
name = "vox magclaws"
item_state = "boots-vox"
icon_state = "boots-vox"
species_restricted = list("Vox","Vox Armalis")
species_fit = list("Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/feet.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/feet.dmi',
)
action_button_name = "Toggle the magclaws"
/obj/item/clothing/shoes/magboots/vox/attack_self(mob/user)
@@ -193,42 +204,6 @@
usr << "It would be hard to take these off without relaxing your grip first." //theoretically this message should only be seen by the wearer when the claws are equipped.
//Vox Armalis gear.
//Vox Armalis gear.
/obj/item/clothing/shoes/magboots/vox/armalis
name = "large vox magclaws"
item_state = "boots-armalis"
icon_state = "boots-armalis"
icon_override = 'icons/mob/species/vox/armalis/shoes.dmi'
species_restricted = list("Vox Armalis")
/obj/item/clothing/gloves/yellow/vox/armalis
name = "large insulated gauntlets"
item_state = "gloves-armalis"
icon_state = "gloves-armalis"
icon_override = 'icons/mob/species/vox/armalis/hands.dmi'
species_restricted = list("Vox Armalis")
/obj/item/clothing/mask/breath/vox/armalis
name = "large vox mask"
item_state = "mask-armalis"
icon_state = "mask-armalis"
icon_override = 'icons/mob/species/vox/armalis/mask.dmi'
species_restricted = list("Vox Armalis")
/obj/item/clothing/suit/space/vox/carapace/armalis
name = "large alien carapace armour"
item_state = "armour-armalis"
icon_state = "armour-armalis"
icon_override = 'icons/mob/vox.dmi'
species_restricted = list("Vox Armalis")
/obj/item/clothing/suit/space/vox/carapace/armalis
name = "large alien carapace armour"
item_state = "armour-armalis"
icon_state = "armour-armalis"
icon_override = 'icons/mob/vox.dmi'
species_restricted = list("Vox Armalis")
//Species-specific Syndicate rigs.
/obj/item/clothing/head/helmet/space/rig/syndi/tajara
@@ -298,6 +273,7 @@
icon_state = "rig-syndie-unathi"
species_restricted = list("Unathi")
//Unathi space gear. Huge and restrictive.
/obj/item/clothing/head/helmet/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
+41 -19
View File
@@ -65,7 +65,14 @@
icon_action_button = "action_hardhat"
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("exclude","Unathi","Tajara","Skrell","Diona","Vox")
//Species-specific stuff.
species_restricted = list("exclude","Unathi","Tajaran","Skrell","Diona","Vox")
sprite_sheets = list(
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
"Tajaran" = 'icons/mob/species/tajaran/helmet.dmi',
"Skrell" = 'icons/mob/species/skrell/helmet.dmi'
)
attack_self(mob/user)
if(!isturf(user.loc))
@@ -100,9 +107,15 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("exclude","Unathi","Tajara","Diona","Vox")
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL
species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox")
sprite_sheets = list(
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Tajaran" = 'icons/mob/species/tajaran/suit.dmi',
"Skrell" = 'icons/mob/species/skrell/suit.dmi'
)
//Breach thresholds, should ideally be inherited by most (if not all) hardsuits.
breach_threshold = 18
can_breach = 1
@@ -154,20 +167,23 @@
var/mob/living/carbon/human/H
H = helmet.loc
if(istype(H))
if(helmet && H.head == helmet)
helmet.canremove = 1
H.drop_from_inventory(helmet)
helmet.loc = src
if(helmet)
H = helmet.loc
if(istype(H))
if(helmet && H.head == helmet)
helmet.canremove = 1
H.drop_from_inventory(helmet)
helmet.loc = src
H = boots.loc
if(istype(H))
if(boots && H.shoes == boots)
boots.canremove = 1
H.drop_from_inventory(boots)
boots.loc = src
if(boots)
H = boots.loc
if(istype(H))
if(boots && H.shoes == boots)
boots.canremove = 1
H.drop_from_inventory(boots)
boots.loc = src
/*
/obj/item/clothing/suit/space/rig/verb/get_mounted_device()
set name = "Deploy Mounted Device"
@@ -208,6 +224,7 @@
if(!active_device)
usr << "You have no device currently deployed."
return
*/
/obj/item/clothing/suit/space/rig/verb/toggle_helmet()
@@ -307,6 +324,7 @@
else
return ..()
/*
else if(target_zone == "l_arm" || target_zone == "r_arm" || target_zone == "l_hand" || target_zone == "r_hand")
//Installing a component into or modifying the contents of the hands.
@@ -317,6 +335,7 @@
if(!mounted_devices)
return
*/
else //wat
return ..()
@@ -331,6 +350,7 @@
item_state = "ce_helm"
_color = "white"
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 80)
sprite_sheets = null
/obj/item/clothing/suit/space/rig/elite
icon_state = "rig-white"
@@ -339,7 +359,7 @@
item_state = "ce_hardsuit"
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 80)
sprite_sheets = null
//Singuloth armor
/obj/item/clothing/head/helmet/space/rig/singuloth
@@ -357,6 +377,7 @@
item_state = "singuloth_hardsuit"
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 80)
//Mining rig
/obj/item/clothing/head/helmet/space/rig/mining
name = "mining hardsuit helmet"
@@ -378,7 +399,7 @@
/obj/item/clothing/head/helmet/space/rig/syndi
name = "blood-red hardsuit helmet"
desc = "An advanced helmet designed for work in special operations. Property of Gorlex Marauders."
icon_state = "rig0-syndi"
icon_state = "rig0-syndie"
item_state = "syndie_helm"
_color = "syndi"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60)
@@ -401,7 +422,7 @@
usr << "This helmet has a built-in camera. It's [camera ? "" : "in"]active."
/obj/item/clothing/suit/space/rig/syndi
icon_state = "rig-syndi"
icon_state = "rig-syndie"
name = "blood-red hardsuit"
desc = "An advanced suit that protects against injuries during special operations. Property of Gorlex Marauders."
item_state = "syndie_hardsuit"
@@ -422,6 +443,7 @@
unacidable = 1 //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 = null
/obj/item/clothing/suit/space/rig/wizard
icon_state = "rig-wiz"
@@ -433,7 +455,7 @@
unacidable = 1
armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60)
siemens_coefficient = 0.7
sprite_sheets = null
//Medical Rig
/obj/item/clothing/head/helmet/space/rig/medical
@@ -512,4 +534,4 @@
item_state = "atmos_hardsuit"
armor = list(melee = 30, bullet = 0, laser = 0, energy = 0, bomb = 20, bio = 100, rad = 0)
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECITON_TEMPERATURE
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL
flags = FPRINT | TABLEPASS | STOPSPRESSUREDMAGE | ONESIZEFITSALL