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

This commit is contained in:
Zuhayr
2014-05-27 01:18:07 +09:30
parent 13046655e8
commit 4538fbabca
7 changed files with 181 additions and 275 deletions

View File

@@ -228,24 +228,23 @@
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/c20r(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)
E.imp_in = synd_mob

View File

@@ -1057,152 +1057,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")
switch(target_department)
if("Engineering")
if(helmet)
helmet.name = "engineering hardsuit helmet"
helmet.icon_state = "rig0-engineering"
helmet.item_state = "eng_helm"
helmet.item_color = "engineering"
if(suit)
suit.name = "engineering hardsuit"
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.item_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("Mining")
if(helmet)
helmet.name = "mining hardsuit helmet"
helmet.icon_state = "rig0-mining"
helmet.item_state = "mining_helm"
helmet.item_color = "mining"
if(suit)
suit.name = "mining hardsuit"
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.item_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.item_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.item_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.item_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("Medical")
if(helmet)
helmet.name = "medical hardsuit helmet"
helmet.icon_state = "rig0-medical"
helmet.item_state = "medical_helm"
helmet.item_color = "medical"
if(suit)
suit.name = "medical hardsuit"
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("Security")
if(helmet)
helmet.name = "security hardsuit helmet"
helmet.icon_state = "rig0-sec"
helmet.item_state = "sec_helm"
helmet.item_color = "sec"
if(suit)
suit.name = "security hardsuit"
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("Atmos")
if(helmet)
helmet.name = "atmospherics hardsuit helmet"
helmet.icon_state = "rig0-atmos"
helmet.item_state = "atmos_helm"
helmet.item_color = "atmos"
if(suit)
suit.name = "atmospherics hardsuit"
suit.icon_state = "rig-atmos"
suit.item_state = "atmos_hardsuit"
if("Skrell")
return //TODO
if("Unathi")
return //TODO
if("Tajaran")
return //TODO
if("^%###^%$")
if(helmet)
helmet.name = "blood-red hardsuit helmet"
helmet.icon_state = "rig0-syndie"
helmet.item_state = "syndie_helm"
helmet.item_color = "syndie"
if(suit)
suit.name = "blood-red hardsuit"
suit.item_state = "syndie_hardsuit"
suit.icon_state = "rig-syndie"

View File

@@ -38,6 +38,15 @@
var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
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.
/obj/item/device

View File

@@ -7,41 +7,51 @@
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/from_helmet = /obj/item/clothing/head/helmet/space/rig
var/from_suit = /obj/item/clothing/suit/space/rig
var/to_helmet = /obj/item/clothing/head/cardborg
var/to_suit = /obj/item/clothing/suit/cardborg
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)
var/flag
var/to_type
if(istype(O,from_helmet))
flag = MODKIT_HELMET
to_type = to_helmet
else if(istype(O,from_suit))
flag = MODKIT_SUIT
to_type = to_suit
else
return
if(!(parts & flag))
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)
var/N = new to_type(O.loc)
user.visible_message("\red [user] opens \the [src] and modifies \the [O] into \the [N].","\red You open \the [src] and modify \the [O] into \the [N].")
del(O)
parts &= ~flag
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 = "tajara hardsuit modification kit"
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."
to_helmet = /obj/item/clothing/head/helmet/space/rig/tajara
to_suit = /obj/item/clothing/suit/space/rig/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]"

View File

@@ -43,7 +43,11 @@
icon_state = "voxmask"
item_state = "voxmask"
permeability_coefficient = 0.01
species_restricted = ("Vox")
species_restricted = list("Vox","Vox Armalis")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Vox Armalis" = 'icons/mob/species/armalis/mask.dmi',
)
toggle()
set category = "Object"

View File

