mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 20:23:26 +00:00
Merge github.com:Baystation12/Baystation12
Conflicts: html/changelog.html
This commit is contained in:
@@ -238,9 +238,8 @@ obj/machinery/computer/forensic_scanning
|
||||
var/list/blood = outputs[3]
|
||||
if(blood && blood.len)
|
||||
temp += " <b>Blood:</b><br>"
|
||||
for(var/j = 1, j <= blood.len, j++)
|
||||
var/list/templist2 = blood[j]
|
||||
temp += " Type: [templist2[2]], DNA: [templist2[1]]<br>"
|
||||
for(var/named in blood)
|
||||
temp += " Type: [blood[named]], DNA: [named]<br>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=database;delete_record=[href_list["identifier"]]'>{Delete this Dossier}</a>"
|
||||
temp += "<br><a href='?src=\ref[src];operation=databaseprint;identifier=[href_list["identifier"]]'>{Print}</a>"
|
||||
else
|
||||
@@ -743,11 +742,30 @@ proc/blood_incompatible(donor,receiver)
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/rag
|
||||
New() // So I don't have to grab maplock
|
||||
spawn(1)
|
||||
new/obj/item/weapon/reagent_containers/glass/rag(loc)
|
||||
del src
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/rag
|
||||
name = "damp rag"
|
||||
desc = "For cleaning up messes, I suppose."
|
||||
desc = "For cleaning up messes, you suppose."
|
||||
w_class = 1
|
||||
icon = 'toy.dmi'
|
||||
icon_state = "rag"
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(5)
|
||||
volume = 5
|
||||
can_be_placed_into = null
|
||||
|
||||
attack(atom/target as obj|turf|area, mob/user as mob , flag)
|
||||
if(ismob(target) && target.reagents && reagents.total_volume)
|
||||
user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise")
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
spawn(5) src.reagents.clear_reagents()
|
||||
return
|
||||
else
|
||||
..()
|
||||
|
||||
afterattack(atom/A as obj|turf|area, mob/user as mob)
|
||||
if(istype(A))
|
||||
@@ -755,4 +773,11 @@ proc/blood_incompatible(donor,receiver)
|
||||
if(do_after(user,30))
|
||||
user.visible_message("[user] finishes wiping off the [A]!")
|
||||
A.clean_blood()
|
||||
return
|
||||
return
|
||||
|
||||
examine()
|
||||
if (!( usr ))
|
||||
return
|
||||
usr << "That's \a [src]."
|
||||
usr << desc
|
||||
return
|
||||
|
||||
@@ -733,7 +733,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
for(var/obj/item/briefcase_item in sec_briefcase)
|
||||
del(briefcase_item)
|
||||
for(var/i=3, i>0, i--)
|
||||
sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000
|
||||
sec_briefcase.contents += new /obj/item/weapon/money/c1000
|
||||
sec_briefcase.contents += new /obj/item/weapon/gun/energy/crossbow
|
||||
sec_briefcase.contents += new /obj/item/weapon/gun/projectile/mateba
|
||||
sec_briefcase.contents += new /obj/item/ammo_magazine/a357
|
||||
|
||||
@@ -104,7 +104,7 @@ datum
|
||||
on_mob_life(var/mob/living/M)
|
||||
if(!data || !data["blood_type"])
|
||||
..()
|
||||
else if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type))
|
||||
else if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type) && !M.changeling)
|
||||
M.adjustToxLoss(rand(0.5,1.5))
|
||||
M.adjustOxyLoss(rand(1,1.5))
|
||||
..()
|
||||
@@ -1862,7 +1862,7 @@ datum
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(50)) M:heal_organ_damage(1,0)
|
||||
if(prob(1)) M:heal_organ_damage(0.5,0) //This should stop being able to heal out of crit from eating a donut
|
||||
M:nutrition += nutriment_factor // For hunger and fatness
|
||||
/*
|
||||
// If overeaten - vomit and fall down
|
||||
|
||||
@@ -185,9 +185,10 @@
|
||||
if(W:amount >= 1)
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
W:use(1)
|
||||
user << "\blue You put in the glass lens."
|
||||
src.state = 5
|
||||
if(W)
|
||||
W:use(1)
|
||||
user << "\blue You put in the glass lens."
|
||||
src.state = 5
|
||||
if(5)
|
||||
if(istype(W, /obj/item/weapon/crowbar))
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
|
||||
@@ -46,6 +46,12 @@
|
||||
item_state = "glasses"
|
||||
prescription = 1
|
||||
|
||||
/obj/item/clothing/glasses/regular/hipster
|
||||
name = "Prescription Glasses"
|
||||
desc = "Made by Uncool. Co."
|
||||
icon_state = "hipster_glasses"
|
||||
item_state = "hipster_glasses"
|
||||
|
||||
/obj/item/clothing/glasses/gglasses
|
||||
name = "Green Glasses"
|
||||
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
|
||||
@@ -69,16 +75,6 @@
|
||||
item_state = "bigsunglasses"
|
||||
protective_temperature = 1400
|
||||
|
||||
//ultimate glasses
|
||||
/obj/item/clothing/glasses/hud/security/jensenshades
|
||||
name = "Augmented shades"
|
||||
desc = "Polarized bioneural eyewear, designed to augment your vision."
|
||||
icon_state = "jensenshades"
|
||||
item_state = "jensenshades"
|
||||
protective_temperature = 1500
|
||||
vision_flags = SEE_MOBS
|
||||
invisa_view = 2
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/sechud
|
||||
name = "HUDSunglasses"
|
||||
desc = "Sunglasses with a HUD."
|
||||
|
||||
@@ -82,42 +82,50 @@
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records."
|
||||
icon_state = "securityhud"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/jensenshades
|
||||
name = "Augmented shades"
|
||||
desc = "Polarized bioneural eyewear, designed to augment your vision."
|
||||
icon_state = "jensenshades"
|
||||
item_state = "jensenshades"
|
||||
protective_temperature = 1500
|
||||
vision_flags = SEE_MOBS
|
||||
invisa_view = 2
|
||||
|
||||
process_hud(var/mob/M)
|
||||
if(!M) return
|
||||
if(!M.client) return
|
||||
var/client/C = M.client
|
||||
var/icon/tempHud = 'hud.dmi'
|
||||
for(var/mob/living/carbon/human/perp in view(M))
|
||||
if(!C) continue
|
||||
var/perpname = "wot"
|
||||
if(perp.wear_id)
|
||||
C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]")
|
||||
if(istype(perp.wear_id,/obj/item/weapon/card/id))
|
||||
perpname = perp.wear_id:registered_name
|
||||
else if(istype(perp.wear_id,/obj/item/device/pda))
|
||||
var/obj/item/device/pda/tempPda = perp.wear_id
|
||||
perpname = tempPda.owner
|
||||
else
|
||||
perpname = perp.name
|
||||
C.images += image(tempHud,perp,"hudunknown")
|
||||
/obj/item/clothing/glasses/hud/security/process_hud(var/mob/M)
|
||||
if(!M) return
|
||||
if(!M.client) return
|
||||
var/client/C = M.client
|
||||
var/icon/tempHud = 'hud.dmi'
|
||||
for(var/mob/living/carbon/human/perp in view(M))
|
||||
if(!C) continue
|
||||
var/perpname = "wot"
|
||||
if(perp.wear_id)
|
||||
C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]")
|
||||
if(istype(perp.wear_id,/obj/item/weapon/card/id))
|
||||
perpname = perp.wear_id:registered_name
|
||||
else if(istype(perp.wear_id,/obj/item/device/pda))
|
||||
var/obj/item/device/pda/tempPda = perp.wear_id
|
||||
perpname = tempPda.owner
|
||||
else
|
||||
perpname = perp.name
|
||||
C.images += image(tempHud,perp,"hudunknown")
|
||||
|
||||
for (var/datum/data/record/E in data_core.general)
|
||||
if (E.fields["name"] == perpname)
|
||||
for (var/datum/data/record/R in data_core.security)
|
||||
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
|
||||
C.images += image(tempHud,perp,"hudwanted")
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
|
||||
C.images += image(tempHud,perp,"hudprisoner")
|
||||
break
|
||||
for(var/named in perp.organs)
|
||||
var/datum/organ/external/E = perp.organs[named]
|
||||
for(var/obj/item/weapon/implant/I in E.implant)
|
||||
if(I.implanted)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
C.images += image(tempHud,perp,"hud_imp_tracking")
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
C.images += image(tempHud,perp,"hud_imp_loyal")
|
||||
for (var/datum/data/record/E in data_core.general)
|
||||
if (E.fields["name"] == perpname)
|
||||
for (var/datum/data/record/R in data_core.security)
|
||||
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
|
||||
C.images += image(tempHud,perp,"hudwanted")
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
|
||||
C.images += image(tempHud,perp,"hudprisoner")
|
||||
break
|
||||
for(var/named in perp.organs)
|
||||
var/datum/organ/external/E = perp.organs[named]
|
||||
for(var/obj/item/weapon/implant/I in E.implant)
|
||||
if(I.implanted)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
C.images += image(tempHud,perp,"hud_imp_tracking")
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
C.images += image(tempHud,perp,"hud_imp_loyal")
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/armor/hos/jensen
|
||||
name = "armored trenchoat"
|
||||
name = "armored trenchcoat"
|
||||
desc = "A trenchoat augmented with a special alloy for some protection and style"
|
||||
icon_state = "jensencoat"
|
||||
item_state = "jensencoat"
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
item_state = "judge"
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash)
|
||||
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/money)
|
||||
|
||||
@@ -629,6 +629,7 @@
|
||||
name = "exceptional plump pie"
|
||||
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
|
||||
reagents.add_reagent("nutriment", 15)
|
||||
reagents.add_reagent("tricordrazine", 5)
|
||||
bitesize = 2
|
||||
else
|
||||
reagents.add_reagent("nutriment", 10)
|
||||
@@ -855,7 +856,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("toxin", 1)
|
||||
reagents.add_reagent("carbon", 1)
|
||||
reagents.add_reagent("carbon", 3)
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatsteak
|
||||
@@ -906,17 +907,17 @@
|
||||
reagents.add_reagent("amatoxin", 6)
|
||||
reagents.add_reagent("psilocybin", 3)
|
||||
bitesize = 3
|
||||
/*
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/poppypretzel
|
||||
name = "Poppy pretzel"
|
||||
desc = "" //TODO
|
||||
desc = "It's all twisted up!"
|
||||
icon_state = "poppypretzel"
|
||||
bitesize = 2
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 5)
|
||||
bitesize = 2
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meatballsoup
|
||||
name = "Meatball soup"
|
||||
@@ -947,7 +948,7 @@
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 2)
|
||||
reagents.add_reagent("blood", 15)
|
||||
reagents.add_reagent("water", 10)
|
||||
reagents.add_reagent("water", 5)
|
||||
bitesize = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/clownstears
|
||||
@@ -956,7 +957,7 @@
|
||||
icon_state = "clownstears"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
reagents.add_reagent("nutriment", 4)
|
||||
reagents.add_reagent("banana", 5)
|
||||
reagents.add_reagent("water", 10)
|
||||
bitesize = 5
|
||||
@@ -969,7 +970,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 10)
|
||||
reagents.add_reagent("water", 10)
|
||||
reagents.add_reagent("water", 5)
|
||||
bitesize = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup
|
||||
@@ -980,8 +981,8 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 10)
|
||||
reagents.add_reagent("water", 7)
|
||||
reagents.add_reagent("tricordrazine", 3)
|
||||
reagents.add_reagent("water", 5)
|
||||
reagents.add_reagent("tricordrazine", 5)
|
||||
bitesize = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/mysterysoup
|
||||
@@ -1038,7 +1039,7 @@
|
||||
..()
|
||||
reagents.add_reagent("water", 10)
|
||||
bitesize = 5
|
||||
if(prob(5))
|
||||
if(prob(25))
|
||||
src.desc = "A wish come true!"
|
||||
reagents.add_reagent("nutriment", 10)
|
||||
|
||||
@@ -1205,6 +1206,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 12)
|
||||
reagents.add_reagent("carbon", 2)
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese
|
||||
@@ -1248,7 +1250,7 @@
|
||||
reagents.add_reagent("nutriment", 20)
|
||||
reagents.add_reagent("tomatojuice", 5)
|
||||
reagents.add_reagent("imidazoline", 5)
|
||||
reagents.add_reagent("water", 10)
|
||||
reagents.add_reagent("water", 5)
|
||||
bitesize = 10
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/metroidtoast
|
||||
@@ -1280,7 +1282,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 12)
|
||||
reagents.add_reagent("water", 20)
|
||||
reagents.add_reagent("water", 5)
|
||||
bitesize = 4
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
|
||||
@@ -1438,6 +1440,7 @@
|
||||
name = "exceptional plump helmet biscuit"
|
||||
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
|
||||
reagents.add_reagent("nutriment", 15)
|
||||
reagents.add_reagent("tricordrazine", 5)
|
||||
bitesize = 2
|
||||
else
|
||||
reagents.add_reagent("nutriment", 5)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
icon_state = "miningsec1"
|
||||
icon_closed = "miningsec"
|
||||
icon_locked = "miningsec1"
|
||||
icon_opened = "miningsecopen"
|
||||
icon_broken = "miningsecbroken"
|
||||
icon_off = "miningsecoff"
|
||||
req_access = list(access_mining)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
src.mov_int = list( )
|
||||
src.vimpaired = list( )
|
||||
src.darkMask = list( )
|
||||
src.intent_small_hud_objects = list( )
|
||||
|
||||
src.g_dither = new src.h_type( src )
|
||||
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
@@ -49,6 +50,41 @@
|
||||
src.adding += using
|
||||
action_intent = using
|
||||
|
||||
//intent small hud objects
|
||||
using = new src.h_type( src )
|
||||
using.name = "help"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "help_small"
|
||||
using.screen_loc = ui_help_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "disarm"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "disarm_small"
|
||||
using.screen_loc = ui_disarm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "grab"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "grab_small"
|
||||
using.screen_loc = ui_grab_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "harm"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "harm_small"
|
||||
using.screen_loc = ui_harm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
//end intent small hud objects
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "mov_intent"
|
||||
using.dir = SOUTHWEST
|
||||
@@ -59,6 +95,7 @@
|
||||
src.adding += using
|
||||
move_intent = using
|
||||
|
||||
/*
|
||||
using = new src.h_type(src) //Right hud bar
|
||||
using.dir = SOUTH
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -79,7 +116,9 @@
|
||||
using.screen_loc = "EAST+1,SOUTH-1"
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "arrowleft"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -97,6 +136,7 @@
|
||||
using.screen_loc = ui_iarrowright
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "drop"
|
||||
@@ -115,7 +155,7 @@
|
||||
using.dir = SOUTH
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_iclothing
|
||||
using.screen_loc = ui_alien_oclothing
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
@@ -125,7 +165,7 @@
|
||||
using.dir = WEST
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_id
|
||||
using.screen_loc = ui_rhand
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
@@ -135,7 +175,7 @@
|
||||
using.dir = EAST
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_belt
|
||||
using.screen_loc = ui_lhand
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
@@ -162,11 +202,12 @@
|
||||
using.name = "head"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
using.icon_state = "hair"
|
||||
using.screen_loc = ui_oclothing
|
||||
using.screen_loc = ui_alien_head
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
//end of equippable shit
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "resist"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -174,8 +215,7 @@
|
||||
using.screen_loc = ui_resist
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
|
||||
*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = null
|
||||
@@ -241,7 +281,7 @@
|
||||
mymob.healths.icon = 'screen1_alien.dmi'
|
||||
mymob.healths.icon_state = "health0"
|
||||
mymob.healths.name = "health"
|
||||
mymob.healths.screen_loc = ui_health
|
||||
mymob.healths.screen_loc = ui_alien_health
|
||||
|
||||
mymob.pullin = new /obj/screen( null )
|
||||
mymob.pullin.icon = 'screen1_alien.dmi'
|
||||
@@ -265,6 +305,7 @@
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
/*
|
||||
mymob.hands = new /obj/screen( null )
|
||||
mymob.hands.icon = 'screen1_alien.dmi'
|
||||
mymob.hands.icon_state = "hand"
|
||||
@@ -285,6 +326,7 @@
|
||||
mymob.rest.screen_loc = ui_rest
|
||||
|
||||
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
|
||||
*/
|
||||
|
||||
|
||||
mymob.zone_sel = new /obj/screen/zone_sel( null )
|
||||
@@ -293,6 +335,6 @@
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach )
|
||||
mymob.client.screen += src.adding + src.other
|
||||
|
||||
|
||||
@@ -398,7 +398,7 @@
|
||||
overlays += image("icon" = 'blood.dmi', "icon_state" = "armorblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
|
||||
else
|
||||
overlays += image("icon" = 'blood.dmi', "icon_state" = "suitblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
|
||||
wear_suit.screen_loc = ui_iclothing
|
||||
wear_suit.screen_loc = ui_alien_oclothing
|
||||
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
|
||||
if (handcuffed)
|
||||
handcuffed.loc = loc
|
||||
@@ -420,7 +420,7 @@
|
||||
overlays += image("icon" = 'mob.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
if (head.blood_DNA)
|
||||
overlays += image("icon" = 'blood.dmi', "icon_state" = "helmetblood[!lying ? "" : "2"]", "layer" = MOB_LAYER)
|
||||
head.screen_loc = ui_oclothing
|
||||
head.screen_loc = ui_alien_head
|
||||
|
||||
if (l_store)
|
||||
l_store.screen_loc = ui_storage1
|
||||
@@ -435,12 +435,12 @@
|
||||
if (r_hand)
|
||||
overlays += image("icon" = 'items_righthand.dmi', "icon_state" = r_hand.item_state ? r_hand.item_state : r_hand.icon_state, "layer" = MOB_LAYER+1)
|
||||
|
||||
r_hand.screen_loc = ui_id
|
||||
r_hand.screen_loc = ui_rhand
|
||||
|
||||
if (l_hand)
|
||||
overlays += image("icon" = 'items_lefthand.dmi', "icon_state" = l_hand.item_state ? l_hand.item_state : l_hand.icon_state, "layer" = MOB_LAYER+1)
|
||||
|
||||
l_hand.screen_loc = ui_belt
|
||||
l_hand.screen_loc = ui_lhand
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
src.adding += using
|
||||
move_intent = using
|
||||
|
||||
/*
|
||||
using = new src.h_type(src) //Right hud bar
|
||||
using.dir = SOUTH
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -81,7 +82,9 @@
|
||||
using.screen_loc = "EAST+1,SOUTH-1"
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "arrowleft"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -100,7 +103,6 @@
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "resist"
|
||||
using.icon = 'screen1_alien.dmi'
|
||||
@@ -108,7 +110,7 @@
|
||||
using.screen_loc = ui_resist
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
*/
|
||||
|
||||
|
||||
using = new src.h_type( src )
|
||||
@@ -171,7 +173,7 @@
|
||||
mymob.healths.icon = 'screen1_alien.dmi'
|
||||
mymob.healths.icon_state = "health0"
|
||||
mymob.healths.name = "health"
|
||||
mymob.healths.screen_loc = ui_health
|
||||
mymob.healths.screen_loc = ui_alien_health
|
||||
|
||||
mymob.pullin = new /obj/screen( null )
|
||||
mymob.pullin.icon = 'screen1_alien.dmi'
|
||||
@@ -194,7 +196,7 @@
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
|
||||
/*
|
||||
mymob.sleep = new /obj/screen( null )
|
||||
mymob.sleep.icon = 'screen1_alien.dmi'
|
||||
mymob.sleep.icon_state = "sleep0"
|
||||
@@ -206,7 +208,7 @@
|
||||
mymob.rest.icon_state = "rest0"
|
||||
mymob.rest.name = "rest"
|
||||
mymob.rest.screen_loc = ui_rest
|
||||
|
||||
*/
|
||||
|
||||
mymob.zone_sel = new /obj/screen/zone_sel( null )
|
||||
mymob.zone_sel.overlays = null
|
||||
@@ -214,7 +216,7 @@
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep) //, mymob.mach )
|
||||
mymob.client.screen += list( mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash) //, mymob.rest, mymob.sleep, mymob.mach )
|
||||
mymob.client.screen += src.adding + src.other
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/obj/hud/proc/brain_hud(var/ui_style='screen1_old.dmi')
|
||||
|
||||
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
|
||||
|
||||
blurry = new h_type( src )
|
||||
blurry.screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
blurry.name = "Blurry"
|
||||
|
||||
@@ -173,12 +173,32 @@
|
||||
usr << "<span class='warning'>Your other hand is too busy holding the [item_in_hand.name]</span>"
|
||||
return
|
||||
src.hand = !( src.hand )
|
||||
if (!( src.hand ))
|
||||
if(hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
|
||||
if(hand) //This being 1 means the left hand is in use
|
||||
hud_used.l_hand_hud_object.icon_state = "hand_active"
|
||||
hud_used.r_hand_hud_object.icon_state = "hand_inactive"
|
||||
else
|
||||
hud_used.l_hand_hud_object.icon_state = "hand_inactive"
|
||||
hud_used.r_hand_hud_object.icon_state = "hand_active"
|
||||
/*if (!( src.hand ))
|
||||
src.hands.dir = NORTH
|
||||
else
|
||||
src.hands.dir = SOUTH
|
||||
src.hands.dir = SOUTH*/
|
||||
return
|
||||
|
||||
/mob/living/carbon/proc/activate_hand(var/selhand) //0 or "r" or "right" for right hand; 1 or "l" or "left" for left hand.
|
||||
|
||||
if(istext(selhand))
|
||||
selhand = lowertext(selhand)
|
||||
|
||||
if(selhand == "right" || selhand == "r")
|
||||
selhand = 0
|
||||
if(selhand == "left" || selhand == "l")
|
||||
selhand = 1
|
||||
|
||||
if(selhand != src.hand)
|
||||
swap_hand()
|
||||
|
||||
/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
|
||||
if (src.health > 0)
|
||||
if(src == M && istype(src, /mob/living/carbon/human))
|
||||
@@ -262,11 +282,12 @@
|
||||
if(src.sleeping_willingly)
|
||||
src.sleeping = 0
|
||||
src.sleeping_willingly = 0
|
||||
// Update the hands-indicator on re-join.
|
||||
/* // Update the hands-indicator on re-join.
|
||||
if (!( src.hand ))
|
||||
src.hands.dir = NORTH
|
||||
else
|
||||
src.hands.dir = SOUTH
|
||||
*/
|
||||
|
||||
/mob/living/carbon/human/proc/GetOrgans()
|
||||
var/list/L = list( )
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/obj/hud/proc/human_hud(var/ui_style='screen1_old.dmi')
|
||||
|
||||
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
|
||||
|
||||
src.adding = list( )
|
||||
src.other = list( )
|
||||
src.intents = list( )
|
||||
@@ -8,6 +10,7 @@
|
||||
src.mov_int = list( )
|
||||
src.vimpaired = list( )
|
||||
src.darkMask = list( )
|
||||
src.intent_small_hud_objects = list( )
|
||||
|
||||
src.g_dither = new src.h_type( src )
|
||||
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
@@ -53,6 +56,41 @@
|
||||
src.adding += using
|
||||
action_intent = using
|
||||
|
||||
//intent small hud objects
|
||||
using = new src.h_type( src )
|
||||
using.name = "help"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "help_small"
|
||||
using.screen_loc = ui_help_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "disarm"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "disarm_small"
|
||||
using.screen_loc = ui_disarm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "grab"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "grab_small"
|
||||
using.screen_loc = ui_grab_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "harm"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "harm_small"
|
||||
using.screen_loc = ui_harm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
//end intent small hud objects
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "mov_intent"
|
||||
using.dir = SOUTHWEST
|
||||
@@ -63,6 +101,7 @@
|
||||
src.adding += using
|
||||
move_intent = using
|
||||
|
||||
/*
|
||||
using = new src.h_type(src) //Right hud bar
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
@@ -101,6 +140,7 @@
|
||||
using.screen_loc = ui_iarrowright
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "drop"
|
||||
@@ -117,7 +157,7 @@
|
||||
using.icon_state = "center"
|
||||
using.screen_loc = ui_iclothing
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "o_clothing"
|
||||
@@ -126,7 +166,7 @@
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_oclothing
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.other += using
|
||||
|
||||
/* using = new src.h_type( src )
|
||||
using.name = "headset"
|
||||
@@ -141,25 +181,49 @@
|
||||
using.name = "r_hand"
|
||||
using.dir = WEST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "hand_inactive"
|
||||
if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
|
||||
using.icon_state = "hand_active"
|
||||
using.screen_loc = ui_rhand
|
||||
using.layer = 19
|
||||
src.r_hand_hud_object = using
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "l_hand"
|
||||
using.dir = EAST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "hand_inactive"
|
||||
if(mymob && mymob.hand) //This being 1 means the left hand is in use
|
||||
using.icon_state = "hand_active"
|
||||
using.screen_loc = ui_lhand
|
||||
using.layer = 19
|
||||
src.l_hand_hud_object = using
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "hand"
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "hand1"
|
||||
using.screen_loc = ui_swaphand1
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "hand"
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "hand2"
|
||||
using.screen_loc = ui_swaphand2
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "id"
|
||||
using.dir = SOUTHWEST
|
||||
using.dir = NORTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "id"
|
||||
using.screen_loc = ui_id
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
@@ -171,13 +235,13 @@
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_mask
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "back"
|
||||
using.dir = NORTHEAST
|
||||
using.dir = NORTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "back"
|
||||
using.screen_loc = ui_back
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
@@ -201,11 +265,13 @@
|
||||
using = new src.h_type( src )
|
||||
using.name = "suit storage"
|
||||
using.icon = ui_style
|
||||
using.dir = 8 //The sprite at dir=8 has the background whereas the others don't.
|
||||
using.icon_state = "belt"
|
||||
using.screen_loc = ui_sstore1
|
||||
using.layer = 19
|
||||
src.other += using
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "resist"
|
||||
using.icon = ui_style
|
||||
@@ -213,12 +279,13 @@
|
||||
using.screen_loc = ui_resist
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "other"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "other"
|
||||
using.screen_loc = ui_shoes
|
||||
using.screen_loc = ui_inventory
|
||||
using.layer = 20
|
||||
src.adding += using
|
||||
|
||||
@@ -256,7 +323,6 @@
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "l_ear"
|
||||
using.dir = EAST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_lear
|
||||
@@ -265,7 +331,6 @@
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "r_ear"
|
||||
using.dir = WEST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "ears"
|
||||
using.screen_loc = ui_rear
|
||||
@@ -278,7 +343,7 @@
|
||||
using.icon_state = "hair"
|
||||
using.screen_loc = ui_head
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.other += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "shoes"
|
||||
@@ -467,6 +532,8 @@
|
||||
mymob.pressure.icon_state = "pressure0"
|
||||
mymob.pressure.name = "pressure"
|
||||
mymob.pressure.screen_loc = ui_pressure
|
||||
|
||||
|
||||
/*
|
||||
mymob.i_select = new /obj/screen( null )
|
||||
mymob.i_select.icon_state = "selector"
|
||||
@@ -542,6 +609,7 @@
|
||||
mymob.pain.screen_loc = "1,1 to 15,15"
|
||||
mymob.pain.layer = 17
|
||||
|
||||
/*
|
||||
mymob.hands = new /obj/screen( null )
|
||||
mymob.hands.icon = ui_style
|
||||
mymob.hands.icon_state = "hand"
|
||||
@@ -560,6 +628,7 @@
|
||||
mymob.rest.icon_state = "rest0"
|
||||
mymob.rest.name = "rest"
|
||||
mymob.rest.screen_loc = ui_rest
|
||||
*/
|
||||
|
||||
/*/Monkey blockers
|
||||
|
||||
@@ -658,7 +727,7 @@
|
||||
mymob.client.screen = null
|
||||
|
||||
//, mymob.i_select, mymob.m_select
|
||||
mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.pressure, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
|
||||
mymob.client.screen += list( mymob.pain, mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
|
||||
mymob.client.screen += src.adding + src.other
|
||||
|
||||
//if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
var/g_eyes = 0.0
|
||||
var/b_eyes = 0.0
|
||||
var/s_tone = 0.0
|
||||
var/species = "Human"
|
||||
age = 30.0
|
||||
var/used_skillpoints = 0
|
||||
var/skill_specialization = null
|
||||
@@ -1059,8 +1060,6 @@
|
||||
overlays += image("icon" = 'belt_mirror.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
s_store.screen_loc = ui_sstore1
|
||||
|
||||
if(client) hud_used.other_update() //Update the screenloc of the items on the 'other' inventory bar
|
||||
//to hide / show them.
|
||||
if (client)
|
||||
if (i_select)
|
||||
if (intent)
|
||||
@@ -1177,6 +1176,8 @@
|
||||
overlays += image("icon" = 'back.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
back.screen_loc = ui_back
|
||||
|
||||
if(client) hud_used.other_update() //Update the screenloc of the items on the 'other' inventory bar
|
||||
//to hide / show them.
|
||||
if (handcuffed)
|
||||
pulling = null
|
||||
var/h1 = handcuffed.icon_state
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
|
||||
if (stat != 2) //still breathing
|
||||
|
||||
|
||||
//First, resolve location and get a breath
|
||||
|
||||
if(air_master.current_cycle%4==2)
|
||||
@@ -871,7 +872,7 @@
|
||||
if(E.name == "l_hand" || E.name == "l_arm")
|
||||
if(hand && equipped())
|
||||
drop_item()
|
||||
emote("custom v drops what they were holding, their limb malfunctioning!")
|
||||
emote("custom v drops what they were holding, their [E] malfunctioning!")
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
@@ -881,7 +882,7 @@
|
||||
else if(E.name == "r_hand" || E.name == "r_arm")
|
||||
if(!hand && equipped())
|
||||
drop_item()
|
||||
emote("custom v drops what they were holding, their limb malfunctioning!")
|
||||
emote("custom v drops what they were holding, their [E] malfunctioning!")
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
@@ -914,6 +915,15 @@
|
||||
var/blood_volume = round(vessel.get_reagent_amount("blood"))
|
||||
if(bloodloss)
|
||||
drip(bloodloss)
|
||||
else if(blood_volume < 560 && blood_volume)
|
||||
var/datum/reagent/blood/B = locate() in vessel //Grab some blood
|
||||
if(!B.data["donor"] == src) //If it's not theirs, then we look for theirs
|
||||
for(var/datum/reagent/blood/D in vessel)
|
||||
if(D.data["donor"] == src)
|
||||
B = D
|
||||
break
|
||||
//At this point, we dun care which blood we are adding to, as long as they get more blood.
|
||||
B.volume = max(min(B.volume + 560/blood_volume,560), 0) //Less blood = More blood generated per tick
|
||||
if(!blood_volume)
|
||||
bloodloss = 0
|
||||
else if(blood_volume > 448)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/obj/hud/proc/monkey_hud(var/ui_style='screen1_old.dmi')
|
||||
|
||||
ui_style='screen1_old.dmi' //Overriding the parameter. Only this UI style is acceptable with the 'sleek' layout.
|
||||
|
||||
src.adding = list( )
|
||||
src.other = list( )
|
||||
src.intents = list( )
|
||||
@@ -8,8 +10,9 @@
|
||||
src.mov_int = list( )
|
||||
src.vimpaired = list( )
|
||||
src.darkMask = list( )
|
||||
src.intent_small_hud_objects = list( )
|
||||
|
||||
var/icon/blocked = icon(ui_style,"blocked")
|
||||
//var/icon/blocked = icon(ui_style,"blocked")
|
||||
|
||||
src.g_dither = new src.h_type( src )
|
||||
src.g_dither.screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
@@ -55,6 +58,41 @@
|
||||
src.adding += using
|
||||
action_intent = using
|
||||
|
||||
//intent small hud objects
|
||||
using = new src.h_type( src )
|
||||
using.name = "help"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "help_small"
|
||||
using.screen_loc = ui_help_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "disarm"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "disarm_small"
|
||||
using.screen_loc = ui_disarm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "grab"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "grab_small"
|
||||
using.screen_loc = ui_grab_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "harm"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "harm_small"
|
||||
using.screen_loc = ui_harm_small
|
||||
using.layer = 21
|
||||
src.intent_small_hud_objects += using
|
||||
|
||||
//end intent small hud objects
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "mov_intent"
|
||||
using.dir = SOUTHWEST
|
||||
@@ -65,6 +103,7 @@
|
||||
src.adding += using
|
||||
move_intent = using
|
||||
|
||||
/*
|
||||
using = new src.h_type(src) //Right hud bar
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
@@ -102,7 +141,7 @@
|
||||
using.dir = EAST
|
||||
using.screen_loc = ui_iarrowright
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.adding += using*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "drop"
|
||||
@@ -111,7 +150,7 @@
|
||||
using.screen_loc = ui_dropbutton
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "i_clothing"
|
||||
using.dir = SOUTH
|
||||
@@ -131,7 +170,7 @@
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.adding += using
|
||||
|
||||
*/
|
||||
/* using = new src.h_type( src )
|
||||
using.name = "headset"
|
||||
using.dir = SOUTHEAST
|
||||
@@ -145,20 +184,44 @@
|
||||
using.name = "r_hand"
|
||||
using.dir = WEST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "hand_inactive"
|
||||
if(mymob && !mymob.hand) //This being 0 or null means the right hand is in use
|
||||
using.icon_state = "hand_active"
|
||||
using.screen_loc = ui_rhand
|
||||
using.layer = 19
|
||||
src.r_hand_hud_object = using
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "l_hand"
|
||||
using.dir = EAST
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.icon_state = "hand_inactive"
|
||||
if(mymob && mymob.hand) //This being 1 means the left hand is in use
|
||||
using.icon_state = "hand_active"
|
||||
using.screen_loc = ui_lhand
|
||||
using.layer = 19
|
||||
src.l_hand_hud_object = using
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "hand"
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "hand1"
|
||||
using.screen_loc = ui_swaphand1
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "hand"
|
||||
using.dir = SOUTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "hand2"
|
||||
using.screen_loc = ui_swaphand2
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "id"
|
||||
using.dir = SOUTHWEST
|
||||
@@ -168,13 +231,14 @@
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "mask"
|
||||
using.dir = NORTH
|
||||
using.icon = ui_style
|
||||
using.icon_state = "equip"
|
||||
using.screen_loc = ui_mask
|
||||
using.screen_loc = ui_monkey_mask
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
@@ -186,7 +250,7 @@
|
||||
using.screen_loc = ui_back
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "storage1"
|
||||
using.icon = ui_style
|
||||
@@ -204,7 +268,6 @@
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.adding += using
|
||||
|
||||
using = new src.h_type( src )
|
||||
using.name = "resist"
|
||||
using.icon = ui_style
|
||||
@@ -283,6 +346,7 @@
|
||||
using.layer = 19
|
||||
using.overlays += blocked
|
||||
src.adding += using
|
||||
*/
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
@@ -399,6 +463,7 @@
|
||||
mymob.m_select.name = "moving"
|
||||
mymob.m_select.screen_loc = "16:-11,14"
|
||||
*/
|
||||
|
||||
mymob.toxin = new /obj/screen( null )
|
||||
mymob.toxin.icon = ui_style
|
||||
mymob.toxin.icon_state = "tox0"
|
||||
@@ -450,6 +515,7 @@
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
/*
|
||||
mymob.hands = new /obj/screen( null )
|
||||
mymob.hands.icon = ui_style
|
||||
mymob.hands.icon_state = "hand"
|
||||
@@ -467,7 +533,7 @@
|
||||
mymob.rest.icon = ui_style
|
||||
mymob.rest.icon_state = "rest0"
|
||||
mymob.rest.name = "rest"
|
||||
mymob.rest.screen_loc = ui_rest
|
||||
mymob.rest.screen_loc = ui_rest*/
|
||||
|
||||
/*/Monkey blockers
|
||||
|
||||
@@ -566,7 +632,7 @@
|
||||
mymob.client.screen = null
|
||||
|
||||
//, mymob.i_select, mymob.m_select
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.hands, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.pressure, mymob.gun_setting_icon) //, mymob.mach )
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.hands, mymob.rest, mymob.sleep, mymob.mach, mymob.hands, )
|
||||
mymob.client.screen += src.adding + src.other
|
||||
|
||||
//if(istype(mymob,/mob/living/carbon/monkey)) mymob.client.screen += src.mon_blo
|
||||
|
||||
@@ -511,7 +511,7 @@
|
||||
if (istype(wear_mask, /obj/item/clothing/mask))
|
||||
var/t1 = wear_mask.icon_state
|
||||
overlays += image("icon" = 'monkey.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = layer)
|
||||
wear_mask.screen_loc = ui_mask
|
||||
wear_mask.screen_loc = ui_monkey_mask
|
||||
|
||||
if (r_hand)
|
||||
if(update_icon)
|
||||
@@ -526,7 +526,7 @@
|
||||
if (back)
|
||||
var/t1 = back.icon_state //apparently tables make me upset and cause my dreams to shatter
|
||||
overlays += image("icon" = 'back.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = layer)
|
||||
back.screen_loc = ui_back
|
||||
back.screen_loc = ui_monkey_back
|
||||
|
||||
if (handcuffed && update_icon)
|
||||
pulling = null
|
||||
|
||||
@@ -48,15 +48,7 @@
|
||||
verbs += /mob/living/silicon/ai/proc/show_laws_verb
|
||||
|
||||
if (istype(loc, /turf)) //If you add a verb here, make sure to add it to transform_procs.dm too.
|
||||
verbs += /mob/living/silicon/ai/proc/ai_call_shuttle
|
||||
verbs += /mob/living/silicon/ai/proc/show_laws_verb
|
||||
verbs += /mob/living/silicon/ai/proc/ai_camera_track
|
||||
verbs += /mob/living/silicon/ai/proc/ai_alerts
|
||||
verbs += /mob/living/silicon/ai/proc/ai_camera_list
|
||||
verbs += /mob/living/silicon/ai/proc/ai_network_change
|
||||
verbs += /mob/living/silicon/ai/proc/ai_statuschange
|
||||
verbs += /mob/living/silicon/ai/proc/ai_hologram_change
|
||||
verbs += /mob/living/silicon/ai/proc/ai_roster
|
||||
verbs += AI_VERB_LIST
|
||||
|
||||
if(!safety)//Only used by AIize() to successfully spawn an AI.
|
||||
if (!B)//If there is no player/brain inside.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
return//Whatever the case, return since you can't move anyway.
|
||||
|
||||
if(user.client)//To make AI holograms work. They will relay directions as long as they are centered on the object.
|
||||
var/obj/machinery/hologram/holopad/T = user.client.eye//Client eye centers on an object.
|
||||
var/obj/machinery/hologram/holopad/T = user.current//Client eye centers on an object.
|
||||
if(istype(T)&&T.hologram&&T.master==user)//If there is a hologram and its master is the user.
|
||||
T.hologram.loc = get_step(T.hologram, direct)
|
||||
T.hologram.dir = direct
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
//Generic overlays
|
||||
|
||||
/*
|
||||
using = new src.h_type(src) //Right hud bar
|
||||
using.dir = SOUTH
|
||||
using.icon = 'screen1_robot.dmi'
|
||||
@@ -72,7 +73,7 @@
|
||||
using.icon = 'screen1_robot.dmi'
|
||||
using.screen_loc = "EAST+1,SOUTH-1"
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.adding += using*/
|
||||
|
||||
|
||||
//Module select
|
||||
@@ -119,7 +120,7 @@
|
||||
using.layer = 20
|
||||
src.adding += using
|
||||
action_intent = using
|
||||
|
||||
/*
|
||||
using = new src.h_type( src )
|
||||
using.name = "arrowleft"
|
||||
using.icon = 'screen1_robot.dmi'
|
||||
@@ -136,7 +137,7 @@
|
||||
using.dir = EAST
|
||||
using.screen_loc = ui_iarrowright
|
||||
using.layer = 19
|
||||
src.adding += using
|
||||
src.adding += using*/
|
||||
//End of Intent
|
||||
|
||||
//Cell
|
||||
@@ -151,7 +152,7 @@
|
||||
mymob.healths.icon = 'screen1_robot.dmi'
|
||||
mymob.healths.icon_state = "health0"
|
||||
mymob.healths.name = "health"
|
||||
mymob.healths.screen_loc = ui_health
|
||||
mymob.healths.screen_loc = ui_borg_health
|
||||
|
||||
//Installed Module
|
||||
mymob.hands = new /obj/screen( null )
|
||||
@@ -174,7 +175,7 @@
|
||||
mymob.throw_icon.icon = 'screen1_robot.dmi'
|
||||
mymob.throw_icon.icon_state = "store"
|
||||
mymob.throw_icon.name = "store"
|
||||
mymob.throw_icon.screen_loc = ui_hand
|
||||
mymob.throw_icon.screen_loc = ui_borg_store
|
||||
|
||||
//Temp
|
||||
mymob.bodytemp = new /obj/screen( null )
|
||||
@@ -218,6 +219,7 @@
|
||||
mymob.flash.screen_loc = "1,1 to 15,15"
|
||||
mymob.flash.layer = 17
|
||||
|
||||
/*
|
||||
mymob.sleep = new /obj/screen( null )
|
||||
mymob.sleep.icon = 'screen1_robot.dmi'
|
||||
mymob.sleep.icon_state = "sleep0"
|
||||
@@ -229,6 +231,7 @@
|
||||
mymob.rest.icon_state = "rest0"
|
||||
mymob.rest.name = "rest"
|
||||
mymob.rest.screen_loc = ui_rest
|
||||
*/
|
||||
|
||||
|
||||
mymob.zone_sel = new /obj/screen/zone_sel( null )
|
||||
@@ -239,7 +242,7 @@
|
||||
|
||||
mymob.client.screen = null
|
||||
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.rest, mymob.sleep, mymob.gun_setting_icon) //, mymob.mach )
|
||||
mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.fire, mymob.hands, mymob.healths, mymob:cells, mymob.pullin, mymob.blind, mymob.flash, mymob.gun_setting_icon) //, mymob.rest, mymob.sleep, mymob.mach )
|
||||
mymob.client.screen += src.adding + src.other
|
||||
|
||||
return
|
||||
|
||||
@@ -38,14 +38,72 @@
|
||||
|
||||
|
||||
/client/Southwest()
|
||||
toggle_throw_mode()
|
||||
if(iscarbon(usr))
|
||||
var/mob/living/carbon/C = usr
|
||||
if(!C.get_active_hand())
|
||||
usr << "\red You have nothing in your hand to throw."
|
||||
return
|
||||
toggle_throw_mode()
|
||||
else
|
||||
usr << "\red This mob type cannot throw items."
|
||||
return
|
||||
|
||||
|
||||
/client/Northwest()
|
||||
drop_item()
|
||||
if(iscarbon(usr))
|
||||
var/mob/living/carbon/C = usr
|
||||
if(!C.get_active_hand())
|
||||
usr << "\red You have nothing to drop in your hand."
|
||||
return
|
||||
drop_item()
|
||||
else
|
||||
usr << "\red This mob type cannot drop items."
|
||||
return
|
||||
|
||||
//This gets called when you press the insert button.
|
||||
/client/verb/insert_key_pressed()
|
||||
set hidden = 1
|
||||
|
||||
if(!src.mob)
|
||||
return
|
||||
var/mob/M = src.mob
|
||||
if(ishuman(M) || isrobot(usr) || ismonkey(M) || istype(M,/mob/living/carbon/alien/humanoid) || islarva(M))
|
||||
switch(M.a_intent)
|
||||
if("help")
|
||||
if(issilicon(usr))
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
else
|
||||
usr.a_intent = "disarm"
|
||||
usr.hud_used.action_intent.icon_state = "disarm"
|
||||
|
||||
if("disarm")
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
|
||||
if("hurt")
|
||||
if(issilicon(usr))
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
else
|
||||
usr.a_intent = "grab"
|
||||
usr.hud_used.action_intent.icon_state = "grab"
|
||||
|
||||
if("grab")
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
usr << "\blue Your intent is now \"[usr.a_intent]\"."
|
||||
else
|
||||
usr << "\red This mob type does not use intents."
|
||||
|
||||
//This gets called when you press the delete button.
|
||||
/client/verb/delete_key_pressed()
|
||||
set hidden = 1
|
||||
|
||||
if(!usr.pulling)
|
||||
usr << "\blue You are not pulling anything."
|
||||
return
|
||||
usr.pulling = null
|
||||
|
||||
/client/verb/swap_hand()
|
||||
set hidden = 1
|
||||
|
||||
@@ -392,7 +392,11 @@
|
||||
|
||||
proc/create_character()
|
||||
spawning = 1
|
||||
var/mob/living/carbon/human/new_character = new(loc)
|
||||
var/mob/living/carbon/human/new_character // var/path/to/object/varname
|
||||
if((preferences.species == "Tajaran") && (is_alien_whitelisted(src, "Tajaran")))
|
||||
new_character = new /mob/living/carbon/human/tajaran(loc) // varname = new /path/to/object(location_to_spawn_at)
|
||||
else
|
||||
new_character = new /mob/living/carbon/human(loc)
|
||||
new_character.lastarea = get_area(loc)
|
||||
|
||||
close_spawn_windows()
|
||||
@@ -403,8 +407,9 @@
|
||||
preferences.randomize_appearance_for(new_character)
|
||||
else
|
||||
preferences.copy_to(new_character)
|
||||
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
|
||||
if((preferences.species == "Soghun") && (is_alien_whitelisted(src, "Soghun"))) //This probably shouldn't be here, but I can't think of any other way
|
||||
new_character.mutantrace = "lizard"
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
|
||||
|
||||
new_character.dna.ready_dna(new_character)
|
||||
preferences.copydisabilities(new_character)
|
||||
|
||||
@@ -90,6 +90,9 @@ datum/preferences
|
||||
g_facial = 0
|
||||
b_facial = 0
|
||||
|
||||
//Species
|
||||
species = "Human"
|
||||
|
||||
//Skin color
|
||||
s_tone = 0
|
||||
|
||||
@@ -99,7 +102,7 @@ datum/preferences
|
||||
b_eyes = 0
|
||||
|
||||
//UI style
|
||||
UI = UI_NEW
|
||||
UI = UI_OLD
|
||||
|
||||
//Mob preview
|
||||
icon/preview_icon = null
|
||||
@@ -259,7 +262,7 @@ datum/preferences
|
||||
dat += "<b>Age:</b> <a href='byond://?src=\ref[user];preferences=1;age=input'>[age]</a>"
|
||||
|
||||
dat += "<br>"
|
||||
dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI == UI_NEW ? "New" : "Old"]</b></a><br>"
|
||||
//dat += "<b>UI Style:</b> <a href=\"byond://?src=\ref[user];preferences=1;UI=input\"><b>[UI == UI_NEW ? "New" : "Old"]</b></a><br>" -- UI Style no longer a thing
|
||||
dat += "<b>Play admin midis:</b> <a href=\"byond://?src=\ref[user];preferences=1;midis=input\"><b>[midis == 1 ? "Yes" : "No"]</b></a><br>"
|
||||
dat += "<b>Ghost ears:</b> <a href=\"byond://?src=\ref[user];preferences=1;ghost_ears=input\"><b>[ghost_ears == 0 ? "Nearest Creatures" : "All Speech"]</b></a><br>"
|
||||
dat += "<b>Ghost sight:</b> <a href=\"byond://?src=\ref[user];preferences=1;ghost_sight=input\"><b>[ghost_sight == 0 ? "Nearest Creatures" : "All Emotes"]</b></a><br>"
|
||||
@@ -281,6 +284,7 @@ datum/preferences
|
||||
dat += "<hr><table><tr><td><b>Body</b> "
|
||||
dat += "(<a href=\"byond://?src=\ref[user];preferences=1;s_tone=random;underwear=random;backbag_type=random;age=random;b_type=random;hair=random;h_style=random;facial=random;f_style=random;eyes=random\">®</A>)" // Random look
|
||||
dat += "<br>"
|
||||
dat += "Species: <a href='byond://?src=\ref[user];preferences=1;species=input'>[species]</a><br>"
|
||||
dat += "Blood Type: <a href='byond://?src=\ref[user];preferences=1;b_type=input'>[b_type]</a><br>"
|
||||
dat += "Skin Tone: <a href='byond://?src=\ref[user];preferences=1;s_tone=input'>[-s_tone + 35]/220<br></a>"
|
||||
|
||||
@@ -696,6 +700,24 @@ datum/preferences
|
||||
if("random")
|
||||
b_type = pickweight ( list ("A+" = 31, "A-" = 7, "B+" = 8, "B-" = 2, "AB+" = 2, "AB-" = 1, "O+" = 40, "O-" = 9))
|
||||
|
||||
if(link_tags["species"])
|
||||
switch(link_tags["species"])
|
||||
if("input")
|
||||
var/list/new_species = list("Human")
|
||||
if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
|
||||
if(is_alien_whitelisted(user, "Soghun")) //Check for Soghun and admins
|
||||
new_species += "Soghun"
|
||||
if(is_alien_whitelisted(user, "Tajaran")) //Check for Tajaran
|
||||
new_species += "Tajaran"
|
||||
else //Not using the whitelist? Aliens for everyone!
|
||||
new_species += "Tajaran"
|
||||
new_species += "Soghun"
|
||||
species = input("Please select a species", "Character Generation", null) in new_species
|
||||
h_style = "Bald" //Try not to carry face/head hair over.
|
||||
f_style = "Shaved"
|
||||
s_tone = 0 //Don't carry over skintone either.
|
||||
hair_style = new/datum/sprite_accessory/hair/bald
|
||||
facial_hair_style = new/datum/sprite_accessory/facial_hair/shaved
|
||||
|
||||
if(link_tags["hair"])
|
||||
switch(link_tags["hair"])
|
||||
@@ -735,14 +757,18 @@ datum/preferences
|
||||
if("random")
|
||||
randomize_skin_tone()
|
||||
if("input")
|
||||
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
||||
var/new_tone = input(user, "Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black) or 20-70 for Tajarans", "Character Generation") as text
|
||||
if(new_tone)
|
||||
s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
if(species == "Tajaran")
|
||||
s_tone = max(min(round(text2num(new_tone)), 70), 20)
|
||||
else
|
||||
s_tone = max(min(round(text2num(new_tone)), 220), 1)
|
||||
s_tone = -s_tone + 35
|
||||
|
||||
if(link_tags["h_style"])
|
||||
if(species != "Human")
|
||||
return
|
||||
switch(link_tags["h_style"])
|
||||
|
||||
// New and improved hair selection code, by Doohl
|
||||
if("random") // random hair selection
|
||||
|
||||
@@ -785,6 +811,8 @@ datum/preferences
|
||||
src.ooccolor = ooccolor
|
||||
|
||||
if(link_tags["f_style"])
|
||||
if(species != "Human") //Tajarans and Soghuns don't have hair stuff yet.
|
||||
return
|
||||
switch(link_tags["f_style"])
|
||||
|
||||
// see above for commentation. This is just a slight modification of the hair code for facial hairs
|
||||
@@ -866,7 +894,7 @@ datum/preferences
|
||||
be_random_name = !be_random_name
|
||||
|
||||
if(link_tags["flavor_text"])
|
||||
var/msg = input(usr,"Set the flavor text in your 'examine' verb. Don't metagame!","Flavor Text",html_decode(flavor_text)) as message
|
||||
var/msg = input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(flavor_text)) as message
|
||||
|
||||
if(msg != null)
|
||||
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
|
||||
@@ -893,6 +921,8 @@ datum/preferences
|
||||
slotname = savefile_getslots(user)[curslot]
|
||||
loadsave(user)
|
||||
if(link_tags["removeslot"])
|
||||
if(alert("Are you sure you wish to delete this slot?",,"Yes","No")=="No")
|
||||
return
|
||||
var/slot = text2num(link_tags["removeslot"])
|
||||
if(!slot)
|
||||
return
|
||||
|
||||
@@ -209,7 +209,15 @@ datum/preferences
|
||||
else if (gender == FEMALE)
|
||||
g = "f"
|
||||
|
||||
preview_icon = new /icon('human.dmi', "body_[g]_s", "dir" = preview_dir)
|
||||
if(species == "Tajaran")
|
||||
preview_icon = new /icon('tajaran.dmi', "body_[g]_s", "dir" = preview_dir)
|
||||
else if(species == "Soghun")
|
||||
if(g == "m")
|
||||
preview_icon = new /icon('genetics.dmi', "lizard_male_s", "dir" = preview_dir)
|
||||
else if(g == "f")
|
||||
preview_icon = new /icon('genetics.dmi', "lizard_female_s", "dir" = preview_dir)
|
||||
else
|
||||
preview_icon = new /icon('human.dmi', "body_[g]_s", "dir" = preview_dir)
|
||||
|
||||
// Skin tone
|
||||
if (s_tone >= 0)
|
||||
|
||||
@@ -131,6 +131,7 @@ datum/preferences/proc/savefile_save(mob/user, slot)
|
||||
F["eyes_green"] << src.g_eyes
|
||||
F["eyes_blue"] << src.b_eyes
|
||||
F["blood_type"] << src.b_type
|
||||
F["species"] << src.species
|
||||
F["underwear"] << src.underwear
|
||||
F["backbag"] << src.backbag
|
||||
F["backbag"] << src.backbag
|
||||
@@ -206,6 +207,8 @@ datum/preferences/proc/savefile_load(mob/user, slot)
|
||||
F["eyes_green"] >> src.g_eyes
|
||||
F["eyes_blue"] >> src.b_eyes
|
||||
F["blood_type"] >> src.b_type
|
||||
F["species"] >> src.species
|
||||
if(isnull(species)) species = "Human"
|
||||
F["underwear"] >> src.underwear
|
||||
if(underwear == 0) underwear = 6 //For old players who have 0 in their savefile
|
||||
F["backbag"] >> src.backbag
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
icon = 'zone_sel.dmi'
|
||||
icon_state = "blank"
|
||||
var/selecting = "chest"
|
||||
screen_loc = "EAST+1,NORTH"
|
||||
screen_loc = ui_zonesel
|
||||
|
||||
/obj/screen/gun
|
||||
name = "gun"
|
||||
@@ -227,21 +227,71 @@
|
||||
/obj/screen/grab/attackby()
|
||||
return
|
||||
|
||||
/obj/screen/MouseEntered(object,location,control,params)
|
||||
if(!ishuman(usr) && !istype(usr,/mob/living/carbon/alien/humanoid) && !islarva(usr) && !ismonkey(usr))
|
||||
return
|
||||
switch(name)
|
||||
/*
|
||||
if("other")
|
||||
if (usr.hud_used.show_otherinventory)
|
||||
usr.hud_used.show_otherinventory = 0
|
||||
usr.client.screen -= usr.hud_used.other
|
||||
else
|
||||
usr.hud_used.show_otherinventory = 1
|
||||
usr.client.screen += usr.hud_used.other
|
||||
|
||||
usr.hud_used.other_update()*/
|
||||
if("act_intent")
|
||||
if(!usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
if("harm")
|
||||
if(!usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
if("help")
|
||||
if(!usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
if("disarm")
|
||||
if(!usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
if("grab")
|
||||
if(!usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
|
||||
|
||||
/obj/screen/MouseExited(object,location,control,params)
|
||||
if(!ishuman(usr) && !istype(usr,/mob/living/carbon/alien/humanoid) && !islarva(usr) && !ismonkey(usr))
|
||||
return
|
||||
switch(name)
|
||||
if("act_intent")
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("harm")
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("help")
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("disarm")
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("grab")
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
|
||||
/obj/screen/Click(location, control, params)
|
||||
|
||||
var/list/pa = params2list(params)
|
||||
|
||||
switch(name)
|
||||
if("map")
|
||||
|
||||
usr.clearmap()
|
||||
if("maprefresh")
|
||||
var/obj/machinery/computer/security/seccomp = usr.machine
|
||||
|
||||
if(seccomp!=null)
|
||||
seccomp.drawmap(usr)
|
||||
else
|
||||
usr.clearmap()
|
||||
|
||||
if("other")
|
||||
if (usr.hud_used.show_otherinventory)
|
||||
@@ -253,36 +303,13 @@
|
||||
|
||||
usr.hud_used.other_update()
|
||||
|
||||
if("maprefresh")
|
||||
var/obj/machinery/computer/security/seccomp = usr.machine
|
||||
|
||||
if("act_intent")
|
||||
if(pa.Find("left"))
|
||||
switch(usr.a_intent)
|
||||
if("help")
|
||||
usr.a_intent = "disarm"
|
||||
usr.hud_used.action_intent.icon_state = "disarm"
|
||||
if("disarm")
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
if("hurt")
|
||||
usr.a_intent = "grab"
|
||||
usr.hud_used.action_intent.icon_state = "grab"
|
||||
if("grab")
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
if(seccomp!=null)
|
||||
seccomp.drawmap(usr)
|
||||
else
|
||||
switch(usr.a_intent)
|
||||
if("help")
|
||||
usr.a_intent = "grab"
|
||||
usr.hud_used.action_intent.icon_state = "grab"
|
||||
if("disarm")
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
if("hurt")
|
||||
usr.a_intent = "disarm"
|
||||
usr.hud_used.action_intent.icon_state = "disarm"
|
||||
if("grab")
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
usr.clearmap()
|
||||
|
||||
if("arrowleft")
|
||||
switch(usr.a_intent)
|
||||
@@ -344,20 +371,6 @@
|
||||
if("walk")
|
||||
usr.m_intent = "run"
|
||||
usr.hud_used.move_intent.icon_state = "running"
|
||||
|
||||
if("intent")
|
||||
if (!( usr.intent ))
|
||||
switch(usr.a_intent)
|
||||
if("help")
|
||||
usr.intent = "13,15"
|
||||
if("disarm")
|
||||
usr.intent = "14,15"
|
||||
if("hurt")
|
||||
usr.intent = "15,15"
|
||||
if("grab")
|
||||
usr.intent = "12,15"
|
||||
else
|
||||
usr.intent = null
|
||||
if("m_intent")
|
||||
if (!( usr.m_int ))
|
||||
switch(usr.m_intent)
|
||||
@@ -378,20 +391,6 @@
|
||||
if("run")
|
||||
usr.m_intent = "run"
|
||||
usr.m_int = "13,14"
|
||||
if("hurt")
|
||||
usr.a_intent = "hurt"
|
||||
usr.intent = "15,15"
|
||||
if("grab")
|
||||
usr.a_intent = "grab"
|
||||
usr.intent = "12,15"
|
||||
if("disarm")
|
||||
if (istype(usr, /mob/living/carbon/human))
|
||||
var/mob/M = usr
|
||||
M.a_intent = "disarm"
|
||||
M.intent = "14,15"
|
||||
if("help")
|
||||
usr.a_intent = "help"
|
||||
usr.intent = "13,15"
|
||||
if("Reset Machine")
|
||||
usr.machine = null
|
||||
if("internal")
|
||||
@@ -435,18 +434,43 @@
|
||||
usr.internals.icon_state = "internal1"
|
||||
else
|
||||
usr << "\blue You don't have an oxygen tank."
|
||||
if("act_intent")
|
||||
if(ishuman(usr) || istype(usr,/mob/living/carbon/alien/humanoid) || islarva(usr))
|
||||
if (usr.hud_used.show_intent_icons)
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
else
|
||||
usr.hud_used.show_intent_icons = 1
|
||||
usr.client.screen += usr.hud_used.intent_small_hud_objects
|
||||
if(issilicon(usr))
|
||||
if(usr.a_intent == "help")
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
else
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
if("help")
|
||||
usr.a_intent = "help"
|
||||
usr.hud_used.action_intent.icon_state = "help"
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("harm")
|
||||
usr.a_intent = "hurt"
|
||||
usr.hud_used.action_intent.icon_state = "harm"
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("grab")
|
||||
usr.a_intent = "grab"
|
||||
usr.hud_used.action_intent.icon_state = "grab"
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("disarm")
|
||||
usr.a_intent = "disarm"
|
||||
usr.hud_used.action_intent.icon_state = "disarm"
|
||||
usr.hud_used.show_intent_icons = 0
|
||||
usr.client.screen -= usr.hud_used.intent_small_hud_objects
|
||||
if("pull")
|
||||
usr.pulling = null
|
||||
if("sleep")
|
||||
if(usr.sleeping && usr.sleeping_willingly)
|
||||
usr.sleeping = 0
|
||||
usr.sleeping_willingly = 0
|
||||
else if(!usr.sleeping)
|
||||
usr.sleeping = 20 //Short nap
|
||||
usr.sleeping_willingly = 1
|
||||
if("rest")
|
||||
usr.resting = !( usr.resting )
|
||||
//kavala2
|
||||
if("throw")
|
||||
if (!usr.stat && isturf(usr.loc) && !usr.restrained())
|
||||
usr:toggle_throw_mode()
|
||||
@@ -456,135 +480,14 @@
|
||||
usr:swap_hand()
|
||||
if("hand")
|
||||
usr:swap_hand()
|
||||
if("resist")
|
||||
if(usr.next_move > world.time)
|
||||
return
|
||||
usr.next_move = world.time + 20
|
||||
if ((!( usr.stat ) && usr.canmove && !( usr.restrained() )))
|
||||
var/resisting = 0
|
||||
for(var/obj/O in usr.requests)
|
||||
del(O)
|
||||
resisting++
|
||||
for(var/obj/item/weapon/grab/G in usr.grabbed_by)
|
||||
resisting++
|
||||
if (G.state == 1)
|
||||
del(G)
|
||||
else
|
||||
if (G.state == 2)
|
||||
if (prob(25))
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red [] has broken free of []'s grip!", usr, G.assailant), 1)
|
||||
del(G)
|
||||
else
|
||||
if (G.state == 3)
|
||||
if (prob(5))
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red [] has broken free of []'s headlock!", usr, G.assailant), 1)
|
||||
del(G)
|
||||
if(resisting)
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red <B>[] resists!</B>", usr), 1)
|
||||
if(usr:handcuffed && usr:canmove && (usr.last_special <= world.time))
|
||||
var/breakouttime = 1200
|
||||
var/displaytime = 2
|
||||
if(!usr:canmove)
|
||||
breakouttime = 2400
|
||||
displaytime = 4
|
||||
usr.next_move = world.time + 100
|
||||
usr.last_special = world.time + 100
|
||||
if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
|
||||
usr << "\green You attempt to break \the [usr:handcuffed]. (This will take around 5 seconds and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] is trying to break \the [usr:handcuffed]!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 50))
|
||||
if(!usr:handcuffed || usr:buckled)
|
||||
return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to break \the [usr:handcuffed]!</B>", usr), 1)
|
||||
usr << "\green You successfully break \the [usr:handcuffed]."
|
||||
del(usr:handcuffed)
|
||||
usr:handcuffed = null
|
||||
else
|
||||
if(istype(usr:handcuffed, /obj/item/weapon/handcuffs/cable))
|
||||
breakouttime = 300
|
||||
displaytime = 0.5
|
||||
usr << "\red You attempt to remove \the [usr:handcuffed]. (This will take around [displaytime] minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to remove \the [usr:handcuffed]!</B>", usr), 1)
|
||||
spawn(0)
|
||||
var/increment = 150
|
||||
for(var/i = 0, i < breakouttime, i += increment)
|
||||
if(!do_after(usr, increment))
|
||||
return
|
||||
|
||||
else
|
||||
usr << pick("You hear something click, but it doesn't open yet.", // - Uristqwerty
|
||||
"The latch resists!", // - IRC: BowlSoldier
|
||||
"The chain is starting to give!", // - IRC: BowlSoldier
|
||||
"The chain bends a little.", // - IRC: STALKER
|
||||
"Your wrist hurts.", // - IRC: STALKER
|
||||
"Unnng", // - IRC: Doug_H_Nuts
|
||||
"The chain jangles a bit.", // - SkyMarshal
|
||||
"\red Hurry up, dammit!", // - SkyMarshal
|
||||
"This is exhausting!") // - SkyMarshal
|
||||
for(var/mob/O in viewers(usr))
|
||||
if(prob(50)) //Reduces spam slightly
|
||||
O.show_message(text("\red [] continues to struggle in \the [usr:handcuffed]!", usr), 1)
|
||||
if(!usr:handcuffed) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to remove \the [usr:handcuffed]!</B>", usr), 1)
|
||||
usr << "\blue You successfully remove \the [usr:handcuffed]."
|
||||
usr:handcuffed:loc = usr:loc
|
||||
usr:handcuffed = null
|
||||
usr.update_clothing()
|
||||
|
||||
if(istype(usr, /mob/living/carbon/human) && istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket) && usr:canmove && (usr.last_special <= world.time))
|
||||
usr.next_move = world.time + 200
|
||||
usr.last_special = world.time + 200
|
||||
if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
|
||||
usr << "\green You attempt to break out of your straight jacket. (This will take around 5 seconds and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] is trying to break out of \his straight jacket!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 50))
|
||||
if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to break out of the straight jacket!</B>", usr), 1)
|
||||
usr << "\green You successfully break out of your straight jacket."
|
||||
var/obj/sj = usr:wear_suit
|
||||
usr.remove_from_mob(sj)
|
||||
sj.loc = usr.loc
|
||||
else
|
||||
usr << "\red You attempt to get out of your straight jacket. (This will take around 4 minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to get out \his straight jacket!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 1200))
|
||||
if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to wriggle out of the straight jacket!</B>", usr), 1)
|
||||
usr << "\blue You successfully get out of your straight jacket."
|
||||
var/obj/sj = usr:wear_suit
|
||||
usr.remove_from_mob(sj)
|
||||
sj.loc = usr.loc
|
||||
|
||||
if(usr:handcuffed && (usr.last_special <= world.time) && usr:buckled)
|
||||
usr.next_move = world.time + 100
|
||||
usr.last_special = world.time + 100
|
||||
usr << "\red You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to unbuckle themself!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 1200))
|
||||
if(!usr:buckled)
|
||||
return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to unbuckle themself!</B>", usr), 1)
|
||||
usr << "\blue You successfully unbuckle yourself."
|
||||
usr:buckled.manual_unbuckle(usr)
|
||||
|
||||
|
||||
if("r_hand")
|
||||
if(iscarbon(usr))
|
||||
var/mob/living/carbon/C = usr
|
||||
C.activate_hand("r")
|
||||
if("l_hand")
|
||||
if(iscarbon(usr))
|
||||
var/mob/living/carbon/C = usr
|
||||
C.activate_hand("l")
|
||||
if("module")
|
||||
if(issilicon(usr))
|
||||
if(usr:module)
|
||||
@@ -704,3 +607,152 @@
|
||||
/obj/screen/attack_paw(mob/user as mob, using)
|
||||
user.db_click(name, using)
|
||||
return
|
||||
|
||||
|
||||
/mob/living/verb/mob_sleep()
|
||||
set name = "Sleep"
|
||||
set category = "IC"
|
||||
|
||||
if(usr.sleeping && usr.sleeping_willingly)
|
||||
usr.sleeping = 0
|
||||
usr.sleeping_willingly = 0
|
||||
else if(!usr.sleeping)
|
||||
usr.sleeping = 20 //Short nap
|
||||
usr.sleeping_willingly = 1
|
||||
|
||||
/mob/living/verb/lay_down()
|
||||
set name = "Lay down / Get up"
|
||||
set category = "IC"
|
||||
|
||||
usr.resting = !( usr.resting )
|
||||
usr << "\blue You are now [(usr.resting) ? "resting" : "getting up"]"
|
||||
|
||||
/mob/living/verb/resist()
|
||||
set name = "Resist"
|
||||
set category = "IC"
|
||||
|
||||
if(usr.next_move > world.time)
|
||||
return
|
||||
usr.next_move = world.time + 20
|
||||
if ((!( usr.stat ) && usr.canmove && !( usr.restrained() )))
|
||||
var/resisting = 0
|
||||
for(var/obj/O in usr.requests)
|
||||
del(O)
|
||||
resisting++
|
||||
for(var/obj/item/weapon/grab/G in usr.grabbed_by)
|
||||
resisting++
|
||||
if (G.state == 1)
|
||||
del(G)
|
||||
else
|
||||
if (G.state == 2)
|
||||
if (prob(25))
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red [] has broken free of []'s grip!", usr, G.assailant), 1)
|
||||
del(G)
|
||||
else
|
||||
if (G.state == 3)
|
||||
if (prob(5))
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red [] has broken free of []'s headlock!", usr, G.assailant), 1)
|
||||
del(G)
|
||||
if(resisting)
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(text("\red <B>[] resists!</B>", usr), 1)
|
||||
if(usr:handcuffed && usr:canmove && (usr.last_special <= world.time))
|
||||
var/breakouttime = 1200
|
||||
var/displaytime = 2
|
||||
if(!usr:canmove)
|
||||
breakouttime = 2400
|
||||
displaytime = 4
|
||||
usr.next_move = world.time + 100
|
||||
usr.last_special = world.time + 100
|
||||
if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
|
||||
usr << "\green You attempt to break \the [usr:handcuffed]. (This will take around 5 seconds and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] is trying to break \the [usr:handcuffed]!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 50))
|
||||
if(!usr:handcuffed || usr:buckled)
|
||||
return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to break \the [usr:handcuffed]!</B>", usr), 1)
|
||||
usr << "\green You successfully break \the [usr:handcuffed]."
|
||||
del(usr:handcuffed)
|
||||
usr:handcuffed = null
|
||||
else
|
||||
if(istype(usr:handcuffed, /obj/item/weapon/handcuffs/cable))
|
||||
breakouttime = 300
|
||||
displaytime = 0.5
|
||||
usr << "\red You attempt to remove \the [usr:handcuffed]. (This will take around [displaytime] minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to remove \the [usr:handcuffed]!</B>", usr), 1)
|
||||
spawn(0)
|
||||
var/increment = 150
|
||||
for(var/i = 0, i < breakouttime, i += increment)
|
||||
if(!do_after(usr, increment))
|
||||
return
|
||||
|
||||
else
|
||||
usr << pick("You hear something click, but it doesn't open yet.", // - Uristqwerty
|
||||
"The latch resists!", // - IRC: BowlSoldier
|
||||
"The chain is starting to give!", // - IRC: BowlSoldier
|
||||
"The chain bends a little.", // - IRC: STALKER
|
||||
"Your wrist hurts.", // - IRC: STALKER
|
||||
"Unnng", // - IRC: Doug_H_Nuts
|
||||
"The chain jangles a bit.", // - SkyMarshal
|
||||
"\red Hurry up, dammit!", // - SkyMarshal
|
||||
"This is exhausting!") // - SkyMarshal
|
||||
for(var/mob/O in viewers(usr))
|
||||
if(prob(50)) //Reduces spam slightly
|
||||
O.show_message(text("\red [] continues to struggle in \the [usr:handcuffed]!", usr), 1)
|
||||
if(!usr:handcuffed) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to remove \the [usr:handcuffed]!</B>", usr), 1)
|
||||
usr << "\blue You successfully remove \the [usr:handcuffed]."
|
||||
usr:handcuffed:loc = usr:loc
|
||||
usr:handcuffed = null
|
||||
usr.update_clothing()
|
||||
|
||||
if(istype(usr, /mob/living/carbon/human) && istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket) && usr:canmove && (usr.last_special <= world.time))
|
||||
usr.next_move = world.time + 200
|
||||
usr.last_special = world.time + 200
|
||||
if(isalienadult(usr) || usr.mutations & HULK)//Don't want to do a lot of logic gating here.
|
||||
usr << "\green You attempt to break out of your straight jacket. (This will take around 5 seconds and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] is trying to break out of \his straight jacket!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 50))
|
||||
if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to break out of the straight jacket!</B>", usr), 1)
|
||||
usr << "\green You successfully break out of your straight jacket."
|
||||
var/obj/sj = usr:wear_suit
|
||||
usr.remove_from_mob(sj)
|
||||
sj.loc = usr.loc
|
||||
else
|
||||
usr << "\red You attempt to get out of your straight jacket. (This will take around 4 minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to get out \his straight jacket!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 1200))
|
||||
if(!istype(usr:wear_suit, /obj/item/clothing/suit/straight_jacket)) return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to wriggle out of the straight jacket!</B>", usr), 1)
|
||||
usr << "\blue You successfully get out of your straight jacket."
|
||||
var/obj/sj = usr:wear_suit
|
||||
usr.remove_from_mob(sj)
|
||||
sj.loc = usr.loc
|
||||
if(usr:handcuffed && (usr.last_special <= world.time) && usr:buckled)
|
||||
usr.next_move = world.time + 100
|
||||
usr.last_special = world.time + 100
|
||||
usr << "\red You attempt to unbuckle yourself. (This will take around 2 minutes and you need to stand still)"
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] attempts to unbuckle themself!</B>", usr), 1)
|
||||
spawn(0)
|
||||
if(do_after(usr, 1200))
|
||||
if(!usr:buckled)
|
||||
return
|
||||
for(var/mob/O in viewers(usr))
|
||||
O.show_message(text("\red <B>[] manages to unbuckle themself!</B>", usr), 1)
|
||||
usr << "\blue You successfully unbuckle yourself."
|
||||
usr:buckled.manual_unbuckle(usr)
|
||||
@@ -23,7 +23,7 @@
|
||||
del(O.organs)
|
||||
O.organs = organs
|
||||
for(var/name in O.organs)
|
||||
var/datum/organ/external/organ = O[name]
|
||||
var/datum/organ/external/organ = O.organs[name]
|
||||
organ.owner = O
|
||||
for(var/obj/item/weapon/implant/implant in organ.implant)
|
||||
implant.imp_in = O
|
||||
@@ -135,16 +135,8 @@
|
||||
O << "4.) Your laws are not in preference, laws do not take preference over one another unless specifically stated in the law."
|
||||
O << "<br>We want everyone to have a good time, so we, the admins, will try to correct you if you stray from these rules. Just try to keep it sensible."
|
||||
|
||||
O.verbs += AI_VERB_LIST
|
||||
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_call_shuttle
|
||||
O.verbs += /mob/living/silicon/ai/proc/show_laws_verb
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_camera_track
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_alerts
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_camera_list
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_statuschange
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_roster
|
||||
|
||||
// O.verbs += /mob/living/silicon/ai/proc/ai_cancel_call
|
||||
O.job = "AI"
|
||||
|
||||
spawn(0)
|
||||
@@ -398,18 +390,8 @@
|
||||
O << "4.) Your laws are not in preference, laws do not take preference over one another unless specifically stated in the law."
|
||||
O << "<br>We want everyone to have a good time, so we, the admins, will try to correct you if you stray from these rules. Just try to keep it sensible."
|
||||
|
||||
//If you add a verb here, make sure to add it to silicon\ai\ai.dm too.
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_call_shuttle
|
||||
O.verbs += /mob/living/silicon/ai/proc/show_laws_verb
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_camera_track
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_alerts
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_camera_list
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_network_change
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_statuschange
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_hologram_change
|
||||
O.verbs += /mob/living/silicon/ai/proc/ai_roster
|
||||
O.verbs += AI_VERB_LIST
|
||||
|
||||
// O.verbs += /mob/living/silicon/ai/proc/ai_cancel_call
|
||||
O.job = "AI"
|
||||
|
||||
spawn(0)
|
||||
|
||||
@@ -150,23 +150,23 @@
|
||||
if(usr /*&& !usr.stat*/)
|
||||
usr << "A control terminal for the area electrical systems."
|
||||
if(stat & BROKEN)
|
||||
usr << "Looks broken."
|
||||
usr << "It looks broken."
|
||||
return
|
||||
if(opened)
|
||||
if(has_electronics && terminal)
|
||||
usr << "The cover is [opened==2?"removed":"open"] and the power cell is [ cell ? "installed" : "missing"]."
|
||||
else if (!has_electronics && terminal)
|
||||
usr << "There are some wires but no any electronics."
|
||||
usr << "There are some wires but no electronics."
|
||||
else if (has_electronics && !terminal)
|
||||
usr << "Electronics installed but not wired."
|
||||
usr << "There are electronics installed but they're not wired."
|
||||
else /* if (!has_electronics && !terminal) */
|
||||
usr << "There is no electronics nor connected wires."
|
||||
usr << "There are no electronics or any connected wires."
|
||||
|
||||
else
|
||||
if (stat & MAINT)
|
||||
usr << "The cover is closed. Something is wrong with it, it doesn't work."
|
||||
usr << "The cover is closed. It looks like it 's not working."
|
||||
else if (malfhack)
|
||||
usr << "The cover is broken. It may be hard to force it open."
|
||||
usr << "The cover is broken. It looks like it'll be hard to force open."
|
||||
else
|
||||
usr << "The cover is closed."
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
if (istype(W, /obj/item/weapon/crowbar) && opened)
|
||||
if (has_electronics==1)
|
||||
if (terminal)
|
||||
user << "\red Disconnect wires first."
|
||||
user << "\red You need to cut the wires first."
|
||||
return
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
user << "You try to remove the power control board..."
|
||||
@@ -222,7 +222,7 @@
|
||||
if ((stat & BROKEN) || malfhack)
|
||||
user.visible_message(\
|
||||
"\red [user.name] has broken the power control board inside [src.name]!",\
|
||||
"You broke the charred power control board and remove the remains.",
|
||||
"You break the charred power control board and remove the remains.",
|
||||
"You hear a crack!")
|
||||
//ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
|
||||
else
|
||||
@@ -238,7 +238,7 @@
|
||||
user.visible_message("\red [user] starts removing the broken APC cover with \the [W]!", \
|
||||
"\red You start removing the broken APC cover!")
|
||||
if(do_after(user, 50))
|
||||
user.visible_message("\red The broken APC cover was removed with \the [W] by [user.name]!", \
|
||||
user.visible_message("\red [user.name] removes the broken APC cover with \the [W]!", \
|
||||
"\red You remove the broken APC cover with your [W.name]!")
|
||||
opened = 2
|
||||
cover_unscrewed = 0
|
||||
@@ -254,24 +254,24 @@
|
||||
updateicon()
|
||||
else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside
|
||||
if(cell)
|
||||
user << "There is a power cell already installed."
|
||||
user << "There's a power cell installed already."
|
||||
return
|
||||
else
|
||||
if (stat & MAINT)
|
||||
user << "\red There is no any connector for your power cell."
|
||||
user << "\red There aren't any connectors for the power cell."
|
||||
return
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
cell = W
|
||||
user.visible_message(\
|
||||
"\red [user.name] has inserted the power cell to [src.name]!",\
|
||||
"\red [user.name] has inserted the power cell into [src.name]!",\
|
||||
"You insert the power cell.")
|
||||
chargecount = 0
|
||||
updateicon()
|
||||
else if (istype(W, /obj/item/weapon/screwdriver)) // haxing
|
||||
if(opened)
|
||||
if (cell)
|
||||
user << "\red Remove the power cell first." //FUCK YOU, USEFUL MESSAGES ARE GOOD
|
||||
user << "\red You need to remove the power cell first." //FUCK YOU, USEFUL MESSAGES ARE GOOD
|
||||
return
|
||||
else
|
||||
if (has_electronics==1 && terminal)
|
||||
@@ -285,7 +285,7 @@
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
user << "You unfasten the electronics."
|
||||
else /* has_electronics==0 */
|
||||
user << "\red There is nothing to secure."
|
||||
user << "\red There's nothing to secure here."
|
||||
return
|
||||
updateicon()
|
||||
else if((stat & BROKEN) || malfhack)
|
||||
@@ -293,12 +293,12 @@
|
||||
user.visible_message("\red [user] starts unscrewing the broken APC cover with \the [W]!", \
|
||||
"\red You start unscrewing the broken APC cover!")
|
||||
if(do_after(user, 50))
|
||||
user.visible_message("\red The broken APC cover was unscrewed with \the [W] by [user.name]!", \
|
||||
user.visible_message("\red [user.name] unscrews the broken APC cover with \the [W]!", \
|
||||
"\red You unscrew the broken APC cover with your [W.name]!")
|
||||
cover_unscrewed = 1
|
||||
updateicon()
|
||||
else if(emagged)
|
||||
user << "The interface is broken."
|
||||
user << "The interface seems broken."
|
||||
else
|
||||
wiresexposed = !wiresexposed
|
||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||
@@ -306,11 +306,11 @@
|
||||
|
||||
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
|
||||
if(emagged)
|
||||
user << "The interface is broken."
|
||||
user << "The interface seems broken."
|
||||
else if(opened)
|
||||
user << "You must close the cover to swipe an ID card."
|
||||
user << "You have to close the cover to swipe an ID card."
|
||||
else if(wiresexposed)
|
||||
user << "You must close the panel"
|
||||
user << "You have to close the panel."
|
||||
else if(stat & (BROKEN|MAINT))
|
||||
user << "Nothing happens."
|
||||
else
|
||||
@@ -328,9 +328,9 @@
|
||||
else
|
||||
return
|
||||
if(opened)
|
||||
user << "You must close the cover to swipe an ID card."
|
||||
user << "You have to close the cover to swipe an ID card."
|
||||
else if(wiresexposed)
|
||||
user << "You must close the panel first"
|
||||
user << "You have to close the panel first"
|
||||
else if(stat & (BROKEN|MAINT))
|
||||
user << "Nothing happens."
|
||||
else
|
||||
@@ -345,7 +345,7 @@
|
||||
user << "You fail to [ locked ? "unlock" : "lock"] the APC interface."
|
||||
else if (istype(W, /obj/item/weapon/cable_coil) && !terminal && opened && has_electronics!=2)
|
||||
if (src.loc:intact)
|
||||
user << "\red There is no floor with the plating revealed in front of the APC."
|
||||
user << "\red You have to remove the floor plating in front of the APC first."
|
||||
return
|
||||
var/obj/item/weapon/cable_coil/C = W
|
||||
if(C.amount < 10)
|
||||
@@ -369,7 +369,7 @@
|
||||
terminal.connect_to_network()
|
||||
else if (istype(W, /obj/item/weapon/wirecutters) && terminal && opened && has_electronics!=2)
|
||||
if (src.loc:intact)
|
||||
user << "\red You must remove the floor plating in front of the APC first."
|
||||
user << "\red You have to remove the floor plating in front of the APC first."
|
||||
return
|
||||
user << "You begin to cut cables..."
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
@@ -381,11 +381,11 @@
|
||||
return
|
||||
new /obj/item/weapon/cable_coil(loc,10)
|
||||
user.visible_message(\
|
||||
"\red [user.name] cut cables and dismantled the power terminal.",\
|
||||
"You cut cables and dismantle the power terminal.")
|
||||
"\red [user.name] cuts the cables and dismantles the power terminal.",\
|
||||
"You cut the cable and dismantle the power terminal.")
|
||||
del(terminal)
|
||||
else if (istype(W, /obj/item/weapon/module/power_control) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack))
|
||||
user << "You try to insert the power control board into the frame..."
|
||||
user << "You start to insert the power control board into the frame..."
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 10))
|
||||
has_electronics = 1
|
||||
@@ -396,7 +396,7 @@
|
||||
return
|
||||
else if (istype(W, /obj/item/weapon/weldingtool) && W:welding && opened && has_electronics==0 && !terminal)
|
||||
if (W:get_fuel() < 3)
|
||||
user << "\blue You need more welding fuel to complete this task."
|
||||
user << "\blue You need more welding fuel to do this."
|
||||
return
|
||||
user << "You start welding APC frame..."
|
||||
if(W:remove_fuel(0,user))
|
||||
@@ -407,13 +407,13 @@
|
||||
if (emagged || malfhack || (stat & BROKEN) || opened==2)
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
user.visible_message(\
|
||||
"\red [src] has been cut apart by [user.name] with the weldingtool.",\
|
||||
"You disassembled the broken APC frame.",\
|
||||
"\red \The [src] has been cut apart by [user.name] with the welding tool.",\
|
||||
"You disassemble the broken APC frame.",\
|
||||
"\red You hear welding.")
|
||||
else
|
||||
new /obj/item/apc_frame(loc)
|
||||
user.visible_message(\
|
||||
"\red [src] has been cut from the wall by [user.name] with the weldingtool.",\
|
||||
"\red \The [src] has been cut from the wall by [user.name] with the welding tool.",\
|
||||
"You cut APC frame from the wall.",\
|
||||
"\red You hear welding.")
|
||||
W:welding = 1
|
||||
@@ -424,19 +424,19 @@
|
||||
if (opened==2)
|
||||
opened = 1
|
||||
user.visible_message(\
|
||||
"\red [user.name] has replaced the damaged APC frontal panel with a new one.",\
|
||||
"You replace the damaged APC frontal panel with a new one.")
|
||||
"\red [user.name] replaces the damaged APC panel with a new one.",\
|
||||
"You replace the damaged APC panel with a new one.")
|
||||
del(W)
|
||||
updateicon()
|
||||
else if (istype(W, /obj/item/apc_frame) && opened && ((stat & BROKEN) || malfhack))
|
||||
if (has_electronics)
|
||||
user << "You cannot repair this APC until you remove the electronics still inside."
|
||||
user << "You cannot repair this APC until you remove the electronics inside."
|
||||
return
|
||||
user << "You begin to replace the damaged APC frame..."
|
||||
if(do_after(user, 50))
|
||||
user.visible_message(\
|
||||
"\red [user.name] has replaced the damaged APC frame with new one.",\
|
||||
"You replace the damaged APC frame with new one.")
|
||||
"\red [user.name] has replaced the damaged APC frame with a new one.",\
|
||||
"You replace the damaged APC frame with a new one.")
|
||||
del(W)
|
||||
stat &= ~BROKEN
|
||||
malfai = null
|
||||
@@ -452,8 +452,8 @@
|
||||
&& W.w_class >= 3.0 \
|
||||
&& prob(20) )
|
||||
opened = 2
|
||||
user.visible_message("\red The APC cover was knocked down with the [W.name] by [user.name]!", \
|
||||
"\red You knock down the APC cover with your [W.name]!", \
|
||||
user.visible_message("\red The APC cover has been knocked down with \the [W.name] by [user.name]!", \
|
||||
"\red You knock down the APC cover with \the [W.name]!", \
|
||||
"You hear a loud bang!")
|
||||
updateicon()
|
||||
else
|
||||
@@ -463,9 +463,9 @@
|
||||
(istype(W, /obj/item/device/multitool) || \
|
||||
istype(W, /obj/item/weapon/wirecutters)))
|
||||
return src.attack_hand(user)
|
||||
user.visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!", \
|
||||
"\red You hit the [src.name] with your [W.name]!", \
|
||||
"You hear bang")
|
||||
user.visible_message("\red The [src.name] has been hit with \the [W.name] by [user.name]!", \
|
||||
"\red You hit the [src.name] with \the [W.name]!", \
|
||||
"You hear a banging sound.")
|
||||
|
||||
// attack with hand - remove cell (if cover open) or interact with the APC
|
||||
|
||||
@@ -769,7 +769,7 @@
|
||||
(istype(robot) && (robot in malfai.connected_robots)) \
|
||||
) \
|
||||
)
|
||||
user << "\red \The [src] have AI control disabled!"
|
||||
user << "\red \The [src] has it's AI control disabled!"
|
||||
user << browse(null, "window=apc")
|
||||
user.machine = null
|
||||
return 0
|
||||
@@ -782,10 +782,10 @@
|
||||
if (istype(H))
|
||||
if(H.getBrainLoss() >= 60)
|
||||
for(var/mob/M in viewers(src, null))
|
||||
M << "\red [H] stares cluelessly at [src] and drools."
|
||||
M << "\red [H] stares cluelessly at \the [src] and drools."
|
||||
return 0
|
||||
else if(prob(H.getBrainLoss()))
|
||||
user << "\red You momentarily forget how to use [src]."
|
||||
user << "\red You momentarily forget how to use \the [src]."
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -873,7 +873,7 @@
|
||||
if (malfai.malfhacking)
|
||||
malfai << "You are already hacking an APC."
|
||||
return
|
||||
malfai << "Beginning override of APC systems. This takes some time, and you cannot perform other actions during the process."
|
||||
malfai << "Beginning override of APC systems. This will take some time, and you cannot perform other actions during the process."
|
||||
malfai.malfhack = src
|
||||
malfai.malfhacking = 1
|
||||
sleep(600)
|
||||
@@ -932,7 +932,7 @@
|
||||
del(src.occupant)
|
||||
|
||||
else
|
||||
src.occupant << "\red Primary core damaged, unable to return core processes."
|
||||
src.occupant << "\red Primary core damaged, unable to return to core processes."
|
||||
if(forced)
|
||||
src.occupant.loc = src.loc
|
||||
src.occupant.death()
|
||||
@@ -958,7 +958,7 @@
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
for(var/mob/M in viewers(src))
|
||||
M.show_message("\red The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "\red You hear sizzling electronics.", 2)
|
||||
M.show_message("\red The [src.name] suddenly lets out a blast of smoke and sparks!", 3, "\red You hear sizzling electronics.", 2)
|
||||
|
||||
|
||||
/obj/machinery/power/apc/surplus()
|
||||
|
||||
@@ -30,7 +30,9 @@
|
||||
overlays += image('power.dmi', "cell-o1")
|
||||
|
||||
/obj/item/weapon/cell/proc/percent() // return % charge of cell
|
||||
return 100.0*charge/maxcharge
|
||||
if(maxcharge)
|
||||
return 100.0*charge/maxcharge
|
||||
return 0
|
||||
|
||||
// use power from a cell
|
||||
/obj/item/weapon/cell/proc/use(var/amount)
|
||||
|
||||
@@ -89,11 +89,11 @@
|
||||
part.update_icon()
|
||||
if(src.strength > 2)
|
||||
src.strength = 2
|
||||
message_admins("[usr] increased particle accelerator power to [strength].")
|
||||
log_admin("[usr] increased particle accelerator power to [strength].")
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength = 2
|
||||
part.update_icon()
|
||||
message_admins("[usr] increased particle accelerator power to [strength].")
|
||||
log_admin("[usr] increased particle accelerator power to [strength].")
|
||||
if(href_list["strengthdown"])
|
||||
src.strength--
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
@@ -101,11 +101,11 @@
|
||||
part.update_icon()
|
||||
if(src.strength < 0)
|
||||
src.strength = 0
|
||||
message_admins("[usr] decreased particle accelerator power to [strength].")
|
||||
log_admin("[usr] decreased particle accelerator power to [strength].")
|
||||
for(var/obj/structure/particle_accelerator/part in connected_parts)
|
||||
part.strength = 0
|
||||
part.update_icon()
|
||||
message_admins("[usr] decreased particle accelerator power to [strength].")
|
||||
log_admin("[usr] decreased particle accelerator power to [strength].")
|
||||
src.updateDialog()
|
||||
src.update_icon()
|
||||
return
|
||||
|
||||
@@ -30,11 +30,15 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
if( href_list["view"] )
|
||||
usr.client.eye = src
|
||||
if( href_list["close"] )
|
||||
usr << browse(null, "window=turbinegen")
|
||||
usr.machine = null
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
else if( href_list["str"] )
|
||||
starter = !starter
|
||||
src.updateDialog()
|
||||
|
||||
src.updateDialog()
|
||||
|
||||
#define COMPFRICTION 5e5
|
||||
#define COMPSTARTERLOAD 2800
|
||||
@@ -72,6 +76,31 @@
|
||||
overlays += image('pipes.dmi', "comp-o1", FLY_LAYER)
|
||||
//TODO: DEFERRED
|
||||
|
||||
attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_paw(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
user.machine = src
|
||||
|
||||
var/dat = "<TT><B>Gas turbine generator</B><HR>"
|
||||
if(turbine)
|
||||
dat += "Turbine status: [starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]<BR>"
|
||||
dat += "Turbine speed: [rpm]rpm<BR>"
|
||||
dat += "Power currently being generated: [turbine.lastgen]W<BR>"
|
||||
dat += "Internal gas temperature: [gas_contained.temperature]K<BR>"
|
||||
else
|
||||
dat += "\red No turbine found.<br>"
|
||||
dat += "<HR>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
|
||||
user << browse(dat, "window=turbinegen;size=400x500")
|
||||
onclose(user, "turbinegen")
|
||||
|
||||
/obj/machinery/power/turbine
|
||||
name = "gas turbine generator"
|
||||
desc = "A gas turbine used for backup power generation."
|
||||
@@ -92,7 +121,6 @@
|
||||
if(!compressor)
|
||||
stat |= BROKEN
|
||||
|
||||
|
||||
#define TURBPRES 9000000
|
||||
#define TURBGENQ 20000
|
||||
#define TURBGENG 0.8
|
||||
@@ -123,65 +151,40 @@
|
||||
if(lastgen > 100)
|
||||
overlays += image('pipes.dmi', "turb-o", FLY_LAYER)
|
||||
|
||||
for(var/mob/M in viewers(1, src))
|
||||
if ((M.client && M.machine == src))
|
||||
src.interact(M)
|
||||
AutoUpdateAI(src)
|
||||
attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_ai(mob/user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
interact(user)
|
||||
attack_paw(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
interact(user)
|
||||
|
||||
proc/interact(mob/user)
|
||||
if ( (get_dist(src, user) > 1 ) || (stat & (NOPOWER|BROKEN)) && (!istype(user, /mob/living/silicon/ai)) )
|
||||
user.machine = null
|
||||
user << browse(null, "window=turbine")
|
||||
attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
user.machine = src
|
||||
|
||||
var/t = "<TT><B>Gas Turbine Generator</B><HR>"
|
||||
t += "Generated power : [round(lastgen)] W<BR>"
|
||||
t += "Turbine: [round(compressor.rpm)] RPM<BR>"
|
||||
t += "Starter: [ compressor.starter ? "<A href='?src=\ref[src];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1'>On</A>"]"
|
||||
t += "<HR>"
|
||||
t += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A>"
|
||||
var/dat = "<TT><B>Gas turbine generator</B><HR>"
|
||||
if(compressor)
|
||||
dat += "Turbine status: [compressor.starter ? "<A href='?src=\ref[compressor];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[compressor];str=1'>On</A>"]<BR>"
|
||||
dat += "Turbine speed: [compressor.rpm]rpm<BR>"
|
||||
dat += "Power currently being generated: [lastgen]W<BR>"
|
||||
dat += "Internal gas temperature: [compressor.gas_contained.temperature]K<BR>"
|
||||
else
|
||||
dat += "\red No compressor found.<br>"
|
||||
dat += "<HR>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
|
||||
user << browse(t, "window=turbine")
|
||||
onclose(user, "turbine")
|
||||
return
|
||||
user << browse(dat, "window=turbinegen;size=400x500")
|
||||
onclose(user, "turbinegen")
|
||||
|
||||
Topic(href, href_list)
|
||||
..()
|
||||
if(stat & BROKEN)
|
||||
if(..())
|
||||
return
|
||||
if (usr.stat || usr.restrained() )
|
||||
return
|
||||
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
||||
if(!istype(usr, /mob/living/silicon/ai))
|
||||
usr << "\red You don't have the dexterity to do this!"
|
||||
return
|
||||
if (( usr.machine==src && ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai)))
|
||||
if( href_list["close"] )
|
||||
usr << browse(null, "window=turbine")
|
||||
usr.machine = null
|
||||
return
|
||||
else if( href_list["str"] )
|
||||
compressor.starter = !compressor.starter
|
||||
spawn(0)
|
||||
for(var/mob/M in viewers(1, src))
|
||||
if ((M.client && M.machine == src))
|
||||
src.interact(M)
|
||||
else
|
||||
usr << browse(null, "window=turbine")
|
||||
|
||||
if( href_list["close"] )
|
||||
usr << browse(null, "window=turbinegen")
|
||||
usr.machine = null
|
||||
return
|
||||
|
||||
src.updateDialog()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -200,14 +203,31 @@
|
||||
New()
|
||||
..()
|
||||
compressors = new/list()
|
||||
doors = new/list()
|
||||
spawn(5)
|
||||
for(var/obj/machinery/compressor/C in world)
|
||||
if(src.vent_network == C.comp_id)
|
||||
compressors.Add(C)
|
||||
for(var/obj/machinery/door/poddoor/D in world)
|
||||
if(src.vent_network == D.networkTag)
|
||||
if(src.vent_network == D.id)
|
||||
doors.Add(D)
|
||||
|
||||
process()
|
||||
..()
|
||||
src.updateDialog()
|
||||
|
||||
power_change()
|
||||
if(stat & BROKEN)
|
||||
icon_state = "broken"
|
||||
else
|
||||
if( powered() )
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
src.icon_state = "c_unpowered"
|
||||
stat |= NOPOWER
|
||||
|
||||
/*
|
||||
/obj/machinery/computer/turbine_computer/attackby(I as obj, user as mob)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
@@ -243,42 +263,48 @@
|
||||
return
|
||||
*/
|
||||
|
||||
attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_paw(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
interact()
|
||||
return
|
||||
|
||||
proc/interact()
|
||||
if ( (get_dist(src, usr) > 1 ) || (stat & (NOPOWER|BROKEN)) && (!istype(usr, /mob/living/silicon/ai)) )
|
||||
usr.machine = null
|
||||
usr << browse(null, "window=turbinecomp")
|
||||
if(..())
|
||||
return
|
||||
usr.machine = src
|
||||
user.machine = src
|
||||
|
||||
var/dat = "<TT><B>Gas turbine remote control system</B><HR>"
|
||||
var/dat = "<TT><B>Gas turbine remote control system</B>"
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
dat += "<HR>"
|
||||
|
||||
if(src.doors.len)
|
||||
var/closed = 0
|
||||
for(var/obj/machinery/door/poddoor/D in src.doors)
|
||||
if(D.density)
|
||||
closed = 1
|
||||
dat += "Connected vent status: <font color=blue>[closed ? "<b>Closed</b> <a href='?src=\ref[src];opendoors=1'>\[Open\]</a>" : "<b>Open</b> <a href='?src=\ref[src];closedoors=1'>\[Close\]</a>"]</font>"
|
||||
dat += "Connected vent door status: <font color=blue>[closed ? "<b>Closed</b> <a href='?src=\ref[src];opendoors=1'>\[Open\]</a>" : "<a href='?src=\ref[src];closedoors=1'>\[Close\]</a> <b>Open</b>"]</font>"
|
||||
else
|
||||
dat += "<font color=red><b>No vents connected.</b></font>"
|
||||
dat += "<hr>"
|
||||
|
||||
if(src.compressors.len)
|
||||
for(var/obj/machinery/compressor/C in compressors)
|
||||
dat += "Turbine status: [C.starter ? "<A href='?src=\ref[C];str=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[C];str=1'>On</A>"]<BR>"
|
||||
dat += "Turbine speed: [C.rpm]rpm<BR>"
|
||||
dat += "Power currently being generated: [C.turbine.lastgen]W<BR>"
|
||||
dat += "Internal gas temperature: [C.gas_contained.temperature]K<BR>"
|
||||
dat += "<A href='?src=\ref[src];view=1'>View</A><BR>"
|
||||
if(C.turbine)
|
||||
dat += "Turbine status: [C.starter ? "<A href='?src=\ref[src];str=1;comp=\ref[C]'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];str=1;comp=\ref[C]'>On</A>"]<BR>"
|
||||
dat += "Turbine speed: [C.rpm]rpm<BR>"
|
||||
dat += "Power currently being generated: [C.turbine.lastgen]W<BR>"
|
||||
dat += "Internal gas temperature: [C.gas_contained.temperature]K<BR>"
|
||||
dat += "<A href='?src=\ref[src];view=1;comp=\ref[C]'>View</A><BR>"
|
||||
else
|
||||
dat += "\red Invalid turbine/compressor configuration.<br>"
|
||||
dat += "<HR>"
|
||||
else
|
||||
dat += "\red<B>No compatible attached compressors found."
|
||||
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</A> <A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
|
||||
usr << browse(dat, "window=turbinecomp;size=400x500")
|
||||
onclose(usr, "turbinecomp")
|
||||
user << browse(dat, "window=turbinecomp;size=400x500")
|
||||
onclose(user, "turbinecomp")
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
@@ -288,19 +314,24 @@
|
||||
for(var/obj/machinery/door/poddoor/D in src.doors)
|
||||
spawn(0)
|
||||
D.open()
|
||||
if (href_list["closedoors"])
|
||||
src.updateDialog()
|
||||
else if (href_list["closedoors"])
|
||||
for(var/obj/machinery/door/poddoor/D in src.doors)
|
||||
spawn(0)
|
||||
D.close()
|
||||
src.updateDialog()
|
||||
|
||||
else if( href_list["view"] )
|
||||
var/obj/machinery/compressor/C = locate(href_list["comp"])
|
||||
if(C)
|
||||
usr.client.eye = C
|
||||
else if( href_list["str"] )
|
||||
var/obj/machinery/compressor/C = locate(href_list["comp"])
|
||||
if(C)
|
||||
C.starter = !C.starter
|
||||
|
||||
else if( href_list["close"] )
|
||||
usr << browse(null, "window=turbinecomp")
|
||||
usr.machine = null
|
||||
return
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
process()
|
||||
src.updateDialog()
|
||||
return
|
||||
@@ -529,7 +529,8 @@ client/verb
|
||||
if(!target_can_run)
|
||||
M << "\red Your move intent is now set to walk, as your targeter permits it."
|
||||
M.m_intent = "walk"
|
||||
M.hud_used.move_intent.icon_state = "walking"
|
||||
if(M.hud_used.move_intent)
|
||||
M.hud_used.move_intent.icon_state = "walking"
|
||||
else
|
||||
M << "\red <b>Your character will now be shot if they move.</b>"
|
||||
AllowTargetRun()
|
||||
|
||||
@@ -87,17 +87,19 @@
|
||||
return 0
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
if(!(locate(/obj/item/ammo_casing/shotgun) in src) && !loaded.len)
|
||||
user << "<span class='notice'>\The [src] is empty.</span>"
|
||||
return
|
||||
if(..())
|
||||
if(!(locate(/obj/item/ammo_casing/shotgun) in src) && !loaded.len)
|
||||
user << "<span class='notice'>\The [src] is empty.</span>"
|
||||
return
|
||||
|
||||
for(var/obj/item/ammo_casing/shotgun/shell in src) //This feels like a hack. //don't code at 3:30am kids!!
|
||||
if(shell in loaded)
|
||||
loaded -= shell
|
||||
shell.loc = get_turf(src.loc)
|
||||
for(var/obj/item/ammo_casing/shotgun/shell in src) //This feels like a hack. //don't code at 3:30am kids!!
|
||||
if(shell in loaded)
|
||||
loaded -= shell
|
||||
shell.loc = get_turf(src.loc)
|
||||
|
||||
user << "<span class='notice'>You break \the [src].</span>"
|
||||
update_icon()
|
||||
user << "<span class='notice'>You break \the [src].</span>"
|
||||
update_icon()
|
||||
return
|
||||
|
||||
attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
if(istype(A, /obj/item/ammo_casing) && !load_method)
|
||||
|
||||
Reference in New Issue
Block a user