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
+9 -7
View File
@@ -17,7 +17,7 @@
blood_overlay_type = "armor"
flags = ONESIZEFITSALL
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/vest/jacket
name = "military jacket"
desc = "An old military jacket, it has armoring."
@@ -216,6 +216,7 @@
desc = "A heavily armored suit that protects against moderate damage."
icon_state = "heavy"
item_state = "swat_suit"
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
w_class = 4//bulky item
gas_transfer_coefficient = 0.90
flags = THICKMATERIAL
@@ -225,6 +226,7 @@
siemens_coefficient = 0
/obj/item/clothing/suit/armor/tdome
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
flags = THICKMATERIAL
@@ -232,19 +234,19 @@
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
/obj/item/clothing/suit/armor/tdome/red
name = "Thunderdome suit (red)"
desc = "Reddish armor."
name = "Red Thunderdome Armor"
desc = "Armor worn by the red Thunderodome team"
icon_state = "tdred"
item_state = "tdred"
siemens_coefficient = 1
/obj/item/clothing/suit/armor/tdome/green
name = "Thunderdome suit (green)"
desc = "Pukish armor."
name = "Green Thunderdome Armor"
desc = "Armor worn by the green Thunderodome team"
icon_state = "tdgreen"
item_state = "tdgreen"
siemens_coefficient = 1
//Non-hardsuit ERT armor.
/obj/item/clothing/suit/armor/vest/ert
name = "emergency response team armor"
@@ -275,7 +277,7 @@
name = "emergency response team medical armor"
desc = "A set of armor worn by medical members of the Nanotrasen Emergency Response Team. Has red and white highlights."
icon_state = "ertarmor_med"
//Janitorial
/obj/item/clothing/suit/armor/vest/ert/janitor
name = "emergency response team janitor armor"