mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -80,7 +80,6 @@
|
|||||||
#define FILE_DIR "code/game/objects/stacks"
|
#define FILE_DIR "code/game/objects/stacks"
|
||||||
#define FILE_DIR "code/game/objects/storage"
|
#define FILE_DIR "code/game/objects/storage"
|
||||||
#define FILE_DIR "code/game/objects/tanks"
|
#define FILE_DIR "code/game/objects/tanks"
|
||||||
#define FILE_DIR "code/game/structure"
|
|
||||||
#define FILE_DIR "code/game/verbs"
|
#define FILE_DIR "code/game/verbs"
|
||||||
#define FILE_DIR "code/js"
|
#define FILE_DIR "code/js"
|
||||||
#define FILE_DIR "code/modules"
|
#define FILE_DIR "code/modules"
|
||||||
@@ -147,6 +146,7 @@
|
|||||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
|
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
|
||||||
#define FILE_DIR "code/WorkInProgress/mapload"
|
#define FILE_DIR "code/WorkInProgress/mapload"
|
||||||
#define FILE_DIR "code/WorkInProgress/Mini"
|
#define FILE_DIR "code/WorkInProgress/Mini"
|
||||||
|
#define FILE_DIR "code/WorkInProgress/Mloc"
|
||||||
#define FILE_DIR "code/WorkInProgress/organs"
|
#define FILE_DIR "code/WorkInProgress/organs"
|
||||||
#define FILE_DIR "code/WorkInProgress/Ported"
|
#define FILE_DIR "code/WorkInProgress/Ported"
|
||||||
#define FILE_DIR "code/WorkInProgress/Ported/Abi79"
|
#define FILE_DIR "code/WorkInProgress/Ported/Abi79"
|
||||||
@@ -517,7 +517,7 @@
|
|||||||
#include "code\game\machinery\computer\id.dm"
|
#include "code\game\machinery\computer\id.dm"
|
||||||
#include "code\game\machinery\computer\lockdown.dm"
|
#include "code\game\machinery\computer\lockdown.dm"
|
||||||
#include "code\game\machinery\computer\medical.dm"
|
#include "code\game\machinery\computer\medical.dm"
|
||||||
#include "code\game\machinery\computer\operating.dm"
|
#include "code\game\machinery\computer\Operating.dm"
|
||||||
#include "code\game\machinery\computer\power.dm"
|
#include "code\game\machinery\computer\power.dm"
|
||||||
#include "code\game\machinery\computer\robot.dm"
|
#include "code\game\machinery\computer\robot.dm"
|
||||||
#include "code\game\machinery\computer\security.dm"
|
#include "code\game\machinery\computer\security.dm"
|
||||||
@@ -724,7 +724,6 @@
|
|||||||
#include "code\game\objects\tanks\emergency.dm"
|
#include "code\game\objects\tanks\emergency.dm"
|
||||||
#include "code\game\objects\tanks\jetpack.dm"
|
#include "code\game\objects\tanks\jetpack.dm"
|
||||||
#include "code\game\objects\tanks\oxygen.dm"
|
#include "code\game\objects\tanks\oxygen.dm"
|
||||||
#include "code\game\structure\structure.dm"
|
|
||||||
#include "code\game\verbs\AI_status.dm"
|
#include "code\game\verbs\AI_status.dm"
|
||||||
#include "code\game\verbs\checkkarma.dm"
|
#include "code\game\verbs\checkkarma.dm"
|
||||||
#include "code\game\verbs\ooc.dm"
|
#include "code\game\verbs\ooc.dm"
|
||||||
@@ -1033,6 +1032,7 @@
|
|||||||
#include "code\WorkInProgress\mapload\reader.dm"
|
#include "code\WorkInProgress\mapload\reader.dm"
|
||||||
#include "code\WorkInProgress\Mini\atmos_control.dm"
|
#include "code\WorkInProgress\Mini\atmos_control.dm"
|
||||||
#include "code\WorkInProgress\Mini\customitems.dm"
|
#include "code\WorkInProgress\Mini\customitems.dm"
|
||||||
|
#include "code\WorkInProgress\Mloc\Shortcuts.dm"
|
||||||
#include "code\WorkInProgress\Ported\head.dm"
|
#include "code\WorkInProgress\Ported\head.dm"
|
||||||
#include "code\WorkInProgress\Ported\policetape.dm"
|
#include "code\WorkInProgress\Ported\policetape.dm"
|
||||||
#include "code\WorkInProgress\Ported\Abi79\uplink_kits.dm"
|
#include "code\WorkInProgress\Ported\Abi79\uplink_kits.dm"
|
||||||
|
|||||||
33
code/WorkInProgress/Mloc/Shortcuts.dm
Normal file
33
code/WorkInProgress/Mloc/Shortcuts.dm
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/mob/verb/shortcut_changeintent(var/changeto as num)
|
||||||
|
set name = "_changeintent"
|
||||||
|
set hidden = 1
|
||||||
|
if(istype(usr,/mob/living/carbon))
|
||||||
|
if(changeto == 1)
|
||||||
|
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"
|
||||||
|
else if(changeto == -1)
|
||||||
|
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"
|
||||||
|
return
|
||||||
@@ -193,10 +193,20 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
|||||||
return
|
return
|
||||||
|
|
||||||
explode()
|
explode()
|
||||||
|
var/turf/location = get_turf(src.loc)
|
||||||
|
if(location)
|
||||||
|
location.hotspot_expose(700,125)
|
||||||
|
explosion(location, 0, 0, 2, 4, 1)
|
||||||
|
|
||||||
var/obj/item/weapon/implant/uplink/U = src.loc
|
var/obj/item/weapon/implant/uplink/U = src.loc
|
||||||
var/mob/living/A = U.imp_in
|
var/mob/living/A = U.imp_in
|
||||||
A.gib()
|
var/datum/organ/external/head = A:organs["head"]
|
||||||
..()
|
head.destroyed = 1
|
||||||
|
spawn(2)
|
||||||
|
head.droplimb()
|
||||||
|
del(src.master)
|
||||||
|
del(src)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/uplink/radio
|
/obj/item/device/uplink/radio
|
||||||
|
|||||||
@@ -663,6 +663,25 @@
|
|||||||
anchored = 1.0
|
anchored = 1.0
|
||||||
var/list/buckled_mobs = list( )
|
var/list/buckled_mobs = list( )
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy
|
||||||
|
name = "comfy chair"
|
||||||
|
desc = "It looks comfy."
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy/brown
|
||||||
|
icon_state = "comfychair_brown"
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy/beige
|
||||||
|
icon_state = "comfychair_beige"
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy/teal
|
||||||
|
icon_state = "comfychair_teal"
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy/black
|
||||||
|
icon_state = "comfychair_black"
|
||||||
|
|
||||||
|
/obj/stool/chair/comfy/lime
|
||||||
|
icon_state = "comfychair_lime"
|
||||||
|
|
||||||
/obj/structure/stool/chair/e_chair
|
/obj/structure/stool/chair/e_chair
|
||||||
name = "electrified chair"
|
name = "electrified chair"
|
||||||
desc = "Looks absolutely terrifying!"
|
desc = "Looks absolutely terrifying!"
|
||||||
|
|||||||
@@ -293,6 +293,9 @@
|
|||||||
/atom/Click(location,control,params)
|
/atom/Click(location,control,params)
|
||||||
//world << "atom.Click() on [src] by [usr] : src.type is [src.type]"
|
//world << "atom.Click() on [src] by [usr] : src.type is [src.type]"
|
||||||
var/list/pram = params2list(params)
|
var/list/pram = params2list(params)
|
||||||
|
if((pram["alt"] != null && pram["ctrl"] != null && pram["left"] != null) && istype(src,/atom/movable))
|
||||||
|
src:pull()
|
||||||
|
return
|
||||||
if(pram["ctrl"] != null && pram["left"] != null)
|
if(pram["ctrl"] != null && pram["left"] != null)
|
||||||
src.examine()
|
src.examine()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -482,6 +482,7 @@
|
|||||||
I.implanted = O
|
I.implanted = O
|
||||||
O.flavor_text = M.flavor_text
|
O.flavor_text = M.flavor_text
|
||||||
O.warn_flavor_changed()
|
O.warn_flavor_changed()
|
||||||
|
O.update_clothing()
|
||||||
del(M)
|
del(M)
|
||||||
return
|
return
|
||||||
//////////////////////////////////////////////////////////// Monkey Block
|
//////////////////////////////////////////////////////////// Monkey Block
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
flag = BOTANIST
|
flag = BOTANIST
|
||||||
department_flag = CIVILIAN
|
department_flag = CIVILIAN
|
||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 3
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
flag = ATMOSTECH
|
flag = ATMOSTECH
|
||||||
department_flag = ENGSEC
|
department_flag = ENGSEC
|
||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 3
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the chief engineer"
|
supervisors = "the chief engineer"
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
flag = ROBOTICIST
|
flag = ROBOTICIST
|
||||||
department_flag = ENGSEC
|
department_flag = ENGSEC
|
||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 2
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the chief engineer and research director"
|
supervisors = "the chief engineer and research director"
|
||||||
|
|
||||||
|
|||||||
@@ -52,8 +52,8 @@
|
|||||||
flag = GENETICIST
|
flag = GENETICIST
|
||||||
department_flag = MEDSCI
|
department_flag = MEDSCI
|
||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 2
|
total_positions = 1
|
||||||
spawn_positions = 2
|
spawn_positions = 1
|
||||||
supervisors = "the chief medical officer and research director"
|
supervisors = "the chief medical officer and research director"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,8 +49,8 @@
|
|||||||
flag = CHEMIST
|
flag = CHEMIST
|
||||||
department_flag = MEDSCI
|
department_flag = MEDSCI
|
||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 2
|
total_positions = 1
|
||||||
spawn_positions = 2
|
spawn_positions = 1
|
||||||
supervisors = "the chief medical officer and the research director"
|
supervisors = "the chief medical officer and the research director"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -246,6 +246,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H)
|
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H)
|
||||||
H.equip_if_possible(BPK, H.slot_back,1)
|
H.equip_if_possible(BPK, H.slot_back,1)
|
||||||
H.equip_if_possible(new /obj/item/weapon/storage/box(H.back), H.slot_in_backpack)
|
H.equip_if_possible(new /obj/item/weapon/storage/box(H.back), H.slot_in_backpack)
|
||||||
|
H.update_clothing()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -528,7 +528,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
|
|||||||
if (src.canAIHack())
|
if (src.canAIHack())
|
||||||
src.hack(user)
|
src.hack(user)
|
||||||
return
|
return
|
||||||
else if(user)
|
else if(user && !isrobot(user))
|
||||||
if(!C)
|
if(!C)
|
||||||
return
|
return
|
||||||
if(C.in_use)
|
if(C.in_use)
|
||||||
@@ -542,7 +542,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
|
|||||||
return
|
return
|
||||||
if(istype(C, /obj/item/device/hacktool/engineer))
|
if(istype(C, /obj/item/device/hacktool/engineer))
|
||||||
return
|
return
|
||||||
else
|
else if(!isrobot(user))
|
||||||
world << "ERROR: Mob was null when calling attack_ai on [src.name] at [src.x],[src.y],[src.z]"
|
world << "ERROR: Mob was null when calling attack_ai on [src.name] at [src.x],[src.y],[src.z]"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -369,6 +369,11 @@ mob/proc/flash_weak_pain()
|
|||||||
|
|
||||||
if(istype(M, /mob/living/carbon/human))
|
if(istype(M, /mob/living/carbon/human))
|
||||||
M:attacked_by(src, user, def_zone)
|
M:attacked_by(src, user, def_zone)
|
||||||
|
var/mob/living/carbon/human/H = M
|
||||||
|
if(H)
|
||||||
|
H.UpdateDamageIcon()
|
||||||
|
H.update_clothing()
|
||||||
|
user.update_clothing()
|
||||||
else
|
else
|
||||||
switch(src.damtype)
|
switch(src.damtype)
|
||||||
if("brute")
|
if("brute")
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ ZIPPO
|
|||||||
else
|
else
|
||||||
user.r_hand = W
|
user.r_hand = W
|
||||||
W.layer = 20
|
W.layer = 20
|
||||||
|
user.update_clothing()
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
|
|||||||
@@ -87,6 +87,7 @@
|
|||||||
|
|
||||||
spawn( 0 )
|
spawn( 0 )
|
||||||
O.process()
|
O.process()
|
||||||
|
user.update_clothing()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
for(var/mob/O in viewers(M, null))
|
for(var/mob/O in viewers(M, null))
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
dropped(source)
|
dropped(source)
|
||||||
if (W)
|
if (W)
|
||||||
W.layer = initial(W.layer)
|
W.layer = initial(W.layer)
|
||||||
|
source.update_clothing()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
if (M.buckled == src)
|
if (M.buckled == src)
|
||||||
M.buckled = null
|
M.buckled = null
|
||||||
M.anchored = 0
|
M.anchored = 0
|
||||||
|
M.update_clothing()
|
||||||
|
|
||||||
/obj/structure/stool/proc/manual_unbuckle_all(mob/user as mob)
|
/obj/structure/stool/proc/manual_unbuckle_all(mob/user as mob)
|
||||||
var/N = 0;
|
var/N = 0;
|
||||||
@@ -87,6 +88,7 @@
|
|||||||
// world << "[M] is no longer buckled to [src]"
|
// world << "[M] is no longer buckled to [src]"
|
||||||
M.anchored = 0
|
M.anchored = 0
|
||||||
M.buckled = null
|
M.buckled = null
|
||||||
|
M.update_clothing()
|
||||||
N++
|
N++
|
||||||
return N
|
return N
|
||||||
|
|
||||||
@@ -109,6 +111,7 @@
|
|||||||
M.buckled = src
|
M.buckled = src
|
||||||
M.loc = src.loc
|
M.loc = src.loc
|
||||||
M.dir = src.dir
|
M.dir = src.dir
|
||||||
|
M.update_clothing()
|
||||||
src:buckled_mobs += M
|
src:buckled_mobs += M
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
return
|
return
|
||||||
@@ -339,6 +342,7 @@
|
|||||||
M.pixel_y = 0
|
M.pixel_y = 0
|
||||||
M.anchored = 0
|
M.anchored = 0
|
||||||
M.buckled = null
|
M.buckled = null
|
||||||
|
M.update_clothing()
|
||||||
N++
|
N++
|
||||||
if(N)
|
if(N)
|
||||||
density = 0
|
density = 0
|
||||||
|
|||||||
@@ -140,6 +140,7 @@
|
|||||||
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
|
processing_objects.Remove(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -45,10 +45,6 @@
|
|||||||
if(scanning)
|
if(scanning)
|
||||||
src.overlays += text("infrared_old2")
|
src.overlays += text("infrared_old2")
|
||||||
src.small_icon_state_overlays += text("infrared_on")
|
src.small_icon_state_overlays += text("infrared_on")
|
||||||
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
|
||||||
var/obj/item/weapon/chem_grenade/M = master
|
|
||||||
M.c_state(1)
|
|
||||||
|
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -87,15 +87,9 @@
|
|||||||
if(timing)
|
if(timing)
|
||||||
overlays += text("prox_timing")
|
overlays += text("prox_timing")
|
||||||
small_icon_state_overlays += text("prox_timing")
|
small_icon_state_overlays += text("prox_timing")
|
||||||
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
|
||||||
var/obj/item/weapon/chem_grenade/M = master
|
|
||||||
M.c_state(1)
|
|
||||||
if(scanning)
|
if(scanning)
|
||||||
overlays += text("prox_scanning")
|
overlays += text("prox_scanning")
|
||||||
small_icon_state_overlays += text("prox_scanning")
|
small_icon_state_overlays += text("prox_scanning")
|
||||||
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
|
||||||
var/obj/item/weapon/chem_grenade/M = master
|
|
||||||
M.c_state(1)
|
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -64,9 +64,6 @@
|
|||||||
if(timing)
|
if(timing)
|
||||||
overlays += text("timer_timing")
|
overlays += text("timer_timing")
|
||||||
small_icon_state_overlays += text("timer_timing")
|
small_icon_state_overlays += text("timer_timing")
|
||||||
if(master && istype(master, /obj/item/weapon/chem_grenade))
|
|
||||||
var/obj/item/weapon/chem_grenade/M = master
|
|
||||||
M.c_state(1)
|
|
||||||
if(holder)
|
if(holder)
|
||||||
holder.update_icon()
|
holder.update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ datum
|
|||||||
name = "Dexalin"
|
name = "Dexalin"
|
||||||
id = "dexalin"
|
id = "dexalin"
|
||||||
result = "dexalin"
|
result = "dexalin"
|
||||||
required_reagents = list("oxygen" = 2)
|
required_reagents = list("oxygen" = 2, "plasma" = 0.1)
|
||||||
required_catalysts = list("plasma" = 5)
|
required_catalysts = list("plasma" = 5)
|
||||||
result_amount = 1
|
result_amount = 1
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@ datum
|
|||||||
name = "Clonexadone"
|
name = "Clonexadone"
|
||||||
id = "clonexadone"
|
id = "clonexadone"
|
||||||
result = "clonexadone"
|
result = "clonexadone"
|
||||||
required_reagents = list("cryoxadone" = 1, "sodium" = 1)
|
required_reagents = list("cryoxadone" = 1, "sodium" = 1, "plasma" = 0.1)
|
||||||
required_catalysts = list("plasma" = 5)
|
required_catalysts = list("plasma" = 5)
|
||||||
result_amount = 2
|
result_amount = 2
|
||||||
|
|
||||||
|
|||||||
@@ -289,12 +289,6 @@
|
|||||||
if(beaker_two)
|
if(beaker_two)
|
||||||
beaker_two.loc = get_turf(src.loc)
|
beaker_two.loc = get_turf(src.loc)
|
||||||
|
|
||||||
c_state(var/i = 0)
|
|
||||||
if(i)
|
|
||||||
icon_state = initial(icon_state) + "_armed"
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
large
|
large
|
||||||
name = "Large Chem Grenade"
|
name = "Large Chem Grenade"
|
||||||
desc = "An oversized grenade that affects a larger area."
|
desc = "An oversized grenade that affects a larger area."
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
life_tick = 0
|
life_tick = 0
|
||||||
isbreathing = 1
|
isbreathing = 1
|
||||||
holdbreath = 0
|
holdbreath = 0
|
||||||
|
lyingcheck = 0
|
||||||
|
|
||||||
/mob/living/carbon/human/Life()
|
/mob/living/carbon/human/Life()
|
||||||
set invisibility = 0
|
set invisibility = 0
|
||||||
@@ -85,7 +86,10 @@
|
|||||||
handle_health_updates()
|
handle_health_updates()
|
||||||
|
|
||||||
// Update clothing
|
// Update clothing
|
||||||
update_clothing()
|
// update_clothing()
|
||||||
|
if(lyingcheck != lying) //This is a fix for falling down / standing up not updating icons. Instead of going through and changing every
|
||||||
|
update_clothing() //instance in the code where lying is modified, I've just added a new variable "lyingcheck" which will be compared
|
||||||
|
lyingcheck = lying //to lying, so if lying ever changes, update_clothing() will run like normal.
|
||||||
|
|
||||||
if(client)
|
if(client)
|
||||||
handle_regular_hud_updates()
|
handle_regular_hud_updates()
|
||||||
|
|||||||
@@ -211,6 +211,7 @@
|
|||||||
var/Tempstun = 0 // temporary temperature stuns
|
var/Tempstun = 0 // temporary temperature stuns
|
||||||
var/Discipline = 0 // if a metroid has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while
|
var/Discipline = 0 // if a metroid has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while
|
||||||
var/SStun = 0 // stun variable
|
var/SStun = 0 // stun variable
|
||||||
|
var/Obstacle = 1 // determines whether the turf the metroid will head to has an obstacle
|
||||||
proc
|
proc
|
||||||
|
|
||||||
AIprocess() // the master AI process
|
AIprocess() // the master AI process
|
||||||
@@ -228,7 +229,9 @@
|
|||||||
switch(nutrition)
|
switch(nutrition)
|
||||||
if(150 to 800) hungry = 1
|
if(150 to 800) hungry = 1
|
||||||
if(0 to 149) starving = 1
|
if(0 to 149) starving = 1
|
||||||
|
|
||||||
AIproc = 1
|
AIproc = 1
|
||||||
|
|
||||||
while(AIproc && stat != 2 && (attacked > 0 || starving || hungry || rabid || Victim))
|
while(AIproc && stat != 2 && (attacked > 0 || starving || hungry || rabid || Victim))
|
||||||
if(Victim) // can't eat AND have this little process at the same time
|
if(Victim) // can't eat AND have this little process at the same time
|
||||||
break
|
break
|
||||||
@@ -242,15 +245,19 @@
|
|||||||
AIproc = 0
|
AIproc = 0
|
||||||
break
|
break
|
||||||
|
|
||||||
if(Target)
|
|
||||||
for(var/mob/living/carbon/metroid/M in view(1,Target))
|
for(var/mob/living/carbon/metroid/M in view(1,Target))
|
||||||
if(M.Victim == Target)
|
if(M.Victim == Target)
|
||||||
Target = null
|
Target = null
|
||||||
AIproc = 0
|
AIproc = 0
|
||||||
break
|
break
|
||||||
|
|
||||||
if(!AIproc)
|
if(!AIproc)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if(get_obstacle_ok(Target))
|
||||||
|
Obstacle = 0
|
||||||
|
else Obstacle = 1
|
||||||
|
|
||||||
if(Target in view(1,src))
|
if(Target in view(1,src))
|
||||||
|
|
||||||
if(istype(Target, /mob/living/silicon))
|
if(istype(Target, /mob/living/silicon))
|
||||||
@@ -260,19 +267,19 @@
|
|||||||
sleep(15)
|
sleep(15)
|
||||||
Atkcool = 0
|
Atkcool = 0
|
||||||
|
|
||||||
if(get_obstacle_ok(Target))
|
if(!Obstacle)
|
||||||
Target.attack_metroid(src)
|
Target.attack_metroid(src)
|
||||||
return
|
return
|
||||||
if(prob(80) && !Target.lying)
|
|
||||||
|
|
||||||
if(Target.client && Target.health >= rand(10,30))
|
if(prob(80) && !Target.lying && Target.client && Target.health >= rand(10,30))
|
||||||
|
|
||||||
if(!Atkcool)
|
if(!Atkcool)
|
||||||
spawn()
|
spawn()
|
||||||
Atkcool = 1
|
Atkcool = 1
|
||||||
sleep(25)
|
sleep(25)
|
||||||
Atkcool = 0
|
Atkcool = 0
|
||||||
|
|
||||||
if(get_obstacle_ok(Target))
|
if(!Obstacle)
|
||||||
Target.attack_metroid(src)
|
Target.attack_metroid(src)
|
||||||
|
|
||||||
|
|
||||||
@@ -280,16 +287,12 @@
|
|||||||
step_to(src, Target)
|
step_to(src, Target)
|
||||||
|
|
||||||
else
|
else
|
||||||
if(!Atkcool && get_obstacle_ok(Target))
|
if(!Atkcool && !Obstacle)
|
||||||
Feedon(Target)
|
|
||||||
|
|
||||||
else
|
|
||||||
if(!Atkcool && get_obstacle_ok(Target))
|
|
||||||
Feedon(Target)
|
Feedon(Target)
|
||||||
|
|
||||||
else
|
else
|
||||||
if(Target in view(30, src))
|
if(Target in view(30, src))
|
||||||
if(get_obstacle_ok(Target))
|
if(!Obstacle)
|
||||||
step_to(src, Target)
|
step_to(src, Target)
|
||||||
|
|
||||||
else
|
else
|
||||||
@@ -298,7 +301,7 @@
|
|||||||
break
|
break
|
||||||
|
|
||||||
var/sleeptime = movement_delay()
|
var/sleeptime = movement_delay()
|
||||||
if(sleeptime <= 0) sleeptime = 1
|
if(sleeptime < 1) sleeptime = 1
|
||||||
|
|
||||||
sleep(sleeptime + 2) // this is about as fast as a player Metroid can go
|
sleep(sleeptime + 2) // this is about as fast as a player Metroid can go
|
||||||
|
|
||||||
|
|||||||
@@ -474,6 +474,7 @@
|
|||||||
usr << "\blue You successfully remove your handcuffs."
|
usr << "\blue You successfully remove your handcuffs."
|
||||||
usr:handcuffed:loc = usr:loc
|
usr:handcuffed:loc = usr:loc
|
||||||
usr:handcuffed = null
|
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))
|
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.next_move = world.time + 200
|
||||||
|
|||||||
@@ -464,6 +464,7 @@
|
|||||||
m_amt = 60
|
m_amt = 60
|
||||||
var/rigged = 0 // true if rigged to explode
|
var/rigged = 0 // true if rigged to explode
|
||||||
var/brightness = 2 //how much light it gives off
|
var/brightness = 2 //how much light it gives off
|
||||||
|
var/repair_state = 0
|
||||||
|
|
||||||
/obj/item/weapon/light/tube
|
/obj/item/weapon/light/tube
|
||||||
name = "light tube"
|
name = "light tube"
|
||||||
@@ -497,9 +498,15 @@
|
|||||||
if(LIGHT_BURNED)
|
if(LIGHT_BURNED)
|
||||||
icon_state = "[base_state]-burned"
|
icon_state = "[base_state]-burned"
|
||||||
desc = "A burnt-out [name]."
|
desc = "A burnt-out [name]."
|
||||||
|
if(repair_state == 1)
|
||||||
|
desc += " It has some wires hanging out."
|
||||||
if(LIGHT_BROKEN)
|
if(LIGHT_BROKEN)
|
||||||
icon_state = "[base_state]-broken"
|
icon_state = "[base_state]-broken"
|
||||||
desc = "A broken [name]."
|
desc = "A broken [name]."
|
||||||
|
if(repair_state == 1)
|
||||||
|
desc += " It has some wires hanging out."
|
||||||
|
else if(repair_state == 2)
|
||||||
|
desc += " It has had new wires put in."
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/light/New()
|
/obj/item/weapon/light/New()
|
||||||
@@ -514,8 +521,9 @@
|
|||||||
|
|
||||||
// attack bulb/tube with object
|
// attack bulb/tube with object
|
||||||
// if a syringe, can inject plasma to make it explode
|
// if a syringe, can inject plasma to make it explode
|
||||||
|
// also repairing them with wire and screwdriver
|
||||||
|
// and glass if it's broken
|
||||||
/obj/item/weapon/light/attackby(var/obj/item/I, var/mob/user)
|
/obj/item/weapon/light/attackby(var/obj/item/I, var/mob/user)
|
||||||
..()
|
|
||||||
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
||||||
var/obj/item/weapon/reagent_containers/syringe/S = I
|
var/obj/item/weapon/reagent_containers/syringe/S = I
|
||||||
|
|
||||||
@@ -526,7 +534,35 @@
|
|||||||
rigged = 1
|
rigged = 1
|
||||||
|
|
||||||
S.reagents.clear_reagents()
|
S.reagents.clear_reagents()
|
||||||
|
return
|
||||||
|
if(status != 0)
|
||||||
|
if(istype(I, /obj/item/weapon/cable_coil) && repair_state == 0)
|
||||||
|
user << "You put some new wiring into the [src]."
|
||||||
|
I:use(1)
|
||||||
|
repair_state = 1
|
||||||
|
update()
|
||||||
|
return
|
||||||
|
if(istype(I, /obj/item/weapon/screwdriver) && repair_state == 1)
|
||||||
|
user << "You attach the new wiring."
|
||||||
|
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
|
||||||
|
if(status == LIGHT_BURNED)
|
||||||
|
repair_state = 0
|
||||||
|
status = LIGHT_OK
|
||||||
else
|
else
|
||||||
|
repair_state = 2
|
||||||
|
update()
|
||||||
|
return
|
||||||
|
if(istype(I, /obj/item/stack/sheet/glass) && status == LIGHT_BROKEN)
|
||||||
|
user << "You repair the glass of the [src]." //this is worded terribly
|
||||||
|
I:use(1)
|
||||||
|
force = 2 //because breaking it changes the force, this changes it back
|
||||||
|
if(repair_state == 2)
|
||||||
|
repair_state = 0
|
||||||
|
status = LIGHT_OK
|
||||||
|
else
|
||||||
|
status = LIGHT_BURNED
|
||||||
|
update()
|
||||||
|
return
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 86 KiB |
@@ -59,6 +59,14 @@ macro "macro"
|
|||||||
name = "CTRL+D"
|
name = "CTRL+D"
|
||||||
command = "drop-item"
|
command = "drop-item"
|
||||||
is-disabled = false
|
is-disabled = false
|
||||||
|
elem
|
||||||
|
name = "CTRL+E"
|
||||||
|
command = "_changeintent 1"
|
||||||
|
is-disabled = false
|
||||||
|
elem
|
||||||
|
name = "CTRL+Q"
|
||||||
|
command = "_changeintent -1"
|
||||||
|
is-disabled = false
|
||||||
elem
|
elem
|
||||||
name = "CTRL+S"
|
name = "CTRL+S"
|
||||||
command = "swap-hand"
|
command = "swap-hand"
|
||||||
|
|||||||
Reference in New Issue
Block a user