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.0 #13556

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
27 changes: 27 additions & 0 deletions code/modules/projectiles/ammunition/magazines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -646,3 +646,30 @@
ammo_type = /obj/item/ammo_casing/pea
max_ammo = 6
origin_tech = "combat=2"

/obj/item/ammo_box/magazine/pea/in_fire
name = "pealoader"
cases = list("гороховый зарядник", "горохового зарядника", "гороховому заряднику", "гороховый зарядник", "гороховым зарядником", "гороховом заряднике")
desc = "Гороховый зарядник для горохового пистолета."
caliber = "Pea"
ammo_type = /obj/item/ammo_casing/pea/in_fire
max_ammo = 6
origin_tech = "combat=2"

/obj/item/ammo_box/magazine/pea/virus
name = "pealoader"
cases = list("гороховый зарядник", "горохового зарядника", "гороховому заряднику", "гороховый зарядник", "гороховым зарядником", "гороховом заряднике")
desc = "Гороховый зарядник для горохового пистолета."
caliber = "Pea"
ammo_type = /obj/item/ammo_casing/pea/virus
max_ammo = 6
origin_tech = "combat=2"

/obj/item/ammo_box/magazine/pea/virus/in_fire
name = "pealoader"
cases = list("гороховый зарядник", "горохового зарядника", "гороховому заряднику", "гороховый зарядник", "гороховым зарядником", "гороховом заряднике")
desc = "Гороховый зарядник для горохового пистолета."
caliber = "Pea"
ammo_type = /obj/item/ammo_casing/pea/virus/in_fire
max_ammo = 6
origin_tech = "combat=2"
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 @@ -126,9 +126,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 @@ -72,8 +72,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 @@ -1185,6 +1185,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 @@ -1197,6 +1198,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
86 changes: 43 additions & 43 deletions config/example/admin_ranks.txt
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
########################################################################################
# ADMIN RANK DEFINES #
# The format of this is very simple. Rank name goes first. #
# Rank is CASE-SENSITIVE, all punctuation will be stripped so spaces don't matter. #
# Each rank is then followed by keywords with the prefix "+". #
# These keywords represent groups of verbs and abilities which are given to that rank. #
# +@ (or +prev) is a special shorthand which adds all the rights of the rank above it. #
# Ranks with no keywords will just be given the most basic verbs and abilities ~Carn #
########################################################################################
# PLEASE NOTE: depending on config options, some abilities will be unavailable regardless if you have permission to use them!
# ALSO NOTE: this is a WorkInProgress at the moment. Most of this is just arbitrarily thrown in whatever group because LoadsaWork2Do+LittleTime.
# I'll be doing more moving around as feedback comes in. So be sure to check the notes after updates.
# KEYWORDS:
# +ADMIN = general admin tools, verbs etc
# +FUN = events, other event-orientated actions. Access to the fun secrets in the secrets panel.
# +BAN = the ability to ban, jobban and fullban
# +STEALTH = the ability to stealthmin (make yourself appear with a fake name to everyone but other admins
# +POSSESS = the ability to possess objects
# +REJUV (or +REJUVINATE) = the ability to heal, respawn, modify damage and use godmode
# +BUILD (or +BUILDMODE) = the ability to use buildmode
# +SERVER = higher-risk admin verbs and abilities, such as those which affect the server configuration.
# +DEBUG = debug tools used for diagnosing and fixing problems. It's useful to give this to coders so they can investigate problems on a live server.
# +VAREDIT = everyone may view viewvars/debugvars/whatever you call it. This keyword allows you to actually EDIT those variables.
# +RIGHTS (or +PERMISSIONS) = allows you to promote and/or demote people.
# +SOUND (or +SOUNDS) = allows you to upload and play sounds
# +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too)
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag
Admin Observer
Admin Candidate +ADMIN
Trial Admin +@ +SPAWN +REJUV +VAREDIT +BAN
Badmin +@ +POSSESS +BUILDMODE +SERVER +FUN
Game Admin +@ +STEALTH +SOUNDS +DEBUG +PERMISSIONS
Game Master +EVERYTHING
Head Admin +EVERYTHING
Retired Admin +ADMIN +STEALTH
Host +EVERYTHING
Developer +DEBUG +VAREDIT +SERVER +SPAWN +REJUV +POSSESS +BUILDMODE
Dev Mod +@ +MOD
########################################################################################
# ADMIN RANK DEFINES #
# The format of this is very simple. Rank name goes first. #
# Rank is CASE-SENSITIVE, all punctuation will be stripped so spaces don't matter. #
# Each rank is then followed by keywords with the prefix "+". #
# These keywords represent groups of verbs and abilities which are given to that rank. #
# +@ (or +prev) is a special shorthand which adds all the rights of the rank above it. #
# Ranks with no keywords will just be given the most basic verbs and abilities ~Carn #
########################################################################################
# PLEASE NOTE: depending on config options, some abilities will be unavailable regardless if you have permission to use them!
# ALSO NOTE: this is a WorkInProgress at the moment. Most of this is just arbitrarily thrown in whatever group because LoadsaWork2Do+LittleTime.
# I'll be doing more moving around as feedback comes in. So be sure to check the notes after updates.

# KEYWORDS:
# +ADMIN = general admin tools, verbs etc
# +FUN = events, other event-orientated actions. Access to the fun secrets in the secrets panel.
# +BAN = the ability to ban, jobban and fullban
# +STEALTH = the ability to stealthmin (make yourself appear with a fake name to everyone but other admins
# +POSSESS = the ability to possess objects
# +REJUV (or +REJUVINATE) = the ability to heal, respawn, modify damage and use godmode
# +BUILD (or +BUILDMODE) = the ability to use buildmode
# +SERVER = higher-risk admin verbs and abilities, such as those which affect the server configuration.
# +DEBUG = debug tools used for diagnosing and fixing problems. It's useful to give this to coders so they can investigate problems on a live server.
# +VAREDIT = everyone may view viewvars/debugvars/whatever you call it. This keyword allows you to actually EDIT those variables.
# +RIGHTS (or +PERMISSIONS) = allows you to promote and/or demote people.
# +SOUND (or +SOUNDS) = allows you to upload and play sounds
# +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too)
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag

Admin Observer

Admin Candidate +ADMIN
Trial Admin +@ +SPAWN +REJUV +VAREDIT +BAN
Badmin +@ +POSSESS +BUILDMODE +SERVER +FUN
Game Admin +@ +STEALTH +SOUNDS +DEBUG +PERMISSIONS
Game Master +EVERYTHING
Head Admin +EVERYTHING
Retired Admin +ADMIN +STEALTH

Host +EVERYTHING

Developer +DEBUG +VAREDIT +SERVER +SPAWN +REJUV +POSSESS +BUILDMODE
Dev Mod +@ +MOD
17 changes: 9 additions & 8 deletions config/example/admins.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
######################################################################
# Basically, ckey goes first. Rank goes after the "-" #
# Case is not important for ckey. #
# Case IS important for the rank. However punctuation/spaces are not #
# Ranks can be anything defined in admin_ranks.txt ~Carn #
######################################################################

# not_a_user - Admin
######################################################################
# Basically, ckey goes first. Rank goes after the "-" #
# Case is not important for ckey. #
# Case IS important for the rank. However punctuation/spaces are not #
# Ranks can be anything defined in admin_ranks.txt ~Carn #
######################################################################

# not_a_user - Admin
Danistans - Host
Loading
Loading