Merge pull request #14102 from Hatterhat/somatobuff-50513

[READY] somatoray buff - mutation locks + revolution ray
This commit is contained in:
silicons
2021-01-25 23:17:29 -07:00
committed by GitHub
9 changed files with 57 additions and 7 deletions

View File

@@ -92,6 +92,11 @@
return BULLET_ACT_HIT
else if(istype(Proj , /obj/item/projectile/energy/florayield))
return myseed.bullet_act(Proj)
else if(istype(Proj , /obj/item/projectile/energy/florarevolution))
if(myseed)
if(myseed.mutatelist.len > 0)
myseed.instability = (myseed.instability/2)
mutatespecie()
else
return ..()
@@ -384,7 +389,6 @@
/obj/machinery/hydroponics/proc/hardmutate()
mutate(4, 10, 2, 4, 50, 4, 10, 3)
/obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant!
if(!myseed || dead)
return
@@ -600,7 +604,34 @@
desc = initial(desc)
weedlevel = 0 //Has a side effect of cleaning up those nasty weeds
update_icon()
else if(istype(O, /obj/item/gun/energy/floragun))
var/obj/item/gun/energy/floragun/flowergun = O
if(flowergun.cell.charge < flowergun.cell.maxcharge)
to_chat(user, "<span class='notice'>[flowergun] must be fully charged to lock in a mutation!</span>")
return
if(!myseed)
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(myseed.endurance <= 20)
to_chat(user, "<span class='warning'>[myseed.plantname] isn't hardy enough to sequence its mutation!</span>")
return
if(!myseed.mutatelist)
to_chat(user, "<span class='warning'>[myseed.plantname] has nothing else to mutate into!</span>")
return
else
var/list/fresh_mut_list = list()
for(var/muties in myseed.mutatelist)
var/obj/item/seeds/another_mut = new muties
fresh_mut_list[another_mut.plantname] = muties
var/locked_mutation = (input(user, "Select a mutation to lock.", "Plant Mutation Locks") as null|anything in sortList(fresh_mut_list))
if(!user.canUseTopic(src, BE_CLOSE) || !locked_mutation)
return
myseed.mutatelist = list(fresh_mut_list[locked_mutation])
myseed.endurance = (myseed.endurance/2)
flowergun.cell.use(flowergun.cell.charge)
flowergun.update_icon()
to_chat(user, "<span class='notice'>[myseed.plantname]'s mutation was set to [locked_mutation], depleting [flowergun]'s cell!</span>")
return
else
return ..()

View File

@@ -1985,6 +1985,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
if(/obj/item/projectile/energy/florayield)
H.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
if(/obj/item/projectile/energy/florarevolution)
H.show_message("<span class='notice'>The radiation beam dissipates harmlessly through your body.</span>")
/datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H)
// called before a projectile hit

View File

@@ -64,6 +64,11 @@
H.show_message("<span class='userdanger'>The radiation beam singes you!</span>")
if(/obj/item/projectile/energy/florayield)
H.adjust_nutrition(30, NUTRITION_LEVEL_FULL)
if(/obj/item/projectile/energy/florarevolution)
H.show_message("<span class='notice'>The radiation beam leaves you feeling disoriented!</span>")
H.Dizzy(15)
H.emote("flip")
H.emote("spin")
/datum/species/pod/pseudo_weak
name = "Anthromorphic Plant"

View File

@@ -24,6 +24,11 @@
projectile_type = /obj/item/projectile/energy/floramut
select_name = "mutation"
/obj/item/ammo_casing/energy/flora/revolution
projectile_type = /obj/item/projectile/energy/florarevolution
select_name = "revolution"
e_cost = 250
/obj/item/ammo_casing/energy/temp
projectile_type = /obj/item/projectile/temp
select_name = "freeze"

View File

@@ -45,7 +45,7 @@
desc = "A tool that discharges controlled radiation which induces mutation in plant cells."
icon_state = "flora"
item_state = "gun"
ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut)
ammo_type = list(/obj/item/ammo_casing/energy/flora/yield, /obj/item/ammo_casing/energy/flora/mut, /obj/item/ammo_casing/energy/flora/revolution)
modifystate = 1
ammo_x_offset = 1
selfcharge = EGUN_SELFCHARGE

View File

@@ -2,7 +2,7 @@
name = "alpha somatoray"
icon_state = "energy"
damage = 0
damage_type = TOX
damage_type = TRUE
nodamage = 1
flag = "energy"
@@ -21,5 +21,13 @@
icon_state = "energy2"
damage = 0
damage_type = TOX
nodamage = 1
nodamage = TRUE
flag = "energy"
/obj/item/projectile/energy/florarevolution
name = "gamma somatorary"
icon_state = "energy3"
damage = 0
damage_type = TOX
nodamage = TRUE
flag = "energy"

View File

@@ -324,8 +324,7 @@
desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
id = "flora_gun"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 2000, /datum/material/glass = 500)
reagents_list = list(/datum/reagent/radium = 20)
materials = list(/datum/material/iron = 2000, /datum/material/glass = 500, /datum/material/uranium = 2000)
build_path = /obj/item/gun/energy/floragun
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 129 KiB