diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm
index e970874c5e47..9e04d7b03cc3 100644
--- a/code/defines/obj/hydro.dm
+++ b/code/defines/obj/hydro.dm
@@ -80,9 +80,9 @@
/obj/item/seeds/peashooter
name = "pack of peashooter seeds"
- cases = list("семена Горохострела", "семян Горохострела", "семенам Горохострела", "семена Горохострела", "семенами Горохострела", "семенах Горохострела")
+ cases = list("семена Горохострела обыкновенного", "семян Горохострела обыкновенного", "семенам Горохострела обыкновенного", "семена Горохострела обыкновенного", "семенами Горохострела обыкновенного", "семенах Горохострела обыкновенного")
desc = "Эти семена вырастают в Горохострел"
- icon_state = "seed-gatfruit"
+ icon_state = "seed-peashooter"
species = "peashooter"
plantname = "Peashooter Tree"
product_type = /obj/item/weapon/reagent_containers/food/snacks/grown/peashooter
@@ -95,6 +95,30 @@
growthstages = 2
hydroponictray_icon_path = 'icons/obj/hydroponics/growing.dmi'
+/obj/item/seeds/peashooter/react_to_disease_effect(obj/machinery/hydroponics/tray, datum/disease2/effect/E, datum/disease2/effectholder/holder)
+ if(!istype(E, /datum/disease2/effect/gibbingtons))
+ return
+ if(prob(holder.stage * 30))
+ mutatelist = list(/obj/item/seeds/peashooter/virus)
+ tray.mutatespecie()
+
+/obj/item/seeds/peashooter/virus
+ name = "pack of virus peashooter seeds"
+ cases = list("семена Горохострела Гиббингтонского", "семян Горохострела Гиббингтонского", "семенам Горохострела Гиббингтонского", "семена Горохострела Гиббингтонского", "семенами Горохострела Гиббингтонского", "семенах Горохострела Гиббингтонского")
+ desc = "Эти семена вырастают в Горохострел Гиббингтонский"
+ icon_state = "seed-peashooter_virus"
+ species = "peashooter_virus"
+ plantname = "Virus Peashooter Tree"
+ product_type = /obj/item/weapon/reagent_containers/food/snacks/grown/peashooter
+ lifespan = 20
+ endurance = 20
+ maturation = 10
+ production = 10
+ yield = 2
+ potency = 60
+ growthstages = 2
+ hydroponictray_icon_path = 'icons/obj/hydroponics/growing.dmi'
+
/obj/item/seeds/blackpepper
name = "pack of piper nigrum seeds"
desc = "These seeds grow into black pepper plants. Spicy."
@@ -111,12 +135,13 @@
potency = 10
plant_type = 0
growthstages = 5
+ mutatelist = list(/obj/item/seeds/peashooter)
/obj/item/seeds/blackpepper/react_to_disease_effect(obj/machinery/hydroponics/tray, datum/disease2/effect/E, datum/disease2/effectholder/holder)
if(!istype(E, /datum/disease2/effect/gibbingtons))
return
- if(prob(holder.stage * 10))
- mutatelist = list(/obj/item/seeds/peashooter)
+ if(prob(holder.stage * 25))
+ mutatelist = list(/obj/item/seeds/peashooter/virus)
tray.mutatespecie()
/obj/item/seeds/chiliseed
diff --git a/code/modules/cargo/exports/grown.dm b/code/modules/cargo/exports/grown.dm
index 8d58bf2215ff..ae39601e8dac 100644
--- a/code/modules/cargo/exports/grown.dm
+++ b/code/modules/cargo/exports/grown.dm
@@ -3,6 +3,11 @@
cost = 150
export_types = list(/obj/item/weapon/reagent_containers/food/snacks/grown/peashooter)
+/datum/export/peashooter/virus
+ unit_name = "strange fruit"
+ cost = 250
+ export_types = list(/obj/item/weapon/reagent_containers/food/snacks/grown/peashooter)
+
/*
/export/grown subtype
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 34ec269cdd96..de62665af331 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -34,6 +34,21 @@
caliber = "Pea"
projectile_type = /obj/item/projectile/bullet/peabullet
+/obj/item/ammo_casing/pea/in_fire
+ name = "Burned pea bullet casing"
+ cases = list("обгоревший гороховый патрон", "обгоревшего горохового патрона", "обгоревшему гороховому патрону", "обгоревший гороховый патрон", "обгоревшим гороховым патроном", "обгоревшем гороховом патроне")
+ projectile_type = /obj/item/projectile/bullet/peabullet/in_fire
+
+/obj/item/ammo_casing/pea/virus
+ projectile_type = /obj/item/projectile/bullet/peabullet/virus
+
+/obj/item/ammo_casing/pea/virus/in_fire
+ name = "Burned pea bullet casing"
+ cases = list("обгоревший гороховый патрон", "обгоревшего горохового патрона", "обгоревшему гороховому патрону", "обгоревший гороховый патрон", "обгоревшим гороховым патроном", "обгоревшем гороховом патроне")
+ desc = "Гороховый патрон"
+ caliber = "Pea"
+ projectile_type = /obj/item/projectile/bullet/peabullet/virus/in_fire
+
/obj/item/ammo_casing/c9mmr
desc = "Патрон от резиновой пули калибра 9мм."
icon_state = "casing_rubber"
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 4327d636ddd7..cc330aa19459 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -658,3 +658,12 @@
ammo_type = /obj/item/ammo_casing/pea
max_ammo = 6
origin_tech = "combat=2"
+
+/obj/item/ammo_box/magazine/pea/in_fire
+ ammo_type = /obj/item/ammo_casing/pea/in_fire
+
+/obj/item/ammo_box/magazine/pea/virus
+ ammo_type = /obj/item/ammo_casing/pea/virus
+
+/obj/item/ammo_box/magazine/pea/virus/in_fire
+ ammo_type = /obj/item/ammo_casing/pea/virus/in_fire
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index 77404ebbe740..efeaf173462b 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -138,9 +138,76 @@
item_state = "peashooter"
origin_tech = "combat=1;materials=1"
initial_mag = /obj/item/ammo_box/magazine/pea
- suitable_mags = /obj/item/ammo_box/magazine/pea
+ suitable_mags = list(/obj/item/ammo_box/magazine/pea)
can_be_holstered = TRUE
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/update_icon()
+ if(magazine.ammo_count() < 6)
+ icon_state = "[initial(icon_state)]-[magazine.ammo_count()]"
+
/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/attack_self(mob/living/user)
to_chat(user, "Вы не можете вынуть горох из [CASE(src, GENITIVE_CASE)].")
return
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/lighter/zippo))
+ new /obj/item/weapon/gun/projectile/automatic/pistol/peashooter/in_fire(user.loc)
+ to_chat(user, "Горохострел обвил зажигалку намертво. Кажется, её уже не вытащить.")
+ qdel(I)
+ qdel(src)
+ else
+ return ..()
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/in_fire
+ name = "Peashooter"
+ desc = "Горохострел. Стреляет горохом. У самого кончика стручка закреплена горящая зажигалка."
+ cases = list("горохострел", "горохострела", "горохострелу", "горохострел", "горохострелом", "горохостреле")
+ icon_state = "peashooter_in_fire"
+ item_state = "peashooter_in_fire"
+ origin_tech = "combat=1;materials=1"
+ initial_mag = /obj/item/ammo_box/magazine/pea/in_fire
+ suitable_mags = list(/obj/item/ammo_box/magazine/pea/in_fire)
+ can_be_holstered = TRUE
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/in_fire/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/lighter/zippo))
+ to_chat(user, "Горохострел игнорирует любые попытки добавить ещё одну зажигалку.")
+ else
+ return
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus
+ name = "Virus Peashooter"
+ desc = "Горохострел Гиббингтоский. Стреляет особо большим горохом. У самого кончика стручка закреплена горящая зажигалка."
+ cases = list("горохострел", "горохострела", "горохострелу", "горохострел", "горохострелом", "горохостреле")
+ icon_state = "peashooter_virus"
+ item_state = "peashooter_virus"
+ origin_tech = "combat=1;materials=1"
+ initial_mag = /obj/item/ammo_box/magazine/pea/virus
+ suitable_mags = list(/obj/item/ammo_box/magazine/pea/virus)
+ can_be_holstered = TRUE
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/lighter/zippo))
+ new /obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus/in_fire(user.loc)
+ to_chat(user, "Горохострел обвил зажигалку намертво. Кажется, её уже не вытащить.")
+ qdel(I)
+ qdel(src)
+ else
+ return ..()
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus/in_fire
+ name = "Virus Peashooter"
+ desc = "Горохострел Гиббингтоский. Стреляет особо большим горохом."
+ cases = list("горохострел", "горохострела", "горохострелу", "горохострел", "горохострелом", "горохостреле")
+ icon_state = "peashooter_virus_in_fire"
+ item_state = "peashooter_virus_in_fire"
+ origin_tech = "combat=1;materials=1"
+ initial_mag = /obj/item/ammo_box/magazine/pea/virus/in_fire
+ suitable_mags = list(/obj/item/ammo_box/magazine/pea/virus/in_fire)
+ can_be_holstered = TRUE
+
+/obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus/in_fire/attackby(obj/item/I, mob/user)
+ if(istype(I, /obj/item/weapon/lighter/zippo))
+ to_chat(user, "Горохострел игнорирует любые попытки добавить ещё одну зажигалку.")
+ else
+ return
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index cf1d8b474b13..aeef8ee225c2 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -76,8 +76,26 @@
/obj/item/projectile/bullet/peabullet
name = "pea bullet"
- damage = 5
- agony = 5
+ damage = 3
+ agony = 10
+
+/obj/item/projectile/bullet/peabullet/in_fire
+ damage = 8
+ agony = 15
+ weaken = 1
+ incendiary = 2
+
+/obj/item/projectile/bullet/peabullet/virus
+ name = "virus pea bullet"
+ damage = 15
+ agony = 15
+ weaken = 1
+
+/obj/item/projectile/bullet/peabullet/virus/in_fire
+ damage = 18
+ agony = 20
+ stun = 3
+ incendiary = 5
/obj/item/projectile/bullet/midbullet2 // 9x19
damage = 25
diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
index 5697bb0d258c..449b98eed54f 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
@@ -1200,6 +1200,7 @@
cases = list("горохострел", "горохострела", "горохострелу", "горохострел", "горохострелом", "горохостреле")
desc = "Нераскрывшийся плод горохострела, подозрительно напоминающий пистолет"
icon_state = "peashooter"
+ item_state_world = "peashooter_world"
potency = 25
filling_color = "#020108"
trash = /obj/item/weapon/gun/projectile/automatic/pistol/peashooter
@@ -1212,6 +1213,25 @@
reagents.add_reagent("sulfur", 1 + round(potency / 10, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/peashooter/virus
+ seed_type = /obj/item/seeds/peashooter/virus
+ name = "virus peashooter"
+ cases = list("горохострел Гиббингтонский", "горохострела Гиббингтонского", "горохострелу Гиббингтонскому", "горохострел Гиббингтонский", "горохострелом Гиббингтонским", "горохостреле Гиббингтонском")
+ desc = "Нераскрывшийся плод горохострела Гиббингтонского, подозрительно напоминающий пистолет"
+ icon_state = "peashooter_virus"
+ item_state_world = "peashooter_virus_world"
+ potency = 25
+ filling_color = "#020108"
+ trash = /obj/item/weapon/gun/projectile/automatic/pistol/peashooter/virus
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/peashooter/virus/atom_init()
+ . = ..()
+ reagents.add_reagent("potassium", 1 + round(potency / 25, 1))
+ reagents.add_reagent("carbon", 1 + round(potency / 10, 1))
+ reagents.add_reagent("iron", 1 + round(potency / 10, 1))
+ reagents.add_reagent("chlorine", 1 + round(potency / 10, 1))
+ bitesize = 1 + round(reagents.total_volume / 2, 1)
+
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space
seed_type = /obj/item/seeds/tobacco
name = "tobacco leaves"
diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi
index 097548696859..1b4a95b30e51 100644
Binary files a/icons/obj/hydroponics/growing.dmi and b/icons/obj/hydroponics/growing.dmi differ
diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi
index e15d01ae1cb7..7ece314bc7f1 100644
Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ
diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi
index ae6df10cddfd..d3c8505b358c 100644
Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