mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge pull request #741 from SamCroswell/TDomeUpdate
Thunderdome Update
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user