[MIRROR] Integrates spider eggs into the mob spawners (#6502)

* Integrates spider eggs into the mob spawners

* Update corpse.dm

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
SkyratBot
2021-06-27 16:01:04 +01:00
committed by GitHub
co-authored by Arkatos1 Gandalf
parent 221bc79f7c
commit 73fdf1fa20
9 changed files with 195 additions and 104 deletions
+29 -20
View File
@@ -10,7 +10,6 @@
owner = null
return ..()
/datum/spawners_menu/ui_state(mob/user)
return GLOB.observer_state
@@ -29,24 +28,27 @@
this["short_desc"] = ""
this["flavor_text"] = ""
this["important_warning"] = ""
this["amount_left"] = 0
this["refs"] = list()
for(var/spawner_obj in GLOB.mob_spawners[spawner])
this["refs"] += "[REF(spawner_obj)]"
if(!this["desc"])
if(istype(spawner_obj, /obj/effect/mob_spawn))
var/obj/effect/mob_spawn/MS = spawner_obj
this["short_desc"] = MS.short_desc
this["flavor_text"] = MS.flavour_text
this["important_info"] = MS.important_info
var/obj/effect/mob_spawn/mob_spawner = spawner_obj
if(!mob_spawner.ready)
continue
this["short_desc"] = mob_spawner.short_desc
this["flavor_text"] = mob_spawner.flavour_text
this["important_info"] = mob_spawner.important_info
else
var/obj/O = spawner_obj
this["desc"] = O.desc
this["amount_left"] = LAZYLEN(GLOB.mob_spawners[spawner])
data["spawners"] += list(this)
var/obj/object = spawner_obj
this["desc"] = object.desc
this["refs"] += "[REF(spawner_obj)]"
this["amount_left"] += 1
if(this["amount_left"] > 0)
data["spawners"] += list(this)
return data
/datum/spawners_menu/ui_act(action, params)
/datum/spawners_menu/ui_act(action, params, datum/tgui/ui)
. = ..()
if(.)
return
@@ -55,17 +57,24 @@
if(!group_name || !(group_name in GLOB.mob_spawners))
return
var/list/spawnerlist = GLOB.mob_spawners[group_name]
for(var/obj/effect/mob_spawn/current_spawner as anything in spawnerlist)
if(!current_spawner.ready)
spawnerlist -= current_spawner
if(!spawnerlist.len)
return
var/obj/effect/mob_spawn/MS = pick(spawnerlist)
if(!istype(MS) || !(MS in GLOB.poi_list))
var/obj/effect/mob_spawn/mob_spawner = pick(spawnerlist)
if(!istype(mob_spawner) || !(mob_spawner in GLOB.poi_list))
return
switch(action)
if("jump")
if(MS)
owner.forceMove(get_turf(MS))
. = TRUE
if(mob_spawner)
owner.forceMove(get_turf(mob_spawner))
return TRUE
if("spawn")
if(MS)
MS.attack_ghost(owner)
. = TRUE
if(mob_spawner)
if(mob_spawner.radial_based)
owner.ManualFollow(mob_spawner)
ui.close()
mob_spawner.attack_ghost(owner)
return TRUE