Merge branch 'master' of github.com:Baystation12/Baystation12
@@ -517,7 +517,7 @@
|
|||||||
#include "code\game\machinery\computer\id.dm"
|
#include "code\game\machinery\computer\id.dm"
|
||||||
#include "code\game\machinery\computer\lockdown.dm"
|
#include "code\game\machinery\computer\lockdown.dm"
|
||||||
#include "code\game\machinery\computer\medical.dm"
|
#include "code\game\machinery\computer\medical.dm"
|
||||||
#include "code\game\machinery\computer\Operating.dm"
|
#include "code\game\machinery\computer\operating.dm"
|
||||||
#include "code\game\machinery\computer\power.dm"
|
#include "code\game\machinery\computer\power.dm"
|
||||||
#include "code\game\machinery\computer\robot.dm"
|
#include "code\game\machinery\computer\robot.dm"
|
||||||
#include "code\game\machinery\computer\security.dm"
|
#include "code\game\machinery\computer\security.dm"
|
||||||
|
|||||||
@@ -519,3 +519,12 @@
|
|||||||
flags = FPRINT | TABLEPASS | SUITSPACE
|
flags = FPRINT | TABLEPASS | SUITSPACE
|
||||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||||
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
|
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
|
||||||
|
|
||||||
|
/obj/item/clothing/under/rank/medical_sleeve
|
||||||
|
desc = "Made of a special fiber that gives special protection against biohazards. Has a cross on the chest denoting that the wearer is trained medical personnel. Has short sleeves."
|
||||||
|
name = "Short Sleeve Medical Jumpsuit"
|
||||||
|
icon_state = "medical_sleeve"
|
||||||
|
item_state = "medical_sleeve"
|
||||||
|
color = "medical_sleeve"
|
||||||
|
permeability_coefficient = 0.50
|
||||||
|
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||||
@@ -125,6 +125,8 @@
|
|||||||
var/a_id = null
|
var/a_id = null
|
||||||
var/temp = null
|
var/temp = null
|
||||||
var/printing = null
|
var/printing = null
|
||||||
|
var/list/Perp
|
||||||
|
var/tempname = null
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/med_data/laptop
|
/obj/machinery/computer/med_data/laptop
|
||||||
|
|||||||
@@ -1257,6 +1257,7 @@
|
|||||||
name = "fork"
|
name = "fork"
|
||||||
desc = "Pointy."
|
desc = "Pointy."
|
||||||
icon_state = "fork"
|
icon_state = "fork"
|
||||||
|
var/obj/item/weapon/reagent_containers/food/snacks/bite
|
||||||
|
|
||||||
/obj/item/weapon/kitchen/utensil/knife
|
/obj/item/weapon/kitchen/utensil/knife
|
||||||
name = "knife"
|
name = "knife"
|
||||||
|
|||||||
@@ -182,7 +182,7 @@
|
|||||||
if("Detective")
|
if("Detective")
|
||||||
return list(access_security, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
|
return list(access_security, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
|
||||||
if("Medical Doctor")
|
if("Medical Doctor")
|
||||||
return list(access_medical, access_morgue, access_surgery)
|
return list(access_medical, access_morgue, access_surgery, access_virology)
|
||||||
if("Botanist") // -- TLE
|
if("Botanist") // -- TLE
|
||||||
return list(access_hydroponics) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT
|
return list(access_hydroponics) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT
|
||||||
if("Librarian") // -- TLE
|
if("Librarian") // -- TLE
|
||||||
@@ -243,8 +243,8 @@
|
|||||||
access_tox_storage, access_chemistry, access_teleporter,
|
access_tox_storage, access_chemistry, access_teleporter,
|
||||||
access_research, access_robotics, access_xenobiology, access_RC_announce,
|
access_research, access_robotics, access_xenobiology, access_RC_announce,
|
||||||
access_keycard_auth, access_tcomsat)
|
access_keycard_auth, access_tcomsat)
|
||||||
if("Virologist")
|
/*if("Virologist")
|
||||||
return list(access_medical, access_morgue, access_virology)
|
return list(access_medical, access_morgue, access_virology)*/
|
||||||
if("Chief Medical Officer")
|
if("Chief Medical Officer")
|
||||||
return list(access_medical, access_morgue, access_medlab, access_heads,
|
return list(access_medical, access_morgue, access_medlab, access_heads,
|
||||||
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
|
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
|
||||||
|
|||||||
@@ -444,7 +444,7 @@
|
|||||||
break
|
break
|
||||||
if(!selected) //Search for a ghost if dead body with client isn't found.
|
if(!selected) //Search for a ghost if dead body with client isn't found.
|
||||||
for(var/mob/dead/observer/ghost in world)
|
for(var/mob/dead/observer/ghost in world)
|
||||||
if (ghost.corpse.mind.key == find_key)
|
if (ghost.corpse && ghost.corpse.mind.key == find_key)
|
||||||
selected = ghost
|
selected = ghost
|
||||||
break
|
break
|
||||||
return selected
|
return selected
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
var/dat
|
var/dat
|
||||||
|
|
||||||
if (src.temp)
|
if (src.temp)
|
||||||
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
||||||
else
|
else
|
||||||
@@ -28,23 +29,94 @@
|
|||||||
if (src.authenticated)
|
if (src.authenticated)
|
||||||
switch(src.screen)
|
switch(src.screen)
|
||||||
if(1.0)
|
if(1.0)
|
||||||
|
dat += "<p style='text-align:center;'>"
|
||||||
|
dat += text("<A href='?src=\ref[];search=1'>Search Records</A><BR>", src)
|
||||||
dat += {"
|
dat += {"
|
||||||
<A href='?src=\ref[src];search=1'>Search Records</A>
|
</p>
|
||||||
<BR><A href='?src=\ref[src];screen=2'>List Records</A>
|
<table style="text-align:center;" cellspacing="0" width="100%">
|
||||||
<BR><A href='?src=\ref[src];search_dna=1'>Search DNA</A>
|
<tr>
|
||||||
<BR>
|
<th>Records:</th>
|
||||||
<BR><A href='?src=\ref[src];screen=5'>Virus Database</A>
|
</tr>
|
||||||
<BR><A href='?src=\ref[src];screen=6'>Medbot Tracking</A>
|
</table>
|
||||||
<BR>
|
<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
<BR><A href='?src=\ref[src];screen=3'>Record Maintenance</A>
|
<tr>
|
||||||
<BR><A href='?src=\ref[src];logout=1'>{Log Out}</A><BR>
|
<th>Name</th>
|
||||||
"}
|
<th>ID</th>
|
||||||
if(2.0)
|
<th>Rank</th>
|
||||||
dat += "<B>Record List</B>:<HR>"
|
<th>Fingerprints</th>
|
||||||
|
<th>Physical Status</th>
|
||||||
|
<th>Mental Status</th>
|
||||||
|
</tr>"}
|
||||||
for(var/datum/data/record/R in data_core.general)
|
for(var/datum/data/record/R in data_core.general)
|
||||||
dat += text("<A href='?src=\ref[];d_rec=\ref[]'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
|
var/physstat = R.fields["p_stat"]
|
||||||
//Foreach goto(132)
|
var/background
|
||||||
dat += text("<HR><A href='?src=\ref[];screen=1'>Back</A>", src)
|
switch(physstat)
|
||||||
|
if("*Deceased*")
|
||||||
|
background = "'background-color:#CD853F;'"
|
||||||
|
if("*Unconscious*")
|
||||||
|
background = "'background-color:#DC143C;'"
|
||||||
|
if("Physically Unfit")
|
||||||
|
background = "'background-color:#3BB9FF;'"
|
||||||
|
if("Active")
|
||||||
|
background = "'background-color:#00FF7F;'"
|
||||||
|
if("")
|
||||||
|
background = "'background-color:#FFFFFF;'"
|
||||||
|
physstat = "No Record."
|
||||||
|
dat += text("<tr style=[]><td><A href='?src=\ref[];d_rec=\ref[]'>[]</a></td>", background, src, R, R.fields["name"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["id"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["rank"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["fingerprint"])
|
||||||
|
dat += text("<td>[]</td>", physstat)
|
||||||
|
dat += text("<td>[]</td></tr>", R.fields["m_stat"])
|
||||||
|
dat += "</table><hr width='75%' />"
|
||||||
|
dat += "<A href='?src=\ref[src];screen=5'>Virus Database</A><BR>"
|
||||||
|
dat += "<A href='?src=\ref[src];screen=6'>Medbot Tracking</A><BR>"
|
||||||
|
dat += "<A href='?src=\ref[src];screen=3'>Record Maintenance</A><BR><BR>"
|
||||||
|
dat += "<A href='?src=\ref[src];logout=1'>{Log Out}</A>"
|
||||||
|
if(2.0)
|
||||||
|
if(!Perp.len)
|
||||||
|
dat += text("ERROR. String could not be located.<br><br><A href='?src=\ref[];screen=1'>Back</A>", src)
|
||||||
|
else
|
||||||
|
dat += {"
|
||||||
|
<table style="text-align:center;" cellspacing="0" width="100%">
|
||||||
|
<tr> "}
|
||||||
|
dat += text("<th>Search Results for '[]':</th>", tempname)
|
||||||
|
dat += {"
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table style="text-align:center;" border="1" cellspacing="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>Rank</th>
|
||||||
|
<th>Fingerprints</th>
|
||||||
|
<th>Physical Status</th>
|
||||||
|
<th>Mental Status</th>
|
||||||
|
</tr> "}
|
||||||
|
for(var/i=1, i<=Perp.len, i += 2)
|
||||||
|
var/datum/data/record/R = Perp[i]
|
||||||
|
var/physstat = R.fields["p_stat"]
|
||||||
|
var/background
|
||||||
|
switch(physstat)
|
||||||
|
if("*Deceased*")
|
||||||
|
background = "'background-color:#CD853F;'"
|
||||||
|
if("*Unconscious*")
|
||||||
|
background = "'background-color:#DC143C;'"
|
||||||
|
if("Physically Unfit")
|
||||||
|
background = "'background-color:#3BB9FF;'"
|
||||||
|
if("Active")
|
||||||
|
background = "'background-color:#00FF7F;'"
|
||||||
|
if("")
|
||||||
|
background = "'background-color:#FFFFFF;'"
|
||||||
|
physstat = "No Record."
|
||||||
|
dat += text("<tr style=[]><td><A href='?src=\ref[];choice=Browse Record;d_rec=\ref[]'>[]</a></td>", background, src, R, R.fields["name"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["id"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["rank"])
|
||||||
|
dat += text("<td>[]</td>", R.fields["fingerprint"])
|
||||||
|
dat += text("<td>[]</td>", physstat)
|
||||||
|
dat += text("<td>[]</td></tr>", R.fields["m_stat"])
|
||||||
|
dat += "</table><hr width='75%' />"
|
||||||
|
dat += text("<br><A href='?src=\ref[];screen=1'>Return to index.</A>", src)
|
||||||
if(3.0)
|
if(3.0)
|
||||||
dat += "<B>Records Maintenance</B><HR>"
|
dat += "<B>Records Maintenance</B><HR>"
|
||||||
if(disk)
|
if(disk)
|
||||||
@@ -81,19 +153,18 @@
|
|||||||
else
|
else
|
||||||
dat += "<B>Medical Record Lost!</B><BR>"
|
dat += "<B>Medical Record Lost!</B><BR>"
|
||||||
dat += text("<A href='?src=\ref[src];new=1'>New Record</A><BR><BR>")
|
dat += text("<A href='?src=\ref[src];new=1'>New Record</A><BR><BR>")
|
||||||
dat += text("\n<A href='?src=\ref[];print_p=1'>Print Record</A><BR>\n<A href='?src=\ref[];screen=2'>Back</A><BR>", src, src)
|
dat += text("\n<A href='?src=\ref[];print_p=1'>Print Record</A><BR>\n<A href='?src=\ref[];screen=1'>Back</A><BR>", src, src)
|
||||||
if(5.0)
|
if(5.0)
|
||||||
dat += "<CENTER><B>Virus Database</B></CENTER>"
|
dat += "<B>Virus Database</B><HR>"
|
||||||
for(var/Dt in typesof(/datum/disease/))
|
for(var/Dt in typesof(/datum/disease/))
|
||||||
var/datum/disease/Dis = new Dt(0)
|
var/datum/disease/Dis = new Dt(0)
|
||||||
if(!Dis.desc)
|
if(!Dis.desc)
|
||||||
continue
|
continue
|
||||||
dat += "<br><a href='?src=\ref[src];vir=[Dt]'>[Dis.name]</a>"
|
dat += "<a href='?src=\ref[src];vir=[Dt]'>[Dis.name]</a><br>"
|
||||||
dat += "<br><a href='?src=\ref[src];screen=1'>Back</a>"
|
dat += "<br><a href='?src=\ref[src];screen=1'>Back</a>"
|
||||||
if(6.0)
|
if(6.0)
|
||||||
dat += "<center><b>Medical Robot Monitor</b></center>"
|
dat += "<b>Medical Robot Monitor</b><hr>"
|
||||||
dat += "<a href='?src=\ref[src];screen=1'>Back</a>"
|
dat += "<b>Medical Robots:</b><br>"
|
||||||
dat += "<br><b>Medical Robots:</b>"
|
|
||||||
var/bdat = null
|
var/bdat = null
|
||||||
for(var/obj/machinery/bot/medbot/M in world)
|
for(var/obj/machinery/bot/medbot/M in world)
|
||||||
var/turf/bl = get_turf(M)
|
var/turf/bl = get_turf(M)
|
||||||
@@ -104,14 +175,16 @@
|
|||||||
bdat += "Using Internal Synthesizer.<br>"
|
bdat += "Using Internal Synthesizer.<br>"
|
||||||
|
|
||||||
if(!bdat)
|
if(!bdat)
|
||||||
dat += "<br><center>None detected</center>"
|
dat += "None detected<br><br>"
|
||||||
else
|
else
|
||||||
dat += "<br>[bdat]"
|
dat += "[bdat]<br>"
|
||||||
|
|
||||||
|
dat += "<a href='?src=\ref[src];screen=1'>Back</a>"
|
||||||
|
|
||||||
else
|
else
|
||||||
else
|
else
|
||||||
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
||||||
user << browse(text("<HEAD><TITLE>Medical Records</TITLE></HEAD><TT>[]</TT>", dat), "window=med_rec")
|
user << browse(text("<HEAD><TITLE>Medical Records</TITLE></HEAD><TT>[]</TT>", dat), "window=med_rec;size=600x400")
|
||||||
onclose(user, "med_rec")
|
onclose(user, "med_rec")
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -309,7 +382,7 @@
|
|||||||
if("watch")
|
if("watch")
|
||||||
src.active1.fields["m_stat"] = "*Watch*"
|
src.active1.fields["m_stat"] = "*Watch*"
|
||||||
if("stable")
|
if("stable")
|
||||||
src.active2.fields["m_stat"] = "Stable"
|
src.active1.fields["m_stat"] = "Stable"
|
||||||
|
|
||||||
|
|
||||||
if (href_list["b_type"])
|
if (href_list["b_type"])
|
||||||
@@ -395,26 +468,33 @@
|
|||||||
src.active2.fields[text("com_[]", href_list["del_c"])] = "<B>Deleted</B>"
|
src.active2.fields[text("com_[]", href_list["del_c"])] = "<B>Deleted</B>"
|
||||||
|
|
||||||
if (href_list["search"])
|
if (href_list["search"])
|
||||||
var/t1 = input("Search String: (Name or ID)", "Med. records", null, null) as text
|
var/t1 = input("Search String: (Partial Name or ID or Fingerprints or DNA or Rank)", "Med. records", null, null) as text
|
||||||
if ((!( t1 ) || usr.stat || !( src.authenticated ) || usr.restrained() || ((!in_range(src, usr)) && (!istype(usr, /mob/living/silicon)))))
|
if ((!( t1 ) || usr.stat || !( src.authenticated ) || usr.restrained() || ((!in_range(src, usr)) && (!istype(usr, /mob/living/silicon)))))
|
||||||
return
|
return
|
||||||
src.active1 = null
|
Perp = new/list()
|
||||||
src.active2 = null
|
|
||||||
t1 = lowertext(t1)
|
t1 = lowertext(t1)
|
||||||
|
var/list/components = dd_text2list(t1, " ")
|
||||||
|
if(components.len > 5)
|
||||||
|
return //Lets not let them search too greedily.
|
||||||
for(var/datum/data/record/R in data_core.general)
|
for(var/datum/data/record/R in data_core.general)
|
||||||
if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"])))
|
var/temptext = R.fields["name"] + " " + R.fields["id"] + " " + R.fields["fingerprint"] + " " + R.fields["rank"]
|
||||||
src.active1 = R
|
|
||||||
else
|
|
||||||
//Foreach continue //goto(3229)
|
|
||||||
if (!( src.active1 ))
|
|
||||||
src.temp = text("Could not locate record [].", t1)
|
|
||||||
else
|
|
||||||
for(var/datum/data/record/E in data_core.medical)
|
for(var/datum/data/record/E in data_core.medical)
|
||||||
if ((E.fields["name"] == src.active1.fields["name"] || E.fields["id"] == src.active1.fields["id"]))
|
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||||
src.active2 = E
|
temptext += " " + E.fields["b_dna"]
|
||||||
else
|
|
||||||
//Foreach continue //goto(3334)
|
for(var/i = 1, i<=components.len, i++)
|
||||||
src.screen = 4
|
if(findtext(temptext,components[i]))
|
||||||
|
var/prelist = new/list(2)
|
||||||
|
prelist[1] = R
|
||||||
|
Perp += prelist
|
||||||
|
for(var/i = 1, i<=Perp.len, i+=2)
|
||||||
|
for(var/datum/data/record/E in data_core.medical)
|
||||||
|
var/datum/data/record/R = Perp[i]
|
||||||
|
if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"]))
|
||||||
|
Perp[i+1] = E
|
||||||
|
tempname = t1
|
||||||
|
src.screen = 2
|
||||||
|
|
||||||
if (href_list["print_p"])
|
if (href_list["print_p"])
|
||||||
if (!( src.printing ))
|
if (!( src.printing ))
|
||||||
@@ -437,24 +517,6 @@
|
|||||||
P.info += "</TT>"
|
P.info += "</TT>"
|
||||||
P.name = "paper - 'Medical Record'"
|
P.name = "paper - 'Medical Record'"
|
||||||
src.printing = null
|
src.printing = null
|
||||||
|
|
||||||
if (href_list["search_dna"])
|
|
||||||
var/t1 = input("Search String: (DNA)", "Medical records", null, null) as text
|
|
||||||
if ((!( t1 ) || usr.stat || !( authenticated ) || usr.restrained() || (!in_range(src, usr)) && (!istype(usr, /mob/living/silicon))))
|
|
||||||
return
|
|
||||||
active1 = null
|
|
||||||
active2 = null
|
|
||||||
t1 = lowertext(t1)
|
|
||||||
for(var/datum/data/record/R in data_core.medical)
|
|
||||||
if (lowertext(R.fields["b_dna"]) == t1)
|
|
||||||
active2 = R
|
|
||||||
if (!( active2 ))
|
|
||||||
temp = text("Could not locate record [].", t1)
|
|
||||||
else
|
|
||||||
for(var/datum/data/record/E in data_core.general)
|
|
||||||
if ((E.fields["name"] == active2.fields["name"] || E.fields["id"] == active2.fields["id"]))
|
|
||||||
active1 = E
|
|
||||||
screen = 4
|
|
||||||
if (href_list["eject_disk"])
|
if (href_list["eject_disk"])
|
||||||
if (!disk)
|
if (!disk)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -355,6 +355,12 @@ THERMAL GLASSES
|
|||||||
else if(src.icon_state == "labcoat_pink")
|
else if(src.icon_state == "labcoat_pink")
|
||||||
src.icon_state = "labcoat_pink_open"
|
src.icon_state = "labcoat_pink_open"
|
||||||
usr << "You unbutton the labcoat."
|
usr << "You unbutton the labcoat."
|
||||||
|
else if(src.icon_state == "labcoat_sleeve_open")
|
||||||
|
src.icon_state = "labcoat_sleeve"
|
||||||
|
usr << "You button up the labcoat."
|
||||||
|
else if(src.icon_state == "labcoat_sleeve")
|
||||||
|
src.icon_state = "labcoat_sleeve_open"
|
||||||
|
usr << "You unbutton the labcoat."
|
||||||
|
|
||||||
else
|
else
|
||||||
usr << "Sorry! The suit you're wearing doesn't have buttons!"
|
usr << "Sorry! The suit you're wearing doesn't have buttons!"
|
||||||
|
|||||||
@@ -18,28 +18,71 @@ KNIFE
|
|||||||
|
|
||||||
// FORK
|
// FORK
|
||||||
|
|
||||||
/obj/item/weapon/kitchen/utensil/fork/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
/obj/item/weapon/kitchen/utensil/fork/attack(mob/living/M as mob, mob/living/carbon/user as mob)
|
||||||
if(!istype(M))
|
if(istype(M,/mob/living/carbon) || istype(M,/mob/living/simple_animal/livestock))
|
||||||
return ..()
|
if (bite)
|
||||||
|
|
||||||
if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head")
|
|
||||||
return ..()
|
|
||||||
|
|
||||||
if (src.icon_state == "forkloaded") //This is a poor way of handling it, but a proper rewrite of the fork to allow for a more varied foodening can happen when I'm in the mood. --NEO
|
|
||||||
if(M == user)
|
if(M == user)
|
||||||
for(var/mob/O in viewers(M, null))
|
user.visible_message( \
|
||||||
O.show_message(text("\blue [] eats a delicious forkful of omelette!", user), 1)
|
"\blue [user] eats a delicious forkful of [bite]!", \
|
||||||
M.reagents.add_reagent("nutriment", 1)
|
"\blue You eat a delicious forkful of [bite]!")
|
||||||
else
|
else
|
||||||
for(var/mob/O in viewers(M, null))
|
user.visible_message( \
|
||||||
O.show_message(text("\blue [] feeds [] a delicious forkful of omelette!", user, M), 1)
|
"\blue [user] feeds [M] a delicious forkful of [bite]!", \
|
||||||
M.reagents.add_reagent("nutriment", 1)
|
"\blue You feed [M] a delicious forkful of [bite]!")
|
||||||
|
spawn(0)
|
||||||
|
bite.reagents.reaction(M, INGEST)
|
||||||
|
bite.reagents.trans_to(M)
|
||||||
|
del(bite)
|
||||||
src.icon_state = "fork"
|
src.icon_state = "fork"
|
||||||
return
|
else if(user.zone_sel.selecting == "eyes")
|
||||||
else
|
|
||||||
if((user.mutations & CLUMSY) && prob(50))
|
if((user.mutations & CLUMSY) && prob(50))
|
||||||
M = user
|
M = user
|
||||||
return eyestab(M,user)
|
return eyestab(M, user)
|
||||||
|
else
|
||||||
|
user << "\red Your fork does not have any food on it."
|
||||||
|
else
|
||||||
|
user << "\red You can't seem to feed [M]."
|
||||||
|
|
||||||
|
/obj/item/weapon/kitchen/utensil/fork/afterattack(obj/item/weapon/reagent_containers/food/snacks/snack as obj, mob/living/carbon/user as mob)
|
||||||
|
if(istype(snack))
|
||||||
|
if(bite)
|
||||||
|
user << "\red You already have [bite] on your fork."
|
||||||
|
else
|
||||||
|
bite = new snack.type(src)
|
||||||
|
icon_state = "forkloaded"
|
||||||
|
user.visible_message( \
|
||||||
|
"[user] takes a piece of [bite] with their fork!", \
|
||||||
|
"\blue You take a piece of [bite] with your fork!" \
|
||||||
|
)
|
||||||
|
if(bite.reagents && snack.reagents) //transfer bit's worth of reagents to
|
||||||
|
bite.reagents.clear_reagents()
|
||||||
|
if(snack.reagents.total_volume)
|
||||||
|
snack.reagents.reaction(src, TOUCH) // react "food" with fork
|
||||||
|
spawn(0)
|
||||||
|
if(snack.reagents.total_volume > snack.bitesize)
|
||||||
|
snack.reagents.trans_to(bite, snack.bitesize)
|
||||||
|
else
|
||||||
|
snack.reagents.trans_to(bite, snack.reagents.total_volume)
|
||||||
|
snack.bitecount++
|
||||||
|
if(!snack.reagents.total_volume)
|
||||||
|
// due to the trash code being hard-coded to place in hand, do magic trick
|
||||||
|
// free active hand
|
||||||
|
user.drop_item(src)
|
||||||
|
|
||||||
|
// consumption fills active hand, drop it back down
|
||||||
|
snack.On_Consume()
|
||||||
|
var/obj/trash = user.get_active_hand()
|
||||||
|
if(trash)
|
||||||
|
user.drop_item(trash)
|
||||||
|
trash.loc = get_turf(snack.loc) // move trash to snack's turf
|
||||||
|
|
||||||
|
// put fork back in hand
|
||||||
|
user.put_in_hand(src)
|
||||||
|
user << "\red You grab the last bite of [snack]."
|
||||||
|
del(snack)
|
||||||
|
else
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
var/CMinutes = null
|
var/CMinutes = null
|
||||||
var/savefile/Banlist
|
var/savefile/Banlist
|
||||||
|
|
||||||
|
/proc/LoadBans()
|
||||||
|
|
||||||
|
Banlist = new("data/banlist.bdb")
|
||||||
|
log_admin("Loading banlist.")
|
||||||
|
|
||||||
|
if (!length(Banlist.dir)) log_admin("Banlist is empty.")
|
||||||
|
|
||||||
|
if (!Banlist.dir.Find("base"))
|
||||||
|
log_admin("Banlist missing base dir.")
|
||||||
|
Banlist.dir.Add("base")
|
||||||
|
|
||||||
|
Banlist.cd = "/base"
|
||||||
|
|
||||||
|
ClearTempbans()
|
||||||
|
return 1
|
||||||
|
|
||||||
|
|
||||||
/proc/CheckBan(var/client/clientvar)
|
/proc/CheckBan(var/client/clientvar)
|
||||||
|
|
||||||
@@ -11,11 +27,11 @@ var/savefile/Banlist
|
|||||||
if (Banlist.dir.Find("[key][id]"))
|
if (Banlist.dir.Find("[key][id]"))
|
||||||
Banlist.cd = "[key][id]"
|
Banlist.cd = "[key][id]"
|
||||||
if (Banlist["temp"])
|
if (Banlist["temp"])
|
||||||
if (!GetExp(Banlist["minutes"]))
|
if (!GetBanExp(Banlist["minutes"]))
|
||||||
ClearTempbans()
|
ClearTempbans()
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetExp(Banlist["minutes"])].)"
|
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetBanExp(Banlist["minutes"])].)"
|
||||||
else
|
else
|
||||||
Banlist.cd = "/base/[key][id]"
|
Banlist.cd = "/base/[key][id]"
|
||||||
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
||||||
@@ -23,40 +39,23 @@ var/savefile/Banlist
|
|||||||
Banlist.cd = "/base"
|
Banlist.cd = "/base"
|
||||||
for (var/A in Banlist.dir)
|
for (var/A in Banlist.dir)
|
||||||
Banlist.cd = "/base/[A]"
|
Banlist.cd = "/base/[A]"
|
||||||
if (id == Banlist["id"] || key == Banlist["key"])
|
if ( key == Banlist["key"] || (id == Banlist["id"] && Banlist["skipIdCheck"] == 0) )
|
||||||
if(Banlist["temp"])
|
if(Banlist["temp"])
|
||||||
if (!GetExp(Banlist["minutes"]))
|
if (!GetBanExp(Banlist["minutes"]))
|
||||||
ClearTempbans()
|
ClearTempbans()
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetExp(Banlist["minutes"])].)"
|
return "[Banlist["reason"]]\n(This ban will be automatically removed in [GetBanExp(Banlist["minutes"])].)"
|
||||||
else
|
else
|
||||||
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
return "[Banlist["reason"]]\n(This is a permanent ban)"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
/proc/UpdateTime() //No idea why i made this a proc.
|
/proc/UpdateTime()
|
||||||
CMinutes = (world.realtime / 10) / 60
|
CMinutes = (world.realtime / 10) / 60
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/proc/LoadBans()
|
|
||||||
|
|
||||||
Banlist = new("data/banlist.bdb")
|
|
||||||
log_admin("Loading Banlist")
|
|
||||||
|
|
||||||
if (!length(Banlist.dir)) log_admin("Banlist is empty.")
|
|
||||||
|
|
||||||
if (!Banlist.dir.Find("base"))
|
|
||||||
log_admin("Banlist missing base dir.")
|
|
||||||
Banlist.dir.Add("base")
|
|
||||||
Banlist.cd = "/base"
|
|
||||||
else if (Banlist.dir.Find("base"))
|
|
||||||
Banlist.cd = "/base"
|
|
||||||
|
|
||||||
ClearTempbans()
|
|
||||||
return 1
|
|
||||||
|
|
||||||
/proc/ClearTempbans()
|
/proc/ClearTempbans()
|
||||||
UpdateTime()
|
UpdateTime()
|
||||||
|
|
||||||
@@ -92,6 +91,7 @@ var/savefile/Banlist
|
|||||||
Banlist.cd = "/base/[ckey][computerid]"
|
Banlist.cd = "/base/[ckey][computerid]"
|
||||||
Banlist["key"] << ckey
|
Banlist["key"] << ckey
|
||||||
Banlist["id"] << computerid
|
Banlist["id"] << computerid
|
||||||
|
Banlist["skipIdCheck"] << 0
|
||||||
Banlist["reason"] << reason
|
Banlist["reason"] << reason
|
||||||
Banlist["bannedby"] << bannedby
|
Banlist["bannedby"] << bannedby
|
||||||
Banlist["temp"] << temp
|
Banlist["temp"] << temp
|
||||||
@@ -106,7 +106,6 @@ var/savefile/Banlist
|
|||||||
|
|
||||||
Banlist.cd = "/base/[foldername]"
|
Banlist.cd = "/base/[foldername]"
|
||||||
Banlist["key"] >> key
|
Banlist["key"] >> key
|
||||||
Banlist["id"] >> id
|
|
||||||
Banlist.cd = "/base"
|
Banlist.cd = "/base"
|
||||||
|
|
||||||
if (!Banlist.dir.Remove(foldername)) return 0
|
if (!Banlist.dir.Remove(foldername)) return 0
|
||||||
@@ -129,7 +128,7 @@ var/savefile/Banlist
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/proc/GetExp(minutes as num)
|
/proc/GetBanExp(minutes as num)
|
||||||
UpdateTime()
|
UpdateTime()
|
||||||
var/exp = minutes - CMinutes
|
var/exp = minutes - CMinutes
|
||||||
if (exp <= 0)
|
if (exp <= 0)
|
||||||
@@ -147,20 +146,19 @@ var/savefile/Banlist
|
|||||||
/obj/admins/proc/unbanpanel()
|
/obj/admins/proc/unbanpanel()
|
||||||
var/count = 0
|
var/count = 0
|
||||||
var/dat
|
var/dat
|
||||||
//var/dat = "<HR><B>Unban Player:</B> \blue(U) = Unban , (E) = Edit Ban\green (Total<HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >"
|
|
||||||
Banlist.cd = "/base"
|
Banlist.cd = "/base"
|
||||||
for (var/A in Banlist.dir)
|
for (var/A in Banlist.dir)
|
||||||
count++
|
count++
|
||||||
Banlist.cd = "/base/[A]"
|
Banlist.cd = "/base/[A]"
|
||||||
dat += text("<tr><td><A href='?src=\ref[src];unbanf=[Banlist["key"]][Banlist["id"]]'>(U)</A><A href='?src=\ref[src];unbane=[Banlist["key"]][Banlist["id"]]'>(E)</A> Key: <B>[Banlist["key"]]</B></td><td> ([Banlist["temp"] ? "[GetExp(Banlist["minutes"]) ? GetExp(Banlist["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlist["bannedby"]])</td><td>(Reason: [Banlist["reason"]])</td></tr>")
|
dat += text("<tr><td><A href='?src=\ref[src];unban_del=[Banlist["key"]][Banlist["id"]]'>(U)</A><A href='?src=\ref[src];unban_edit=[Banlist["key"]][Banlist["id"]]'>(E)</A><A href='?src=\ref[src];unban_cid=[Banlist["key"]][Banlist["id"]]'>(K)</A> Key: <B>[Banlist["key"]]</B></td><td> ([Banlist["temp"] ? "[GetBanExp(Banlist["minutes"]) ? GetBanExp(Banlist["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlist["bannedby"]])</td><td>(Reason: [Banlist["reason"]])</td></tr>")
|
||||||
|
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , (E) = Edit Ban , (K) = Remove Computer ID</FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||||
usr << browse(dat, "window=unbanp;size=875x400")
|
usr << browse(dat, "window=unbanp;size=875x400")
|
||||||
|
|
||||||
//////////////////////////////////// DEBUG ////////////////////////////////////
|
//////////////////////////////////// DEBUG ////////////////////////////////////
|
||||||
|
|
||||||
/proc/CreateBans()
|
/*/proc/CreateBans()
|
||||||
|
|
||||||
UpdateTime()
|
UpdateTime()
|
||||||
|
|
||||||
@@ -192,5 +190,5 @@ var/savefile/Banlist
|
|||||||
/proc/ClearAllBans()
|
/proc/ClearAllBans()
|
||||||
Banlist.cd = "/base"
|
Banlist.cd = "/base"
|
||||||
for (var/A in Banlist.dir)
|
for (var/A in Banlist.dir)
|
||||||
RemoveBan(A)
|
RemoveBan(A)*/
|
||||||
|
|
||||||
|
|||||||
@@ -115,8 +115,8 @@
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////new ban stuff
|
/////////////////////////////////////new ban stuff
|
||||||
if(href_list["unbanf"])
|
if(href_list["unban_del"])
|
||||||
var/banfolder = href_list["unbanf"]
|
var/banfolder = href_list["unban_del"]
|
||||||
Banlist.cd = "/base/[banfolder]"
|
Banlist.cd = "/base/[banfolder]"
|
||||||
var/key = Banlist["key"]
|
var/key = Banlist["key"]
|
||||||
if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes")
|
if(alert(usr, "Are you sure you want to unban [key]?", "Confirmation", "Yes", "No") == "Yes")
|
||||||
@@ -126,11 +126,18 @@
|
|||||||
alert(usr,"This ban has already been lifted / does not exist.","Error","Ok")
|
alert(usr,"This ban has already been lifted / does not exist.","Error","Ok")
|
||||||
unbanpanel()
|
unbanpanel()
|
||||||
|
|
||||||
if(href_list["unbane"])
|
if(href_list["unban_cid"])
|
||||||
|
var/banfolder = href_list["unban_cid"]
|
||||||
|
Banlist.cd = "/base/[banfolder]"
|
||||||
|
var/key = Banlist["key"]
|
||||||
|
if(alert(usr, "Are you sure you want to remove the computer ID for [key]'s ban? Without the ID, a different account could get on the server from [key]'s computer.", "Confirmation", "Yes", "No") == "Yes")
|
||||||
|
Banlist["skipIdCheck"] << 1
|
||||||
|
|
||||||
|
if(href_list["unban_edit"])
|
||||||
UpdateTime()
|
UpdateTime()
|
||||||
var/reason
|
var/reason
|
||||||
var/mins = 0
|
var/mins = 0
|
||||||
var/banfolder = href_list["unbane"]
|
var/banfolder = href_list["unban_edit"]
|
||||||
Banlist.cd = "/base/[banfolder]"
|
Banlist.cd = "/base/[banfolder]"
|
||||||
var/reason2 = Banlist["reason"]
|
var/reason2 = Banlist["reason"]
|
||||||
var/temp = Banlist["temp"]
|
var/temp = Banlist["temp"]
|
||||||
@@ -155,10 +162,10 @@
|
|||||||
if(!reason)
|
if(!reason)
|
||||||
return
|
return
|
||||||
|
|
||||||
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]")
|
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]")
|
||||||
|
|
||||||
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]")
|
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]")
|
||||||
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetExp(mins)]", 1)
|
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [GetBanExp(mins)]", 1)
|
||||||
Banlist.cd = "/base/[banfolder]"
|
Banlist.cd = "/base/[banfolder]"
|
||||||
Banlist["reason"] << reason
|
Banlist["reason"] << reason
|
||||||
Banlist["temp"] << temp
|
Banlist["temp"] << temp
|
||||||
|
|||||||
@@ -20,11 +20,6 @@ var/savefile/Banlistjob
|
|||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
///proc/UpdateTime() //No idea why i made this a proc.
|
|
||||||
// CMinutes = (world.realtime / 10) / 60
|
|
||||||
// return 1
|
|
||||||
|
|
||||||
/proc/LoadBansjob()
|
/proc/LoadBansjob()
|
||||||
|
|
||||||
Banlistjob = new("data/job_fullnew.bdb")
|
Banlistjob = new("data/job_fullnew.bdb")
|
||||||
@@ -189,7 +184,7 @@ var/savefile/Banlistjob
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/proc/GetExpjob(minutes as num)
|
/proc/GetBanExpjob(minutes as num)
|
||||||
UpdateTime()
|
UpdateTime()
|
||||||
var/exp = minutes - CMinutes
|
var/exp = minutes - CMinutes
|
||||||
if (exp <= 0)
|
if (exp <= 0)
|
||||||
@@ -212,7 +207,7 @@ var/savefile/Banlistjob
|
|||||||
for (var/A in Banlistjob.dir)
|
for (var/A in Banlistjob.dir)
|
||||||
count++
|
count++
|
||||||
Banlistjob.cd = "/base/[A]"
|
Banlistjob.cd = "/base/[A]"
|
||||||
dat += text("<tr><td><A href='?src=\ref[src];unjobbanf=[Banlistjob["key"]][Banlistjob["id"]][Banlistjob["rank"]]'>(U)</A> Key: <B>[Banlistjob["key"]] </B>Rank: <B>[Banlistjob["rank"]]</B></td><td> ([Banlistjob["temp"] ? "[GetExpjob(Banlistjob["minutes"]) ? GetExpjob(Banlistjob["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlistjob["bannedby"]])</td><td>(Reason: [Banlistjob["reason"]])</td></tr>")
|
dat += text("<tr><td><A href='?src=\ref[src];unjobbanf=[Banlistjob["key"]][Banlistjob["id"]][Banlistjob["rank"]]'>(U)</A> Key: <B>[Banlistjob["key"]] </B>Rank: <B>[Banlistjob["rank"]]</B></td><td> ([Banlistjob["temp"] ? "[GetBanExpjob(Banlistjob["minutes"]) ? GetBanExpjob(Banlistjob["minutes"]) : "Removal pending" ]" : "Permaban"])</td><td>(By: [Banlistjob["bannedby"]])</td><td>(Reason: [Banlistjob["reason"]])</td></tr>")
|
||||||
|
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , </FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
dat = "<HR><B>Bans:</B> <FONT COLOR=blue>(U) = Unban , </FONT> - <FONT COLOR=green>([count] Bans)</FONT><HR><table border=1 rules=all frame=void cellspacing=0 cellpadding=3 >[dat]"
|
||||||
|
|||||||
@@ -491,6 +491,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
|||||||
M.radiation = 0
|
M.radiation = 0
|
||||||
//M.health = 100
|
//M.health = 100
|
||||||
M.nutrition = 400
|
M.nutrition = 400
|
||||||
|
M.bodytemperature = initial(M.bodytemperature)
|
||||||
M.heal_overall_damage(1000, 1000)
|
M.heal_overall_damage(1000, 1000)
|
||||||
//M.updatehealth()
|
//M.updatehealth()
|
||||||
M.buckled = initial(M.buckled)
|
M.buckled = initial(M.buckled)
|
||||||
@@ -725,35 +726,25 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
|||||||
for(var/t in L)
|
for(var/t in L)
|
||||||
usr << "[t]"
|
usr << "[t]"
|
||||||
|
|
||||||
/client/proc/cmd_admin_remove_plasma()
|
/client/proc/cmd_admin_remove_plasma(area/A as area)
|
||||||
set category = "Debug"
|
set category = "Debug"
|
||||||
set name = "Stabilize Atmos."
|
set name = "Stabilize Atmos."
|
||||||
|
set desc = "Stabilize atmos in selected area."
|
||||||
if(!holder)
|
if(!holder)
|
||||||
src << "Only administrators may use this command."
|
src << "Only administrators may use this command."
|
||||||
return
|
return
|
||||||
// DEFERRED
|
|
||||||
/*
|
spawn(1)
|
||||||
spawn(0)
|
for(var/turf/simulated/T in A)
|
||||||
for(var/turf/T in view())
|
if(T.air)
|
||||||
T.poison = 0
|
T.air.oxygen = T.oxygen
|
||||||
T.oldpoison = 0
|
T.air.carbon_dioxide = T.carbon_dioxide
|
||||||
T.tmppoison = 0
|
T.air.nitrogen = T.nitrogen
|
||||||
T.oxygen = 755985
|
T.air.toxins = T.toxins
|
||||||
T.oldoxy = 755985
|
T.air.temperature = T.temperature
|
||||||
T.tmpoxy = 755985
|
|
||||||
T.co2 = 14.8176
|
// make things update properly
|
||||||
T.oldco2 = 14.8176
|
T.assume_air(new /datum/gas_mixture())
|
||||||
T.tmpco2 = 14.8176
|
|
||||||
T.n2 = 2.844e+006
|
|
||||||
T.on2 = 2.844e+006
|
|
||||||
T.tn2 = 2.844e+006
|
|
||||||
T.tsl_gas = 0
|
|
||||||
T.osl_gas = 0
|
|
||||||
T.sl_gas = 0
|
|
||||||
T.temp = 293.15
|
|
||||||
T.otemp = 293.15
|
|
||||||
T.ttemp = 293.15
|
|
||||||
*/
|
|
||||||
|
|
||||||
/client/proc/toggle_view_range()
|
/client/proc/toggle_view_range()
|
||||||
set category = "Special Verbs"
|
set category = "Special Verbs"
|
||||||
|
|||||||
@@ -46,3 +46,8 @@
|
|||||||
name = "Pink Labcoat"
|
name = "Pink Labcoat"
|
||||||
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
||||||
icon_state = "labcoat_pink_open"
|
icon_state = "labcoat_pink_open"
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/labcoat/red
|
||||||
|
name = "Red Labcoat"
|
||||||
|
desc = "A suit that protects against minor chemical spills. Has a red stripe on the shoulders and rolled up sleeves."
|
||||||
|
icon_state = "labcoat_sleeve_open"
|
||||||
@@ -10,6 +10,8 @@
|
|||||||
alive = 1
|
alive = 1
|
||||||
health = 10
|
health = 10
|
||||||
max_health = 10
|
max_health = 10
|
||||||
|
aggression = 100
|
||||||
|
speed = 8
|
||||||
list/access_list = list()//accesses go here
|
list/access_list = list()//accesses go here
|
||||||
//AI things
|
//AI things
|
||||||
task = "thinking"
|
task = "thinking"
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
src.target_lastloc = M.loc
|
src.target_lastloc = M.loc
|
||||||
else
|
else
|
||||||
var/turf/olddist = get_dist(src, src.target)
|
var/turf/olddist = get_dist(src, src.target)
|
||||||
walk_to(src, src.target,1,4)
|
walk_to(src, src.target,1,speed)
|
||||||
if ((get_dist(src, src.target)) >= (olddist))
|
if ((get_dist(src, src.target)) >= (olddist))
|
||||||
src.frustration++
|
src.frustration++
|
||||||
else
|
else
|
||||||
@@ -106,6 +106,8 @@
|
|||||||
|
|
||||||
|
|
||||||
seek_target()
|
seek_target()
|
||||||
|
if(!prob(aggression)) return // make them attack depending on aggression levels
|
||||||
|
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
var/T = null
|
var/T = null
|
||||||
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
|
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
|
||||||
|
|||||||
@@ -135,9 +135,10 @@
|
|||||||
name = "Spess Carp"
|
name = "Spess Carp"
|
||||||
desc = "A ferocious, fang-bearing creature that resembles a fish."
|
desc = "A ferocious, fang-bearing creature that resembles a fish."
|
||||||
icon_state = "spesscarp"
|
icon_state = "spesscarp"
|
||||||
health = 25
|
health = 100
|
||||||
max_health = 25
|
max_health = 100
|
||||||
aggressive = 1
|
aggressive = 1
|
||||||
|
aggression = 20
|
||||||
defensive = 1
|
defensive = 1
|
||||||
wanderer = 1
|
wanderer = 1
|
||||||
atkcarbon = 1
|
atkcarbon = 1
|
||||||
@@ -152,6 +153,7 @@
|
|||||||
attacktext = "bites"
|
attacktext = "bites"
|
||||||
attack_sound = 'bite.ogg'
|
attack_sound = 'bite.ogg'
|
||||||
attack_speed = 10
|
attack_speed = 10
|
||||||
|
speed = 8
|
||||||
var/stunchance = 10 // chance to tackle things down
|
var/stunchance = 10 // chance to tackle things down
|
||||||
|
|
||||||
|
|
||||||
@@ -185,8 +187,8 @@
|
|||||||
|
|
||||||
/obj/effect/critter/spesscarp/elite
|
/obj/effect/critter/spesscarp/elite
|
||||||
desc = "Oh shit, you're really fucked now. It has an evil gleam in its eye."
|
desc = "Oh shit, you're really fucked now. It has an evil gleam in its eye."
|
||||||
health = 50
|
health = 200
|
||||||
max_health = 50
|
max_health = 200
|
||||||
melee_damage_lower = 20
|
melee_damage_lower = 20
|
||||||
melee_damage_upper = 35
|
melee_damage_upper = 35
|
||||||
stunchance = 15
|
stunchance = 15
|
||||||
|
|||||||
@@ -453,33 +453,6 @@
|
|||||||
..()
|
..()
|
||||||
reagents.add_reagent("nutriment", 8)
|
reagents.add_reagent("nutriment", 8)
|
||||||
bitesize = 1
|
bitesize = 1
|
||||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
||||||
if(istype(W,/obj/item/weapon/kitchen/utensil/fork))
|
|
||||||
if (W.icon_state == "forkloaded")
|
|
||||||
user << "\red You already have omelette on your fork."
|
|
||||||
return
|
|
||||||
//W.icon = 'kitchen.dmi'
|
|
||||||
W.icon_state = "forkloaded"
|
|
||||||
/*if (herp)
|
|
||||||
world << "[user] takes a piece of omelette with his fork!"*/
|
|
||||||
//Why this unecessary check? Oh I know, because I'm bad >:C
|
|
||||||
// Yes, you are. You griefing my badmin toys. --rastaf0
|
|
||||||
user.visible_message( \
|
|
||||||
"[user] takes a piece of omelette with their fork!", \
|
|
||||||
"\blue You take a piece of omelette with your fork!" \
|
|
||||||
)
|
|
||||||
reagents.remove_reagent("nutriment", 1)
|
|
||||||
if (reagents.total_volume <= 0)
|
|
||||||
del(src)
|
|
||||||
/*
|
|
||||||
* Unsused.
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/omeletteforkload
|
|
||||||
name = "Omelette Du Fromage"
|
|
||||||
desc = "That's all you can say!"
|
|
||||||
New()
|
|
||||||
..()
|
|
||||||
reagents.add_reagent("nutriment", 1)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/muffin
|
/obj/item/weapon/reagent_containers/food/snacks/muffin
|
||||||
name = "Muffin"
|
name = "Muffin"
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ proc/move_mining_shuttle()
|
|||||||
item_state = "dpickaxe"
|
item_state = "dpickaxe"
|
||||||
digspeed = 10
|
digspeed = 10
|
||||||
origin_tech = "materials=6;engineering=4"
|
origin_tech = "materials=6;engineering=4"
|
||||||
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
|
desc = "A pickaxe with a diamond pick head."
|
||||||
|
|
||||||
diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
|
diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
|
||||||
name = "Diamond Mining Drill"
|
name = "Diamond Mining Drill"
|
||||||
|
|||||||
@@ -4,3 +4,4 @@ asanadas: Book Berner: /obj/item/clothing/under/chameleon/psyche
|
|||||||
tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper
|
tastyfish: Cindy Robertson: /obj/item/weapon/wrapping_paper
|
||||||
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
|
eternal248: Maximilian Haynes: /obj/item/weapon/paper/certificate
|
||||||
searif: Yuki Matsuda: /obj/item/weapon/paper/certificate
|
searif: Yuki Matsuda: /obj/item/weapon/paper/certificate
|
||||||
|
erthilo: Farah Lants: /obj/item/clothing/under/rank/medical_sleeve, /obj/item/clothing/suit/storage/labcoat/red
|
||||||
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |