diff --git a/code/game/gamemodes/changeling/implements/powers/body.dm b/code/game/gamemodes/changeling/implements/powers/body.dm
index 98474b3e80b..db673a2ff9e 100644
--- a/code/game/gamemodes/changeling/implements/powers/body.dm
+++ b/code/game/gamemodes/changeling/implements/powers/body.dm
@@ -69,11 +69,17 @@
to_chat(src, "We cannot perform this ability in this form!")
return
+ if(!isturf(loc)) // so people can't transform inside places they should not, like sleepers
+ return
+
if(H.handcuffed)
var/cuffs = H.handcuffed
H.u_equip(H.handcuffed)
qdel(cuffs)
+ if(H.buckled)
+ H.buckled.unbuckle_mob()
+
changeling.chem_charges--
H.visible_message("[H] transforms!")
changeling.geneticdamage = 30
@@ -451,7 +457,10 @@
if(!changeling)
return FALSE
- var/mob/living/M = src
+ if(!isturf(loc)) // so people can't transform inside places they should not, like sleepers
+ return
+
+ var/mob/living/carbon/human/M = src
if(alert("Are we sure we wish to reveal ourselves? This will only revert after ten minutes.", , "Yes", "No") == "No") //Changelings have to confirm whether they want to go full horrorform
return
@@ -471,11 +480,19 @@
var/mob/living/simple_animal/hostile/true_changeling/ling = new (get_turf(M))
if(istype(M,/mob/living/carbon/human))
+ if(M.handcuffed)
+ var/cuffs = M.handcuffed
+ M.u_equip(M.handcuffed)
+ qdel(cuffs)
+
for(var/obj/item/I in M.contents)
if(isorgan(I))
continue
M.drop_from_inventory(I)
+ if(M.buckled)
+ M.buckled.unbuckle_mob()
+
if(M.mind)
M.mind.transfer_to(ling)
else
diff --git a/code/modules/mob/living/simple_animal/hostile/changeling.dm b/code/modules/mob/living/simple_animal/hostile/changeling.dm
index 1da07aa924e..69b21eabef8 100644
--- a/code/modules/mob/living/simple_animal/hostile/changeling.dm
+++ b/code/modules/mob/living/simple_animal/hostile/changeling.dm
@@ -164,8 +164,8 @@
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
- maxHealth = 150
- health = 150
+ maxHealth = 50
+ health = 50
harm_intent_damage = 5
melee_damage_lower = 5
melee_damage_upper = 10
@@ -186,7 +186,7 @@
max_co2 = 0
max_tox = 0
- speed = -2
+ speed = -1
var/mob/living/carbon/human/occupant = null
diff --git a/html/changelogs/alberyk-changelingstuff.yml b/html/changelogs/alberyk-changelingstuff.yml
new file mode 100644
index 00000000000..8b24e1aca8b
--- /dev/null
+++ b/html/changelogs/alberyk-changelingstuff.yml
@@ -0,0 +1,7 @@
+author: Alberyk
+
+delete-after: True
+
+changes:
+ - balance: "Changeling lesser forms should have far less health and speed."
+ - bugfix: "Fixed some bugs related to changeling using alternate forms and buckling."