diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index d1ab95b00b..a3968e5e95 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -51,39 +51,427 @@ /obj/item/clothing/head/helmet/space/vox/pressure name = "alien helmet" icon_state = "vox-pressure" + item_state = "vox-pressure" desc = "Hey, wasn't this a prop in \'The Abyss\'?" /obj/item/clothing/suit/space/vox/pressure name = "alien pressure suit" icon_state = "vox-pressure" + item_state = "vox-pressure" desc = "A huge, armoured, pressurized suit, designed for distinctly nonhuman proportions." /obj/item/clothing/head/helmet/space/vox/carapace name = "alien visor" icon_state = "vox-carapace" + item_state = "vox-carapace" desc = "A glowing visor, perhaps stolen from a depressed Cylon." + flash_protection = FLASH_PROTECTION_MAJOR /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." /obj/item/clothing/head/helmet/space/vox/stealth name = "alien stealth helmet" icon_state = "vox-stealth" + item_state = "vox-stealth" desc = "A smoothly contoured, matte-black alien helmet." + flash_protection = FLASH_PROTECTION_MAJOR /obj/item/clothing/suit/space/vox/stealth name = "alien stealth suit" icon_state = "vox-stealth" + item_state = "vox-stealth" desc = "A sleek black suit. It seems to have a tail, and is very heavy." /obj/item/clothing/head/helmet/space/vox/medic name = "alien goggled helmet" icon_state = "vox-medic" + item_state = "vox-medic" desc = "An alien helmet with enormous goggled lenses." /obj/item/clothing/suit/space/vox/medic name = "alien armour" icon_state = "vox-medic" - desc = "An almost organic looking nonhuman pressure suit." \ No newline at end of file + item_state = "vox-medic" + desc = "An almost organic looking nonhuman pressure suit." + +/*/obj/item/clothing/under/vox + has_sensor = 1 + species_restricted = list(SPECIES_VOX) + +/obj/item/clothing/under/vox/vox_casual + name = "alien clothing" + desc = "This doesn't look very comfortable." + icon_state = "vox-casual-1" + _color = "vox-casual-1" + item_state = "vox-casual-1" + +/obj/item/clothing/under/vox/vox_robes + name = "alien robes" + desc = "Weird and flowing!" + icon_state = "vox-casual-2" + _color = "vox-casual-2" + item_state = "vox-casual-2" + +/obj/item/clothing/gloves/yellow/vox + desc = "These bizarre gauntlets seem to be fitted for... bird claws?" + name = "insulated gauntlets" + icon_state = "gloves-vox" + item_state = "gloves-vox" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + _color="gloves-vox" + species_restricted = list(VOX_SHAPED) + +/obj/item/clothing/shoes/magboots/vox + + desc = "A pair of heavy, jagged armored foot pieces. They seem suitable for a velociraptor." + name = "vox boots" + item_state = "boots-vox" + icon_state = "boots-vox" + species_restricted = list(VOX_SHAPED) + + mag_slow = MAGBOOTS_SLOWDOWN_MED + + stomp_attack_power = 30 + stomp_delay = 2 SECONDS + stomp_boot = "clawed boot" + stomp_hit = "gouges" + + footprint_type = /obj/effect/decal/cleanable/blood/tracks/footprints/vox //They're like those five-toed shoes except for vox and with only three toes + +/obj/item/clothing/shoes/magboots/vox/toggle() + //set name = "Toggle Floor Grip" + if(usr.isUnconscious()) + return + if(src.magpulse) + src.clothing_flags &= ~NOSLIP + src.magpulse = 0 + src.slowdown = NO_SLOWDOWN + to_chat(usr, "You retract the razor-sharp talons of your boots.") + else + src.clothing_flags |= NOSLIP + src.magpulse = 1 + src.slowdown = mag_slow + to_chat(usr, "You extend the razor-sharp talons of your boots.") +*/ + +// Vox Trader -- Same stats as civ gear, but looks like raiders. /////////////////////////////// +/obj/item/clothing/suit/space/vox/civ/trader // brownsuit + name = "alien pressure suit" + icon_state = "vox-pressure" + item_state = "vox-pressure" + desc = "A huge, pressurized suit, designed for distinctly nonhuman proportions. It looks unusually cheap, even for Vox." + +/obj/item/clothing/head/helmet/space/vox/civ/trader //brownhelmet + name = "alien helmet" + icon_state = "vox-pressure" + item_state = "vox-pressure" + desc = "Hey, wasn't this a prop in \'The Abyss\'?" + +/obj/item/clothing/suit/space/vox/civ/trader/carapace //carapace + name = "alien carapace armor" + icon_state = "vox-carapace" + item_state = "vox-carapace" + desc = "An armored, segmented carapace with glowing purple lights. It looks like someone stripped most of the armor off." + +/obj/item/clothing/head/helmet/space/vox/civ/trader/carapace //carapace helmet + name = "alien visor" + icon_state = "vox-carapace" + item_state = "vox-carapace" + desc = "A glowing visor, perhaps stolen from a depressed Cylon." + flash_protection = FLASH_PROTECTION_MAJOR + +/obj/item/clothing/suit/space/vox/civ/trader/medic // aquasuit + name = "alien armor" + icon_state = "vox-medic" + item_state = "vox-medic" + desc = "An almost organic looking nonhuman pressure suit." + +/obj/item/clothing/head/helmet/space/vox/civ/trader/medic //aquahelmet + name = "alien goggled helmet" + icon_state = "vox-medic" + item_state = "vox-medic" + desc = "An alien helmet with enormous goggled lenses." + +/obj/item/clothing/suit/space/vox/civ/trader/stealth // blacksuit + name = "alien stealth suit" + icon_state = "vox-stealth" + item_state = "vox-stealth" + desc = "A sleek black suit. It seems to have a tail, and is very heavy." + +/obj/item/clothing/head/helmet/space/vox/civ/trader/stealth //blackhelmet + name = "alien stealth helmet" + icon_state = "vox-stealth" + item_state = "vox-stealth" + desc = "A smoothly contoured, matte-black alien helmet.?" + +// Vox Casual////////////////////////////////////////////// +// Civvie +/obj/item/clothing/suit/space/vox/civ + name = "vox assistant pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers." + icon = 'icons/mob/suit_yw.dmi' + icon_state = "vox-civ-assistant" + item_state = "vox-pressure-normal" + allowed = list(/obj/item/weapon/tank,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 25) + pressure_resistance = 5 * ONE_ATMOSPHERE + +/obj/item/clothing/head/helmet/space/vox/civ + name = "vox assistant pressure helmet" + icon = 'icons/mob/head_yw.dmi' + icon_state = "vox-civ-assistant" + item_state = "vox-pressure-normal" + desc = "A very alien-looking helmet for vox crewmembers." + flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) + body_parts_covered = HEAD|FACE|EYES + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 25) + pressure_resistance = 5 * ONE_ATMOSPHERE + flash_protection = FLASH_PROTECTION_NONE + +/obj/item/clothing/suit/space/vox/civ/bartender + name = "vox bartender pressure suit" + icon_state = "vox-civ-bartender" + +/obj/item/clothing/head/helmet/space/vox/civ/bartender + name = "vox bartender pressure helmet" + icon_state = "vox-civ-bartender" + +/obj/item/clothing/suit/space/vox/civ/chef + name = "vox chef pressure suit" + icon_state = "vox-civ-chef" + +/obj/item/clothing/head/helmet/space/vox/civ/chef + name = "vox chef pressure helmet" + icon_state = "vox-civ-chef" + +/obj/item/clothing/suit/space/vox/civ/botanist + name = "vox botanist pressure suit" + icon_state = "vox-civ-botanist" + +/obj/item/clothing/head/helmet/space/vox/civ/botanist + name = "vox botanist pressure helmet" + icon_state = "vox-civ-botanist" + +/obj/item/clothing/suit/space/vox/civ/janitor + name = "vox janitor pressure suit" + icon_state = "vox-civ-janitor" + +/obj/item/clothing/head/helmet/space/vox/civ/janitor + name = "vox janitor pressure helmet" + icon_state = "vox-civ-janitor" + +/obj/item/clothing/suit/space/vox/civ/cargo + name = "vox cargo pressure suit" + icon_state = "vox-civ-cargo" + +/obj/item/clothing/head/helmet/space/vox/civ/cargo + name = "vox cargo pressure helmet" + icon_state = "vox-civ-cargo" + +/obj/item/clothing/suit/space/vox/civ/mechanic + name = "vox mechanic pressure suit" + icon_state = "vox-civ-mechanic" + +/obj/item/clothing/head/helmet/space/vox/civ/mechanic + name = "vox mechanic pressure helmet" + icon_state = "vox-civ-mechanic" + +/obj/item/clothing/suit/space/vox/civ/librarian + name = "vox librarian pressure suit" + icon_state = "vox-civ-librarian" + +/obj/item/clothing/head/helmet/space/vox/civ/librarian + name = "vox librarian pressure helmet" + icon_state = "vox-civ-librarian" + +/obj/item/clothing/suit/space/vox/civ/chaplain + name = "vox chaplain pressure suit" + icon_state = "vox-civ-chaplain" + +/obj/item/clothing/head/helmet/space/vox/civ/chaplain + name = "vox chaplain pressure helmet" + icon_state = "vox-civ-chaplain" + +/obj/item/clothing/suit/space/vox/civ/mining + name = "vox mining pressure suit" + icon_state = "vox-civ-mining" + +/obj/item/clothing/head/helmet/space/vox/civ/mining + name = "vox mining pressure helmet" + icon_state = "vox-civ-mining" + +//Engineering +/obj/item/clothing/suit/space/vox/civ/engineer + name = "vox engineer pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one comes with more radiation protection." + icon_state = "vox-civ-engineer" + item_state = "vox-pressure-engineer" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 50) + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/tool) + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE + pressure_resistance = 200 * ONE_ATMOSPHERE + +/obj/item/clothing/head/helmet/space/vox/civ/engineer + name = "vox engineer pressure helmet" + icon_state = "vox-civ-engineer" + item_state = "vox-pressure-engineer" + desc = "A very alien-looking helmet for vox crewmembers. This one comes with more radiation protection." + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 50) + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE + pressure_resistance = 200 * ONE_ATMOSPHERE + flash_protection = FLASH_PROTECTION_MAJOR + +/obj/item/clothing/suit/space/vox/civ/engineer/atmos + name = "vox atmos pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. Has some heat protection." + icon_state = "vox-civ-atmos" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 10) + max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE + +/obj/item/clothing/head/helmet/space/vox/civ/engineer/atmos + name = "vox atmos pressure helmet" + icon_state = "vox-civ-atmos" + desc = "A very alien-looking helmet for vox crewmembers. Has some heat protection." + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 0, bio = 100, rad = 10) + max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + +/obj/item/clothing/suit/space/vox/civ/engineer/ce + name = "vox chief engineer pressure suit" + desc = "A more advanced pressure suit made for vox crewmembers. Has some radiation and heat protection." + icon_state = "vox-civ-ce" + armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) + max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE + +/obj/item/clothing/head/helmet/space/vox/civ/engineer/ce + name = "vox chief engineer pressure helmet" + icon_state = "vox-civ-ce" + desc = "A very alien-looking helmet for vox crewmembers. Has some radiation and heat protection." + max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + +//Science +/obj/item/clothing/suit/space/vox/civ/science + name = "vox science pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for SCIENCE!" + icon_state = "vox-civ-science" + item_state = "vox-pressure-science" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 10, bio = 100, rad = 25) + +/obj/item/clothing/head/helmet/space/vox/civ/science + name = "vox science pressure helmet" + icon_state = "vox-civ-science" + item_state = "vox-pressure-science" + desc = "A very alien-looking helmet for vox crewmembers. This one is for SCIENCE!" + armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 10, bio = 100, rad = 25) + +/obj/item/clothing/suit/space/vox/civ/science/rd + name = "vox research director pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for the head of SCIENCE!" + icon_state = "vox-civ-rd" + +/obj/item/clothing/head/helmet/space/vox/civ/science/rd + name = "vox research director pressure helmet" + icon_state = "vox-civ-rd" + desc = "A very alien-looking helmet for vox crewmembers. This one is for head of SCIENCE!" + +/obj/item/clothing/suit/space/vox/civ/science/roboticist + name = "vox roboticist pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for roboticists." + icon_state = "vox-civ-roboticist" + +/obj/item/clothing/head/helmet/space/vox/civ/science/roboticist + name = "vox roboticist pressure helmet" + icon_state = "vox-civ-roboticist" + desc = "A very alien-looking helmet for vox crewmembers. This one is for roboticists." + flash_protection = FLASH_PROTECTION_MAJOR + + +//Med/Sci +/obj/item/clothing/suit/space/vox/civ/medical + name = "vox medical pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for medical personnel." + icon_state = "vox-civ-medical" + item_state = "vox-pressure-medical" + allowed = list(/obj/item/weapon/tank,/obj/item/device/flashlight,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) + pressure_resistance = 40 * ONE_ATMOSPHERE + +/obj/item/clothing/head/helmet/space/vox/civ/medical + name = "vox medical pressure helmet" + icon_state = "vox-civ-medical" + item_state = "vox-pressure-medical" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for medical personnel." + pressure_resistance = 40 * ONE_ATMOSPHERE + +/obj/item/clothing/suit/space/vox/civ/medical/virologist + name = "vox virologist pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for virologists." + icon_state = "vox-civ-virologist" + +/obj/item/clothing/head/helmet/space/vox/civ/medical/virologist + name = "vox virologist pressure helmet" + icon_state = "vox-civ-virologist" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for virologists." + +/obj/item/clothing/suit/space/vox/civ/medical/chemist + name = "vox chemist pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for chemists." + icon_state = "vox-civ-chemist" + +/obj/item/clothing/head/helmet/space/vox/civ/medical/chemist + name = "vox chemist pressure helmet" + icon_state = "vox-civ-chemist" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for chemists." + +/obj/item/clothing/suit/space/vox/civ/medical/geneticist + name = "vox geneticist pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for geneticists." + icon_state = "vox-civ-geneticist" + +/obj/item/clothing/head/helmet/space/vox/civ/medical/geneticist + name = "vox geneticist pressure helmet" + icon_state = "vox-civ-geneticist" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for geneticists." + +/obj/item/clothing/suit/space/vox/civ/medical/paramedic + name = "vox paramedic pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for paramedics." + icon_state = "vox-civ-paramedic" + allowed = list(/obj/item/weapon/tank,/obj/item/device/flashlight,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/roller) + +/obj/item/clothing/head/helmet/space/vox/civ/medical/paramedic + name = "vox paramedic pressure helmet" + icon_state = "vox-civ-paramedic" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for paramedics." + +/obj/item/clothing/suit/space/vox/civ/medical/cmo + name = "vox cmo pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for the CMO." + icon_state = "vox-civ-cmo" + allowed = list(/obj/item/weapon/tank,/obj/item/device/flashlight,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/roller) + +/obj/item/clothing/head/helmet/space/vox/civ/medical/cmo + name = "vox cmo pressure helmet" + icon_state = "vox-civ-cmo" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for the CMO." + +//Security +/obj/item/clothing/suit/space/vox/civ/security + name = "vox security pressure suit" + desc = "A cheap and oddly-shaped pressure suit made for vox crewmembers. This one is for security aligned vox." + icon_state = "vox-civ-security" + item_state = "vox-pressure-security" + armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) + allowed = list(/obj/item/weapon/tank,/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/melee/baton) + pressure_resistance = 40 * ONE_ATMOSPHERE + +/obj/item/clothing/head/helmet/space/vox/civ/security + name = "vox security pressure helmet" + icon_state = "vox-civ-security" + item_state = "vox-pressure-security" + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for security aligned vox." + pressure_resistance = 40 * ONE_ATMOSPHERE + flash_protection = FLASH_PROTECTION_MAJOR diff --git a/code/modules/clothing/suits/armor_yw.dm b/code/modules/clothing/suits/armor_yw.dm index ee3b81b800..345ef2fdd9 100644 --- a/code/modules/clothing/suits/armor_yw.dm +++ b/code/modules/clothing/suits/armor_yw.dm @@ -1,9 +1,9 @@ /obj/item/clothing/suit/armor/yw/blueshield name = "Blue Shield Security Armor" desc = "An armored vest with the badge of a Blueshield Lieutenant." - icon = 'icons/mob/suits_yw.dmi' + icon = 'icons/mob/suit_yw.dmi' icon_state = "blueshield" - icon_override = 'icons/mob/suits_yw.dmi' + icon_override = 'icons/mob/suit_yw.dmi' item_state = "blueshield_s" blood_overlay_type = "armor" armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0) @@ -12,9 +12,9 @@ /obj/item/clothing/suit/storage/toggle/yw/secjacket name = "security jacket" desc = "A sturdy black jacket with reinforced fabric. Bears insignia of NT corporate security." - icon = 'icons/mob/suits_yw.dmi' + icon = 'icons/mob/suit_yw.dmi' icon_state = "secjacket_open" - icon_override = 'icons/mob/suits_yw.dmi' + icon_override = 'icons/mob/suit_yw.dmi' item_state = "secjacket_open_s" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS armor = list(melee = 15, bullet = 10, laser = 15, energy = 5, bomb = 15, bio = 0, rad = 0) @@ -24,9 +24,9 @@ /obj/item/clothing/suit/armor/yw/blueshieldcoat name = "Blue Shield Security Coat" desc = "NT deluxe ripoff. You finally have your own coat." - icon = 'icons/mob/suits_yw.dmi' + icon = 'icons/mob/suit_yw.dmi' icon_state = "blueshieldcoat" - icon_override = 'icons/mob/suits_yw.dmi' + icon_override = 'icons/mob/suit_yw.dmi' item_state = "blueshieldcoat_s" blood_overlay_type = "armor" armor = list(melee = 20, bullet = 15, laser = 15, energy = 10, bomb = 10, bio = 0, rad = 0) @@ -37,17 +37,17 @@ /obj/item/clothing/suit/storage/hazardvest/yw/brigphysician name = "Brig Physician Vest" desc = "A vest often worn by doctors caring for inmates." - icon = 'icons/mob/suits_yw.dmi' + icon = 'icons/mob/suit_yw.dmi' icon_state = "brigphysician-vest" - icon_override = 'icons/mob/suits_yw.dmi' + icon_override = 'icons/mob/suit_yw.dmi' item_state = "brigphysician-vest_s" armor = list(melee = 15, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 50, rad = 15) /obj/item/clothing/suit/storage/hazardvest/yw/Paramedic name = "Paramedic Vest" desc = "A hazard vest used in the recovery of bodies." - icon = 'icons/mob/suits_yw.dmi' + icon = 'icons/mob/suit_yw.dmi' icon_state = "paramedic-vest" - icon_override = 'icons/mob/suits_yw.dmi' + icon_override = 'icons/mob/suit_yw.dmi' item_state = "paramedic-vest_us" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 15, bio = 50, rad = 50) \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm new file mode 100644 index 0000000000..d31540fcda --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/animal/vox.dm @@ -0,0 +1,166 @@ +/mob/living/simple_mob/vox + min_oxy = 0 + max_oxy = 0 + min_tox = 5 + max_tox = 0 + min_co2 = 0 + max_co2 = 5 + min_n2 = 0 //breathe N2 + max_n2 = 0 + +/mob/living/simple_mob/vox/armalis + name = "serpentine alien" + real_name = "serpentine alien" + desc = "A one-eyed, serpentine creature, half-machine, easily nine feet from tail to beak!" + icon = 'icons/mob/vox.dmi' + icon_state = "armalis" + icon_living = "armalis" + maxHealth = 500 + health = 500 + response_harm = "slashes at the" + harm_intent_damage = 0 + melee_damage_lower = 30 + melee_damage_upper = 40 + attacktext = "slammed its enormous claws into" + movement_cooldown = 2 +// environment_smash_flags = SMASH_LIGHT_STRUCTURES | SMASH_CONTAINERS | SMASH_WALLS // WALLS Temporary commenting, YW - Hv3 + attack_sound = 'sound/weapons/bladeslice.ogg' + status_flags = 0 + max_oxy = 0 + + var/armour = null + var/amp = null + var/quills = 3 + +/mob/living/simple_mob/vox/armalis/death(var/gibbed = FALSE) + ..(TRUE) + var/turf/gloc = get_turf(loc) + visible_message("[src] shudders violently and explodes!","You feel your body rupture!") + gib() + explosion(gloc, -1, -1, 3, 5) + +/mob/living/simple_mob/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + base_attack_cooldown = 5 + if(O.force) + if(O.force >= 25) + var/damage = O.force + if (O.damtype == HALLOSS) + damage = 0 + health -= damage + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("[src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("The [O] bounces harmlessly off of [src]. ") + else + to_chat(usr, "This weapon is ineffective, it does no damage.") + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("[user] gently taps [src] with the [O]. ") + +/mob/living/simple_mob/vox/armalis/verb/fire_quill(mob/target as mob in oview()) + + + set name = "Fire quill" + set desc = "Fires a viciously pointed quill at a high speed." + set category = "Alien" + + if(quills<=0) + return + + to_chat(src, "You launch a razor-sharp quill at [target]!") + for(var/mob/O in oviewers()) + if ((O.client && !( O.blinded ))) + to_chat(O, "[src] launches a razor-sharp quill at [target]!") + + var/obj/item/weapon/arrow/quill/Q = new(loc) + Q.fingerprintslast = src.ckey + Q.throw_at(target,10,30) + quills-- + + spawn(100) + to_chat(src, "You feel a fresh quill slide into place.") + quills++ + +/mob/living/simple_mob/vox/armalis/verb/message_mob() + set category = "Alien" + set name = "Commune with creature" + set desc = "Send a telepathic message to an unlucky recipient." + + var/list/targets = list() + var/target = null + var/text = null + + targets += getmobs() //Fill list, prompt user with list + target = input("Select a creature!", "Speak to creature", null, null) as null|anything in targets + text = input("What would you like to say?", "Speak to creature", null, null) + + if (!target || !text) + return + + var/mob/M = targets[target] + + if(istype(M, /mob/observer/dead) || M.stat == DEAD) + to_chat(src, "Not even the armalis can speak to the dead.") + return + + to_chat(M, "Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]") + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.species.name == "Vox") + return + to_chat(H, "Your nose begins to bleed...") + H.drip(1) + +/mob/living/simple_mob/vox/armalis/verb/shriek() + set category = "Alien" + set name = "Shriek" + set desc = "Give voice to a psychic shriek." + +/mob/living/simple_mob/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(istype(O,/obj/item/vox/armalis_armour)) + user.drop_item(O, src, force_drop = 1) + armour = O + movement_cooldown = 4 + maxHealth += 200 + health += 200 + visible_message("[src] is quickly outfitted in [O] by [user].","You quickly outfit [src] in [O].") + regenerate_icons() + return + if(istype(O,/obj/item/vox/armalis_amp)) + user.drop_item(O, src, force_drop = 1) + amp = O + visible_message("[src] is quickly outfitted in [O] by [user].","You quickly outfit [src] in [O].") + regenerate_icons() + return + return ..() + +/mob/living/simple_mob/vox/armalis/regenerate_icons() + + overlays = list() + if(armour) + var/icon/armour = image('icons/mob/vox.dmi',"armour") + movement_cooldown = 4 + overlays += armour + if(amp) + var/icon/amp = image('icons/mob/vox.dmi',"amplifier") + overlays += amp + return + +/obj/item/vox/armalis_armour + + name = "strange armour" + desc = "Hulking reinforced armour for something huge." + icon = 'icons/obj/clothing/suits.dmi' + icon_state = "armalis_armour" + item_state = "armalis_armour" + +/obj/item/vox/armalis_amp + + name = "strange lenses" + desc = "A series of metallic lenses and chains." + icon = 'icons/obj/clothing/hats.dmi' + icon_state = "amp" + item_state = "amp" diff --git a/icons/mob/head.dmi.orig b/icons/mob/head.dmi.orig deleted file mode 100644 index 1ac40803aa..0000000000 Binary files a/icons/mob/head.dmi.orig and /dev/null differ diff --git a/icons/mob/items/lefthand_hats.dmi b/icons/mob/items/lefthand_hats.dmi index 6be64d7a7d..dd46974e14 100644 Binary files a/icons/mob/items/lefthand_hats.dmi and b/icons/mob/items/lefthand_hats.dmi differ diff --git a/icons/mob/items/lefthand_suits.dmi b/icons/mob/items/lefthand_suits.dmi index 19b8980747..d39cad7cbc 100644 Binary files a/icons/mob/items/lefthand_suits.dmi and b/icons/mob/items/lefthand_suits.dmi differ diff --git a/icons/mob/items/righthand_hats.dmi b/icons/mob/items/righthand_hats.dmi index 8bf6d4155d..9bf673f154 100644 Binary files a/icons/mob/items/righthand_hats.dmi and b/icons/mob/items/righthand_hats.dmi differ diff --git a/icons/mob/items/righthand_suits.dmi b/icons/mob/items/righthand_suits.dmi index ef19860f96..a4c00535c8 100644 Binary files a/icons/mob/items/righthand_suits.dmi and b/icons/mob/items/righthand_suits.dmi differ diff --git a/icons/mob/species/vox/head_yw.dmi b/icons/mob/species/vox/head_yw.dmi new file mode 100644 index 0000000000..9bb6830a75 Binary files /dev/null and b/icons/mob/species/vox/head_yw.dmi differ diff --git a/icons/mob/species/vox/suit_yw.dmi b/icons/mob/species/vox/suit_yw.dmi new file mode 100644 index 0000000000..0d2cde0f6d Binary files /dev/null and b/icons/mob/species/vox/suit_yw.dmi differ diff --git a/icons/mob/suits_yw.dmi b/icons/mob/suit_yw.dmi similarity index 100% rename from icons/mob/suits_yw.dmi rename to icons/mob/suit_yw.dmi diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi new file mode 100644 index 0000000000..6abba5c9e0 Binary files /dev/null and b/icons/mob/vox.dmi differ diff --git a/icons/obj/clothing/hats_yw.dmi b/icons/obj/clothing/hats_yw.dmi new file mode 100644 index 0000000000..0a9dcecabb Binary files /dev/null and b/icons/obj/clothing/hats_yw.dmi differ diff --git a/icons/obj/clothing/suits_yw.dmi b/icons/obj/clothing/suits_yw.dmi new file mode 100644 index 0000000000..cdf63e83ec Binary files /dev/null and b/icons/obj/clothing/suits_yw.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 6d9906f329..f1dcd54bd8 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -447,6 +447,7 @@ #include "code\game\shuttle_engines.dm" #include "code\game\skincmd.dm" #include "code\game\sound.dm" +#include "code\game\supplyshuttle.dm" #include "code\game\trader_visit.dm" #include "code\game\world.dm" #include "code\game\antagonist\_antagonist_setup.dm" @@ -2357,6 +2358,7 @@ #include "code\modules\mob\living\simple_mob\simple_mob.dm" #include "code\modules\mob\living\simple_mob\simple_mob_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\vox.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_powers.dm"