mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
Add back in /fail/station's DNA dickery panel, fix missing block shifting.
This commit is contained in:
@@ -697,7 +697,7 @@
|
||||
|
||||
if (href_list["pulseSERadiation"])
|
||||
var/block = src.connected.occupant.dna.GetSESubBlock(src.selected_se_block,src.selected_se_subblock)
|
||||
var/original_block=block
|
||||
//var/original_block=block
|
||||
//testing("Irradiating SE block [src.selected_se_block]:[src.selected_se_subblock] ([block])...")
|
||||
|
||||
irradiating = src.radiation_duration
|
||||
@@ -722,7 +722,7 @@
|
||||
real_SE_block--
|
||||
|
||||
//testing("Irradiated SE block [real_SE_block]:[src.selected_se_subblock] ([original_block] now [block]) [(real_SE_block!=selected_se_block) ? "(SHIFTED)":""]!")
|
||||
connected.occupant.dna.SetSESubBlock(selected_se_block,selected_se_subblock,block)
|
||||
connected.occupant.dna.SetSESubBlock(real_SE_block,selected_se_subblock,block)
|
||||
domutcheck(src.connected.occupant,src.connected)
|
||||
src.connected.occupant.radiation += (src.radiation_intensity+src.radiation_duration)
|
||||
else
|
||||
|
||||
@@ -131,6 +131,24 @@ var/global/floorIsLava = 0
|
||||
else
|
||||
body += "<A href='?src=\ref[src];makeanimal=\ref[M]'>Animalize</A> | "
|
||||
|
||||
// MUTATIONS
|
||||
if(iscarbon(M))
|
||||
body += "<br><br>"
|
||||
body += "<b>DNA Blocks:</b><br><table border='0'><tr><th> </th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th>"
|
||||
var/bname
|
||||
for(var/block=1;block<STRUCDNASIZE;block++)
|
||||
if(((block-1)%5)==0)
|
||||
body += "</tr><tr><th>[block-1]</th>"
|
||||
bname = assigned_blocks[block]
|
||||
body += "<td>"
|
||||
if(bname)
|
||||
var/bcolor="[(block in M.mutations)?"#006600":"#ff0000"]"
|
||||
body += "<A href='?src=\ref[src];togmutate=\ref[M];block=[block]' style='color:[bcolor];'>[bname]</A><sub>[block]</sub>"
|
||||
else
|
||||
body += "[block]"
|
||||
body+="</td>"
|
||||
body += "</tr></table>"
|
||||
|
||||
body += {"<br><br>
|
||||
<b>Rudimentary transformation:</b><font size=2><br>These transformations only create a new mob type and copy stuff over. They do not take into account MMIs and similar mob-specific things. The buttons in 'Transformations' are preferred, when possible.</font><br>
|
||||
<A href='?src=\ref[src];simplemake=observer;mob=\ref[M]'>Observer</A> |
|
||||
|
||||
@@ -1317,6 +1317,17 @@
|
||||
|
||||
usr.client.cmd_admin_animalize(M)
|
||||
|
||||
else if(href_list["togmutate"])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["togmutate"])
|
||||
if(!istype(H))
|
||||
usr << "This can only be used on instances of type /mob/living/carbon/human"
|
||||
return
|
||||
usr.client.cmd_admin_toggle_block(H,text2num(href_list["block"]))
|
||||
show_player_panel(H)
|
||||
H.regenerate_icons()
|
||||
|
||||
/***************** BEFORE**************
|
||||
|
||||
if (href_list["l_players"])
|
||||
@@ -2013,7 +2024,7 @@
|
||||
if(20) MAX_EXPLOSION_RANGE = 28
|
||||
if(28) MAX_EXPLOSION_RANGE = 56
|
||||
if(56) MAX_EXPLOSION_RANGE = 128
|
||||
if(128) MAX_EXPLOSION_RANGE = 14
|
||||
else MAX_EXPLOSION_RANGE = 14
|
||||
var/range_dev = MAX_EXPLOSION_RANGE *0.25
|
||||
var/range_high = MAX_EXPLOSION_RANGE *0.5
|
||||
var/range_low = MAX_EXPLOSION_RANGE
|
||||
|
||||
@@ -548,6 +548,13 @@ Pressure: [env.return_pressure()]"}
|
||||
//log_admin("[key_name(src)] has alienized [M.key].")
|
||||
var/list/dresspacks = list(
|
||||
"strip",
|
||||
"Engineer RIG",
|
||||
"CE RIG",
|
||||
"Mining RIG",
|
||||
"Syndi RIG",
|
||||
"Wizard RIG",
|
||||
"Medical RIG",
|
||||
"Atmos RIG",
|
||||
"standard space gear",
|
||||
"tournament standard red",
|
||||
"tournament standard green",
|
||||
@@ -571,10 +578,14 @@ Pressure: [env.return_pressure()]"}
|
||||
"nanotrasen officer",
|
||||
"nanotrasen captain"
|
||||
)
|
||||
var/dostrip = input("Do you want to strip [M] before equipping them? (0=no, 1=yes)", "STRIPTEASE") as null|anything in list(0,1)
|
||||
if(isnull(dostrip))
|
||||
return
|
||||
var/dresscode = input("Select dress for [M]", "Robust quick dress shop") as null|anything in dresspacks
|
||||
if (isnull(dresscode))
|
||||
return
|
||||
feedback_add_details("admin_verb","SEQ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
if(dostrip)
|
||||
for (var/obj/item/I in M)
|
||||
if (istype(I, /obj/item/weapon/implant))
|
||||
continue
|
||||
@@ -593,6 +604,34 @@ Pressure: [env.return_pressure()]"}
|
||||
J.toggle()
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M), slot_wear_mask)
|
||||
J.Topic(null, list("stat" = 1))
|
||||
if ("Engineer RIG","CE RIG","Mining RIG","Syndi RIG","Wizard RIG","Medical RIG","Atmos RIG")
|
||||
if(dresscode=="Engineer RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig(M), slot_head)
|
||||
else if(dresscode=="CE RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/elite(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/elite(M), slot_head)
|
||||
else if(dresscode=="Mining RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/mining(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/mining(M), slot_head)
|
||||
else if(dresscode=="Syndi RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/syndi(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/syndi(M), slot_head)
|
||||
else if(dresscode=="Wizard RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/wizard(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/wizard(M), slot_head)
|
||||
else if(dresscode=="Medical RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/medical(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/medical(M), slot_head)
|
||||
else if(dresscode=="Atmos RIG")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/atmos(M), slot_wear_suit)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/atmos(M), slot_head)
|
||||
var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack/oxygen(M)
|
||||
M.equip_to_slot_or_del(J, slot_back)
|
||||
J.toggle()
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(M), slot_wear_mask)
|
||||
J.Topic(null, list("stat" = 1))
|
||||
|
||||
if ("tournament standard red","tournament standard green") //we think stunning weapon is too overpowered to use it on tournaments. --rastaf0
|
||||
if (dresscode=="tournament standard red")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform)
|
||||
@@ -1055,3 +1094,22 @@ Pressure: [env.return_pressure()]"}
|
||||
usr << dd_list2text(dead_mob_list,",")
|
||||
if("Clients")
|
||||
usr << dd_list2text(clients,",")
|
||||
|
||||
|
||||
/client/proc/cmd_admin_toggle_block(var/mob/M in mob_list,var/block)
|
||||
set category = "Fun"
|
||||
set name = "Toggle a DNA Block"
|
||||
|
||||
if(!ticker)
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(istype(M, /mob/living/carbon))
|
||||
M.dna.SetSEState(!M.dna.GetSEState(block))
|
||||
domutcheck(M,null)
|
||||
M.update_mutations()
|
||||
var/state="[M.dna.GetSEState(block)?"on":"off"]"
|
||||
var/blockname=assigned_blocks[block]
|
||||
message_admins("[key_name_admin(src)] has toggled [M.key]'s [blockname] block [state]!")
|
||||
log_admin("[key_name(src)] has toggled [M.key]'s [blockname] block [state]!")
|
||||
else
|
||||
alert("Invalid mob")
|
||||
|
||||
Reference in New Issue
Block a user