From 6c90edd6f6750b5cb191675b38a19741ecf6bc91 Mon Sep 17 00:00:00 2001 From: "mport2004@gmail.com" Date: Sun, 28 Aug 2011 07:05:06 +0000 Subject: [PATCH] Moved the space suits into the clothing module section, will do more later. Forgot to add the bioprotection to the actual radiation suits. Bedsheets actually use the bedsheet item icon now. Tracking implant ID's work again. Certain Critters can be harvested by the chef's knives for meat. Renamed a few critter files. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2053 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/clothing/gimmick.dm | 13 -- code/defines/obj/clothing/head.dm | 183 +--------------- code/defines/obj/clothing/suit.dm | 199 +---------------- code/defines/obj/weapon.dm | 2 +- code/game/objects/devices/flash.dm | 1 + .../objects/items/weapons/implants/implant.dm | 7 +- .../items/weapons/implants/implantpad.dm | 19 +- code/modules/clothing/glasses.dm | 19 ++ code/modules/clothing/glasses/glasses.dm | 19 -- code/modules/clothing/spacesuits.dm | 35 +++ .../clothing/spacesuits/miscellaneous.dm | 62 ++++++ code/modules/clothing/spacesuits/ninja.dm | 63 ++++++ code/modules/clothing/spacesuits/rig.dm | 25 +++ code/modules/clothing/spacesuits/syndi.dm | 201 ++++++++++++++++++ code/modules/clothing/spacesuits/void.dm | 14 ++ .../critters/{adefine.dm => critter.dm} | 1 + .../critters/{critterAI.dm => critter_AI.dm} | 0 .../{defenses.dm => critter_defenses.dm} | 12 +- code/modules/critters/critters.dm | 78 +++++-- icons/mob/head.dmi | Bin 62685 -> 62683 bytes icons/mob/hud.dmi | Bin 2484 -> 2489 bytes icons/mob/suit.dmi | Bin 173962 -> 173962 bytes icons/obj/clothing/hats.dmi | Bin 22655 -> 22656 bytes tgstation.dme | 14 +- 24 files changed, 518 insertions(+), 449 deletions(-) create mode 100644 code/modules/clothing/glasses.dm create mode 100644 code/modules/clothing/spacesuits.dm create mode 100644 code/modules/clothing/spacesuits/miscellaneous.dm create mode 100644 code/modules/clothing/spacesuits/ninja.dm create mode 100644 code/modules/clothing/spacesuits/rig.dm create mode 100644 code/modules/clothing/spacesuits/syndi.dm create mode 100644 code/modules/clothing/spacesuits/void.dm rename code/modules/critters/{adefine.dm => critter.dm} (92%) rename code/modules/critters/{critterAI.dm => critter_AI.dm} (100%) rename code/modules/critters/{defenses.dm => critter_defenses.dm} (86%) diff --git a/code/defines/obj/clothing/gimmick.dm b/code/defines/obj/clothing/gimmick.dm index 702fb30e48e..1b4d5524e0c 100644 --- a/code/defines/obj/clothing/gimmick.dm +++ b/code/defines/obj/clothing/gimmick.dm @@ -24,19 +24,6 @@ mob.Blend(earbit, ICON_OVERLAY) mob2.Blend(earbit2, ICON_OVERLAY) -/obj/item/clothing/head/helmet/space/santahat - name = "Santa's hat" - desc = "Ho ho ho. Merrry X-mas!" - icon_state = "santahat" - -/obj/item/clothing/suit/space/santa - name = "Santa's suit" - desc = "Festive!" - icon_state = "santa" - item_state = "santa" - slowdown = 1 - flags = FPRINT | TABLEPASS | ONESIZEFITSALL | SUITSPACE - /obj/item/clothing/shoes/red name = "red shoes" desc = "Stylish red shoes." diff --git a/code/defines/obj/clothing/head.dm b/code/defines/obj/clothing/head.dm index 153ea575a5c..d675dee55b4 100644 --- a/code/defines/obj/clothing/head.dm +++ b/code/defines/obj/clothing/head.dm @@ -13,7 +13,7 @@ desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" radiation_protection = 0.35 flags = FPRINT|TABLEPASS|HEADSPACE|HEADCOVERSEYES|HEADCOVERSMOUTH - armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 100) + armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 60, rad = 100) /obj/item/clothing/head/bomb_hood name = "bomb hood" @@ -162,141 +162,6 @@ flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES item_state = "helmet" -/obj/item/clothing/head/helmet/space - name = "Space helmet" - icon_state = "space" - desc = "A special helmet designed for work in a hazardous, low-pressure environment." - flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH - see_face = 0.0 - item_state = "space" - permeability_coefficient = 0.01 - armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 25, rad = 25) - -/obj/item/clothing/head/helmet/space/engineering - name = "Engineering space helmet" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Painted in Engineering Orange to designate its department of origin." - icon_state = "helm_engineering0" - item_state = "helm-orange" - var/brightness_on = 4 - var/on = 0 - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - -/obj/item/clothing/head/helmet/space/command - name = "Command space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Painted in Command Blue to designate its department of origin." - icon_state = "helm-command" - item_state = "helm-command" - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 20, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - -/obj/item/clothing/head/helmet/space/command/chief_engineer - name = "Chief engineer space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief engineer." - icon_state = "helm_ce0" - item_state = "helm-ce" - var/brightness_on = 4 - var/on = 0 - -/obj/item/clothing/head/helmet/space/command/chief_medical_officer - name = "Chief medical offier space helmet" - desc = "A special helmet designed to work in a hazardous, low-pressure environment. Bears the insignia of the chief medical officer." - icon_state = "helm-cmo" - item_state = "helm-cmo" - -/obj/item/clothing/head/helmet/space/capspace - name = "space helmet" - icon_state = "capspace" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." - flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES - see_face = 0.0 - item_state = "capspace" - permeability_coefficient = 0.01 - armor = list(melee = 60, bullet = 50, laser = 50, taser = 25, bomb = 50, bio = 20, rad = 20) - -/obj/item/clothing/head/helmet/space/rig - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." - name = "rig helmet" - icon_state = "rig" - item_state = "rig_helm" - radiation_protection = 0.25 - armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - -/obj/item/clothing/head/helmet/space/syndicate - name = "red space helmet" - desc = "Top secret Spess Helmet." - icon_state = "syndicate" - item_state = "syndicate" - desc = "Has a tag: Totally not property of an enemy corporation, honest." - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/head/helmet/space/syndicate/elite - name = "black space helmet" - desc = "Professionals Have Standards, Be Polite, Be Efficient, Have a plan to kill everyone you meet." - icon_state = "syndicate-helm-black" - item_state = "syndicate-helm-black" - armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/head/helmet/space/syndicate/elite/leader - name = "black space helmet" - icon_state = "syndicate-helm-black-red" - item_state = "syndicate-helm-black-red" - -/obj/item/clothing/head/helmet/space/syndicate/green - name = "Green Space Helmet" - icon_state = "syndicate-helm-green" - item_state = "syndicate-helm-green" - -/obj/item/clothing/head/helmet/space/syndicate/green/dark - name = "Dark Green Space Helmet" - icon_state = "syndicate-helm-green-dark" - item_state = "syndicate-helm-green-dark" - -/*/obj/item/clothing/head/helmet/space/syndicate/orange - name = "Orange Space Helmet" - icon_state = "syndicate-helm-orange" - item_state = "syndicate-helm-orange"*/ //As I said: Best used for engineering suits - -/*/obj/item/clothing/head/helmet/space/syndicate/blue - name = "Blue Space Helmet" - icon_state = "syndicate-helm-blue" - item_state = "syndicate-helm-blue"*/ - -/obj/item/clothing/head/helmet/space/syndicate/black - name = "Black Space Helmet" - icon_state = "syndicate-helm-black" - item_state = "syndicate-helm-black" - -/obj/item/clothing/head/helmet/space/syndicate/black/green - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-green" - item_state = "syndicate-helm-black-green" - -/obj/item/clothing/head/helmet/space/syndicate/black/blue - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-blue" - item_state = "syndicate-helm-black-blue" - -/*/obj/item/clothing/head/helmet/space/syndicate/black/med - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-med" - item_state = "syndicate-helm-black"*/ - -/obj/item/clothing/head/helmet/space/syndicate/black/orange - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-orange" - item_state = "syndicate-helm-black" - -/obj/item/clothing/head/helmet/space/syndicate/black/red - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-red" - item_state = "syndicate-helm-black-red" - -/*/obj/item/clothing/head/helmet/space/syndicate/black/engie - name = "Black Space Helmet" - icon_state = "syndicate-helm-black-engie" - item_state = "syndicate-helm-black"*/ - /obj/item/clothing/head/syndicatefake name = "red space helmet replica" icon_state = "syndicate" @@ -304,36 +169,6 @@ desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" see_face = 0.0 -/obj/item/clothing/head/helmet/space/nasavoid - name = "NASA Void Helmet" - desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance." - icon_state = "void" - item_state = "void" - see_face = 1 - -/obj/item/clothing/head/helmet/space/space_ninja - desc = "What may appear to be a simple black garment is in fact a highly sophisticated nano-weave helmet. Standard issue ninja gear." - name = "ninja hood" - icon_state = "s-ninja" - item_state = "s-ninja_mask" - radiation_protection = 0.25 - see_face = 1 - allowed = list(/obj/item/weapon/cell) - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/head/helmet/space/deathsquad - name = "deathsquad helmet" - desc = "That's not red paint. That's real blood." - icon_state = "deathsquad" - item_state = "deathsquad" - armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/head/helmet/space/deathsquad/beret - name = "officer's beret" - desc = "An armored beret commonly used by special operations officers." - icon_state = "beret_badge" - armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) - /obj/item/clothing/head/helmet/swat name = "swat helmet" desc = "Used by highly trained Swat Members." @@ -434,22 +269,6 @@ flags = FPRINT|TABLEPASS|SUITSPACE|HEADCOVERSEYES armor = list(melee = 82, bullet = 15, laser = 5, taser = 5, bomb = 5, bio = 2, rad = 0) - - - - - - -//Themed space suits for different nuke rounds (WIP) - -/obj/item/clothing/head/helmet/space/pirate - name = "pirate hat" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - - /obj/item/clothing/head/helmet/cap name = "Captain's cap" desc = "For irresponsible Captains." diff --git a/code/defines/obj/clothing/suit.dm b/code/defines/obj/clothing/suit.dm index 8c9c9974047..58463409125 100644 --- a/code/defines/obj/clothing/suit.dm +++ b/code/defines/obj/clothing/suit.dm @@ -421,7 +421,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) slowdown = 1.3 - armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 0, rad = 100) + armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 60, rad = 100) /obj/item/clothing/suit/fire/heavy name = "firesuit" @@ -432,132 +432,6 @@ protective_temperature = 10000 slowdown = 1.7 -// SPACE SUITS - -/obj/item/clothing/suit/space - name = "Space suit" - desc = "A suit that protects against low pressure environments. Has a big 13 on the back." - icon_state = "space" - item_state = "s_suit" - w_class = 4//bulky item - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.02 - heat_transfer_coefficient = 0.02 - radiation_protection = 0.25 - protective_temperature = 1000 - flags = FPRINT | TABLEPASS | SUITSPACE - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) - slowdown = 3 - armor = list(melee = 20, bullet = 5, laser = 10, taser = 3, bomb = 15, bio = 30, rad = 40) - - -/obj/item/clothing/head/helmet/space/rig - name = "Rig helmet" - desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." - icon_state = "rig-engineering" - item_state = "rig_helm" - armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - allowed = list(/obj/item/device/flashlight) - -/obj/item/clothing/head/helmet/space/rig/mining - icon_state = "rig-mining" - item_state = "rig_helm" - -/obj/item/clothing/suit/space/rig - name = "Rig suit" - desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." - icon_state = "rig-engineering" - item_state = "rig_suit" - radiation_protection = 0.50 - slowdown = 2 - armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner) - -/obj/item/clothing/suit/space/rig/mining - icon_state = "rig-mining" - item_state = "rig_suit" - - -/obj/item/clothing/suit/space/syndicate - name = "red space suit" - icon_state = "syndicate" - item_state = "space_suit_syndicate" - desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!" - 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/handcuffs,/obj/item/weapon/tank/emergency_oxygen) - slowdown = 1 - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - -/obj/item/clothing/suit/space/syndicate/elite - name = "black space suit" - desc = "A space ready suit with special armor inside designed to allow the wearer to take quite a beating." - icon_state = "syndicate-black" - item_state = "syndicate-black" - 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/emergency_oxygen) - slowdown = 1 - armor = list(melee = 80, bullet = 60, laser = 50, taser = 25, bomb = 50, bio = 10, rad = 0) - -/obj/item/clothing/suit/space/syndicate/elite/leader - name = "black space suit" - icon_state = "syndicate-black-red" - item_state = "syndicate-black-red" - -/obj/item/clothing/suit/space/syndicate/green - name = "Green Space Suit" - icon_state = "syndicate-green" - item_state = "syndicate-green" - -/obj/item/clothing/suit/space/syndicate/green/dark - name = "Dark Green Space Suit" - icon_state = "syndicate-green-dark" - item_state = "syndicate-green-dark" - -/obj/item/clothing/suit/space/syndicate/orange - name = "Orange Space Suit" - icon_state = "syndicate-orange" - item_state = "syndicate-orange" - -/obj/item/clothing/suit/space/syndicate/blue - name = "Blue Space Suit" - icon_state = "syndicate-blue" - item_state = "syndicate-blue" - -/obj/item/clothing/suit/space/syndicate/black - name = "Black Space Suit" - icon_state = "syndicate-black" - item_state = "syndicate-black" - -/obj/item/clothing/suit/space/syndicate/black/green - name = "Black and Green Space Suit" - icon_state = "syndicate-black-green" - item_state = "syndicate-black-green" - -/obj/item/clothing/suit/space/syndicate/black/blue - name = "Black and Blue Space Suit" - icon_state = "syndicate-black-blue" - item_state = "syndicate-black-blue" - -/obj/item/clothing/suit/space/syndicate/black/med - name = "Green Space Suit" - icon_state = "syndicate-black-med" - item_state = "syndicate-black" - -/obj/item/clothing/suit/space/syndicate/black/orange - name = "Black and Orange Space Suit" - icon_state = "syndicate-black-orange" - item_state = "syndicate-black" - -/obj/item/clothing/suit/space/syndicate/black/red - name = "Black and Red Space Suit" - icon_state = "syndicate-black-red" - item_state = "syndicate-black-red" - -/obj/item/clothing/suit/space/syndicate/black/engie - name = "Black Engineering Space Suit" - icon_state = "syndicate-black-engie" - item_state = "syndicate-black" - /obj/item/clothing/suit/syndicatefake name = "red space suit replica" icon_state = "syndicate" @@ -567,77 +441,6 @@ flags = FPRINT | TABLEPASS | ONESIZEFITSALL allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy) -/obj/item/clothing/suit/space/nasavoid - name = "NASA Voidsuit" - icon_state = "void" - item_state = "void" - desc = "A high tech, NASA Centcom branch designed, dark red Space suit. Used for AI satellite maintenance." - allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/tank/emergency_oxygen) - slowdown = 1.5 - -/obj/item/clothing/suit/space/space_ninja - name = "ninja suit" - desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." - icon_state = "s-ninja" - item_state = "s-ninja_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/cell) - radiation_protection = 0.75 - slowdown = 1 - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - - var - //Important parts of the suit. - mob/living/carbon/affecting = null//The wearer. - obj/item/weapon/cell/cell//Starts out with a high-capacity cell using New(). - datum/effects/system/spark_spread/spark_system//To create sparks. - reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","radium","hyronalin")//The reagents ids which are added to the suit at New(). - stored_research[]//For stealing station research. - obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk. - - //Other articles of ninja gear worn together, used to easily reference them after initializing. - obj/item/clothing/head/helmet/space/space_ninja/n_hood - obj/item/clothing/shoes/space_ninja/n_shoes - obj/item/clothing/gloves/space_ninja/n_gloves - - //Main function variables. - s_initialized = 0//Suit starts off. - s_coold = 0//If the suit is on cooldown. Can be used to attach different cooldowns to abilities. Ticks down every second based on suit ntick(). - s_cost = 5.0//Base energy cost each ntick. - s_acost = 25.0//Additional cost for additional powers active. - k_cost = 200.0//Kamikaze energy cost each ntick. - k_damage = 1.0//Brute damage potentially done by Kamikaze each ntick. - s_delay = 40.0//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability. - a_transfer = 20.0//How much reagent is transferred when injecting. - r_maxamount = 80.0//How much reagent in total there is. - - //Support function variables. - spideros = 0//Mode of SpiderOS. This can change so I won't bother listing the modes here (0 is hub). Check ninja_equipment.dm for how it all works. - s_active = 0//Stealth off. - s_busy = 0//Is the suit busy with a process? Like AI hacking. Used for safety functions. - kamikaze = 0//Kamikaze on or off. - k_unlock = 0//To unlock Kamikaze. - - //Ability function variables. - s_bombs = 10.0//Number of starting ninja smoke bombs. - a_boost = 3.0//Number of adrenaline boosters. - - //Onboard AI related variables. - mob/living/silicon/ai/AI//If there is an AI inside the suit. - obj/item/device/paicard/pai//A slot for a pAI device - obj/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay. - flush = 0//If an AI purge is in progress. - s_control = 1//If user in control of the suit. - -/obj/item/clothing/suit/space/pirate - name = "pirate coat" - desc = "Yarr." - icon_state = "pirate" - item_state = "pirate" - 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/handcuffs,/obj/item/weapon/tank/emergency_oxygen) - slowdown = 0 - armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) - /obj/item/clothing/suit/captunic name = "captain's parade tunic" desc = "Used by irresponsible captains." diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 5d115a53304..5fae6ebc2b7 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -349,7 +349,7 @@ icon = 'items.dmi' icon_state = "sheet" layer = 4.0 - item_state = "w_suit" + item_state = "bedsheet" throwforce = 1 w_class = 1.0 throw_speed = 2 diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm index ba536cdaeed..d9ed6138c3c 100644 --- a/code/game/objects/devices/flash.dm +++ b/code/game/objects/devices/flash.dm @@ -137,6 +137,7 @@ if (prob(2)) broken = 1 user << "\red The bulb has burnt out!" + return spawn(60) recharge() diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 6b21bf726c7..8104344bb8c 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -78,12 +78,7 @@ a malfunction occurs thereby securing safety of subject. The implant will melt a disintegrate into bio-safe elements.
Integrity: Gradient creates slight risk of being overcharged and frying the circuitry. As a result neurotoxins can cause massive damage.
-Implant Specifics:
-ID (1-100): -- -- [id] -+ -+
"} +Implant Specifics:
"} return dat diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index dfa54a6bf32..b42fe178ddc 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -66,6 +66,12 @@ if(src.case.imp) if(istype(src.case.imp, /obj/item/weapon/implant)) dat += src.case.imp.get_data() + if(istype(src.case.imp, /obj/item/weapon/implant/tracking)) + dat += {"ID (1-100): + - + - [case.imp:id] + + + +
"} else dat += "The implant casing is empty." else @@ -82,20 +88,19 @@ if ((usr.contents.Find(src)) || ((in_range(src, usr) && istype(src.loc, /turf)))) usr.machine = src if (href_list["tracking_id"]) - if ((istype(src.case, /obj/item/weapon/implantcase) && istype(src.case.imp, /obj/item/weapon/implant/tracking))) - var/obj/item/weapon/implant/tracking/T = src.case.imp - T.id += text2num(href_list["tracking_id"]) - T.id = min(100, T.id) - T.id = max(1, T.id) + var/obj/item/weapon/implant/tracking/T = src.case.imp + T.id += text2num(href_list["tracking_id"]) + T.id = min(100, T.id) + T.id = max(1, T.id) + if (istype(src.loc, /mob)) attack_self(src.loc) else for(var/mob/M in viewers(1, src)) if (M.client) src.attack_self(M) - //Foreach goto(290) src.add_fingerprint(usr) else usr << browse(null, "window=implantpad") return - return \ No newline at end of file + return diff --git a/code/modules/clothing/glasses.dm b/code/modules/clothing/glasses.dm new file mode 100644 index 00000000000..4c1002a97b8 --- /dev/null +++ b/code/modules/clothing/glasses.dm @@ -0,0 +1,19 @@ +/obj/item/clothing/glasses + name = "glasses" + icon = 'glasses.dmi' + w_class = 2.0 + flags = GLASSESCOVERSEYES + var + vision_flags = 0 + darkness_view = 0//Base human is 2 + invisa_view = 0 + +/* +SEE_SELF // can see self, no matter what +SEE_MOBS // can see all mobs, no matter what +SEE_OBJS // can see all objs, no matter what +SEE_TURFS // can see all turfs (and areas), no matter what +SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are + // in a lit area (via pixel_x,y or smooth movement), can see those pixels +BLIND // can't see anything +*/ diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 341b1050cae..53450ae3a64 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -1,22 +1,3 @@ -/obj/item/clothing/glasses - name = "glasses" - icon = 'glasses.dmi' - w_class = 2.0 - flags = GLASSESCOVERSEYES - var - vision_flags = 0 - darkness_view = 0//Base human is 2 - invisa_view = 0 - -/* -SEE_SELF // can see self, no matter what -SEE_MOBS // can see all mobs, no matter what -SEE_OBJS // can see all objs, no matter what -SEE_TURFS // can see all turfs (and areas), no matter what -SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are - // in a lit area (via pixel_x,y or smooth movement), can see those pixels -BLIND // can't see anything -*/ /obj/item/clothing/glasses/blindfold diff --git a/code/modules/clothing/spacesuits.dm b/code/modules/clothing/spacesuits.dm new file mode 100644 index 00000000000..6b06423a1f8 --- /dev/null +++ b/code/modules/clothing/spacesuits.dm @@ -0,0 +1,35 @@ +/*Contains +Space suit parts +/helmet/space* +/suit/space* +*/ + +/obj/item/clothing/head/helmet/space + name = "Space helmet" + icon_state = "space" + desc = "A special helmet designed for work in a hazardous, low-pressure environment." + flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES | HEADCOVERSMOUTH + see_face = 0.0 + item_state = "space" + permeability_coefficient = 0.01 + armor = list(melee = 0, bullet = 0, laser = 2, taser = 2, bomb = 0, bio = 25, rad = 25) + + + +/obj/item/clothing/suit/space + name = "Space suit" + desc = "A suit that protects against low pressure environments. Has a big 13 on the back." + icon_state = "space" + item_state = "s_suit" + w_class = 4//bulky item + gas_transfer_coefficient = 0.01 + permeability_coefficient = 0.02 + heat_transfer_coefficient = 0.02 + radiation_protection = 0.25 + protective_temperature = 1000 + flags = FPRINT | TABLEPASS | SUITSPACE + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen) + slowdown = 3 + armor = list(melee = 20, bullet = 5, laser = 10, taser = 3, bomb = 15, bio = 30, rad = 40) + diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm new file mode 100644 index 00000000000..3a7d663243e --- /dev/null +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -0,0 +1,62 @@ +/obj/item/clothing/head/helmet/space/capspace + name = "space helmet" + icon_state = "capspace" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." + flags = FPRINT | TABLEPASS | HEADSPACE | HEADCOVERSEYES + see_face = 0.0 + item_state = "capspace" + permeability_coefficient = 0.01 + armor = list(melee = 60, bullet = 50, laser = 50, taser = 25, bomb = 50, bio = 20, rad = 20) + + + +/obj/item/clothing/head/helmet/space/deathsquad + name = "deathsquad helmet" + desc = "That's not red paint. That's real blood." + icon_state = "deathsquad" + item_state = "deathsquad" + armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) + + + +/obj/item/clothing/head/helmet/space/deathsquad/beret + name = "officer's beret" + desc = "An armored beret commonly used by special operations officers." + icon_state = "beret_badge" + armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) + + + +/obj/item/clothing/head/helmet/space/santahat + name = "Santa's hat" + desc = "Ho ho ho. Merrry X-mas!" + icon_state = "santahat" + + +/obj/item/clothing/suit/space/santa + name = "Santa's suit" + desc = "Festive!" + icon_state = "santa" + item_state = "santa" + slowdown = 1 + flags = FPRINT | TABLEPASS | ONESIZEFITSALL | SUITSPACE + + + +/obj/item/clothing/head/helmet/space/pirate + name = "pirate hat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) + + +/obj/item/clothing/suit/space/pirate + name = "pirate coat" + desc = "Yarr." + icon_state = "pirate" + item_state = "pirate" + 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/handcuffs,/obj/item/weapon/tank/emergency_oxygen) + slowdown = 0 + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm new file mode 100644 index 00000000000..863d80576dc --- /dev/null +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -0,0 +1,63 @@ +/obj/item/clothing/head/helmet/space/space_ninja + desc = "What may appear to be a simple black garment is in fact a highly sophisticated nano-weave helmet. Standard issue ninja gear." + name = "ninja hood" + icon_state = "s-ninja" + item_state = "s-ninja_mask" + radiation_protection = 0.25 + see_face = 1 + allowed = list(/obj/item/weapon/cell) + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) + + +/obj/item/clothing/suit/space/space_ninja + name = "ninja suit" + desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." + icon_state = "s-ninja" + item_state = "s-ninja_suit" + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/cell) + radiation_protection = 0.75 + slowdown = 1 + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) + + var + //Important parts of the suit. + mob/living/carbon/affecting = null//The wearer. + obj/item/weapon/cell/cell//Starts out with a high-capacity cell using New(). + datum/effects/system/spark_spread/spark_system//To create sparks. + reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","radium","hyronalin")//The reagents ids which are added to the suit at New(). + stored_research[]//For stealing station research. + obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk. + + //Other articles of ninja gear worn together, used to easily reference them after initializing. + obj/item/clothing/head/helmet/space/space_ninja/n_hood + obj/item/clothing/shoes/space_ninja/n_shoes + obj/item/clothing/gloves/space_ninja/n_gloves + + //Main function variables. + s_initialized = 0//Suit starts off. + s_coold = 0//If the suit is on cooldown. Can be used to attach different cooldowns to abilities. Ticks down every second based on suit ntick(). + s_cost = 5.0//Base energy cost each ntick. + s_acost = 25.0//Additional cost for additional powers active. + k_cost = 200.0//Kamikaze energy cost each ntick. + k_damage = 1.0//Brute damage potentially done by Kamikaze each ntick. + s_delay = 40.0//How fast the suit does certain things, lower is faster. Can be overridden in specific procs. Also determines adverse probability. + a_transfer = 20.0//How much reagent is transferred when injecting. + r_maxamount = 80.0//How much reagent in total there is. + + //Support function variables. + spideros = 0//Mode of SpiderOS. This can change so I won't bother listing the modes here (0 is hub). Check ninja_equipment.dm for how it all works. + s_active = 0//Stealth off. + s_busy = 0//Is the suit busy with a process? Like AI hacking. Used for safety functions. + kamikaze = 0//Kamikaze on or off. + k_unlock = 0//To unlock Kamikaze. + + //Ability function variables. + s_bombs = 10.0//Number of starting ninja smoke bombs. + a_boost = 3.0//Number of adrenaline boosters. + + //Onboard AI related variables. + mob/living/silicon/ai/AI//If there is an AI inside the suit. + obj/item/device/paicard/pai//A slot for a pAI device + obj/overlay/hologram//Is the AI hologram on or off? Visible only to the wearer of the suit. This works by attaching an image to a blank overlay. + flush = 0//If an AI purge is in progress. + s_control = 1//If user in control of the suit. diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm new file mode 100644 index 00000000000..0692707914b --- /dev/null +++ b/code/modules/clothing/spacesuits/rig.dm @@ -0,0 +1,25 @@ +/obj/item/clothing/head/helmet/space/rig + name = "Rig helmet" + desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "rig_helm" + armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) + allowed = list(/obj/item/device/flashlight) + +/obj/item/clothing/head/helmet/space/rig/mining + icon_state = "rig-mining" + item_state = "rig_helm" + +/obj/item/clothing/suit/space/rig + name = "Rig suit" + desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." + icon_state = "rig-engineering" + item_state = "rig_suit" + radiation_protection = 0.50 + slowdown = 2 + armor = list(melee = 40, bullet = 5, laser = 20, taser = 5, bomb = 35, bio = 50, rad = 50) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/satchel,/obj/item/device/t_scanner) + +/obj/item/clothing/suit/space/rig/mining + icon_state = "rig-mining" + item_state = "rig_suit" \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm new file mode 100644 index 00000000000..d318160fbf4 --- /dev/null +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -0,0 +1,201 @@ +/obj/item/clothing/head/helmet/space/syndicate + name = "red space helmet" + desc = "Top secret Spess Helmet." + icon_state = "syndicate" + item_state = "syndicate" + desc = "Has a tag: Totally not property of an enemy corporation, honest." + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) + + +/obj/item/clothing/suit/space/syndicate + name = "red space suit" + icon_state = "syndicate" + item_state = "space_suit_syndicate" + desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!" + 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/emergency_oxygen) + slowdown = 1 + armor = list(melee = 60, bullet = 50, laser = 30, taser = 15, bomb = 30, bio = 30, rad = 30) + + + +/obj/item/clothing/head/helmet/space/syndicate/green + name = "Green Space Helmet" + icon_state = "syndicate-helm-green" + item_state = "syndicate-helm-green" + + +/obj/item/clothing/suit/space/syndicate/green + name = "Green Space Suit" + icon_state = "syndicate-green" + item_state = "syndicate-green" + + + +/obj/item/clothing/head/helmet/space/syndicate/green/dark + name = "Dark Green Space Helmet" + icon_state = "syndicate-helm-green-dark" + item_state = "syndicate-helm-green-dark" + + +/obj/item/clothing/suit/space/syndicate/green/dark + name = "Dark Green Space Suit" + icon_state = "syndicate-green-dark" + item_state = "syndicate-green-dark" + + + +/obj/item/clothing/head/helmet/space/syndicate/orange + name = "Orange Space Helmet" + icon_state = "syndicate-helm-orange" + item_state = "syndicate-helm-orange" + + +/obj/item/clothing/suit/space/syndicate/orange + name = "Orange Space Suit" + icon_state = "syndicate-orange" + item_state = "syndicate-orange" + + + +/obj/item/clothing/head/helmet/space/syndicate/blue + name = "Blue Space Helmet" + icon_state = "syndicate-helm-blue" + item_state = "syndicate-helm-blue" + + +/obj/item/clothing/suit/space/syndicate/blue + name = "Blue Space Suit" + icon_state = "syndicate-blue" + item_state = "syndicate-blue" + + + +/obj/item/clothing/head/helmet/space/syndicate/black + name = "Black Space Helmet" + icon_state = "syndicate-helm-black" + item_state = "syndicate-helm-black" + + +/obj/item/clothing/suit/space/syndicate/black + name = "Black Space Suit" + icon_state = "syndicate-black" + item_state = "syndicate-black" + + + +/obj/item/clothing/head/helmet/space/syndicate/black/green + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-green" + item_state = "syndicate-helm-black-green" + + +/obj/item/clothing/suit/space/syndicate/black/green + name = "Black and Green Space Suit" + icon_state = "syndicate-black-green" + item_state = "syndicate-black-green" + + + +/obj/item/clothing/head/helmet/space/syndicate/black/blue + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-blue" + item_state = "syndicate-helm-black-blue" + + +/obj/item/clothing/suit/space/syndicate/black/blue + name = "Black and Blue Space Suit" + icon_state = "syndicate-black-blue" + item_state = "syndicate-black-blue" + +/obj/item/clothing/head/helmet/space/syndicate/black/med + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-med" + item_state = "syndicate-helm-black" + + +/obj/item/clothing/suit/space/syndicate/black/med + name = "Green Space Suit" + icon_state = "syndicate-black-med" + item_state = "syndicate-black" + + + +/obj/item/clothing/head/helmet/space/syndicate/black/orange + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-orange" + item_state = "syndicate-helm-black" + + +/obj/item/clothing/suit/space/syndicate/black/orange + name = "Black and Orange Space Suit" + icon_state = "syndicate-black-orange" + item_state = "syndicate-black" + + + +/obj/item/clothing/head/helmet/space/syndicate/black/red + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + + +/obj/item/clothing/suit/space/syndicate/black/red + name = "Black and Red Space Suit" + icon_state = "syndicate-black-red" + item_state = "syndicate-black-red" + + + +/obj/item/clothing/head/helmet/space/syndicate/black/engie + name = "Black Space Helmet" + icon_state = "syndicate-helm-black-engie" + item_state = "syndicate-helm-black" + + +/obj/item/clothing/suit/space/syndicate/black/engie + name = "Black Engineering Space Suit" + icon_state = "syndicate-black-engie" + item_state = "syndicate-black" + + + +/obj/item/clothing/head/helmet/space/syndicate/elite + name = "black space helmet" + desc = "Professionals Have Standards, Be Polite, Be Efficient, Have a plan to kill everyone you meet." + icon_state = "syndicate-helm-black" + item_state = "syndicate-helm-black" + armor = list(melee = 65, bullet = 55, laser = 35, taser = 20, bomb = 30, bio = 30, rad = 30) + + +/obj/item/clothing/suit/space/syndicate/elite + name = "black space suit" + desc = "A space ready suit with special armor inside designed to allow the wearer to take quite a beating." + icon_state = "syndicate-black" + item_state = "syndicate-black" + slowdown = 1 + armor = list(melee = 80, bullet = 60, laser = 50, taser = 25, bomb = 50, bio = 10, rad = 0) + + + +/obj/item/clothing/head/helmet/space/syndicate/elite/leader + name = "black space helmet" + icon_state = "syndicate-helm-black-red" + item_state = "syndicate-helm-black-red" + + +/obj/item/clothing/suit/space/syndicate/elite/leader + name = "black space suit" + icon_state = "syndicate-black-red" + item_state = "syndicate-black-red" + + + + + + + + + + + diff --git a/code/modules/clothing/spacesuits/void.dm b/code/modules/clothing/spacesuits/void.dm new file mode 100644 index 00000000000..e3309c2a642 --- /dev/null +++ b/code/modules/clothing/spacesuits/void.dm @@ -0,0 +1,14 @@ +/obj/item/clothing/head/helmet/space/nasavoid + name = "NASA Void Helmet" + desc = "A high tech, NASA Centcom branch designed, dark red space suit helmet. Used for AI satellite maintenance." + icon_state = "void" + item_state = "void" + see_face = 1 + + +/obj/item/clothing/suit/space/nasavoid + name = "NASA Voidsuit" + icon_state = "void" + item_state = "void" + desc = "A high tech, NASA Centcom branch designed, dark red Space suit. Used for AI satellite maintenance." + slowdown = 1.5 diff --git a/code/modules/critters/adefine.dm b/code/modules/critters/critter.dm similarity index 92% rename from code/modules/critters/adefine.dm rename to code/modules/critters/critter.dm index 4173717e786..bcbcc130216 100644 --- a/code/modules/critters/adefine.dm +++ b/code/modules/critters/critter.dm @@ -70,6 +70,7 @@ RunAttack() TakeDamage(var/damage = 0) Target_Attacker(var/target) + Harvest(var/obj/item/weapon/W, var/mob/living/user)//Controls havesting things from dead critters diff --git a/code/modules/critters/critterAI.dm b/code/modules/critters/critter_AI.dm similarity index 100% rename from code/modules/critters/critterAI.dm rename to code/modules/critters/critter_AI.dm diff --git a/code/modules/critters/defenses.dm b/code/modules/critters/critter_defenses.dm similarity index 86% rename from code/modules/critters/defenses.dm rename to code/modules/critters/critter_defenses.dm index c57d652a351..ea59cc5f53b 100644 --- a/code/modules/critters/defenses.dm +++ b/code/modules/critters/critter_defenses.dm @@ -5,7 +5,9 @@ Contains the procs that control attacking critters attackby(obj/item/weapon/W as obj, mob/living/user as mob) ..() - if (!src.alive) return + if(!src.alive) + Harvest(W,user) + return var/damage = 0 switch(W.damtype) if("fire") damage = W.force * firevuln @@ -48,7 +50,7 @@ Contains the procs that control attacking critters src.Die() - Die()//Might be more effective to del them and create a dummy item of some sorts + Die() if (!src.alive) return src.icon_state += "-dead" src.alive = 0 @@ -58,6 +60,12 @@ Contains the procs that control attacking critters src.visible_message("[src] dies!") + Harvest(var/obj/item/weapon/W, var/mob/living/user) + if((!W) || (!user)) return 0 + if(src.alive) return 0 + return 1 + + bullet_act(var/obj/item/projectile/Proj) TakeDamage(Proj.damage) diff --git a/code/modules/critters/critters.dm b/code/modules/critters/critters.dm index 02f5f046d58..b522c946a88 100644 --- a/code/modules/critters/critters.dm +++ b/code/modules/critters/critters.dm @@ -39,6 +39,7 @@ ..() del(src) + /obj/critter/killertomato name = "killer tomato" desc = "Oh shit, you're really fucked now." @@ -53,12 +54,24 @@ firevuln = 2 brutevuln = 2 - Die() - ..() - new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) - if(prob(50)) - new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) - new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) + + Harvest(var/obj/item/weapon/W, var/mob/living/user) + if(..()) + var/success = 0 + if(istype(W, /obj/item/weapon/butch)) + new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) + success = 1 + if(istype(W, /obj/item/weapon/kitchenknife)) + new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) + new /obj/item/weapon/reagent_containers/food/snacks/tomatomeat(src) + success = 1 + if(success) + for(var/mob/O in viewers(src, null)) + O.show_message("\red [user.name] cuts apart the [src.name]!", 1) + del(src) + return 1 + return 0 + /obj/critter/spore @@ -76,6 +89,7 @@ firevuln = 2 brutevuln = 2 + Die() src.visible_message("[src] ruptures and explodes!") src.alive = 0 @@ -85,10 +99,12 @@ explosion(T, -1, -1, 2, 3) del src + ex_act(severity) src.Die() + /obj/critter/spesscarp name = "Spess Carp" desc = "Oh shit, you're really fucked now." @@ -109,12 +125,24 @@ angertext = "swims at" attacktext = "bites" - Die() - ..() - new/obj/item/weapon/reagent_containers/food/snacks/carpmeat(src.loc) - if(prob(50)) - new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src) - new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src) + + Harvest(var/obj/item/weapon/W, var/mob/living/user) + if(..()) + var/success = 0 + if(istype(W, /obj/item/weapon/butch)) + new/obj/item/weapon/reagent_containers/food/snacks/carpmeat(src.loc) + new/obj/item/weapon/reagent_containers/food/snacks/carpmeat(src.loc) + success = 1 + if(istype(W, /obj/item/weapon/kitchenknife)) + new/obj/item/weapon/reagent_containers/food/snacks/carpmeat(src.loc) + success = 1 + if(success) + for(var/mob/O in viewers(src, null)) + O.show_message("\red [user.name] cuts apart the [src.name]!", 1) + del(src) + return 1 + return 0 + /obj/critter/spesscarp/elite @@ -125,6 +153,8 @@ melee_damage_upper = 20 // opensdoors = 1 would give all access dono if want + + /obj/critter/walkingmushroom name = "Walking Mushroom" desc = "A...huge...mushroom...with legs!?" @@ -139,12 +169,24 @@ firevuln = 2 brutevuln = 1 - Die() - ..() - new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) - if(prob(50)) - new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) - new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + + Harvest(var/obj/item/weapon/W, var/mob/living/user) + if(..()) + var/success = 0 + if(istype(W, /obj/item/weapon/butch)) + new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + success = 1 + if(istype(W, /obj/item/weapon/kitchenknife)) + new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + success = 1 + if(success) + for(var/mob/O in viewers(src, null)) + O.show_message("\red [user.name] cuts apart the [src.name]!", 1) + del(src) + return 1 + return 0 + /obj/critter/lizard diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 33aedc2fe3e078b833b9e2b6109682882d60d171..d95d7291efa3d5b9475a1b910ebc1acf601760ce 100644 GIT binary patch delta 1058 zcmV+-1l{}H=>yy81CS(t1A0_gbVOxyV{&P5bZKvH004NLrJ2u?n>Y~0&-PPL$u-_G zN%rVVYEoNsNM3sQXC{yG;G2XAL(8T=G@jY&%YDOWo2x@jzT4#QP?PVHojOmp z0lvpuRvVoaMw(U+(06SA$Z`HBp7Uhar5Tftw=`q=;g*J~1~x$R~yZ8tjhTleZW@0D#M8@I}TwvnwnW!nfRzXwZO!0|-D zTQ?E%s7(|PWH7k{nUr@DKLlMgx}gO&J!43c@AwF0_>Pa5*vc3GvftHg=#rhX{8Rqv zwb6?9x>amPTeGiSub=LM)%P&Tf8_N$I%7Z#kd1_Vup6jL4wE#h+%QRlbYhXKC{Ows zK9fKcu#J^}>-C_TIj9hgBziWya=;1FzebeSA4<_(j4Te4vxjt3Xogw@r3m!$>)jk z#{#K@mT0?nt74kivu<|7N9F_0MFK1(a?@_v#8Kn`7LgqD7SU$z?V!$9p znu9Yn$|2Q2tXhl$zOoAy4f@x0p`roEV$Mj#EgL=6zM#77*-$L*)~SF%0&-L7E+7VM zTs%@#&lnJcWNWgd5A|jaSf8P0P*A;eS%BS6vnOaceM9+>Wz?2+OA7+SI& z)o#*%3$_Id3y=B*dM43o|8S;GKhXt?y+pm(yE1NVvipnzvRs1=$}fGDeIK(h3VAe)78nLV2C7yPOe cgOAzwpAXr?kH`K0b;Rp$!-SOJvoZv$@XzrTr2qf` delta 1060 zcmV+<1l#-D=>y&A1CS(t1$tCibVOxyV{&P5bZKvH004NLote#U+d2@1*Y;Bg?Y6qG z+TNu%MT(0o+E)<9OTEl*iPgi${cxV;NuyJoZ0jg}hX^TOSU@=Rhct@rSXU62Ol)A)#0ETHBkZ#zV8e4-7mq+BL?i^# zK!#PRG>~Ck%+P>;>0Lo!eF4n3D?d0gt8e?@$N(4p)~fs5 zdA9UUvj;ZYZwhw!(eW~{Y)Gb}_m+i)~qf@aj zs!!FY*NYakmsjO>^p>Lyy?(kgR{w@c{!-K<>x=942X0xnYt9>1i^X zEKm9wK9hid7qHJJ^tw}>IjE$|BzlgzaKH)Dzo}Tgtoo#Lk6Df68xp*g&m2`Eg5 zZ~`&l!zCg`^%(N`grWj0sC{*jBJBJW{-0i>7mFbCqU8rOaceM5tx%7I3i>6 zF}37>JF;QY3$_^x3y*pLJ(Fm)UmmH`Pjtp&FHtZ4ri@#fkv^kJ25(Rwpj1(Eb8@{9pJQ|ZP3()BJJ;B`TN0B;Kdc$uLA$L4v3{Q1~u9#9Dzy7nbQTE$n4SVKZn7TS|7*)4d9H` zh5xVzMk{~VBZHNmb3_8?!U2^JXUK;x9P;jn>q)O9E*ub!qsv$%UO+6>&;Ct<^8Jh! eUo`Ns`2O>uc=++S{U6CKrF9ue%^$Nc1gr4&LK0s9 diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 457895bb5d93f2cd7a137038fa475012d54a25de..8fe609fbb676e295e0a988b2c33f827d6142a06f 100644 GIT binary patch delta 1633 zcmY+Cdr(t%7RP@#7YOnSDvE-Hz{;zx2vb1;!GINnN_lBup_-t!^7I7+j3M_5Eup0l zXLNx|OM=3>$Of`JLMm?sX}icngg})f5D`Koykm$YY<6a6*gZ3!IcLs4=R4>7ZQS|G zPM#kOeSP;hyc@}wY8Rv?6igZh5|cvqN5r3q#lGAh)xLRIHvgmJPy#ht>EPKjfcwDe zkF8e>i4q-|iH9Fl8_b9-;#iNy)EXB)LwdJ9L^G_TLB~pc=C^+zPieXz>WSXM9rHx9 zUK~wM0Uw0I*Yj%`9_XQv#}IwJys$6{kTo;ONTex8>f7ob1z322r7gNt37&}4ucm>6 zSG8ttwfdvoV6-LG7pF$R9(dfO_BlK9lp-vJ20gjIoL z**UB$Z`mS6*8Ocf3{SiitbOx=)s#Drqwoq-b zm=^4Tl65jSVk1o{Ts^4ID+B;R9A7Qk9W53u@hxwL8aI8#weFaPd2frblxaYv{^Ohs zD6+7t*_a#HH!=^(h-KIF;$C5MThBS%e>HT@H-G$wp}3MgAeDz1tk(T4_guRI5xJSm z;i_7jx^l!kT>M(xOhwpXloCHttmo5-L}I|t&kqSxW3o9vv1?Io4Rox6RkDMhew);q z3s<>{;x`wRFPCDOzxN8|D95KVGe2wNFpzCb*^Cy6UuQmRj>Z0(iMkS7bM4a3kl}k~ z;oeyTg<=OnI!eQi_?V9&{#`bXjCMH)nnm-F?|G1RQ~t+A^R2f5Qa=AWXJqGsbOhJR ziWXACnrIhJi}yS$LgzH7x~rmz$z;AaH2ZSs`;6o&S|NDb*3`Xk?PJhOAoB@@pqNyY znM73B=%&XjEj8Obh#dnsUKo6D?mPvMWQch?-cNs4tN&&)78-kWqrf;b#yH>LRHX|+ zo8w>TVs3GV3^S~k;l@9#{HHl)gP6q{NstLzOHR0coM8vZyGPN#A|{wE!JS4!TKkI$ znz5F)HLlo~s&}TD^f*o(FYk52-_ozW!rdizBKi1n{7i}aI5i$d@GF=zP~tk6r+-+Z z%sK_MdMi3hrL2P!U6&(udDAlq_v!EkMuY^T!Etsl91ioG?&ccUBL_D3=xv=vch$cy z+{P`Z(S27`PpEI)Q+>+~%SuQS_ao=jin?^V)zH%RGGcL5woqwidE$KiyvvKNd4Eql?{O?;zQwHA~6#!j}HRRJ%rW8Aps z>yWRK^shab7c<}YC)rd|fvNai1NM&R&#R80>ST}4?B)D3LJY}=XpHv#)1dNs<;_Cy z%4^?-v3UhF_=#H(xOrbKE!LFADgV!H&UKo)S0;0b>-WZYG%OBE2kKH!Cm@4fO4YDs zx;keQ%&$zS2KxI|h@Q7~+a#}fXmSoGJsK)44JCXY6md9Y{J>a8*N8OYo?s_$+of^U z2EC8vCgNrhI)D;SU8D9vc58dXnV?$fEhM#hIRM5V8`v& zMECw)#aSLZOnNo*TW~%c98!TiO~tJx=m*y+)rD?@Ysk%vwdLuN5eG#3+hCgtIG)_G zD*!9_xIiP$qA!&1zK)wiEsF-BFlN}q=cSm3-5JhesHEiK(DbzU>AH<}BNi*zE5Ynp zff`#BK_-&34eKF>l(DpL%<_l#hg5kGzIaedhP`bra%GFqXAIL{f1$ZkjXPsXF>_X& zgE_v4+SEAS^qRC_haC_St^hj7!*~W@_d5pLYt7ih_Rgno^UE-izyqKAtU|S?((DdC zS9U7PFdXv=qWcyFDSC2WFFgTvBlzxaHQ#NNS(cqT2SU)8ad|cS}2?tn=+uz`n^!XTKE8_-e8|0C*O+ z^A&Q%aV5M8zJw2civHxv-i*8vcqB&f>@WD4cu3{4dd2L|bfa0QJJ6()O}J!q&zmwi zrza8F=@anBnv Hl$?J9F-ZF2 delta 1628 zcmZ9Jc~Db_7KiWU5)uMQuz(<202ibc6elbuEYUt(Kn2k!J|Im1TO1G&B|u5=UJ6Qm zh)_jg%xei2tuzEuc0u62s))}bX(0j8gwWecSR{!OBy1_2c{6r;X1+OpoIlQY&hMUe zv$Z4`0^_fRKj}2IPj4?oqz0jEgZK-)EY7KY`0{;Sn+4qNUEQ$OG&Pu z_&g&zqL@sU#pC{yq-wgF3{>?brHUO;JLAIDV=$!7nf6b!MF%}*`|+GWPh>V)vE;;j zD(HePr{vrEAhNVr3MW3Aiw@tyH0>S_w=Y-#qa!WM4`Xldr#c<|#eqt`x#s_W$YJoZ@ zwAfDW%>^j;p~YbE9^^9TAekxVBo1QJ16`e+F8`N6meNxMpHSMmF`fQ3xY97mDQ@V5 zsrFy$^P`5ZL=S`z?rLUcV>&yZdPqX4>0XZGa++)PVXR`>uP!+9Swu7{mjSJl*zH0u zme5wCV%8RCj~IKpGVjZ)-{|yoS2cOk+1(|C#H9D+6t!U4SqiOK4!&^~T3Bf~eNM7r z;5JlFR%T$?<^*Sa7F>i1B{%^?UTd7W`^bZB> zya555^&&_%b;&0$(UM{E{X1xiwb0KCciUCuVItaH9vj#GAcjd} zx*q~{c9zKp^M%N=gZ60|RVb4aKE!j8^#~g`VGpo+q`#hD-UD=Rs{_N0fAd`l?UgQ8 zXT#Hip4=J2-8AvBwz-7qqJ1trTz#6@c6#4&MzAoL#B>shh%{&j5)M>&OE2PREAu(~ zfmPEcJm+_e;-&a+bQF+_H?@pp^w0sK>nWo2Ir{(<2}$-{D>QS5|Gu_SU1Bc&CYK-d zcA+EdrCVx{i@BiUxZ-Bi)Z%PICg0&_-8upD#?h5|^OK(^9K4z|2t0h9lzQ$L4IB=3 z=!##wI18lB9XV+L>iSt`Z4{v_-ET=e^BM4Fl_z~wvuI&?wy0(hyFl(svOt@2yWktO zw&+)_Ftw2(;+BnqG`?Ug7-^oY@dvkheW=_W@^MYaddVml1Dw3*>*~9uKgCq|Y+S`g z2qffq{sxo2!69m!`ti$K)Pnb613(Feja?}%eSTK1Tlo3{w=|@u)u(!8_rwSm!In;1 ztU}EL*;vS~UE{E|x=w%bfik8@)bKdtX0OlMaaV4gDsPOI@CrnazulVQ!LjaZ)J;xS zQsd>Rj6EigJ#0{ODzo84>_@qLpsS#%slbJbDwPInw9EY_QeDocfc!im~+#4Qu) zG}hw_$s?!IPdDEtx1T8_=j`H7Du1-G-(3H(f!u!IslP|?8Qzn@XQkJ zXO#$v>V^X=b%=0gG4WY6cCooY<{8G+iQTA@G4%{%>LUfoK+i5%@R^-($dZ6nyQBem z?DuIDz&nAsG6AiByI_HZOWt0$MxO z+|i}lRojQ{!}ei&AN7IzcVQ_jNz>-~NbUp-xNms7n%uJXz_c@Qwy4ktoJyUMezawzq-cVcH(cVR%mWeA^6!>}odX|AP>&)nM1?grG=s}NdmlKBw zk@F;b=mdFxk^e~j=0GR=lPp+N3_5}Bjy-66C4t6~*l`BEOBiVMO^|S;4KlS(?Dii1 zy%?1O$Mgi+e~2d%IFlz3R>JQSnIh(TU=*1b=86E6LIyq$g$$H^96d0c97m5#B(E1Q z_!W&UbsVyby{ViyTNpdsA94wrI_GRrFOl2Tee_`5iryX_T&wun3iv9G~q&{l@gE;o!osjj7=BMEgIqX+)w zzv1nF1kw+zGWK;JgMG%|(Y73D4awKPbv5>X`JP95?=GN@19FG)P7uBqK`EAS(Kc76 zp9Am|O@X~B6qh~w9Dt`di+xZn*dlS+v(EtqpSERtoLa(V>cX~}Bk&|S{(|*6{wfle zJ^UPiAEBSYft^^~i34=%FIZ%F>crD!P(iLeEbeG}gaNvzy*0^VT z1bHQ~Yf}!51ZG9=P8a-#3BFd}e?C=DKc3hB1FOt^**4R&n}hHJhwuXdx9|f3nxpua B=`;WU delta 979 zcmV;^11$WC&kBmq3XnQ~O>WyT5JuPbDTH<#6|I}CH${RXi}nh_m>f%EQ>02#PTkXY zVJVh_r1P;$0dF2T{2lRQ_3iQd)6eSR$J6@6F-h>%wz~iHdA)iTo4aaTech~A9ZTEg z%SXzTx!P7A_7eHSdSxZ1YFpi}SNljkr)pb$xrH`Y>dV{Ij&16Hn6s*zL0w6)4^j0| z>_gOLmNT0yC$2H=D_(CPO3;&!5`e^aqjQ{x7{Xp3&MOO!XcKww*kA)Y!9brS=zWy{ ziJF!@M{HZECx-;#wyO>mH`2@VjZfsB4Wr-2M`K&P{}VkmRHb7YRX_LeVh zpl&0xFKy-$Ro>Xnjlf8~5d<_fO0G?>A8#{Q-un>Ax8?o6gq1fJSzn}Y#Gpe3By!8MZ1fR5>}gUF9d z8rWNo`s`d$L>pTMmiff#!k(fe{j|Mc&=HYGFZwgq4C+ch>goCsNY!*SI1=AN3v3sR`S?Snt^8A|Vp0vF!satu4x zOOO{5dp2d?if4}K+v$RTw}Fq<(zQ*RzeEYiJMWhhx^`%s(*c_UNh-t$5u-|!-(j1z9r~U3EFyZz2hLsg` z$RpHPel6g2y%`+p)P+4csMtnKQyT=4?+R)?$hb8!3vk$c$ZJ%aC`3b9{~i0ZHF!wN z=EDvN+~&Fr3EX&JGp?a`pR}FOFj{{LyswwnSh+VTa-chNA_u|^BcPHs&(W~LD}8|Y z_5`CY>9L}#bT)i{B5(yudIuwRCQ7f3L#{4Q2DP~Y>7!iZ!XCxvN&nz8jl@Au9r2_> z17(#FgXIpC`+$rB$;6&Xa?0Uif(yDusM_FnV5(Vc!j6zD6@7MwJPlj{L4K4qn4 z;&+`pXVMFQ;$XJ@9ypjSo980T35ffcvt?|uKG?iSLCb|^$ZJA<@d~<T+F7C8_j%75(Pv3Y(wHpkbO n{U6DHi>$x-f4u+zAOJ~3K~#90?45ahQ&rx$pCoOwo&w=jr=CU# delta 653 zcmV;80&@L;u>t?E0gxnrTzXVkbVOxyV{&P5bZKvH004NLotI5++b|G?*Y+udWUWGJ zyY;3>P-Kx@K^T!^a%ys@4k@e2>AP^?RoWSOX9M4Rr03^>zVCiK{d|7y9$%jKXOv2X zyF>T=%dp?A7ge7qL_;zEt$o-k zp3<`UvQq-5SK~9$Z7sM+Z@y`t(J)Y-32*D=MJu-+iX7<1GdD_AvXwa+_I9Or5Z@o+ zq+5Dy=o+03*92~VU^(8w2?rCUZ-+x}u4IGT+<^2+ZgF9c;!DEF%Tc2 z4dWZ8R8}khu#q1|Z;HdK{U&@Ejlp-d-^LH)8p#kpSNlzW_%K?c_v&qd=auxmoJ%5y z5tE)C#{_M(jMIwATQXrLvE=y#?14eIOAr?H#aR|EBKVrf5O5QU;i@`(W$I;77ew|AXN1!t34C{ z(z$aXy&w*MX4`)P2eW1KT!c9R@fb_7j7`x8n-{5QdC*K{O{gzkMOVvFw+n*E=GBMU zaP)+NZJfXxLO){@O9%fT8y;RWHd75VP|Bbuh+9%Kwm9_2ff!N#6A$;@)9YjR`0~8} n3n*8Iid}!Q^Z)=L07*naRCt{1oq2pyRo=LtByGC0paS4kN_si` diff --git a/tgstation.dme b/tgstation.dme index 3c99cbada2b..07edb4bef67 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -82,6 +82,7 @@ #define FILE_DIR "code/modules/chemical" #define FILE_DIR "code/modules/clothing" #define FILE_DIR "code/modules/clothing/glasses" +#define FILE_DIR "code/modules/clothing/spacesuits" #define FILE_DIR "code/modules/critters" #define FILE_DIR "code/modules/critters/hivebots" #define FILE_DIR "code/modules/food" @@ -676,12 +677,19 @@ #include "code\modules\chemical\Chemistry-Reagents.dm" #include "code\modules\chemical\Chemistry-Recipes.dm" #include "code\modules\chemical\Chemistry-Tools.dm" +#include "code\modules\clothing\glasses.dm" +#include "code\modules\clothing\spacesuits.dm" #include "code\modules\clothing\glasses\glasses.dm" #include "code\modules\clothing\glasses\hud.dm" -#include "code\modules\critters\adefine.dm" -#include "code\modules\critters\critterAI.dm" +#include "code\modules\clothing\spacesuits\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\ninja.dm" +#include "code\modules\clothing\spacesuits\rig.dm" +#include "code\modules\clothing\spacesuits\syndi.dm" +#include "code\modules\clothing\spacesuits\void.dm" +#include "code\modules\critters\critter.dm" +#include "code\modules\critters\critter_AI.dm" +#include "code\modules\critters\critter_defenses.dm" #include "code\modules\critters\critters.dm" -#include "code\modules\critters\defenses.dm" #include "code\modules\critters\hivebots\hivebot.dm" #include "code\modules\food\food.dm" #include "code\modules\food\recipes_microwave.dm"