Fixes grinch (#31590)

* Fixes grinch

* Fixes grinch
This commit is contained in:
ShiftyRail
2021-12-12 20:15:23 +00:00
committed by GitHub
parent d0b7d1e834
commit 58c334b6e8
4 changed files with 34 additions and 34 deletions

View File

@@ -372,7 +372,7 @@
if(A.name == "Syndicate-Spawn")
synd_spawn += get_turf(A)
continue
var/spawnpos = index
if(spawnpos > synd_spawn.len)
spawnpos = 1
@@ -600,6 +600,7 @@
requirements = list(40,20,10,10,10,10,10,10,10,10) // So that's not possible to roll it naturally
high_population_requirement = 10
flags = MINOR_RULESET
makeBody = FALSE
/datum/dynamic_ruleset/midround/from_ghosts/grinch/acceptable(var/population=0, var/threat=0)
if(grinchstart.len == 0)
@@ -682,7 +683,7 @@
if(A.name == "voxstart")
vox_spawn += get_turf(A)
continue
var/spawn_count = index
if(spawn_count > vox_spawn.len)
spawn_count = 1

View File

@@ -12,44 +12,42 @@
// -- Transforms us into the devlish Grinch
/datum/role/grinch/OnPostSetup(var/laterole = FALSE)
. = ..()
var/mob/old_mob = antag.current
var/mob/living/simple_animal/hostile/gremlin/grinch/G = new
G.forceMove(pick(grinchstart))
antag.transfer_to(G)
var/obj/item/weapon/storage/backpack/holding/grinch/our_bag = new(G)
src.our_bag = our_bag
G.equip_to_slot(our_bag, slot_back)
old_mob.forceMove(null) // Get nullspaced
spawn (1) // Destroy must be differed else there are runtimes
qdel(old_mob)
. = ..()
var/mob/living/simple_animal/hostile/gremlin/grinch/G = new
G.forceMove(pick(grinchstart))
if (antag.active)
to_chat(world, "active before transfer...")
antag.transfer_to(G)
var/obj/item/weapon/storage/backpack/holding/grinch/our_bag = new(G)
src.our_bag = our_bag
G.equip_to_slot(our_bag, slot_back)
// -- Clearing references in case of deletion.
/datum/role/grinch/Destroy()
our_bag = null
return ..()
our_bag = null
return ..()
/datum/role/grinch/Greet(var/greeting,var/custom)
if(!greeting)
return
if(!greeting)
return
var/icon/logo = icon('icons/logos.dmi', logo_state)
to_chat(antag.current, "<img src='data:image/png;base64,[icon2base64(logo)]' style='position: relative; top: 10;'/> <span class='danger'>You are the Grinch!</span><span class='warning'>You are here to ruin Christmas!</span>")
to_chat(antag.current, "<span class='info'><a HREF='?src=\ref[antag.current];getwiki=[wikiroute]'>(Wiki)</span>")
var/icon/logo = icon('icons/logos.dmi', logo_state)
to_chat(antag.current, "<img src='data:image/png;base64,[icon2base64(logo)]' style='position: relative; top: 10;'/> <span class='danger'>You are the Grinch!</span><span class='warning'>You are here to ruin Christmas!</span>")
to_chat(antag.current, "<span class='info'><a HREF='?src=\ref[antag.current];getwiki=[wikiroute]'>(Wiki)</span>")
/datum/role/grinch/ForgeObjectives()
AppendObjective(/datum/objective/freeform/christmas)
AppendObjective(/datum/objective/freeform/christmas)
// -- Scoreboard : how many items did we have in our backpack
/datum/role/grinch/GetScoreboard()
var/bounty = 0
. = ..()
if (!our_bag)
. += "<br/>"
. += "The Grinch's bag has been destroyed!<br/>"
else
. += "<br/>"
for (var/obj/item/I in get_contents_in_object(our_bag))
bounty += shop_prices[I.type]
. += "The Grinch managed to steal $[bounty] worth of items!<br/>"
var/bounty = 0
. = ..()
if (!our_bag)
. += "<br/>"
. += "The Grinch's bag has been destroyed!<br/>"
else
. += "<br/>"
for (var/obj/item/I in get_contents_in_object(our_bag))
bounty += shop_prices[I.type]
. += "The Grinch managed to steal $[bounty] worth of items!<br/>"

View File

@@ -91,9 +91,10 @@
var/datum/role/R = antag_roles[role]
R.PreMindTransfer(current)
if(current) //remove ourself from our old body's mind variable
if(current) //remove ourself from our old body's mind variable NOW THAT THE TRANSFER IS DONE
current.old_assigned_role = assigned_role
current.mind = null
if(new_character.mind) //remove any mind currently in our new body's mind variable
new_character.mind.current = null
@@ -105,7 +106,6 @@
if(active)
new_character.key = key //now transfer the key to link the client to our new body
//gotta do that after linking the mind to the body or we'll create an extra mind on Login()
for (var/role in antag_roles)
var/datum/role/R = antag_roles[role]
@@ -126,6 +126,7 @@
if(active)
new_character.key = key //now transfer the key to link the client to our new body
to_chat(world, "transfered to successfully")
current = new_character //link ourself to our new body
new_character.mind = src //and link our new body to ourself

View File

@@ -86,7 +86,7 @@ var/creating_arena = FALSE
icon_state = body.icon_state
overlays = body.overlays
*/
if(isSaMMI(body))
var/mob/living/silicon/robot/mommi/sammi/SM = body
icon = SM.ghost_icon