Merge pull request #741 from SamCroswell/TDomeUpdate

Thunderdome Update
This commit is contained in:
ZomgPonies
2015-04-06 18:16:30 -04:00
7 changed files with 218 additions and 95 deletions
+2
View File
@@ -104,6 +104,8 @@
dat += {"
<B>Fun Secrets</B><BR>
<BR>
<A href='?src=\ref[src];secretsfun=tdomestart'>Start a Thunderdome match</A><BR>
<A href='?src=\ref[src];secretsfun=tdomereset'>Reset Thunderdome to default state</A><BR>
<A href='?src=\ref[src];secretsfun=sec_clothes'>Remove 'internal' clothing</A><BR>
<A href='?src=\ref[src];secretsfun=sec_all_clothes'>Remove ALL clothing</A><BR>
<A href='?src=\ref[src];secretsfun=monkey'>Turn all humans into monkeys</A><BR>
+29
View File
@@ -2657,6 +2657,35 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","SM")
usr.rightandwrong(1)
if("tdomereset")
var/delete_mobs = alert("Clear all mobs?","Confirm","Yes","No","Cancel")
if(delete_mobs == "Cancel")
return
var/area/thunderdome = locate(/area/tdome/arena)
if(delete_mobs == "Yes")
for(var/mob/living/mob in thunderdome)
qdel(mob) //Clear mobs
for(var/obj/obj in thunderdome)
if(!istype(obj,/obj/machinery/camera))
qdel(obj) //Clear objects
var/area/template = locate(/area/tdome/arena_source)
template.copy_contents_to(thunderdome)
log_admin("[key_name(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].", 1)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] reset the thunderdome to default with delete_mobs==[delete_mobs].</span>")
if("tdomestart")
var/confirmation = alert("Start a Thunderdome match?","Confirm","Yes","No")
if(confirmation == "No")
return
if(makeThunderdomeTeams())
log_admin("[key_name(usr)] started a Thunderdome match!", 1)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has started a Thunderdome match!</span>")
else
log_admin("[key_name(usr)] attempted to start a Thunderdome match, but no ghosts signed up.", 1)
message_admins("<span class='adminnotice'>[key_name_admin(usr)] tried starting a Thunderdome match, but no ghosts signed up.</span>")
if("securitylevel0")
set_security_level(0)
message_admins("\blue [key_name_admin(usr)] change security level to Green.", 1)
+92 -1
View File
@@ -573,4 +573,95 @@ client/proc/one_click_antag()
return 1
return 0
return 0
/datum/admins/proc/makeThunderdomeTeams() // Not strictly an antag, but this seemed to be the best place to put it.
var/list/mob/candidates = list()
var/mob/theghost = null
var/time_passed = world.time
//Generates a list of candidates from active ghosts.
for(var/mob/G in respawnable_list)
spawn(0)
switch(alert(G,"Do you wish to be considered for a Thunderdome match about to start?","Please answer in 30 seconds!","Yes","No"))
if("Yes")
if((world.time-time_passed)>300)//If more than 30 game seconds passed.
return
candidates += G
if("No")
return
else
return
sleep(300) //Debug.
for(var/mob/dead/observer/G in candidates)
if(!G.key)
candidates.Remove(G)
if(candidates.len)
var/teamOneMembers = 5
var/teamTwoMembers = 5
var/datum/preferences/A = new()
for (var/obj/effect/landmark/L in world)
if(L.name == "tdome1")
if(teamOneMembers<=0)
break
var/mob/living/carbon/human/newMember = new(L.loc)
newMember.gender = pick(MALE,FEMALE)
A.randomize_appearance_for(newMember)
if(newMember.gender == MALE)
newMember.real_name = "[pick(first_names_male)] [pick(last_names)]"
else
newMember.real_name = "[pick(first_names_female)] [pick(last_names)]"
newMember.name = newMember.real_name
newMember.age = rand(17,45)
newMember.dna.ready_dna(newMember)
while((!theghost || !theghost.client) && candidates.len)
theghost = pick(candidates)
candidates.Remove(theghost)
if(!theghost)
qdel(newMember)
break
newMember.key = theghost.key
teamOneMembers--
newMember << "You are a member of the <font color = 'green'><b>GREEN</b></font> Thunderdome team! Gear up and help your team destroy the red team!"
if(L.name == "tdome2")
if(teamTwoMembers<=0)
break
var/mob/living/carbon/human/newMember = new(L.loc)
newMember.gender = pick(MALE,FEMALE)
A.randomize_appearance_for(newMember)
if(newMember.gender == MALE)
newMember.real_name = "[pick(first_names_male)] [pick(last_names)]"
else
newMember.real_name = "[pick(first_names_female)] [pick(last_names)]"
newMember.name = newMember.real_name
newMember.age = rand(17,45)
newMember.dna.ready_dna(newMember)
while((!theghost || !theghost.client) && candidates.len)
theghost = pick(candidates)
candidates.Remove(theghost)
if(!theghost)
qdel(newMember)
break
newMember.key = theghost.key
teamTwoMembers--
newMember << "You are a member of the <font color = 'red'><b>RED</b></font> Thunderdome team! Gear up and help your team destroy the green team!"
else
return 0
return 1