mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge pull request #2261 from Markolie/fixesfixesfixesfixesfixesfixes
Fixes
This commit is contained in:
@@ -55,7 +55,11 @@ var/global/nologevent = 0
|
||||
body += "<a href='?_src_=holder;subtlemessage=\ref[M]'>SM</a> - "
|
||||
body += "[admin_jump_link(M, src)]\] </b><br>"
|
||||
|
||||
body += "<b>Mob type</b> = [M.type]<br><br>"
|
||||
body += "<b>Mob type:</b> [M.type]<br>"
|
||||
if(M.client.related_accounts_cid.len)
|
||||
body += "<b>Related accounts by CID:</b> [list2text(M.client.related_accounts_cid, " - ")]<br>"
|
||||
if(M.client.related_accounts_ip.len)
|
||||
body += "<b>Related accounts by IP:</b> [list2text(M.client.related_accounts_ip, " - ")]<br><br>"
|
||||
|
||||
body += "<A href='?_src_=holder;boot2=\ref[M]'>Kick</A> | "
|
||||
body += "<A href='?_src_=holder;warn=[M.ckey]'>Warn</A> | "
|
||||
@@ -176,7 +180,6 @@ var/global/nologevent = 0
|
||||
<A href='?_src_=holder;simplemake=constructbuilder;mob=\ref[M]'>Builder</A> ,
|
||||
<A href='?_src_=holder;simplemake=constructwraith;mob=\ref[M]'>Wraith</A> \]
|
||||
<A href='?_src_=holder;simplemake=shade;mob=\ref[M]'>Shade</A>
|
||||
<br>
|
||||
"}
|
||||
|
||||
if (M.client)
|
||||
@@ -190,16 +193,12 @@ var/global/nologevent = 0
|
||||
<A href='?_src_=holder;tdomeadmin=\ref[M]'>Thunderdome Admin</A> |
|
||||
<A href='?_src_=holder;tdomeobserve=\ref[M]'>Thunderdome Observer</A> |
|
||||
"}
|
||||
if(M.client.related_accounts_cid.len)
|
||||
body += "<br><br><b>Related accounts by CID:</b> [list2text(M.client.related_accounts_cid, " - ")]<br>"
|
||||
if(M.client.related_accounts_ip.len)
|
||||
body += "<b>Related accounts by IP:</b> [list2text(M.client.related_accounts_ip, " - ")]<br>"
|
||||
|
||||
body += {"<br>
|
||||
</body></html>
|
||||
"}
|
||||
|
||||
usr << browse(body, "window=adminplayeropts;size=550x515")
|
||||
usr << browse(body, "window=adminplayeropts;size=550x615")
|
||||
feedback_add_details("admin_verb","SPP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/brain/emote(var/act,var/m_type=1,var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
if(!(container && istype(container, /obj/item/device/mmi)))//No MMI, no emotes
|
||||
return
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null,var/force)
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/slime/emote(var/act, var/m_type=1, var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
//param = copytext(act, t1 + 1, length(act) + 1)
|
||||
|
||||
@@ -35,7 +35,7 @@ var/const/VOX_PATH = "sound/vox_fem/"
|
||||
src << "<span class='warning'>Please wait [round((announcing_vox - world.time) / 10)] seconds.</span>"
|
||||
return
|
||||
|
||||
var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", last_announcement) as message|null
|
||||
var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", last_announcement) as text|null
|
||||
|
||||
last_announcement = message
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/silicon/emote(var/act, var/m_type=1, var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/silicon/pai/emote(var/act, var/m_type=1, var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
switch(act)
|
||||
if ("help")
|
||||
src << "ping, beep, buzz."
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/silicon/robot/emote(var/act, var/m_type=1, var/message = null)
|
||||
if(stat)
|
||||
return
|
||||
|
||||
var/param = null
|
||||
if (findtext(act, "-", 1, null))
|
||||
var/t1 = findtext(act, "-", 1, null)
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
if(host)
|
||||
|
||||
if(!stat && !host.stat)
|
||||
if(!stat && host.stat != DEAD)
|
||||
|
||||
if(host.reagents.has_reagent("sugar"))
|
||||
if(!docile)
|
||||
@@ -294,7 +294,7 @@
|
||||
if(!host || !src) return
|
||||
|
||||
if(src.stat)
|
||||
src << "You cannot infest a target in your current state."
|
||||
src << "You cannot release a target in your current state."
|
||||
return
|
||||
|
||||
src << "You wiggle out of [host]'s ear and plop to the ground."
|
||||
@@ -360,7 +360,7 @@ mob/living/simple_animal/borer/proc/detatch()
|
||||
|
||||
if(!host) return
|
||||
|
||||
src.loc = get_turf(host)
|
||||
src.forceMove(get_turf(host))
|
||||
|
||||
reset_view(null)
|
||||
machine = null
|
||||
@@ -426,7 +426,7 @@ mob/living/simple_animal/borer/proc/detatch()
|
||||
M << "Something disgusting and slimy wiggles into your ear!"
|
||||
|
||||
src.host = M
|
||||
src.loc = M
|
||||
src.forceMove(M)
|
||||
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -442,7 +442,7 @@ mob/living/simple_animal/borer/proc/detatch()
|
||||
|
||||
/mob/living/simple_animal/borer/proc/perform_infestation(var/mob/living/carbon/M)
|
||||
src.host = M
|
||||
src.loc = M
|
||||
src.forceMove(M)
|
||||
|
||||
if(istype(M,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
// This is very ghetto way of rebooting an IPC. TODO better way.
|
||||
spawn(1)
|
||||
if(owner && owner.stat == DEAD)
|
||||
owner.stat = 0
|
||||
owner.stat = CONSCIOUS
|
||||
owner.visible_message("<span class='danger'>\The [owner] twitches visibly!</span>")
|
||||
|
||||
/obj/item/organ/mmi_holder/posibrain/New()
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
..()
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
var/find_prob = 0
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
if(worm.controlling)
|
||||
target.release_control()
|
||||
worm.detatch()
|
||||
worm.leave_host()
|
||||
|
||||
obj.loc = get_turf(target)
|
||||
if(istype(obj,/obj/item/weapon/implant))
|
||||
|
||||
@@ -370,8 +370,8 @@
|
||||
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
|
||||
if(target_zone != "head")
|
||||
return
|
||||
if(target_zone != "chest")
|
||||
return 0
|
||||
|
||||
var/obj/item/device/mmi/M = tool
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
@@ -418,7 +418,7 @@
|
||||
var/obj/item/organ/mmi_holder/holder = new(target, 1)
|
||||
target.internal_organs_by_name["brain"] = holder
|
||||
user.unEquip(tool)
|
||||
tool.loc = holder
|
||||
tool.forceMove(holder)
|
||||
holder.stored_mmi = tool
|
||||
holder.update_from_mmi()
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/* SURGERY STEPS */
|
||||
|
||||
/datum/surgery_step
|
||||
var/priority = 0 //steps with higher priority would be attempted first
|
||||
|
||||
@@ -18,57 +17,56 @@
|
||||
//How much blood this step can get on surgeon. 1 - hands, 2 - full body.
|
||||
var/blood_level = 0
|
||||
|
||||
//returns how well tool is suited for this step
|
||||
proc/tool_quality(obj/item/tool)
|
||||
for (var/T in allowed_tools)
|
||||
if (istype(tool,T))
|
||||
return allowed_tools[T]
|
||||
//returns how well tool is suited for this step
|
||||
/datum/surgery_step/proc/tool_quality(obj/item/tool)
|
||||
for (var/T in allowed_tools)
|
||||
if (istype(tool,T))
|
||||
return allowed_tools[T]
|
||||
return 0
|
||||
|
||||
// Checks if this step applies to the user mob at all
|
||||
/datum/surgery_step/proc/is_valid_target(mob/living/carbon/human/target)
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
|
||||
// Checks if this step applies to the user mob at all
|
||||
proc/is_valid_target(mob/living/carbon/human/target)
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
if(allowed_species)
|
||||
for(var/species in allowed_species)
|
||||
if(target.species.name == species)
|
||||
return 1
|
||||
|
||||
if(allowed_species)
|
||||
for(var/species in allowed_species)
|
||||
if(target.species.name == species)
|
||||
return 1
|
||||
if(disallowed_species)
|
||||
for(var/species in disallowed_species)
|
||||
if(target.species.name == species)
|
||||
return 0
|
||||
|
||||
if(disallowed_species)
|
||||
for(var/species in disallowed_species)
|
||||
if(target.species.name == species)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
return 1
|
||||
// checks whether this step can be applied with the given user and target
|
||||
/datum/surgery_step/proc/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return 0
|
||||
|
||||
// does stuff to begin the step, usually just printing messages. Moved germs transfering and bloodying here too
|
||||
/datum/surgery_step/proc/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
if (can_infect && affected)
|
||||
spread_germs_to_organ(affected, user)
|
||||
if (ishuman(user) && prob(60))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if (blood_level)
|
||||
H.bloody_hands(target,0)
|
||||
if (blood_level > 1)
|
||||
H.bloody_body(target,0)
|
||||
return
|
||||
|
||||
// checks whether this step can be applied with the given user and target
|
||||
proc/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return 0
|
||||
// does stuff to end the step, which is normally print a message + do whatever this step changes
|
||||
/datum/surgery_step/proc/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return
|
||||
|
||||
// does stuff to begin the step, usually just printing messages. Moved germs transfering and bloodying here too
|
||||
proc/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
if (can_infect && affected)
|
||||
spread_germs_to_organ(affected, user)
|
||||
if (ishuman(user) && prob(60))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if (blood_level)
|
||||
H.bloody_hands(target,0)
|
||||
if (blood_level > 1)
|
||||
H.bloody_body(target,0)
|
||||
return
|
||||
// stuff that happens when the step fails
|
||||
/datum/surgery_step/proc/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return null
|
||||
|
||||
// does stuff to end the step, which is normally print a message + do whatever this step changes
|
||||
proc/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return
|
||||
|
||||
// stuff that happens when the step fails
|
||||
proc/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
return null
|
||||
|
||||
proc/spread_germs_to_organ(obj/item/organ/external/E, mob/living/carbon/human/user)
|
||||
/proc/spread_germs_to_organ(obj/item/organ/external/E, mob/living/carbon/human/user)
|
||||
if(!istype(user) || !istype(E)) return
|
||||
|
||||
var/germ_level = user.germ_level
|
||||
@@ -77,7 +75,7 @@ proc/spread_germs_to_organ(obj/item/organ/external/E, mob/living/carbon/human/us
|
||||
if(!(E.status & ORGAN_ROBOT)) //Germs on robotic limbs bad
|
||||
E.germ_level = max(germ_level,E.germ_level) //as funny as scrubbing microbes out with clean gloves is - no.
|
||||
|
||||
proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool)
|
||||
/proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
if (user.a_intent == I_HARM) //check for Hippocratic Oath
|
||||
@@ -101,16 +99,16 @@ proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool)
|
||||
else if ((tool in user.contents) && user.Adjacent(M)) //or
|
||||
S.fail_step(user, M, zone, tool) //malpractice~
|
||||
else // This failing silently was a pain.
|
||||
user << "\red You must remain close to your patient to conduct surgery."
|
||||
user << "<span class='warning'>You must remain close to your patient to conduct surgery.</span>"
|
||||
M.op_stage.in_progress -= zone // Clear the in-progress flag.
|
||||
return 1 //don't want to do weapony things after surgery
|
||||
|
||||
if (user.a_intent == I_HELP)
|
||||
user << "\red You can't see any useful way to use [tool] on [M]."
|
||||
user << "<span class='warning'>You can't see any useful way to use [tool] on [M].</span>"
|
||||
return 1
|
||||
return 0
|
||||
|
||||
proc/sort_surgeries()
|
||||
/proc/sort_surgeries()
|
||||
var/gap = surgery_steps.len
|
||||
var/swapped = 1
|
||||
while (gap > 1 || swapped)
|
||||
|
||||
Reference in New Issue
Block a user