mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Cleaned up some code, fixed a bug with dead/sleeping people seeing you talk into headsets, reworked guncode some, readded point-blank shooting, removed disposal space cannon, hacktool works on windoors and secure closets, now.
This commit is contained in:
@@ -398,7 +398,6 @@
|
||||
#include "code\game\events\EventProcs\black_hole.dm"
|
||||
#include "code\game\events\EventProcs\clang.dm"
|
||||
#include "code\game\events\EventProcs\dust.dm"
|
||||
#include "code\game\events\EventProcs\kudzu.dm"
|
||||
#include "code\game\events\EventProcs\miniblob.dm"
|
||||
#include "code\game\events\EventProcs\misc.dm"
|
||||
#include "code\game\events\EventProcs\ninja_abilities.dm"
|
||||
|
||||
@@ -6,7 +6,7 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging
|
||||
var/initialize_directions_he
|
||||
|
||||
minimum_temperature_difference = 20
|
||||
thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT
|
||||
thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT
|
||||
|
||||
// BubbleWrap
|
||||
New()
|
||||
|
||||
@@ -368,6 +368,9 @@
|
||||
var/list/eavesdroppers = get_mobs_in_view(7, src)
|
||||
for(var/mob/M in listening)
|
||||
eavesdroppers.Remove(M)
|
||||
for(var/mob/M in eavesdroppers)
|
||||
if(M.stat)
|
||||
eavesdroppers.Remove(M)
|
||||
|
||||
for (var/obj/O in ((W | contents)-used_radios))
|
||||
W |= O
|
||||
|
||||
@@ -1396,7 +1396,7 @@ var/list/the_station_areas = list (
|
||||
S.volume = 100
|
||||
S.priority = 255
|
||||
S.status = SOUND_UPDATE
|
||||
process()
|
||||
// process()
|
||||
|
||||
Entered(atom/movable/Obj,atom/OldLoc)
|
||||
if(ismob(Obj))
|
||||
@@ -1411,7 +1411,7 @@ var/list/the_station_areas = list (
|
||||
mysound.status = SOUND_PAUSED | SOUND_UPDATE
|
||||
Obj << mysound
|
||||
|
||||
proc/process()
|
||||
/* proc/process()
|
||||
set background = 1
|
||||
|
||||
var/sound/S = null
|
||||
@@ -1431,4 +1431,4 @@ var/list/the_station_areas = list (
|
||||
spawn(sound_delay)
|
||||
H << S
|
||||
|
||||
spawn(60) .()
|
||||
spawn(60) .() */
|
||||
@@ -44,7 +44,7 @@
|
||||
var/obj/screen/gun/item/item_use_icon = null
|
||||
var/obj/screen/gun/move/gun_move_icon = null
|
||||
var/obj/screen/gun/run/gun_run_icon = null
|
||||
var/obj/screen/gun/mode/gun_setting_icon
|
||||
var/obj/screen/gun/mode/gun_setting_icon = null
|
||||
|
||||
var/total_luminosity = 0 //This controls luminosity for mobs, when you pick up lights and such this is edited. If you want the mob to use lights it must update its lum in its life proc or such. Note clamp this value around 7 or such to prevent massive light lag.
|
||||
var/last_luminosity = 0
|
||||
|
||||
@@ -108,6 +108,8 @@
|
||||
if(src.fingerprintslast != H.key)
|
||||
src.fingerprintshidden += text("Real name: [], Key: []",H.real_name, H.key)
|
||||
src.fingerprintslast = H.key
|
||||
if(!fingerprints)
|
||||
fingerprints = list()
|
||||
var/new_prints = 0
|
||||
var/prints
|
||||
for(var/i = 1, i <= src.fingerprints.len, i++)
|
||||
@@ -122,15 +124,15 @@
|
||||
if(src.fingerprints.len == 1)
|
||||
src.fingerprints = list()
|
||||
else
|
||||
for(var/j = (i + 1), j < (src.fingerprints.len), j++)
|
||||
src.fingerprints[j-1] = src.fingerprints[j]
|
||||
for(var/j = i, j <= (src.fingerprints.len), j++)
|
||||
src.fingerprints[j] = src.fingerprints[j+1]
|
||||
src.fingerprints.len--
|
||||
else
|
||||
src.fingerprints[i] = "1=" + L[num2text(1)] + "&2=" + test_print
|
||||
if(new_prints)
|
||||
src.fingerprints[new_prints] = text("1=[]&2=[]", md5(H.dna.uni_identity), stringmerge(prints,stars(md5(H.dna.uni_identity), (H.gloves ? rand(10,20) : rand(25,40)))))
|
||||
else if(new_prints == 0)
|
||||
if(!src.fingerprints)
|
||||
if(!src.fingerprints || !src.fingerprints.len)
|
||||
src.fingerprints = list(text("1=[]&2=[]", md5(H.dna.uni_identity), stars(md5(H.dna.uni_identity), H.gloves ? rand(10,20) : rand(25,40))))
|
||||
src.fingerprints += text("1=[]&2=[]", md5(H.dna.uni_identity), stars(md5(H.dna.uni_identity), H.gloves ? rand(10,20) : rand(25,40)))
|
||||
for(var/i = 1, i <= src.fingerprints.len, i++)
|
||||
|
||||
@@ -19,6 +19,12 @@
|
||||
|
||||
// determine DNA fragment from hairstyle
|
||||
// :wtc:
|
||||
// If the character doesn't have initialized hairstyles / beardstyles, initialize it for them!
|
||||
if(!character.hair_style)
|
||||
character.hair_style = new/datum/sprite_accessory/hair/short
|
||||
|
||||
if(!character.facial_hair_style)
|
||||
character.facial_hair_style = new/datum/sprite_accessory/facial_hair/shaved
|
||||
|
||||
var/list/styles = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair
|
||||
var/hrange = round(4095 / styles.len)
|
||||
|
||||
@@ -373,6 +373,10 @@ datum/objective/steal
|
||||
if(istype(M, /mob/living/silicon/ai) && M.stat != 2)
|
||||
// world << "yay, you win!"
|
||||
return 1
|
||||
for(var/mob/living/silicon/ai/M in world)
|
||||
if(istype(M.loc, /turf))
|
||||
if(istype(get_area(M), /area/shuttle/escape))
|
||||
return 1
|
||||
else
|
||||
for(var/obj/I in all_items)
|
||||
if(istype(I, steal_target))
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
sleep(6)
|
||||
open()
|
||||
return 1
|
||||
if (src.allowed(user))
|
||||
if (src.allowed(user) || istype(I, /obj/item/device/hacktool))
|
||||
if (src.density)
|
||||
open()
|
||||
else
|
||||
|
||||
@@ -60,7 +60,8 @@
|
||||
// 1 = laser
|
||||
// 2 = cannon
|
||||
// 3 = pulse
|
||||
var/health = 80
|
||||
var/health = 18
|
||||
var/id = ""
|
||||
var/obj/machinery/turretcover/cover = null
|
||||
var/popping = 0
|
||||
var/wasvalid = 0
|
||||
@@ -295,27 +296,38 @@
|
||||
icon_state = "motion3"
|
||||
anchored = 1
|
||||
density = 0
|
||||
req_access = list(access_ai_upload)
|
||||
var/enabled = 1
|
||||
var/id = ""
|
||||
var/lethal = 0
|
||||
var/locked = 1
|
||||
var/control_area //can be area name, path or nothing.
|
||||
req_access = list(access_ai_upload)
|
||||
var/similar_controls
|
||||
var/turrets
|
||||
|
||||
/obj/machinery/turretid/east
|
||||
pixel_x = 28
|
||||
|
||||
/obj/machinery/turretid/south
|
||||
pixel_y = -28
|
||||
|
||||
/obj/machinery/turretid/west
|
||||
pixel_x = -28
|
||||
|
||||
/obj/machinery/turretid/north
|
||||
pixel_y = 28
|
||||
|
||||
/obj/machinery/turretid/New()
|
||||
..()
|
||||
if(!control_area)
|
||||
var/area/CA = get_area(src)
|
||||
if(CA.master && CA.master != CA)
|
||||
control_area = CA.master
|
||||
else
|
||||
control_area = CA
|
||||
else if(istext(control_area))
|
||||
for(var/area/A in world)
|
||||
if(A.name && A.name==control_area)
|
||||
control_area = A
|
||||
break
|
||||
//don't have to check if control_area is path, since get_area_all_atoms can take path.
|
||||
return
|
||||
spawn(10) // allow map load
|
||||
turrets = list()
|
||||
for(var/obj/machinery/turret/T in world)
|
||||
if(T.id == id)
|
||||
turrets += T
|
||||
|
||||
similar_controls = list() // On modifying a control, all the similar controls should change their icon_state as well
|
||||
for(var/obj/machinery/turretid/TC in world)
|
||||
if(TC.id == id && TC != src)
|
||||
similar_controls += TC
|
||||
|
||||
/obj/machinery/turretid/attackby(obj/item/weapon/W, mob/user)
|
||||
if(stat & BROKEN) return
|
||||
@@ -365,20 +377,6 @@
|
||||
user << browse(t, "window=turretid")
|
||||
onclose(user, "turretid")
|
||||
|
||||
|
||||
/obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
|
||||
if(!(stat & BROKEN))
|
||||
playsound(src.loc, 'slash.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has slashed at []!</B>", M, src), 1)
|
||||
src.health -= 15
|
||||
if (src.health <= 0)
|
||||
src.die()
|
||||
else
|
||||
M << "\green That object is useless to you."
|
||||
return
|
||||
|
||||
/obj/machinery/turretid/Topic(href, href_list)
|
||||
..()
|
||||
if (src.locked)
|
||||
@@ -394,25 +392,35 @@
|
||||
src.attack_hand(usr)
|
||||
|
||||
/obj/machinery/turretid/proc/updateTurrets()
|
||||
if(control_area)
|
||||
for (var/obj/machinery/turret/aTurret in get_area_all_atoms(control_area))
|
||||
aTurret.setState(enabled, lethal)
|
||||
update_icons()
|
||||
|
||||
/obj/machinery/turretid/proc/update_icons()
|
||||
if (src.enabled)
|
||||
if (src.lethal)
|
||||
icon_state = "motion1"
|
||||
src.icon_state = "motion1"
|
||||
for(var/obj/machinery/turretid/TC in src.similar_controls) //Change every similar control's icon as well
|
||||
TC.icon_state = "motion1"
|
||||
else
|
||||
icon_state = "motion3"
|
||||
src.icon_state = "motion3"
|
||||
for(var/obj/machinery/turretid/TC in src.similar_controls)
|
||||
TC.icon_state = "motion3"
|
||||
else
|
||||
icon_state = "motion0"
|
||||
if(control_area)
|
||||
for (var/obj/machinery/turretid/aTurret in get_area_all_atoms(control_area))
|
||||
aTurret.icon_state = icon_state
|
||||
aTurret.enabled = enabled
|
||||
aTurret.lethal = lethal
|
||||
src.icon_state = "motion0"
|
||||
for(var/obj/machinery/turretid/TC in src.similar_controls)
|
||||
TC.icon_state = "motion0"
|
||||
|
||||
for (var/obj/machinery/turret/aTurret in turrets)
|
||||
aTurret.setState(enabled, lethal)
|
||||
|
||||
/obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
|
||||
if(!(stat & BROKEN))
|
||||
playsound(src.loc, 'slash.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has slashed at []!</B>", M, src), 1)
|
||||
src.health -= 15
|
||||
if (src.health <= 0)
|
||||
src.die()
|
||||
else
|
||||
M << "\green That object is useless to you."
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/turret/gun_turret
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
src.req_access += pick(get_all_accesses())
|
||||
..()
|
||||
|
||||
/obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/structure/closet/secure_closet/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(src.opened)
|
||||
if(istype(W, /obj/item/weapon/grab))
|
||||
if(src.large)
|
||||
@@ -70,6 +70,18 @@
|
||||
else
|
||||
src.icon_state = src.icon_closed
|
||||
|
||||
else if(istype(W, /obj/item/device/hacktool))
|
||||
spawn(0)
|
||||
user << "Standby, jacking into the security systems..."
|
||||
if(do_after(user, 20))
|
||||
user << "Wiping access requirements..."
|
||||
else
|
||||
user << "You need to stay still!"
|
||||
if(do_after(user, 20))
|
||||
user << "Access requirements are wiped! Anyone can access the locker, now!"
|
||||
req_access = list()
|
||||
else
|
||||
user << "You need to stay still!"
|
||||
else
|
||||
user << "\red Access Denied"
|
||||
return
|
||||
|
||||
@@ -37,6 +37,7 @@ emp_act
|
||||
/mob/living/carbon/human/proc/checkarmor(var/datum/organ/external/def_zone, var/type)
|
||||
if(!type) return 0
|
||||
var/protection = 0
|
||||
var/adjuster = 0
|
||||
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform)
|
||||
for(var/bp in body_parts)
|
||||
if(!bp) continue
|
||||
@@ -44,6 +45,8 @@ emp_act
|
||||
var/obj/item/clothing/C = bp
|
||||
if(C.body_parts_covered & def_zone.body_part)
|
||||
protection += C.armor[type]
|
||||
adjuster++
|
||||
protection = (adjuster ? protection/(sqrt(adjuster)) : 0)
|
||||
return protection
|
||||
|
||||
|
||||
|
||||
@@ -338,6 +338,9 @@
|
||||
var/list/eavesdroppers = get_mobs_in_view(7, src)
|
||||
for(var/mob/M in listening)
|
||||
eavesdroppers.Remove(M)
|
||||
for(var/mob/M in eavesdroppers)
|
||||
if(M.stat)
|
||||
eavesdroppers.Remove(M)
|
||||
|
||||
for (var/obj/O in ((W | contents)-used_radios))
|
||||
W |= O
|
||||
|
||||
@@ -606,12 +606,15 @@
|
||||
machine = null
|
||||
src << browse(null, t1)
|
||||
|
||||
if(href_list["teleto"])
|
||||
src.client.jumptoturf(locate(href_list["teleto"]))
|
||||
|
||||
if(href_list["priv_msg"])
|
||||
var/mob/M = locate(href_list["priv_msg"])
|
||||
if(M)
|
||||
if(src.client && client.muted_complete)
|
||||
src << "You are muted have a nice day"
|
||||
return
|
||||
//if(src.client && client.muted_complete)
|
||||
// src << "You are muted have a nice day"
|
||||
// return
|
||||
if (!ismob(M))
|
||||
return
|
||||
|
||||
|
||||
@@ -603,9 +603,7 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
usr.AllowTargetMove()
|
||||
dir = (dir%2)+1
|
||||
name = "Disallow Walking"
|
||||
usr.client.AllowTargetMove()
|
||||
gun_click_time = world.time
|
||||
|
||||
if("Disallow Walking")
|
||||
@@ -614,9 +612,7 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
usr.AllowTargetMove()
|
||||
dir = (dir%2)+1
|
||||
name = "Allow Walking"
|
||||
usr.client.AllowTargetMove()
|
||||
gun_click_time = world.time
|
||||
|
||||
if("Allow Running")
|
||||
@@ -625,9 +621,7 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
usr.AllowTargetRun()
|
||||
dir = (dir%2)+1
|
||||
name = "Disallow Running"
|
||||
usr.client.AllowTargetRun()
|
||||
gun_click_time = world.time
|
||||
|
||||
if("Disallow Running")
|
||||
@@ -636,9 +630,7 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
usr.AllowTargetRun()
|
||||
dir = (dir%2)+1
|
||||
name = "Allow Running"
|
||||
usr.client.AllowTargetRun()
|
||||
gun_click_time = world.time
|
||||
|
||||
if("Allow Item Use")
|
||||
@@ -647,9 +639,7 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
name = "Disallow Item Use"
|
||||
dir = (dir%2)+1
|
||||
usr.AllowTargetClick()
|
||||
usr.client.AllowTargetClick()
|
||||
gun_click_time = world.time
|
||||
|
||||
|
||||
@@ -659,13 +649,11 @@
|
||||
if(!istype(usr.equipped(),/obj/item/weapon/gun))
|
||||
usr << "You need your gun in your active hand to do that!"
|
||||
return
|
||||
name = "Allow Item Use"
|
||||
dir = (dir%2)+1
|
||||
usr.AllowTargetClick()
|
||||
usr.client.AllowTargetClick()
|
||||
gun_click_time = world.time
|
||||
|
||||
if("Toggle Gun Mode")
|
||||
usr.ToggleGunMode()
|
||||
usr.client.ToggleGunMode()
|
||||
|
||||
else
|
||||
DblClick()
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/ammo_casing/c38
|
||||
desc = "A .38 bullet casing."
|
||||
caliber = "38"
|
||||
caliber = "357"
|
||||
projectile_type = "/obj/item/projectile/bullet/weakbullet"
|
||||
|
||||
|
||||
|
||||
@@ -79,11 +79,37 @@
|
||||
M.apply_damage(75, BRUTE, "head", used_weapon = "Suicide attempt with a gun")
|
||||
M.apply_damage(85, BRUTE, "chest")
|
||||
M.visible_message("\red [user] pulls the trigger. Ow.")
|
||||
del(src.in_chamber)
|
||||
del(in_chamber)
|
||||
mouthshoot = 0
|
||||
return
|
||||
else if(target && M == target)
|
||||
PreFire(M,user)
|
||||
return
|
||||
else if(user.a_intent == "hurt" && (istype(src.in_chamber, /obj/item/projectile/beam) || istype(src.in_chamber, /obj/item/projectile/energy)\
|
||||
|| istype(src.in_chamber, /obj/item/projectile/bullet)) && !istype(src.in_chamber, /obj/item/projectile/bullet/stunshot))
|
||||
//Lets shoot them, then.
|
||||
user.visible_message("\red <b> [user] fires \the [src] point blank at [M]!</b>")
|
||||
M.bullet_act(in_chamber,"head")
|
||||
if (prob(20))
|
||||
if (M.paralysis < 10)
|
||||
M.paralysis = 10
|
||||
else
|
||||
if (M.weakened < 10)
|
||||
M.weakened = 10
|
||||
if(M.stat != 2) M.stat = 1
|
||||
del(in_chamber)
|
||||
return
|
||||
else if(user.a_intent != "hurt" && istype(src,/obj/item/weapon/gun/energy/taser))
|
||||
if (prob(50))
|
||||
if (M.paralysis < 60 && (!(M.mutations & 8)) )
|
||||
M.paralysis = 60
|
||||
else
|
||||
if (M.weakened < 60 && (!(M.mutations & 8)) )
|
||||
M.weakened = 60
|
||||
if (M.stuttering < 60 && (!(M.mutations & 8)) )
|
||||
M.stuttering = 60
|
||||
user.visible_message("\red <B>[M] has been stunned with the taser gun by [user]!</B>")
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -181,6 +207,9 @@
|
||||
proc/TargetActed()
|
||||
var/mob/M = loc
|
||||
if(target == M) return
|
||||
if(src.loc != M.equipped())
|
||||
target.NotTargeted(src)
|
||||
return
|
||||
usr.last_move_intent = world.time
|
||||
Fire(target,usr)
|
||||
var/dir_to_fire = sd_get_approx_dir(M,target)
|
||||
@@ -190,7 +219,7 @@
|
||||
afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)
|
||||
if(flag) return //we're placing gun on a table or in backpack
|
||||
if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this?
|
||||
if(user && user.gun_mode)
|
||||
if(user && user.client && user.client.gun_mode)
|
||||
PreFire(A,user,params)
|
||||
else
|
||||
Fire(A,user,params)
|
||||
@@ -283,8 +312,8 @@ mob/proc
|
||||
if(!targeted_by) targeted_by = list()
|
||||
targeted_by += I
|
||||
I.target = src
|
||||
//I.lock_time = world.time + 10 //Target has 1 second to realize they're targeted and stop (or target the opponent).
|
||||
src << "((\red <b>Your character is being targeted. They have 1 second to stop any click or move actions.</b> \black While targeted, they may \
|
||||
I.lock_time = world.time + 20 //Target has 1 second to realize they're targeted and stop (or target the opponent).
|
||||
src << "((\red <b>Your character is being targeted. They have 2 seconds to stop any click or move actions.</b> \black While targeted, they may \
|
||||
drag and drop items in or into the map, speak, and click on interface buttons. Clicking on the map, their items \
|
||||
(other than a weapon to de-target), or moving will result in being fired upon. \red The aggressor may also fire manually, \
|
||||
so try not to get on their bad side.\black ))"
|
||||
@@ -301,17 +330,17 @@ mob/proc
|
||||
if(T.client)
|
||||
T.client.screen += T.item_use_icon
|
||||
T.client.screen += T.gun_move_icon
|
||||
while(targeted_by)
|
||||
while(targeted_by && T.client)
|
||||
sleep(1)
|
||||
if(last_move_intent > I.lock_time + 10 && !T.target_can_move) //If the target moved while targeted
|
||||
if(last_move_intent > I.lock_time + 10 && !T.client.target_can_move) //If the target moved while targeted
|
||||
I.TargetActed()
|
||||
I.lock_time = world.time + 5
|
||||
else if(last_move_intent > I.lock_time + 10 && !T.target_can_run && m_intent == "run") //If the target ran while targeted
|
||||
I.lock_time = world.time + 10
|
||||
else if(last_move_intent > I.lock_time + 10 && !T.client.target_can_run && m_intent == "run") //If the target ran while targeted
|
||||
I.TargetActed()
|
||||
I.lock_time = world.time + 5
|
||||
if(last_target_click > I.lock_time + 10 && !T.target_can_click) //If the target clicked the map to pick something up/shoot/etc
|
||||
I.lock_time = world.time + 10
|
||||
if(last_target_click > I.lock_time + 10 && !T.client.target_can_click) //If the target clicked the map to pick something up/shoot/etc
|
||||
I.TargetActed()
|
||||
I.lock_time = world.time + 5
|
||||
I.lock_time = world.time + 10
|
||||
|
||||
NotTargeted(var/obj/item/weapon/gun/I,silent)
|
||||
if(!silent)
|
||||
@@ -325,9 +354,6 @@ mob/proc
|
||||
del(T.item_use_icon)
|
||||
del(T.gun_move_icon)
|
||||
del(T.gun_run_icon)
|
||||
T.target_can_move = 0
|
||||
T.target_can_run = 0
|
||||
T.target_can_click = 0
|
||||
if(!targeted_by.len) del targeted_by
|
||||
spawn(1) update_clothing()
|
||||
|
||||
@@ -372,7 +398,7 @@ mob/proc
|
||||
// layer = 99
|
||||
|
||||
//If you move out of range, it isn't going to still stay locked on you any more.
|
||||
mob/var
|
||||
client/var
|
||||
target_can_move = 0
|
||||
target_can_run = 0
|
||||
target_can_click = 0
|
||||
@@ -389,7 +415,7 @@ mob/Move()
|
||||
if(!(G.target in view(src)))
|
||||
//ClearRequest("Aim")
|
||||
G.target.NotTargeted(G)
|
||||
mob/verb
|
||||
client/verb
|
||||
//These are called by the on-screen buttons, adjusting what the victim can and cannot do.
|
||||
AllowTargetMove()
|
||||
set hidden=1
|
||||
@@ -397,15 +423,20 @@ mob/verb
|
||||
if(!target_can_move)
|
||||
// winset(usr,"default.target_can_move","is-flat=true;border=sunken")
|
||||
usr << "Target may now walk."
|
||||
gun_run_icon = new /obj/screen/gun/run(null)
|
||||
if(client)
|
||||
client.screen += gun_run_icon
|
||||
usr.gun_run_icon = new /obj/screen/gun/run(null)
|
||||
screen += usr.gun_run_icon
|
||||
if(usr.gun_move_icon)
|
||||
usr.gun_move_icon.dir = 1
|
||||
usr.gun_move_icon.name = "Disallow Walking"
|
||||
else
|
||||
// winset(usr,"default.target_can_move","is-flat=false;border=none")
|
||||
usr << "Target may no longer move."
|
||||
target_can_run = 0
|
||||
del(gun_run_icon)
|
||||
for(var/obj/item/weapon/gun/G in src)
|
||||
del(usr.gun_run_icon)
|
||||
if(usr.gun_move_icon)
|
||||
usr.gun_move_icon.dir = 2
|
||||
usr.gun_move_icon.name = "Allow Walking"
|
||||
for(var/obj/item/weapon/gun/G in usr)
|
||||
G.lock_time = world.time + 5
|
||||
if(G.target)
|
||||
if(!target_can_move)
|
||||
@@ -418,9 +449,15 @@ mob/verb
|
||||
if(!target_can_run)
|
||||
// winset(usr,"default.target_can_move","is-flat=true;border=sunken")
|
||||
usr << "Target may now run."
|
||||
if(usr.gun_run_icon)
|
||||
usr.gun_run_icon.dir = 1
|
||||
usr.gun_run_icon.name = "Disallow Running"
|
||||
else
|
||||
// winset(usr,"default.target_can_move","is-flat=false;border=none")
|
||||
usr << "Target may no longer run."
|
||||
if(usr.gun_run_icon)
|
||||
usr.gun_run_icon.dir = 2
|
||||
usr.gun_run_icon.name = "Allow Running"
|
||||
for(var/obj/item/weapon/gun/G in src)
|
||||
G.lock_time = world.time + 5
|
||||
if(G.target)
|
||||
@@ -434,9 +471,15 @@ mob/verb
|
||||
if(!target_can_click)
|
||||
// winset(usr,"default.target_can_click","is-flat=true;border=sunken")
|
||||
usr << "Target may now use items."
|
||||
if(usr.item_use_icon)
|
||||
usr.item_use_icon.dir = 1
|
||||
usr.item_use_icon.name = "Disallow Item Use"
|
||||
else
|
||||
// winset(usr,"default.target_can_click","is-flat=false;border=none")
|
||||
usr << "Target may no longer use items."
|
||||
if(usr.item_use_icon)
|
||||
usr.item_use_icon.dir = 2
|
||||
usr.item_use_icon.name = "Allow Item Use"
|
||||
for(var/obj/item/weapon/gun/G in src)
|
||||
G.lock_time = world.time + 5
|
||||
if(G.target)
|
||||
@@ -451,8 +494,10 @@ mob/verb
|
||||
if(!gun_mode)
|
||||
// winset(usr,"default.target_can_click","is-flat=true;border=sunken")
|
||||
usr << "You will now take people captive."
|
||||
if(usr.gun_setting_icon)
|
||||
usr.gun_setting_icon.dir = 2
|
||||
else
|
||||
// winset(usr,"default.target_can_click","is-flat=false;border=none")
|
||||
usr << "You will now shoot where you target."
|
||||
if(usr.gun_setting_icon)
|
||||
usr.gun_setting_icon.dir = (usr.gun_setting_icon.dir%2)+1
|
||||
if(usr.gun_setting_icon)
|
||||
usr.gun_setting_icon.dir = 1
|
||||
@@ -2,10 +2,10 @@
|
||||
name = "\improper Laser"
|
||||
icon_state = "laser"
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
damage = 20
|
||||
damage = 40
|
||||
damage_type = BURN
|
||||
flag = "laser"
|
||||
eyeblur = 2
|
||||
eyeblur = 4
|
||||
var/ID = 0
|
||||
var/main = 0
|
||||
|
||||
@@ -51,13 +51,13 @@
|
||||
/obj/item/projectile/beam/heavylaser
|
||||
name = "\improper Heavy Laser"
|
||||
icon_state = "heavylaser"
|
||||
damage = 40
|
||||
damage = 60
|
||||
|
||||
|
||||
/obj/item/projectile/beam/pulse
|
||||
name = "\improper Pulse"
|
||||
icon_state = "u_laser"
|
||||
damage = 50
|
||||
damage = 40
|
||||
|
||||
|
||||
/obj/item/projectile/beam/deathlaser
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet
|
||||
damage = 5
|
||||
damage = 15
|
||||
stun = 5
|
||||
weaken = 5
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/obj/item/projectile/bullet/stunshot
|
||||
name = "\improper Stunshot"
|
||||
damage = 5
|
||||
damage = 15
|
||||
stun = 10
|
||||
weaken = 10
|
||||
stutter = 10
|
||||
@@ -601,12 +601,12 @@
|
||||
active = 1
|
||||
dir = DOWN
|
||||
spawn(1)
|
||||
process() // spawn off the movement process
|
||||
move() // spawn off the movement process
|
||||
|
||||
return
|
||||
|
||||
// movement process, persists while holder is moving through pipes
|
||||
process()
|
||||
proc/move()
|
||||
var/obj/structure/disposalpipe/last
|
||||
while(active)
|
||||
sleep(1) // was 1
|
||||
|
||||
@@ -260,6 +260,10 @@
|
||||
"Meeting Room", "HoP Office", "Captain",
|
||||
"Atmospherics", "Engineering", "Chief Engineer", "Robotics",)
|
||||
|
||||
mining
|
||||
locationList = list("Mining Main","Mining North","Mining West")
|
||||
spaceList = list(0,0,0)
|
||||
|
||||
w_class = 1
|
||||
item_state = "electronic"
|
||||
flags = FPRINT | TABLEPASS | ONBELT | CONDUCT
|
||||
|
||||
@@ -126,12 +126,14 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
SyncRDevices()
|
||||
|
||||
process()
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in world) //have it automatically push research to the centcomm server so wild griffins can't fuck up R&D's work --NEO
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
C.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
C.files.AddDesign2Known(D)
|
||||
C.files.RefreshResearch()
|
||||
if(!(world.time % 600)) //Lets only have it do it every 100 ticks. Good god.
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in world) //have it automatically push research to the centcomm server so wild griffins can't fuck up R&D's work --NEO
|
||||
for(var/datum/tech/T in files.known_tech)
|
||||
C.files.AddTech2Known(T)
|
||||
for(var/datum/design/D in files.known_designs)
|
||||
C.files.AddDesign2Known(D)
|
||||
C.files.RefreshResearch()
|
||||
return
|
||||
|
||||
attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
|
||||
//The construction/deconstruction of the console code.
|
||||
|
||||
+4783
-4795
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user