Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Горохострел 2.5 #13557

Merged
merged 16 commits into from
Oct 19, 2024
33 changes: 29 additions & 4 deletions code/defines/obj/hydro.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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."
Expand All @@ -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
Expand Down
5 changes: 5 additions & 0 deletions code/modules/cargo/exports/grown.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
15 changes: 15 additions & 0 deletions code/modules/projectiles/ammunition/bullets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
9 changes: 9 additions & 0 deletions code/modules/projectiles/ammunition/magazines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
69 changes: 68 additions & 1 deletion code/modules/projectiles/guns/projectile/pistol.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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, "<span class='notice'>Вы не можете вынуть горох из [CASE(src, GENITIVE_CASE)].</span>")
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, "<span class='notice'>Горохострел обвил зажигалку намертво. Кажется, её уже не вытащить.</span>")
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, "<span class='notice'>Горохострел игнорирует любые попытки добавить ещё одну зажигалку.</span>")
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, "<span class='notice'>Горохострел обвил зажигалку намертво. Кажется, её уже не вытащить.</span>")
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, "<span class='notice'>Горохострел игнорирует любые попытки добавить ещё одну зажигалку.</span>")
else
return
22 changes: 20 additions & 2 deletions code/modules/projectiles/projectile/bullets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
20 changes: 20 additions & 0 deletions code/modules/reagents/reagent_containers/food/snacks/grown.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand Down
Binary file modified icons/obj/hydroponics/growing.dmi
Binary file not shown.
Binary file modified icons/obj/hydroponics/harvest.dmi
Binary file not shown.
Binary file modified icons/obj/hydroponics/seeds.dmi
Binary file not shown.
Loading