mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-26 13:36:48 +01:00
@@ -1,12 +1,19 @@
|
||||
/mob/proc/on_mob_jump()
|
||||
return
|
||||
|
||||
/mob/dead/observer/on_mob_jump()
|
||||
following = null
|
||||
|
||||
/client/proc/Jump(var/area/A in return_sorted_areas())
|
||||
set name = "Jump to Area"
|
||||
set desc = "Area to jump to"
|
||||
set category = "Admin"
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
if(config.allow_admin_jump)
|
||||
usr.on_mob_jump()
|
||||
usr.loc = pick(get_area_turfs(A))
|
||||
|
||||
log_admin("[key_name(usr)] jumped to [A]")
|
||||
@@ -18,12 +25,13 @@
|
||||
/client/proc/jumptoturf(var/turf/T in world)
|
||||
set name = "Jump to Turf"
|
||||
set category = "Admin"
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
if(config.allow_admin_jump)
|
||||
log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]")
|
||||
message_admins("[key_name_admin(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]", 1)
|
||||
usr.on_mob_jump()
|
||||
usr.loc = T
|
||||
feedback_add_details("admin_verb","JT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
@@ -34,7 +42,7 @@
|
||||
set category = "Admin"
|
||||
set name = "Jump to Mob"
|
||||
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
@@ -46,6 +54,7 @@
|
||||
var/turf/T = get_turf(M)
|
||||
if(T && isturf(T))
|
||||
feedback_add_details("admin_verb","JM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
A.on_mob_jump()
|
||||
A.loc = T
|
||||
else
|
||||
A << "This mob is not located in the game world."
|
||||
@@ -56,13 +65,14 @@
|
||||
set category = "Admin"
|
||||
set name = "Jump to Coordinate"
|
||||
|
||||
if (!holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
if (config.allow_admin_jump)
|
||||
if(src.mob)
|
||||
var/mob/A = src.mob
|
||||
A.on_mob_jump()
|
||||
A.x = tx
|
||||
A.y = ty
|
||||
A.z = tz
|
||||
@@ -76,7 +86,7 @@
|
||||
set category = "Admin"
|
||||
set name = "Jump to Key"
|
||||
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
@@ -91,6 +101,7 @@
|
||||
var/mob/M = selection:mob
|
||||
log_admin("[key_name(usr)] jumped to [key_name(M)]")
|
||||
message_admins("[key_name_admin(usr)] jumped to [key_name_admin(M)]", 1)
|
||||
usr.on_mob_jump()
|
||||
usr.loc = M.loc
|
||||
feedback_add_details("admin_verb","JK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
@@ -100,12 +111,13 @@
|
||||
set category = "Admin"
|
||||
set name = "Get Mob"
|
||||
set desc = "Mob to teleport"
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
if(config.allow_admin_jump)
|
||||
log_admin("[key_name(usr)] teleported [key_name(M)]")
|
||||
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)]", 1)
|
||||
M.on_mob_jump()
|
||||
M.loc = get_turf(usr)
|
||||
feedback_add_details("admin_verb","GM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
@@ -116,7 +128,7 @@
|
||||
set name = "Get Key"
|
||||
set desc = "Key to teleport"
|
||||
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
|
||||
@@ -134,6 +146,7 @@
|
||||
log_admin("[key_name(usr)] teleported [key_name(M)]")
|
||||
message_admins("[key_name_admin(usr)] teleported [key_name(M)]", 1)
|
||||
if(M)
|
||||
M.on_mob_jump()
|
||||
M.loc = get_turf(usr)
|
||||
feedback_add_details("admin_verb","GK") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else
|
||||
@@ -142,16 +155,17 @@
|
||||
/client/proc/sendmob(var/mob/M in sortmobs())
|
||||
set category = "Admin"
|
||||
set name = "Send Mob"
|
||||
if(!src.holder)
|
||||
if(!check_rights(R_ADMIN, user = src))
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
var/area/A = input(usr, "Pick an area.", "Pick an area") in return_sorted_areas()
|
||||
if(A)
|
||||
if(config.allow_admin_jump)
|
||||
M.on_mob_jump()
|
||||
M.loc = pick(get_area_turfs(A))
|
||||
feedback_add_details("admin_verb","SMOB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
log_admin("[key_name(usr)] teleported [key_name(M)] to [A]")
|
||||
message_admins("[key_name_admin(usr)] teleported [key_name_admin(M)] to [A]", 1)
|
||||
else
|
||||
alert("Admin jumping disabled")
|
||||
alert("Admin jumping disabled")
|
||||
|
||||
@@ -83,6 +83,10 @@
|
||||
if(H.wear_suit != src)
|
||||
return
|
||||
|
||||
if(boots)
|
||||
if (H.equip_to_slot_if_possible(boots, slot_shoes))
|
||||
boots.canremove = 0
|
||||
|
||||
if(helmet)
|
||||
if(H.head)
|
||||
M << "You are unable to deploy your suit's helmet as \the [H.head] is in the way."
|
||||
@@ -90,10 +94,6 @@
|
||||
M << "Your suit's helmet deploys with a hiss."
|
||||
helmet.canremove = 0
|
||||
|
||||
if(boots)
|
||||
if (H.equip_to_slot_if_possible(boots, slot_shoes))
|
||||
boots.canremove = 0
|
||||
|
||||
if(tank)
|
||||
if(H.s_store) //In case someone finds a way.
|
||||
M << "Alarmingly, the valve on your suit's installed tank fails to engage."
|
||||
@@ -101,6 +101,7 @@
|
||||
M << "The valve on your suit's installed tank safely engages."
|
||||
tank.canremove = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/void/dropped()
|
||||
..()
|
||||
|
||||
@@ -151,7 +152,7 @@
|
||||
helmet.loc = src
|
||||
else
|
||||
if(H.head)
|
||||
H << "<span class='danger'>You cannot deploy your helmet while wearing another helmet.</span>"
|
||||
H << "<span class='danger'>You cannot deploy your helmet while wearing \the [H.head].</span>"
|
||||
return
|
||||
if(H.equip_to_slot_if_possible(helmet, slot_head))
|
||||
helmet.pickup(H)
|
||||
@@ -161,7 +162,7 @@
|
||||
|
||||
/obj/item/clothing/suit/space/void/verb/eject_tank()
|
||||
|
||||
set name = "Eject Tank"
|
||||
set name = "Eject Voidsuit Tank"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
@@ -187,22 +188,26 @@
|
||||
if(!istype(user,/mob/living)) return
|
||||
|
||||
if(istype(src.loc,/mob/living))
|
||||
user << "<span class='danger'>How do you propose to modify a hardsuit while it is being worn?</span>"
|
||||
user << "<span class='danger'>How do you propose to modify a voidsuit while it is being worn?</span>"
|
||||
return
|
||||
|
||||
if(istype(W,/obj/item/weapon/screwdriver))
|
||||
if(tank)
|
||||
user << "You pop \the [tank] out of \the [src]'s storage compartment."
|
||||
tank.loc = get_turf(src)
|
||||
src.tank = null
|
||||
else if(helmet)
|
||||
user << "You detatch \the [helmet] from \the [src]'s helmet mount."
|
||||
helmet.loc = get_turf(src)
|
||||
src.helmet = null
|
||||
else if (boots)
|
||||
user << "You detatch \the [boots] from \the [src]'s boot mounts."
|
||||
boots.loc = get_turf(src)
|
||||
src.boots = null
|
||||
if(helmet || boots || tank)
|
||||
var/choice = input("What component would you like to remove?") as null|anything in list(helmet,boots,tank)
|
||||
if(!choice) return
|
||||
|
||||
if(choice == tank) //No, a switch doesn't work here. Sorry. ~Techhead
|
||||
user << "You pop \the [tank] out of \the [src]'s storage compartment."
|
||||
tank.loc = get_turf(src)
|
||||
src.tank = null
|
||||
else if(choice == helmet)
|
||||
user << "You detatch \the [helmet] from \the [src]'s helmet mount."
|
||||
helmet.loc = get_turf(src)
|
||||
src.helmet = null
|
||||
else if(choice == boots)
|
||||
user << "You detatch \the [boots] from \the [src]'s boot mounts."
|
||||
boots.loc = get_turf(src)
|
||||
src.boots = null
|
||||
else
|
||||
user << "\The [src] does not have anything installed."
|
||||
return
|
||||
|
||||
@@ -672,7 +672,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
mob/dead/observer/MayRespawn(var/feedback = 0)
|
||||
if(!client)
|
||||
return 0
|
||||
if(mind && mind.current && mind.current.stat != DEAD)
|
||||
if(mind && mind.current && mind.current.stat != DEAD && can_reenter_corpse)
|
||||
if(feedback)
|
||||
src << "<span class='warning'>Your non-dead body prevent you from respawning.</span>"
|
||||
return 0
|
||||
|
||||
@@ -645,16 +645,20 @@ var/list/ai_verbs_default = list(
|
||||
set desc = "Augment visual feed with internal sensor overlays"
|
||||
toggle_sensor_mode()
|
||||
|
||||
/mob/living/silicon/ai/proc/check_unable(var/flags = 0)
|
||||
/mob/living/silicon/ai/proc/check_unable(var/flags = 0, var/feedback = 1)
|
||||
if(stat == DEAD)
|
||||
src << "<span class='warning'>You are dead!</span>"
|
||||
if(feedback) src << "<span class='warning'>You are dead!</span>"
|
||||
return 1
|
||||
|
||||
if(aiRestorePowerRoutine)
|
||||
if(feedback) src << "<span class='warning'>You lack power!</span>"
|
||||
return 1
|
||||
|
||||
if((flags & AI_CHECK_WIRELESS) && src.control_disabled)
|
||||
src << "<span class='warning'>Wireless control is disabled!</span>"
|
||||
if(feedback) src << "<span class='warning'>Wireless control is disabled!</span>"
|
||||
return 1
|
||||
if((flags & AI_CHECK_RADIO) && src.aiRadio.disabledAi)
|
||||
src << "<span class='warning'>System Error - Transceiver Disabled!</span>"
|
||||
if(feedback) src << "<span class='warning'>System Error - Transceiver Disabled!</span>"
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/ai/Life()
|
||||
if (src.stat == 2)
|
||||
if (src.stat == DEAD)
|
||||
return
|
||||
else //I'm not removing that shitton of tabs, unneeded as they are. -- Urist
|
||||
//Being dead doesn't mean your temperature never changes
|
||||
@@ -33,8 +33,8 @@
|
||||
aiRestorePowerRoutine = 0 // Necessary if AI activated it's APU AFTER losing primary power.
|
||||
adjustOxyLoss(-1)
|
||||
|
||||
// Handle EMP-stun
|
||||
handle_stunned()
|
||||
handle_stunned() // Handle EMP-stun
|
||||
lying = 0 // Handle lying down
|
||||
|
||||
malf_process()
|
||||
|
||||
@@ -180,3 +180,4 @@
|
||||
/mob/living/silicon/ai/rejuvenate()
|
||||
..()
|
||||
add_ai_verbs(src)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/mob/living/silicon/ai/shared_nano_interaction()
|
||||
if(lacks_power())
|
||||
return STATUS_CLOSE
|
||||
if (check_unable(1))
|
||||
if (check_unable(1, 0))
|
||||
return STATUS_CLOSE
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
return
|
||||
if(!affects_dead && M.stat == DEAD)
|
||||
return
|
||||
if(overdose && (location == CHEM_BLOOD))
|
||||
if(overdose && (dose > overdose) && (location == CHEM_BLOOD))
|
||||
overdose(M, alien)
|
||||
var/removed = metabolism
|
||||
if(ingest_met && (location == CHEM_INGEST))
|
||||
|
||||
@@ -56,6 +56,12 @@
|
||||
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">09 June 2015</h2>
|
||||
<h3 class="author">PsiOmegaDelta updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Ports /tg/'s meteor event. Meteors now appear to be more accurate, come in a greater variety, and may drop ores on their final destruction.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">08 June 2015</h2>
|
||||
<h3 class="author">PsiOmegaDelta updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -1967,3 +1967,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
PsiOmegaDelta:
|
||||
- rscadd: The AI chassis now glows, with the color depending on the currently selected
|
||||
display.
|
||||
2015-06-09:
|
||||
PsiOmegaDelta:
|
||||
- rscadd: Ports /tg/'s meteor event. Meteors now appear to be more accurate, come
|
||||
in a greater variety, and may drop ores on their final destruction.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
author: PsiOmegaDelta
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Ports /tg/'s meteor event. Meteors now appear to be more accurate, come in a greater variety, and may drop ores on their final destruction."
|
||||
Reference in New Issue
Block a user