mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-09 00:52:09 +00:00
* crawling? * knockdown. CONTAINS CHANGES THAT NEED REVERTING * plotting can_moves death * CANMOVE IS DEAD * mappers are insane * removes todos as the are todone * decreases crawling speed * silly-con fixes * surgery fixes * fixes death * pAI fixes * removes var/lying * runtime fix * decreases default crawling speed * correct crawling dir * some more fixes * stunbaton tweak, revert later * rejuv fix * restraint and incapacitated refactor * crawling dir in line with TG * fixes vehicle movement and grabs * alien rest fixes * antistun fixes * fixed fall sounds * forgor to stage this * first review * canmove zombie dispersal * fix * lots of fixes * defines * fixes the trait helper * if you got no legs you can still crawl * sillyconfix * no reverty keepy * jaunt fix * hopefully fixes perma sleepy zzz * admin rejuv temp fix * rest canceling * antistun chems now remove knockdown * buckle offset fix * fixes some stuff * crawling delay = 4 * descuffs bed * sleeping hotfix * fixes simple mob resting * V is the macro for resting * projectiles no dodgy * refines the projectile check * god I hate strings * MORE FIXES * I hate buckling * fixes capulettium plus * winding down * farie review * bugs did stop showing up * SEAN * todo * sean review * ed209 * i HATE cyborgs * steel review * laaaaaast things * reverts stun baton changes * and done
80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
/datum/mutation/monkey
|
|
name = "Monkey"
|
|
|
|
/datum/mutation/monkey/New()
|
|
..()
|
|
block = GLOB.monkeyblock
|
|
|
|
/datum/mutation/monkey/can_activate(mob/M, flags)
|
|
return ishuman(M)
|
|
|
|
/datum/mutation/monkey/activate(mob/living/carbon/human/H)
|
|
..()
|
|
if(!istype(H))
|
|
return
|
|
if(issmall(H))
|
|
return
|
|
for(var/obj/item/W in H)
|
|
if(istype(W, /obj/item/implant))
|
|
continue
|
|
H.unEquip(W)
|
|
|
|
H.regenerate_icons()
|
|
ADD_TRAIT(H, TRAIT_IMMOBILIZED, TRANSFORMING_TRAIT)
|
|
ADD_TRAIT(H, TRAIT_HANDS_BLOCKED, TRANSFORMING_TRAIT)
|
|
H.icon = null
|
|
H.invisibility = 101
|
|
var/has_primitive_form = H.dna.species.primitive_form // cache this
|
|
if(has_primitive_form)
|
|
H.set_species(has_primitive_form)
|
|
|
|
new /obj/effect/temp_visual/monkeyify(H.loc)
|
|
sleep(22)
|
|
|
|
H.invisibility = initial(H.invisibility)
|
|
|
|
if(!has_primitive_form) //If the pre-change mob in question has no primitive set, this is going to be messy.
|
|
H.gib()
|
|
return
|
|
REMOVE_TRAITS_IN(H, TRANSFORMING_TRAIT)
|
|
to_chat(H, "<B>You are now a [H.dna.species.name].</B>")
|
|
|
|
return H
|
|
|
|
/datum/mutation/monkey/deactivate(mob/living/carbon/human/H)
|
|
..()
|
|
if(!istype(H))
|
|
return
|
|
if(!issmall(H))
|
|
return
|
|
for(var/obj/item/W in H)
|
|
if(W == H.w_uniform) // will be torn
|
|
continue
|
|
if(istype(W, /obj/item/implant))
|
|
continue
|
|
H.unEquip(W)
|
|
H.regenerate_icons()
|
|
ADD_TRAIT(H, TRAIT_IMMOBILIZED, TRANSFORMING_TRAIT)
|
|
ADD_TRAIT(H, TRAIT_HANDS_BLOCKED, TRANSFORMING_TRAIT)
|
|
H.icon = null
|
|
H.invisibility = 101
|
|
var/has_greater_form = H.dna.species.greater_form //cache this
|
|
if(has_greater_form)
|
|
H.set_species(has_greater_form)
|
|
|
|
new /obj/effect/temp_visual/monkeyify/humanify(H.loc)
|
|
sleep(22)
|
|
REMOVE_TRAITS_IN(H, TRANSFORMING_TRAIT)
|
|
H.invisibility = initial(H.invisibility)
|
|
|
|
if(!has_greater_form) //If the pre-change mob in question has no primitive set, this is going to be messy.
|
|
H.gib()
|
|
return
|
|
|
|
H.real_name = H.dna.real_name
|
|
H.name = H.real_name
|
|
|
|
to_chat(H, "<B>You are now a [H.dna.species.name].</B>")
|
|
|
|
return H
|