Glamour Experimentation (#17003)

* Glamour Experimentation

Added a new stable glamour crafting material that can be used to craft various items.

Added a new unstable glamour item, that has a few risky effects when used and picked up without protection.

Added a new particle smasher recipe to turn unstable glamour into stable glamour.

Added new items to the lleill transmute ability.

Added new glamour bow and arrow items.

* Fixed a bit of phrasing

* Consolidates TF procs

Changed TF procs and belly transfer procs to be called from one location rather than being repeated in various different procs across the code.

* forgot to include

* Fixed size change effect

* timer instead of spawn

* Added new glamour turfs for whitespace maps.
This commit is contained in:
SatinIsle
2025-02-01 19:28:56 +00:00
committed by GitHub
parent 4c8b23497c
commit cd89f4d237
20 changed files with 469 additions and 300 deletions
+2 -58
View File
@@ -221,21 +221,12 @@
ourmob.forceMove(get_dat_turf)
ourmob.vore_selected = M.vore_selected
M.vore_selected = null
for(var/obj/belly/B as anything in M.vore_organs)
log_debug("polymorph belly")
B.loc = ourmob
B.forceMove(ourmob)
B.owner = ourmob
M.vore_organs -= B
ourmob.vore_organs += B
ourmob.mob_belly_transfer(M)
ourmob.Life(1)
if(ishuman(M))
log_debug("polymorph human")
for(var/obj/item/W in M)
log_debug("polymorph items")
if(istype(W, /obj/item/implant/backup) || istype(W, /obj/item/nif))
log_debug("polymorph implants")
continue
M.drop_from_inventory(W)
@@ -250,54 +241,7 @@
var/mob/living/new_mob = spawn_mob(M)
new_mob.faction = M.faction
if(new_mob && isliving(new_mob))
log_debug("polymorph new_mob")
for(var/obj/belly/B as anything in new_mob.vore_organs)
log_debug("polymorph new_mob belly")
new_mob.vore_organs -= B
qdel(B)
new_mob.vore_organs = list()
new_mob.name = M.name
new_mob.real_name = M.real_name
for(var/lang in M.languages)
new_mob.languages |= lang
M.copy_vore_prefs_to_mob(new_mob)
new_mob.vore_selected = M.vore_selected
if(ishuman(M))
log_debug("polymorph ishuman part2")
var/mob/living/carbon/human/H = M
if(ishuman(new_mob))
log_debug("polymorph ishuman(newmob)")
var/mob/living/carbon/human/N = new_mob
N.gender = H.gender
N.identifying_gender = H.identifying_gender
else
log_debug("polymorph gender else")
new_mob.gender = H.gender
else
log_debug("polymorph gender else 2")
new_mob.gender = M.gender
if(ishuman(new_mob))
var/mob/living/carbon/human/N = new_mob
N.identifying_gender = M.gender
for(var/obj/belly/B as anything in M.vore_organs)
B.loc = new_mob
B.forceMove(new_mob)
B.owner = new_mob
M.vore_organs -= B
new_mob.vore_organs += B
new_mob.ckey = M.ckey
if(M.ai_holder && new_mob.ai_holder)
var/datum/ai_holder/old_AI = M.ai_holder
old_AI.set_stance(STANCE_SLEEP)
var/datum/ai_holder/new_AI = new_mob.ai_holder
new_AI.hostile = old_AI.hostile
new_AI.retaliate = old_AI.retaliate
M.loc = new_mob
M.forceMove(new_mob)
new_mob.tf_mob_holder = M
new_mob.mob_tf(M)
target.bloodstr.clear_reagents() //Got to clear all reagents to make sure mobs don't keep spawning.
target.ingested.clear_reagents()
target.touching.clear_reagents()