mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 21:48:21 +01:00
Refactors slipping to be completely general for items
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user