Merge remote-tracking branch 'refs/remotes/ParadiseSS13/master'

This commit is contained in:
KasparoVy
2015-12-28 19:18:34 -05:00
6 changed files with 214 additions and 324 deletions
+21 -16
View File
@@ -252,10 +252,10 @@
return 1
return 0
/********************
SUPPLY ORDER
********************/
********************/
/datum/supply_order
var/ordernum
var/datum/supply_packs/object = null
@@ -263,14 +263,14 @@
var/orderedbyRank
var/comment = null
var/crates
/datum/controller/process/shuttle/proc/generateSupplyOrder(packId, _orderedby, _orderedbyRank, _comment, _crates)
if(!packId)
return
var/datum/supply_packs/P = supply_packs["[packId]"]
if(!P)
return
var/datum/supply_order/O = new()
O.ordernum = ordernum++
O.object = P
@@ -278,15 +278,15 @@
O.orderedbyRank = _orderedbyRank
O.comment = _comment
O.crates = _crates
requestlist += O
return O
return O
/datum/supply_order/proc/generateRequisition(atom/_loc)
if(!object)
return
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(_loc)
reqform.name = "Requisition Form - [crates] '[object.name]' for [orderedby]"
reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
@@ -301,11 +301,11 @@
reqform.info += object.manifest
reqform.info += "<hr>"
reqform.info += "STAMP BELOW TO APPROVE THIS REQUISITION:<br>"
reqform.update_icon() //Fix for appearing blank when printed.
return reqform
/datum/supply_order/proc/createObject(atom/_loc, errors=0)
if(!object)
return
@@ -334,7 +334,7 @@
slip.info +="Reason: [comment]<br>"
slip.info +="Supply Crate Type: [object.name]<br>"
slip.info +="Access Restriction: [object.access ? get_access_desc(object.access) : "None"]<br>"
slip.info +="[packagesAmt] PACKAGES IN THIS SHIPMENT<br>"
slip.info +="[packagesAmt] PACKAGES IN THIS SHIPMENT<br>"
slip.info +="CONTENTS:<br><ul>"
//we now create the actual contents
@@ -385,7 +385,7 @@
LC.update_icon()
return Crate
/***************************
ORDER/REQUESTS CONSOLE
**************************/
@@ -511,7 +511,7 @@
idrank = H.get_assignment()
else if(issilicon(usr))
idname = usr.real_name
reqtime = (world.time + 5) % 1e5
//make our supply_order datums
@@ -613,7 +613,7 @@
data["moving"] = shuttle_master.supply.mode != SHUTTLE_IDLE
data["at_station"] = shuttle_master.supply.getDockedId() == "supply_home"
data["timeleft"] = shuttle_master.supply.timeLeft(600)
data["timeleft"] = shuttle_master.supply.timeLeft(600)
data["can_launch"] = !shuttle_master.supply.canMove()
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data)
@@ -784,6 +784,11 @@
if (istype(A, /obj/structure/stool/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
return 0
if (istype(A, /obj/structure/closet/cardboard))
var/obj/structure/closet/cardboard/C = A
if(C.move_delay)
return 0
if(istype(A, /obj/vehicle)) //no vehicles
return 0
@@ -830,5 +835,5 @@
#undef ORDER_SCREEN_WIDTH
#undef ORDER_SCREEN_HEIGHT
#undef SUPPLY_SCREEN_WIDTH
#undef SUPPLY_SCREEN_HEIGHT
#undef SUPPLY_SCREEN_WIDTH
#undef SUPPLY_SCREEN_HEIGHT
+20 -15
View File
@@ -93,7 +93,7 @@
qdel(G)
/obj/machinery/bodyscanner/MouseDrop_T(mob/living/carbon/O, mob/user as mob)
/obj/machinery/bodyscanner/MouseDrop_T(mob/living/carbon/human/O, mob/user as mob)
if(!istype(O))
return 0 //not a mob
if(user.incapacitated())
@@ -310,11 +310,12 @@
data["occupied"] = connected.occupant ? 1 : 0
var/occupantData[0]
if(connected.occupant && ishuman(connected.occupant))
if(connected.occupant)
var/mob/living/carbon/human/H = connected.occupant
occupantData["name"] = H.name
occupantData["stat"] = H.stat
occupantData["health"] = H.health
occupantData["maxHealth"] = H.maxHealth
occupantData["hasVirus"] = H.virus2.len
@@ -334,23 +335,17 @@
occupantData["hasBorer"] = H.has_brain_worms()
var/bloodData[0]
if(H.vessel)
bloodData["hasBlood"] = 0
if(ishuman(H) && H.vessel && !(H.species && H.species.flags & NO_BLOOD))
var/blood_volume = round(H.vessel.get_reagent_amount("blood"))
bloodData["hasBlood"] = 1
bloodData["volume"] = blood_volume
bloodData["percent"] = round(((blood_volume / 560)*100))
bloodData["pulse"] = H.get_pulse(GETPULSE_TOOL)
bloodData["bloodLevel"] = round(H.vessel.get_reagent_amount("blood"))
bloodData["bloodMax"] = H.max_blood
occupantData["blood"] = bloodData
var/reagentData[0]
if(H.reagents)
reagentData["epinephrine"] = H.reagents.get_reagent_amount("Epinephrine")
reagentData["ether"] = H.reagents.get_reagent_amount("ether")
reagentData["silver_sulfadiazine"] = H.reagents.get_reagent_amount("silver_sulfadiazine")
reagentData["styptic_powder"] = H.reagents.get_reagent_amount("styptic_powder")
reagentData["salbutamol"] = H.reagents.get_reagent_amount("salbutamol")
occupantData["reagents"] = reagentData
var/extOrganData[0]
for(var/obj/item/organ/external/E in H.organs)
var/organData[0]
@@ -359,6 +354,10 @@
organData["germ_level"] = E.germ_level
organData["bruteLoss"] = E.brute_dam
organData["fireLoss"] = E.burn_dam
organData["totalLoss"] = E.brute_dam + E.burn_dam
organData["maxHealth"] = E.max_damage
organData["bruised"] = E.min_bruised_damage
organData["broken"] = E.min_broken_damage
var/implantData[0]
for(var/obj/I in E.implants)
@@ -405,6 +404,9 @@
organData["desc"] = I.desc
organData["germ_level"] = I.germ_level
organData["damage"] = I.damage
organData["maxHealth"] = I.max_damage
organData["bruised"] = I.min_broken_damage
organData["broken"] = I.min_bruised_damage
intOrganData.Add(list(organData))
@@ -427,6 +429,9 @@
if(..())
return 1
if (href_list["ejectify"])
src.connected.eject()
if (href_list["print_p"])
generate_printing_text()
@@ -609,4 +614,4 @@
else
dat = "<font color='red'> Error: No Body Scanner connected.</font>"
printing_text = dat
printing_text = dat
@@ -5,6 +5,7 @@
icon_opened = "cardboard_open"
icon_closed = "cardboard"
health = 10
sound = 'sound/effects/rustle2.ogg'
var/move_delay = 0
var/egged = 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

+11 -1
View File
@@ -371,6 +371,11 @@ div.notice {
background: #4f7529;
}
.displayBarFill.notgood {
color: #ffffff;
background: #ffb400;
}
.displayBarFill.average {
color: #ffffff;
background: #cd6500;
@@ -560,6 +565,11 @@ th.misc {
color: #ffffff;
}
/* Table styling for Med Scanner */
.striped tr:nth-child(even) {
background-color: #404040
}
/* Damage colors for crew monitoring computer */
.burn {
color: orange;
@@ -637,4 +647,4 @@ th.misc {
.hot3 {
color: #FF6600;
}
}
+161 -292
View File
@@ -1,14 +1,15 @@
<!--
<!--
Title: Body Scanner UI
Used In File(s): \code\game\machinery\adv_med.dm
-->
{{if !data.occupied}}
<h3>No occupant detected.</h3>
{{else}}
<h4><b>Occupant Data:</b></h4>
<div class="item">
<div class="itemLabelNarrow">
Name:
Name:
</div>
<div class="itemContent">
{{:data.occupant.name}}
@@ -18,328 +19,196 @@ Used In File(s): \code\game\machinery\adv_med.dm
<div class="itemLabelNarrow">
Health:
</div>
{{:helper.displayBar(data.occupant.health, 0, 100, (data.occupant.health >= 50) ? 'good' : (data.occupant.health >= 25) ? 'average' : 'bad')}}
{{:helper.displayBar(data.occupant.health, -100, 100, (data.occupant.health >= 50) ? 'good' : (data.occupant.health >= 0) ? 'average' : 'bad')}}
<div class="itemContent" style="width: 60px">
{{:helper.round(data.occupant.health*10)/10}}%
</div>
</div>
<div class="item">
<div class="itemLabelNarrow">
Status:
</div>
<div class="itemContent">
{{if data.occupant.stat==0}}
Alive
<span class="good"> Alive </span>
{{else data.occupant.stat==1}}
Critical
<span class="average"> Critical </span>
{{else}}
Dead
<span class="bad"> Dead </span>
{{/if}}
</div>
</div>
{{:helper.link('Print', 'document', {'print_p' : 1, 'name' : data.occupant.name})}}
<div class="item">
<h4><b>Damage:</b></h4>
<div class="itemLabelWide">
Brute:
<div class="itemLabelNarrow">
Temperature:
</div>
<div class="itemContentMedium">
{{:data.occupant.bruteLoss}}
</div><br>
<div class="itemLabelWide">
Burn:
</div>
<div class="itemContentMedium">
{{:data.occupant.fireLoss}}
</div><br>
<div class="itemLabelWide">
Oxygen:
</div>
<div class="itemContentMedium">
{{:data.occupant.oxyLoss}}
</div><br>
<div class="itemLabelWide">
Toxins:
</div>
<div class="itemContentMedium">
{{:data.occupant.toxLoss}}
</div><br>
<div class="itemLabelWide">
Brain:
</div>
<div class="itemContentMedium">
{{:data.occupant.brainLoss}}
</div><br>
<div class="itemLabelWide">
Radiation Level:
</div>
<div class="itemContentMedium">
{{:data.occupant.radLoss}}
</div><br>
<div class="itemLabelWide">
Genetic:
</div>
<div class="itemContentMedium">
{{:data.occupant.cloneLoss}}
</div><br>
<div class="itemLabelWide">
Paralysis:
</div>
<div class="itemContentMedium">
{{:data.occupant.paralysis}}% ({{:data.occupant.paralysisSeconds}} seconds left!)
</div><br>
</div>
<div class="item">
<div class="itemLabelWide">
Body Temperature:
</div>
<div class="itemContentMedium">
<div class="itemContent">
{{:data.occupant.bodyTempC}}&deg;C, {{:data.occupant.bodyTempF}}&deg;F
</div>
</div>
{{if data.occupant.hasVirus}}
<div class="notice">
Viral pathogen detected in blood stream.
</div>
{{/if}}
{{if data.occupant.hasBorer}}
<div class="notice">
Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
</div>
<span class="bad">
Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended. </span> <br>
{{/if}}
{{if data.occupant.blind}}
<span class="bad">Pupils unresponsive.</span><br>
<span class="average">Pupils unresponsive.</span><br>
{{/if}}
{{if data.occupant.nearsighted}}
<span class="bad">Retinal Misalignment Detected</span>
<span class="average">Retinal misalignment detected</span> <br>
{{/if}}
<br>
{{:helper.link('Print', 'document', {'print_p' : 1, 'name' : data.occupant.name})}}
{{:helper.link('Eject Occupant', 'arrowreturnthick-1-s', {'ejectify' : 1}, data.occupied ? null : 'disabled')}}
<br> <br>
<div style="width: 70%">
<div style="width: 50%; text-align:center;"><b>Blood</b></div>
<div class="item">
<div class="itemLabelWide">
Volume
</div>
<div class="itemContentMedium">
{{:data.occupant.blood.volume}}
</div>
</div>
<div class="item">
<div class="itemLabelWide">
Percent
</div>
<div class="itemContentMedium">
{{:data.occupant.blood.percent}}%
</div>
</div>
</div>
<b>Damage: </b>
<table> <tbody>
<tr>
<td> Brute Damage: </td>
<td> Brain Damage: </td>
</tr>
<tr>
<td> {{:helper.displayBar(data.occupant.bruteLoss, 0, data.occupant.maxHealth+100, (data.occupant.bruteLoss < 15) ? 'notgood' : (data.occupant.bruteLoss < 40) ? 'average' : 'bad', data.occupant.bruteLoss) }} </td>
<td> {{:helper.displayBar(data.occupant.brainLoss, 0, data.occupant.maxHealth+100, (data.occupant.brainLoss < 15) ? 'notgood' : (data.occupant.brainLoss < 40) ? 'average' : 'bad', data.occupant.brainLoss)}} </td>
</tr>
<tr>
<td> Resp. Damage: </td>
<td> Radiation Level: </td>
</tr>
<tr>
<td> {{:helper.displayBar(data.occupant.oxyLoss, 0, data.occupant.maxHealth+100, (data.occupant.oxyLoss < 15) ? 'notgood' : (data.occupant.oxyLoss < 40) ? 'average' : 'bad', data.occupant.oxyLoss)}} </td>
<td> {{:helper.displayBar(data.occupant.radLoss, 0, data.occupant.maxHealth+100, (data.occupant.radLoss < 15) ? 'notgood' : (data.occupant.radLoss < 40) ? 'average' : 'bad', data.occupant.radLoss)}} </td>
</tr>
<tr>
<td> Toxin Damage: </td>
<td> Genetic Damage: </td>
</tr>
<tr>
<td> {{:helper.displayBar(data.occupant.toxLoss, 0, data.occupant.maxHealth+100, (data.occupant.toxLoss < 15) ? 'notgood' : (data.occupant.toxLoss < 40) ? 'average' : 'bad', data.occupant.toxLoss)}} </td>
<td> {{:helper.displayBar(data.occupant.cloneLoss, 0, data.occupant.maxHealth+100, (data.occupant.cloneLoss < 15) ? 'notgood' : (data.occupant.cloneLoss < 40) ? 'average' : 'bad', data.occupant.cloneLoss)}} </td>
</tr>
<tr>
<td> Burn Severity: </td>
<td> Paralysis %: ({{:data.occupant.paralysisSeconds}} seconds left) </td>
</tr>
<tr>
<td> {{:helper.displayBar(data.occupant.fireLoss, 0, data.occupant.maxHealth+100, (data.occupant.fireLoss < 15) ? 'notgood' : (data.occupant.fireLoss < 40) ? 'average' : 'bad', data.occupant.fireLoss)}} </td>
<td> {{:helper.displayBar(data.occupant.paralysis, 0, 100, (data.occupant.paralysis < 25) ? 'notgood' : (data.occupant.paralysis < 50) ? 'average' : 'bad', data.occupant.paralysis)}} </td>
</tr>
</tbody>
</table>
{{if data.occupant.blood.hasBlood}}
<br>
<b>Blood:</b>
<div class="line">
<div class="statusLabel">Pulse:</div> <div class="statusValue">{{:data.occupant.blood.pulse}} bpm</div>
</div>
<div class="line">
<div class="statusLabel">Blood Level:</div>
{{:helper.displayBar(data.occupant.blood.bloodLevel, 0, data.occupant.blood.bloodMax, (data.occupant.blood.percent <= 60) ? 'bad' : (data.occupant.blood.percent <= 90) ? 'average' : 'good' )}}
<div class="statusValue"> {{:data.occupant.blood.percent}}%, {{:data.occupant.blood.bloodLevel}}cl </div>
</div>
{{/if}}
<br>
<div style="width: 70%;">
<div style="width: 50%; text-align:center;"><b>Reagents</b></div>
<div class="item">
<div class="itemLabelWide">
Epinephrine
</div>
<div class="itemContentMedium">
{{:data.occupant.reagents.epinephrine}}
</div>
</div>
<div class="item">
<div class="itemLabelWide">
Ether
</div>
<div class="itemContentMedium">
{{:data.occupant.reagents.ether}}
</div>
</div>
<div class="item">
<div class="itemLabelWide">
<span class="{{:data.occupant.reagents.silver_sulfadiazine < 30 ? "average" : "bad"}}">
Silver Sulfadiazine
</span>
</div>
<div class="itemContentMedium">
<span class="{{:data.occupant.reagents.silver_sulfadiazine < 30 ? "average" : "bad"}}">
{{:data.occupant.reagents.silver_sulfadiazine}}
</span>
</div>
</div>
<div class="item">
<div class="itemLabelWide">
<span class="{{:data.occupant.reagents.styptic_powder < 30 ? "average" : "bad"}}">
Styptic Powder
</span>
</div>
<div class="itemContentMedium">
<span class="{{:data.occupant.reagents.styptic_powder < 30 ? "average" : "bad"}}">
{{:data.occupant.reagents.styptic_powder}}
</span>
</div>
</div>
<div class="item">
<div class="itemLabelWide">
<span class="{{:data.occupant.reagents.salbutamol < 30 ? "average" : "bad"}}">
Salbutamol
</span>
</div>
<div class="itemContentMedium">
<span class="{{:data.occupant.reagents.salbutamol < 30 ? "average" : "bad"}}">
{{:data.occupant.reagents.salbutamol}}
</span>
</div>
</div>
</div>
<br>
{{if data.occupant.hasVirus}}
<span class="bad">
Viral pathogen detected in blood stream.
</span> <br>
{{/if}}
<b>External Organs</b>
<div class="itemGroup">
{{for data.occupant.extOrgan}}
{{if value.status.destroyed}}
<div class="item">
<div class="itemLabelWide">
<b>{{:value.name}}</b><span class="bad"> - DESTROYED</span>
</div>
</div>
{{else}}
<div class="item">
<div class="itemLabelWide">
<b>{{:value.name}}</b>
</div>
<div class="itemContentNarrow">
{{if value.status.broken}}
{{:value.status.broken}}
{{else value.status.splinted}}
Splinted
{{else value.status.robotic}}
Robotic
{{/if}}
</div>
</div>
<div class="item">
<div class="itemLabelWide">
&nbsp;Brute/Burn
</div>
<div class="itemContentNarrow">
{{:value.bruteLoss}}/{{:value.fireLoss}}
</div>
</div>
<div class="item">
<div class="itemLabelWide">
&nbsp;Injuries
</div>
<div class="itemContentNarrow">
{{if !value.status.bleeding}}
{{if !value.status.internalBleeding}}
No Injuries Detected
{{else}}
<span class="bad">Internal Bleeding Detected</span>
<table> <thead>
<tr>
<th style="width: 25%"> Name </th>
<th style='width: 15%'> Total damage </th>
<th style="width: 15%"> Brute damage </th>
<th style="width: 15%"> Burn damage </th>
<th style="width: 30%"> Injuries </th>
</tr>
</thead>
<tbody class="striped">
{{for data.occupant.extOrgan}}
<tr>
<td> {{:value.name}} </td>
<td> {{:helper.displayBar(value.totalLoss, 0, value.maxHealth, (value.totalLoss < value.bruised) ? 'notgood' : (value.totalLoss < value.broken) ? 'average' : 'bad', value.totalLoss) }} </td>
<td> {{if value.bruteLoss> 0}} <span class='average'> {{else}} <span> {{/if}} {{:value.bruteLoss}} </span> </td>
<td> {{if value.fireLoss> 0}} <span class='average'> {{else}} <span> {{/if}} {{:value.fireLoss}} </span> </td>
<td>
<span class='average'>
{{if value.status.destroyed}} DESTROYED <br> {{/if}}
{{if value.status.bleeding}} external bleeding <br> {{/if}}
{{if value.internalBleeding}} internal bleeding <br> {{/if}}
{{if value.lungRuptured}} lung ruptured <br> {{/if}}
{{if value.status.broken}} {{:value.status.broken}} <br> {{/if}}
{{if value.germ_level > 100}}
{{if value.germ_level < 300}}
mild infection <br>
{{else value.germ_level < 400}}
mild infection+ <br>
{{else value.germ_level < 500}}
mild infection++ <br>
{{else value.germ_level < 700}}
acute infection <br>
{{else value.germ_level < 800}}
acute infection+ <br>
{{else value.germ_level < 900}}
acute infection++ <br>
{{else value.germ_level >= 900}}
septic <br>
{{/if}}
{{/if}}
{{else}}
{{if value.status.internalBleeding}}
<div class='notice'>Internal Bleeding Detected. External Bleeding Detected.</div>
{{else}}
<span class="average">External Bleeding Detected</span>
{{if value.open}} open incision <br> {{/if}}
</span>
{{if value.status.splinted}} splinted <br> {{/if}}
{{if value.status.robotic}} robotic <br> {{/if}}
{{if value.implants_len}}
{{for value.implants : impValue:impindex}}
{{:impValue.known ? impValue.name : "unknown object"}} <br>
{{/for}}
{{/if}}
{{/if}}
</div>
</div>
{{if value.germ_level > 100}}
<div class="item">
<div class="itemLabelWide">
&nbsp;Infection
</div>
<div class="itemContentNarrow">
{{if value.germ_level < 300}}
Mild Infection
{{else value.germ_level < 400}}
Mild Infection+
{{else value.germ_level < 500}}
Mild Infection++
{{else value.germ_level < 700}}
Acute Infection
{{else value.germ_level < 800}}
Acute Infection+
{{else value.germ_level < 900}}
Acute Infection++
{{else value.germ_level >= 900}}
Septic
{{/if}}
</div>
</div>
{{/if}}
{{if value.open}}
<div class="item">
<div class="itemLabelWider">
&nbsp;Operation Status
</div>
<div class="itemContentNarrow">
Open Incision
</div>
</div>
{{/if}}
{{if value.implants_len}}
<div class="item">
<div class="itemLabelWide">
&nbsp;Implants
</div><br>
{{for value.implants :impValue:impindex}}
<div class="itemContentNarrow">
&nbsp;&nbsp;{{:impValue.known ? impValue.name : "Unknown"}}
</div><br>
{{/for}}
</div>
{{/if}}
{{/if}}
</td>
</tr>
{{/for}}
</tbody>
</table>
<br>
{{/for}}
</div>
<b>Internal Organs</b>
<div class="itemGroup">
{{for data.occupant.intOrgan}}
<div class="item">
<div class="itemLabelWide">
<b>{{:value.name}}</b>
</div>
<div class="itemContentNarrow">
{{:value.desc != null ? value.desc : ""}}
</div>
</div>
{{if value.germ_level > 100}}
<div class="item">
<div class="itemLabelWide">
&nbsp;Infection
</div>
<div class="itemContentNarrow">
{{if value.germ_level < 300}}
Mild Infection
{{else value.germ_level < 400}}
Mild Infection+
{{else value.germ_level < 500}}
Mild Infection++
{{else value.germ_level < 700}}
Acute Infection
{{else value.germ_level < 800}}
Acute Infection+
{{else value.germ_level < 900}}
Acute Infection++
{{else value.germ_level >= 900}}
Septic
{{/if}}
</div>
</div>
{{/if}}
<div class="item">
<div class="itemLabelWide">
&nbsp;Damage
</div>
<div class="itemContentNarrow">
{{:value.damage}}
</div>
</div>
{{/for}}
</div>
{{/if}}
<table> <thead>
<tr>
<th width=25%> Name </th>
<th width=35%> Brute damage </th>
<th widht=40%> Injuries </th>
</tr>
</thead>
<tbody class="striped">
{{for data.occupant.intOrgan}}
<tr>
<td> {{:value.name}} <br> </td>
<td> {{:helper.displayBar(value.damage, 0, value.maxHealth, (value.damage < value.bruised) ? 'notgood' : (value.damage < value.broken) ? 'average' : 'bad', value.damage) }} </td>
<td class="average">
{{if value.germ_level > 100}}
{{if value.germ_level < 300}}
mild infection <br>
{{else value.germ_level < 400}}
mild infection+ <br>
{{else value.germ_level < 500}}
mild infection++ <br>
{{else value.germ_level < 700}}
acute Infection <br>
{{else value.germ_level < 800}}
acute Infection+ <br>
{{else value.germ_level < 900}}
acute Infection++ <br>
{{else value.germ_level >= 900}}
septic <br>
{{/if}}
{{/if}}
</td>
</tr>
{{/for}}
</tbody>
</table>
{{/if}}