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