Datumizes revolutionaries (#21762)

* holy shit, datumized revs!

* changes to shuttle blocking system

* boom, more shit

* bonk more commits

* convert most in boolean checks to hasantagdatum

* oops, its supposed to be like this

* updates this comment (im making too many commits)

* more changes

* aaaaa moooore changes

* nukes some stuff, makes stuff GC better

* rev victory conditions are checked always on death

* more rev stuff

* oops fucking forgot to push

* i swear to god

* lewcc review

* i forgot this one small bit

* lewc review

* reviews

* comment

* s34n review
This commit is contained in:
Contrabang
2023-09-09 11:12:53 -04:00
committed by GitHub
parent fa52e8540e
commit e3eed1d23f
29 changed files with 483 additions and 391 deletions

View File

@@ -643,9 +643,9 @@ GLOBAL_VAR_INIT(nologevent, 0)
if(!SSticker.mode || !istype(M) || !M.mind)
return FALSE
if(M.mind in SSticker.mode.head_revolutionaries)
if(M.mind.has_antag_datum(/datum/antagonist/rev/head))
antag_list += "Head Rev"
if(M.mind in SSticker.mode.revolutionaries)
if(M.mind.has_antag_datum(/datum/antagonist/rev, FALSE))
antag_list += "Revolutionary"
if(M.mind in SSticker.mode.cult)
antag_list += "Cultist"

View File

@@ -389,7 +389,7 @@
dat += "in [disk_loc.loc] at ([disk_loc.x], [disk_loc.y], [disk_loc.z])</td></tr>"
dat += "</table>"
if(SSticker.mode.head_revolutionaries.len || SSticker.mode.revolutionaries.len)
if(SSticker.mode.rev_team)
dat += "<br><table cellspacing=5><tr><td><B>Revolutionaries</B></td><td></td></tr>"
for(var/datum/mind/N in SSticker.mode.head_revolutionaries)
var/mob/M = N.current

View File

@@ -126,7 +126,7 @@
for(var/i = 0, i<numRevs, i++)
H = pick(candidates)
H.mind.make_Rev()
H?.mind?.add_antag_datum(/datum/antagonist/rev/head)
candidates.Remove(H)
return 1
return 0

View File

@@ -896,15 +896,26 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_ADMIN))
return
if(alert(usr, "Do you want to [SSshuttle.emergencyNoEscape ? "ALLOW" : "DENY"] shuttle calls?", "Toggle Deny Shuttle", "Yes", "No") != "Yes")
var/alert = alert(usr, "Do you want to ALLOW or DENY shuttle calls?", "Toggle Deny Shuttle", "Allow", "Deny", "Cancel")
if(alert == "Cancel")
return
if(SSshuttle)
SSshuttle.emergencyNoEscape = !SSshuttle.emergencyNoEscape
SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Deny Shuttle")
log_admin("[key_name(src)] has [SSshuttle.emergencyNoEscape ? "denied" : "allowed"] the shuttle to be called.")
message_admins("[key_name_admin(usr)] has [SSshuttle.emergencyNoEscape ? "denied" : "allowed"] the shuttle to be called.")
if(alert == "Allow")
if(!length(SSshuttle.hostile_environments))
to_chat(usr, "<span class='notice'>No hostile environments found, cleared for takeoff!</span>")
return
if(alert(usr, "[english_list(SSshuttle.hostile_environments)] is currently blocking the shuttle call, do you want to clear them?", "Toggle Deny Shuttle", "Yes", "No") == "Yes")
SSshuttle.hostile_environments.Cut()
var/log = "[key_name(src)] has cleared all hostile environments, allowing the shuttle to be called."
log_admin(log)
message_admins(log)
return
SSshuttle.registerHostileEnvironment(src) // wow, a client blocking the shuttle
log_and_message_admins("has denied the shuttle to be called.")
/client/proc/cmd_admin_attack_log(mob/M as mob in GLOB.mob_list)
set category = "Admin"