Refactors slipping to be completely general for items

This commit is contained in:
Crazylemon64
2017-07-16 19:20:55 -07:00
parent 12317a77b9
commit a8e7716649
13 changed files with 90 additions and 53 deletions
+5
View File
@@ -131,6 +131,11 @@
T.on_cross(src, AM)
..()
/obj/item/weapon/reagent_containers/food/snacks/grown/on_trip(mob/living/carbon/human/H)
. = ..()
if(. && seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_slip(src, H)
// Glow gene procs
/obj/item/weapon/reagent_containers/food/snacks/grown/generate_trash(atom/location)
+8 -5
View File
@@ -113,9 +113,12 @@
/obj/item/weapon/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes
name = "synthesized banana peel"
desc = "A synthetic banana peel."
trip_stun = 2
trip_weaken = 2
trip_bonus = 100
trip_walksafe = FALSE
trip_verb = TV_SLIP
/obj/item/weapon/grown/bananapeel/specialpeel/Crossed(AM)
if(iscarbon(AM))
var/mob/living/carbon/carbon = AM
if(carbon.slip("[src]", 2, 2))
qdel(src)
/obj/item/weapon/grown/bananapeel/specialpeel/on_trip(mob/living/carbon/human/H)
if(..())
qdel(src)
+7 -1
View File
@@ -57,8 +57,14 @@
T.on_cross(src, AM)
..()
/obj/item/weapon/grown/on_trip(mob/living/carbon/human/H)
. = ..()
if(. && seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_slip(src, H)
/obj/item/weapon/grown/throw_impact(atom/hit_atom)
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)
T.on_throw_impact(src, hit_atom)
+13 -14
View File
@@ -204,24 +204,23 @@
rate = 0.1
examine_line = "<span class='info'>It has a very slippery skin.</span>"
/datum/plant_gene/trait/slip/on_cross(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target)
if(iscarbon(target))
var/obj/item/seeds/seed = G.seed
var/mob/living/carbon/M = target
/datum/plant_gene/trait/slip/on_new(obj/item/weapon/reagent_containers/food/snacks/grown/G, newloc)
. = ..()
if(istype(G) && ispath(G.trash, /obj/item/weapon/grown))
return
var/stun_len = seed.potency * rate * 0.8
if(istype(G) && ispath(G.trash, /obj/item/weapon/grown))
return
var/stun_len = G.seed.potency * rate * 0.8
if(!istype(G, /obj/item/weapon/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube")))
stun_len /= 3
if(!istype(G, /obj/item/weapon/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube")))
stun_len /= 3
var/stun = min(stun_len, 7)
var/weaken = min(stun_len, 7)
stun_len = min(stun_len, 7) // No fun allowed
if(M.slip("[G]", stun, weaken))
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_slip(G, M)
G.trip_stun = stun_len
G.trip_weaken = stun_len
G.trip_bonus = 100
G.trip_verb = TV_SLIP
G.trip_walksafe = FALSE
/datum/plant_gene/trait/cell_charge
// Cell recharging trait. Charges all mob's power cells to (potency*rate)% mark when eaten.