@@ -1,20 +1,4 @@
// Tajaran rigs.
/obj/item/clothing/head/helmet/space/rig/tajara
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding. This one doesn't look like it was made for humans."
icon_state = "rig0-taj-helmet"
item_state = "rig0-taj-helmet"
item_color = "taj-helmet"
species_restricted = list("Tajaran")
/obj/item/clothing/suit/space/rig/tajara
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding. This one doesn't look like it was made for humans."
icon_state = "rig-taj"
item_state = "rig-taj"
item_color = "rig-taj"
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,7 +36,6 @@
item_color = "skrell_suit_black"
//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
@@ -98,7 +81,6 @@
// 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_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank)
@@ -106,12 +88,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_PROTECTION_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"
@@ -130,14 +120,12 @@
icon_state = "vox-carapace"
item_state = "vox-carapace"
desc = "A glowing visor, perhaps stolen from a depressed Cylon."
species_restricted = list("Vox","Vox Armalis")
/obj/item/clothing/suit/space/vox/carapace
name = "alien carapace armour"
icon_state = "vox-carapace"
item_state = "vox-carapace"
desc = "An armoured, segmented carapace with glowing purple lights. It looks pretty run-down."
species_restricted = list("Vox","Vox Armalis")
/obj/item/clothing/head/helmet/space/vox/stealth
name = "alien stealth helmet"
@@ -188,16 +176,25 @@
item_state = "gloves-vox"
siemens_coefficient = 0
permeability_coefficient = 0.05
item_color="gloves-vox"
item_color = "gloves-vox"
species_restricted = list("Vox","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")
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)
@@ -236,49 +233,3 @@
..()
if (magpulse)
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.
//Species-specific Syndicate rigs.
/obj/item/clothing/head/helmet/space/rig/syndi/tajara
icon_state = "rig0-syndie-taj"
item_state = "syndie_helm"
item_color = "syndie-taj"
species_restricted = list("Tajaran")
/obj/item/clothing/suit/space/rig/syndi/tajara
item_state = "syndie_hardsuit"
icon_state = "rig-syndie-taj"
species_restricted = list("Tajaran")
/obj/item/clothing/head/helmet/space/rig/syndi/unathi
icon_state = "rig0-syndie-unathi"
item_state = "syndie_helm"
item_color = "syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/rig/syndi/unathi
item_state = "syndie_hardsuit"
icon_state = "rig-syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/rig/syndi/skrell
icon_state = "rig0-syndie-skrell"
item_state = "syndie_helm"
item_color = "syndie-skrell"
species_restricted = list("Skrell")
/obj/item/clothing/suit/space/rig/syndi/skrell
item_state = "syndie_hardsuit"
icon_state = "rig-syndie-skrell"
species_restricted = list("Skrell")
/obj/item/clothing/head/helmet/space/rig/syndi/human
icon_state = "rig0-syndie-human"
item_state = "syndie_helm"
item_color = "syndie-human"
species_restricted = list("Human")
/obj/item/clothing/suit/space/rig/syndi/human
item_state = "syndie_hardsuit"
icon_state = "rig-syndie-human"
species_restricted = list("Human")

View File

@@ -12,7 +12,14 @@
icon_action_button = "action_hardhat"
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
//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))
@@ -51,7 +58,13 @@
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_PROTECTION_TEMPERATURE
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
@@ -104,6 +117,7 @@
var/mob/living/carbon/human/H
if(helmet)
H = helmet.loc
if(istype(H))
if(helmet && H.head == helmet)
@@ -111,6 +125,7 @@
H.drop_from_inventory(helmet)
helmet.loc = src
if(boots)
H = boots.loc
if(istype(H))
if(boots && H.shoes == boots)
@@ -118,6 +133,7 @@
H.drop_from_inventory(boots)
boots.loc = src
/*
/obj/item/clothing/suit/space/rig/verb/get_mounted_device()
set name = "Deploy Mounted Device"
@@ -158,6 +174,7 @@
if(!active_device)
usr << "You have no device currently deployed."
return
*/
/obj/item/clothing/suit/space/rig/verb/toggle_helmet()
@@ -257,6 +274,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.
@@ -267,6 +285,7 @@
if(!mounted_devices)
return
*/
else //wat
return ..()
@@ -280,13 +299,14 @@
icon_state = "rig0-white"
item_state = "ce_helm"
item_color = "white"
sprite_sheets = null
/obj/item/clothing/suit/space/rig/elite
icon_state = "rig-white"
name = "advanced hardsuit"
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
item_state = "ce_hardsuit"
sprite_sheets = null
//Mining rig
/obj/item/clothing/head/helmet/space/rig/mining
@@ -309,9 +329,9 @@
/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"
item_color = "syndi"
item_color = "syndie"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60)
siemens_coefficient = 0.6
var/obj/machinery/camera/camera
@@ -332,7 +352,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"
@@ -354,6 +374,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"
@@ -365,7 +386,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