-
-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathgrowninedible.dm
77 lines (64 loc) · 2.2 KB
/
growninedible.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// **********************
// Other harvested materials from plants (that are not food)
// **********************
/obj/item/grown // Grown weapons
name = "grown_weapon"
icon = 'icons/obj/hydroponics/harvest.dmi'
resistance_flags = FLAMMABLE
var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item.
/obj/item/grown/Initialize(mapload, obj/item/seeds/new_seed)
. = ..()
create_reagents(50)
if(new_seed)
seed = new_seed.Copy()
else if(ispath(seed))
// This is for adminspawn or map-placed growns. They get the default stats of their seed type.
seed = new seed()
seed.adjust_potency(50-seed.potency)
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_new(src, loc)
if(istype(src, seed.product)) // no adding reagents if it is just a trash item
seed.prepare_result(src)
transform *= TRANSFORM_USING_VARIABLE(seed.potency, 100) + 0.5
w_class = round((seed.potency / 100) * 2, 1) + 1 //more potent plants are larger
add_juice()
/obj/item/grown/examine(mob/user)
. = ..()
if(user.skill_check(SKILL_SCIENCE, EXP_LOW))
. += seed.get_analyzer_text(user, TRUE)
/// Ghost attack proc
/obj/item/grown/attack_ghost(mob/user)
..()
var/msg = "<span class='info'>This is \a [span_name("[src]")]\n"
if(seed)
msg += seed.get_analyzer_text()
msg += "</span>"
to_chat(usr, examine_block(msg))
return
/obj/item/grown/attackby(obj/item/O, mob/user, params)
..()
if (istype(O, /obj/item/plant_analyzer))
playsound(src, 'sound/effects/fastbeep.ogg', 30)
var/msg = "<span class='info'>This is \a [span_name("[src]")]\n"
if(seed)
msg += seed.get_analyzer_text()
msg += "</span>"
to_chat(usr, examine_block(msg))
return
/obj/item/grown/proc/add_juice()
if(reagents)
return 1
return 0
/obj/item/grown/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(!..()) //was it caught by a mob?
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_throw_impact(src, hit_atom)
/obj/item/grown/microwave_act(obj/machinery/microwave/M)
return
/obj/item/grown/on_grind()
for(var/i in 1 to grind_results.len)
grind_results[grind_results[i]] = round(seed.potency)