mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 20:43:10 +01:00
Changeling lesser form remake (#7436)
This commit is contained in:
@@ -38,8 +38,8 @@ var/list/datum/power/changeling/powerinstances = list()
|
||||
|
||||
/datum/power/changeling/lesser_form
|
||||
name = "Lesser Form"
|
||||
desc = "We debase ourselves and become lesser. We become a monkey."
|
||||
genomecost = 4
|
||||
desc = "We debase ourselves and become lesser. We become a weaker, but more mobile form."
|
||||
genomecost = 2
|
||||
verbpath = /mob/proc/changeling_lesser_form
|
||||
|
||||
/datum/power/changeling/mimicvoice
|
||||
@@ -54,7 +54,6 @@ var/list/datum/power/changeling/powerinstances = list()
|
||||
desc = "We fake our own death, imperceptible to even the best of doctors. We can choose when to re-animate."
|
||||
helptext = "Can be used before or after death. Duration varies greatly."
|
||||
genomecost = 0
|
||||
allowduringlesserform = TRUE
|
||||
verbpath = /mob/proc/changeling_fakedeath
|
||||
|
||||
//Hivemind
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
if(!changeling)
|
||||
return
|
||||
|
||||
if(!ishuman(src))
|
||||
to_chat(src, "<span class='warning'>We cannot perform this ability as this form!</span>")
|
||||
return
|
||||
|
||||
var/list/names = list()
|
||||
for(var/datum/absorbed_dna/DNA in changeling.absorbed_dna)
|
||||
names += "[DNA.name]"
|
||||
@@ -33,9 +37,8 @@
|
||||
return TRUE
|
||||
|
||||
/mob/proc/handle_changeling_transform(var/datum/absorbed_dna/chosen_dna)
|
||||
src.visible_message("<span class='warning'>[src] transforms!</span>")
|
||||
|
||||
if(ishuman(src))
|
||||
src.visible_message("<span class='warning'>[src] transforms!</span>")
|
||||
var/mob/living/carbon/human/H = src
|
||||
var/newSpecies = chosen_dna.speciesName
|
||||
H.set_species(newSpecies, 1)
|
||||
@@ -75,7 +78,30 @@
|
||||
H.visible_message("<span class='warning'>[H] transforms!</span>")
|
||||
changeling.geneticdamage = 30
|
||||
to_chat(H, "<span class='warning'>Our genes cry out!</span>")
|
||||
H = H.monkeyize()
|
||||
|
||||
var/mob/living/simple_animal/hostile/lesser_changeling/ling = new (get_turf(H))
|
||||
|
||||
if(istype(H,/mob/living/carbon/human))
|
||||
for(var/obj/item/I in H.contents)
|
||||
if(isorgan(I))
|
||||
continue
|
||||
H.drop_from_inventory(I)
|
||||
|
||||
if(H.mind)
|
||||
H.mind.transfer_to(ling)
|
||||
else
|
||||
ling.key = H.key
|
||||
ling.occupant = H
|
||||
var/atom/movable/overlay/effect = new /atom/movable/overlay(get_turf(H))
|
||||
effect.density = FALSE
|
||||
effect.anchored = TRUE
|
||||
effect.icon = 'icons/effects/effects.dmi'
|
||||
effect.layer = 3
|
||||
flick("summoning", effect)
|
||||
QDEL_IN(effect, 10)
|
||||
H.forceMove(ling)
|
||||
H.status_flags |= GODMODE
|
||||
|
||||
feedback_add_details("changeling_powers", "LF")
|
||||
return TRUE
|
||||
|
||||
@@ -338,7 +364,7 @@
|
||||
if(M.l_hand && M.r_hand)
|
||||
to_chat(M, "<span class='danger'>Your hands are full.</span>")
|
||||
return
|
||||
|
||||
|
||||
if(M.handcuffed)
|
||||
var/cuffs = M.handcuffed
|
||||
M.u_equip(M.handcuffed)
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
icon_state = "abomination"
|
||||
icon_living = "abomination"
|
||||
icon_dead = "abomination_dead"
|
||||
stop_automated_movement = 1
|
||||
universal_speak = 1
|
||||
universal_understand = 1
|
||||
stop_automated_movement = TRUE
|
||||
universal_speak = TRUE
|
||||
universal_understand = TRUE
|
||||
|
||||
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
|
||||
mob_push_flags = ALLMOBS
|
||||
@@ -139,3 +139,94 @@
|
||||
var/obj/item/bone_dart/A = new /obj/item/bone_dart(usr.loc)
|
||||
A.throw_at(target, 10, 20, usr)
|
||||
add_logs(src, target, "launched a bone dart at")
|
||||
|
||||
/mob/living/simple_animal/hostile/lesser_changeling
|
||||
name = "crawling horror"
|
||||
desc = "An agile monster made of twisted flesh and bone."
|
||||
speak_emote = list("gibbers")
|
||||
icon = 'icons/mob/npc/animal.dmi'
|
||||
icon_state = "lesser_ling"
|
||||
icon_living = "lesser_ling"
|
||||
|
||||
stop_automated_movement = TRUE
|
||||
universal_speak = TRUE
|
||||
universal_understand = TRUE
|
||||
|
||||
tameable = FALSE
|
||||
|
||||
response_help = "pets"
|
||||
response_disarm = "shoves"
|
||||
response_harm = "harmlessly punches"
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 10
|
||||
mob_size = 15
|
||||
attacktext = "mangled"
|
||||
attack_sound = 'sound/weapons/bloodyslice.ogg'
|
||||
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_NOLIGHTING
|
||||
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
density = FALSE
|
||||
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 350
|
||||
min_oxy = 0
|
||||
max_co2 = 0
|
||||
max_tox = 0
|
||||
|
||||
speed = -2
|
||||
|
||||
var/mob/living/carbon/human/occupant = null
|
||||
|
||||
/mob/living/simple_animal/hostile/lesser_changeling/Initialize()
|
||||
. = ..()
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
|
||||
/mob/living/simple_animal/hostile/lesser_changeling/mind_initialize()
|
||||
..()
|
||||
mind.assigned_role = "Changeling"
|
||||
|
||||
/mob/living/simple_animal/hostile/lesser_changeling/death(gibbed)
|
||||
..()
|
||||
if(!gibbed)
|
||||
if(occupant)
|
||||
occupant.forceMove(get_turf(src))
|
||||
occupant.status_flags &= ~GODMODE
|
||||
if(mind)
|
||||
mind.transfer_to(occupant)
|
||||
|
||||
visible_message("<span class='warning'>\The [src] explodes into a shower of gore!</span>")
|
||||
gibs(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/hostile/lesser_changeling/verb/untransform()
|
||||
set name = "Return to original form"
|
||||
set desc = "Return to your original form."
|
||||
set category = "Changeling"
|
||||
|
||||
if(!health)
|
||||
to_chat(usr, "<span class='notice'>We are dead, we cannot use any abilities!</span>")
|
||||
return
|
||||
|
||||
if(last_special > world.time)
|
||||
return
|
||||
|
||||
if(!isturf(loc))
|
||||
return
|
||||
|
||||
last_special = world.time + 30
|
||||
|
||||
if(occupant)
|
||||
occupant.forceMove(get_turf(src))
|
||||
occupant.status_flags &= ~GODMODE
|
||||
if(mind)
|
||||
mind.transfer_to(occupant)
|
||||
visible_message("<span class='warning'>\The [src] explodes into a shower of gore!</span>")
|
||||
gibs(src.loc)
|
||||
qdel(src)
|
||||
@@ -11,7 +11,8 @@ var/global/list/can_enter_vent_with = list(
|
||||
/obj/item/holder,
|
||||
/obj/machinery/camera,
|
||||
/mob/living/simple_animal/borer,
|
||||
/mob/living/simple_animal/rat
|
||||
/mob/living/simple_animal/rat,
|
||||
/mob/living/carbon/human
|
||||
)
|
||||
|
||||
/mob/living/var/list/icon/pipes_shown = list()
|
||||
|
||||
@@ -41,14 +41,17 @@
|
||||
//If its not small or the device isnt enabled, it wont blend
|
||||
if(!issmall(AM) || !use_power)
|
||||
return FALSE
|
||||
|
||||
|
||||
//Get the things we need to create the "output"
|
||||
var/mob/living/L = AM
|
||||
|
||||
if(L.mob_size > MOB_TINY)
|
||||
return
|
||||
|
||||
var/blood_color = "#A10808"
|
||||
if(L.blood_color)
|
||||
blood_color = L.blood_color
|
||||
|
||||
|
||||
if(iscarbon(AM))
|
||||
var/mob/living/carbon/C = AM
|
||||
blood_color = C.species.blood_color
|
||||
@@ -58,7 +61,7 @@
|
||||
//Blend the Mob
|
||||
to_chat(AM, span("danger","\The [src] blends you to a fine dust."))
|
||||
L.death()
|
||||
qdel(L)
|
||||
qdel(L)
|
||||
|
||||
//Output what´s left through the connected vents
|
||||
if(N)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
author: Alberyk, Kyres1
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Reworked the changeling lesser form power. It transform the changeling into a small monster, that can ventcrawl and fun fast."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 295 KiB |
Reference in New Issue
Block a user