diff --git a/.gitignore b/.gitignore
index ce2384c9..355a363b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,7 +16,6 @@ maps/newmedical tgstation2.dmm
*.bak2
maps/tgstation2_medbayrework_final.dmm
Outpost.dmm
-aurora.dme
data/investigate/gravity.html
data/investigate/gravity.html
config/admins.txt
@@ -24,3 +23,5 @@ config/admin_ranks.txt
data/investigate/gravity.html
data/investigate/gravity.html
data/investigate/gravity.html
+data/investigate/gravity.html
+data/investigate/gravity.html
diff --git a/aurora.dme b/aurora.dme
index 698cc9dc..217f3cd7 100644
--- a/aurora.dme
+++ b/aurora.dme
@@ -1222,6 +1222,7 @@
#include "code\modules\projectiles\guns\energy\burst.dm"
#include "code\modules\projectiles\guns\energy\erifles.dm"
#include "code\modules\projectiles\guns\energy\laser.dm"
+#include "code\modules\projectiles\guns\energy\lawgiver.dm"
#include "code\modules\projectiles\guns\energy\nuclear.dm"
#include "code\modules\projectiles\guns\energy\pulse.dm"
#include "code\modules\projectiles\guns\energy\special.dm"
diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm
index e0c63bd6..762e6902 100644
--- a/code/game/gamemodes/vampire/vampire.dm
+++ b/code/game/gamemodes/vampire/vampire.dm
@@ -319,8 +319,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
if(vamp.bloodtotal >= 150)
if(!(VAMP_CLOAK in vamp.powers))
vamp.powers.Add(VAMP_CLOAK)
- if(!(VAMP_DISEASE in vamp.powers))
- vamp.powers.Add(VAMP_DISEASE)
+
// TIER 3
if(vamp.bloodtotal >= 200)
@@ -329,6 +328,8 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
if(!(VAMP_SCREAM in vamp.powers))
vamp.powers.Add(VAMP_SCREAM)
src << "\blue Your rejuvination abilities have improved and will now heal you over time when used."
+ if(!(VAMP_DISEASE in vamp.powers))
+ vamp.powers.Add(VAMP_DISEASE)
// TIER 3.5 (/vg/)
if(vamp.bloodtotal >= 250)
@@ -369,7 +370,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
src << "\blue You have gained the Summon Bats ability."
verbs += /client/vampire/proc/vampire_bats // work in progress
if(VAMP_SCREAM)
- src << "\blue You have gained the Chriopteran Screech ability which stuns anything with ears in a large radius and shatters glass in the process."
+ src << "\blue You have gained the Chiropteran Screech ability which stuns anything with ears in a large radius and shatters glass in the process."
verbs += /client/vampire/proc/vampire_screech
if(VAMP_JAUNT)
src << "\blue You have gained the Mist Form ability which allows you to take on the form of mist for a short period and pass over any obstacle in your path."
diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm
index 0fa8671d..4ad1c547 100644
--- a/code/game/gamemodes/vampire/vampire_powers.dm
+++ b/code/game/gamemodes/vampire/vampire_powers.dm
@@ -113,7 +113,7 @@
// M.current.remove_vampire_blood(20) Moved to remove if it works only.
if(M.current.vampire_power(20, 0))
M.current.verbs -= /client/vampire/proc/vampire_hypnotise
- spawn(1800)
+ spawn(900)
M.current.verbs += /client/vampire/proc/vampire_hypnotise
if(do_mob(M.current, C, 50))
if(C.mind && C.mind.vampire)
@@ -133,12 +133,12 @@
/client/vampire/proc/vampire_disease()
set category = "Abilities"
- set name = "Diseased Touch (100)"
+ set name = "Diseased Touch (200)"
set desc = "Touches your victim with infected blood giving them the Shutdown Syndrome which quickly shutsdown their major organs resulting in a quick painful death."
var/datum/mind/M = usr.mind
if(!M) return
- var/mob/living/carbon/C = M.current.vampire_active(100, 0, 1)
+ var/mob/living/carbon/C = M.current.vampire_active(200, 0, 1)
if(!C) return
if(C==usr)
M.current << "\red You can't do that to yourself"
@@ -179,7 +179,7 @@
usr.attack_log += text("\[[time_stamp()]\] Gave [C.name] ([C.ckey]) the shutdown disease")
C.attack_log += text("\[[time_stamp()]\] Has been given the shutdown disease by [usr.name] ([usr.ckey])")
infect_virus2(C,shutdown,0)
- M.current.remove_vampire_blood(100)
+ M.current.remove_vampire_blood(200)
M.current.verbs -= /client/vampire/proc/vampire_disease
spawn(1800) M.current.verbs += /client/vampire/proc/vampire_disease
@@ -193,7 +193,7 @@
M.current.visible_message("\red [M.current]'s eyes emit a blinding flash!")
//M.vampire.bloodusable -= 10
M.current.verbs -= /client/vampire/proc/vampire_glare
- spawn(450)
+ spawn(800)
M.current.verbs += /client/vampire/proc/vampire_glare
if(istype(M.current:glasses, /obj/item/clothing/glasses/sunglasses/blindfold))
M.current << "You're blindfolded!"
@@ -225,11 +225,11 @@
*/
/client/vampire/proc/vampire_screech()
set category = "Abilities"
- set name = "Chiropteran Screech (30)"
- set desc = "An extremely loud shriek that stuns nearby humans in a four-tile radius." //and breaks windows as well ||Or would if duck knew how to code. end orig text.
+ set name = "Chiropteran Screech (90)"
+ set desc = "An extremely loud shriek that stuns nearby humans in a four-tile radius, as well as shattering the windows."
var/datum/mind/M = usr.mind
if(!M) return
- if(M.current.vampire_power(30, 0))
+ if(M.current.vampire_power(90, 0))
M.current.visible_message("\red [M.current.name] lets out an ear piercing shriek!", "\red You let out a loud shriek.", "\red You hear a loud painful shriek!")
for(var/mob/living/carbon/C in hearers(4, M.current))
if(C == M.current) continue
@@ -238,17 +238,17 @@
if(!C.isipc())
continue
C << "You hear a ear piercing shriek and your senses dull!"
- C.Weaken(8)
+ C.Weaken(5)
C.ear_deaf = 20
C.stuttering = 20
- C.Stun(8)
+ C.Stun(5)
// C.Jitter(150)
- for(var/obj/structure/window/W in view(4))
+ for(var/obj/structure/window/W in view(7))
W.destroy()
playsound(M.current.loc, 'sound/effects/creepyshriek.ogg', 100, 1)
- M.current.remove_vampire_blood(30)
+ M.current.remove_vampire_blood(90)
M.current.verbs -= /client/vampire/proc/vampire_screech
- spawn(1800) M.current.verbs += /client/vampire/proc/vampire_screech
+ spawn(3600) M.current.verbs += /client/vampire/proc/vampire_screech
/client/vampire/proc/vampire_enthrall()
set category = "Abilities"
@@ -387,13 +387,13 @@
/client/vampire/proc/vampire_jaunt()
//AHOY COPY PASTE INCOMING
set category = "Abilities"
- set name = "Mist Form (30)"
+ set name = "Mist Form (45)"
set desc = "You take on the form of mist for a short period of time."
var/jaunt_duration = 50 //in deciseconds
var/datum/mind/M = usr.mind
if(!M) return
- if(M.current.vampire_power(30, 0))
+ if(M.current.vampire_power(45, 0))
if(M.current.buckled) M.current.buckled.unbuckle()
spawn(0)
var/originalloc = get_turf(M.current.loc)
@@ -406,7 +406,7 @@
animation.icon_state = "liquify"
animation.layer = 5
animation.master = holder
- //M.current.ExtinguishMob()
+ M.current.ExtinguishMob()
if(M.current.buckled)
M.current.buckled.unbuckle()
flick("liquify",animation)
@@ -437,7 +437,7 @@
M.current.client.eye = M.current
del(animation)
del(holder)
- M.current.remove_vampire_blood(30)
+ M.current.remove_vampire_blood(45)
M.current.verbs -= /client/vampire/proc/vampire_jaunt
spawn(600) M.current.verbs += /client/vampire/proc/vampire_jaunt
@@ -481,7 +481,7 @@
if(!picked || !isturf(picked))
return
- //M.current.ExtinguishMob()
+ M.current.ExtinguishMob()
if(M.current.buckled)
M.current.buckled.unbuckle()
var/atom/movable/overlay/animation = new /atom/movable/overlay( get_turf(usr) )
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 3180648f..83376eea 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -33,7 +33,7 @@
// 1 for one bullet after tarrget moves and aim is lowered
var/fire_delay = 6
var/last_fired = 0
- var/fire_cooldown = 0
+ var/fire_cooldown = 0 //burst fire code
var/wielded = 0
@@ -74,6 +74,7 @@
Fire(A,user,params) //Otherwise, fire normally.
if(fire_cooldown)
sleep(fire_cooldown)
+ sleep(fire_cooldown*3)
/obj/item/weapon/gun/proc/isHandgun()
diff --git a/code/modules/projectiles/guns/energy/lawgiver.dm b/code/modules/projectiles/guns/energy/lawgiver.dm
new file mode 100644
index 00000000..5f9b82a9
--- /dev/null
+++ b/code/modules/projectiles/guns/energy/lawgiver.dm
@@ -0,0 +1,95 @@
+/obj/item/weapon/gun/energy/lawgiver
+ name = "Lawgiver Mk II"
+ desc = "A highly advanced firearm for the modern police force. It has multiple voice-activated firing modes."
+ icon_state = "lawgiver"
+ item_state = "gun"
+ fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+
+ projectile_type = "/obj/item/projectile/bullet/midbullet2"
+ origin_tech = "combat=6;magnets=5"
+
+ var/ammomode = 0
+ var/dna //dna-locking the firearm
+
+ proc/hear(message, source as mob)
+ return
+
+
+ /obj/item/weapon/gun/energy/lawgiver/attack_self(mob/user)
+ if(dna != null)
+ return
+ else
+ src.dna = user.dna.unique_enzymes
+ user << "\blue You feel your palm heat up as the gun reads your DNA profile."
+
+ Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)
+ if(src.dna != user.dna.unique_enzymes)
+ user << "\red You hear a soft beep from the gun and 'ID FAIL' flashes across the screen."
+ playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
+ user << "[src] blows up in your face!"
+ explosion(get_turf(user), 0, 0, 1, rand(1,2))
+ user.drop_item()
+ del(src)
+ return 0
+ ..()
+
+
+ hear_talk(mob/living/M in range(0,src), msg)
+ hear(msg)
+ return
+
+ hear(var/msg)
+ var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = ""," " = "")
+ msg = sanitize_simple(msg, replacechars)
+ if(findtext(msg,"singleshot") && (src.dna==usr.dna.unique_enzymes) && (src in usr.contents))
+ ammomode = 0
+ charge_cost = 50
+ fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ usr << "\red [src.name] is now set to single shot mode."
+ projectile_type = "/obj/item/projectile/bullet/midbullet2"
+ fire_delay = 3
+ projectiles_per_shot = 1
+ fire_cooldown = 0
+ recoil = 1
+ else if(findtext(msg,"burstfire") && (src.dna==usr.dna.unique_enzymes) && (src in usr.contents))
+ ammomode = 1
+ charge_cost = 50
+ fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ usr << "\red [src.name] is now set to burst fire mode."
+ projectile_type = "/obj/item/projectile/bullet/midbullet2"
+ fire_delay = 2
+ projectiles_per_shot = 3
+ fire_cooldown = 2
+ recoil = 1
+ else if(findtext(msg,"highex") && (src.dna==usr.dna.unique_enzymes) && (src in usr.contents))
+ ammomode = 2
+ charge_cost = 200
+ fire_sound = 'sound/effects/Explosion1.ogg'
+ usr << "\red [src.name] is now set to high explosive mode."
+ projectile_type = "/obj/item/projectile/bullet/gyro/law"
+ fire_delay = 6
+ projectiles_per_shot = 1
+ fire_cooldown = 0
+ recoil = 3
+ else if(findtext(msg,"stun") && (src.dna==usr.dna.unique_enzymes) && (src in usr.contents))
+ ammomode = 3
+ charge_cost = 50
+ fire_sound = 'sound/weapons/Taser.ogg'
+ usr << "\red [src.name] is now set to stun mode."
+ projectile_type = "/obj/item/projectile/energy/electrode/high"
+ fire_delay = 4
+ projectiles_per_shot = 1
+ fire_cooldown = 0
+ recoil = 0
+ else if(findtext(msg,"hotshot") && (src.dna==usr.dna.unique_enzymes) && (src in usr.contents))
+ ammomode = 4
+ charge_cost = 200
+ fire_sound = 'sound/weapons/lasercannonfire.ogg'
+ usr << "\red [src.name] is now set to incendiary mode."
+ projectile_type = "/obj/item/projectile/bullet/incendiary/shell"
+ fire_delay = 6
+ projectiles_per_shot = 1
+ fire_cooldown = 0
+ recoil = 1
+ else
+ return
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 7deef63e..4a7b3d39 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -23,7 +23,7 @@
else
loc << "\red [src.name] is now set to fire in bursts."
projectiles_per_shot = 3
- fire_cooldown = 2
+ fire_cooldown = 1
update_icon()
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index d1d783da..77378341 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -34,6 +34,18 @@
/obj/item/projectile/bullet/midbullet2
damage = 25
+/obj/item/projectile/bullet/incendiary
+ icon_state= "fireball"
+
+/obj/item/projectile/bullet/incendiary/on_hit(var/atom/target, var/blocked = 0)
+ if(istype(target, /mob/living/carbon))
+ var/mob/living/carbon/M = target
+ M.adjust_fire_stacks(1)
+ M.IgniteMob()
+
+/obj/item/projectile/bullet/incendiary/shell
+ damage = 20
+
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
name = "co bullet"
damage = 20
diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm
index c238a616..573fcf7c 100644
--- a/code/modules/projectiles/projectile/force.dm
+++ b/code/modules/projectiles/projectile/force.dm
@@ -13,7 +13,7 @@
var/obj/T = target
var/throwdir = get_dir(firer,target)
- T.throw_at(get_edge_target_turf(target, throwdir),10,10)
+ T.throw_at(get_edge_target_turf(target, throwdir),5,5)
return 1
/*
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 1b1ced6a..1fc605b5 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -24,6 +24,21 @@
explosion(target, -1, 0, 2)
return 1
+/obj/item/projectile/bullet/gyro/law
+ name ="high-ex round"
+ icon_state= "bolter"
+ damage = 5
+ flag = "bullet"
+
+/obj/item/projectile/bullet/gyro/law/on_hit(var/atom/target, var/blocked = 0)
+
+ explosion(target, -1, 0, 2)
+ sleep(0)
+ var/obj/T = target
+ var/throwdir = get_dir(firer,target)
+ T.throw_at(get_edge_target_turf(target, throwdir),3,3)
+ return 1
+
/obj/item/projectile/temp
name = "freeze beam"
icon_state = "ice_2"
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 27f4dcca..b84d1784 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -180,7 +180,7 @@
icon_state = "chemsprayer"
item_state = "chemsprayer"
throwforce = 3
- w_class = 3.0
+ w_class = 5.0
possible_transfer_amounts = null
volume = 600
origin_tech = "combat=3;materials=3;engineering=3"
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 90e61014..20b5e6d5 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1554,7 +1554,7 @@ datum/design/largecrossbow
build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow"
datum/design/temp_gun
- name = "Temperature Gun"
+ name = "Freeze Ray"
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
id = "temp_gun"
req_tech = list("combat" = 3, "materials" = 4, "powerstorage" = 3, "magnets" = 2)
@@ -1592,6 +1592,16 @@ datum/design/smg
build_path = "/obj/item/weapon/gun/projectile/automatic"
locked = 1
+datum/design/rapidlaser
+ name = "Rapid-fire Laser"
+ desc = "A fast-firing laser that shoots bursts of weaker beams."
+ id = "smg"
+ req_tech = list("combat" = 4, "materials" = 3)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$uranium" = 1000)
+ build_path = "/obj/item/weapon/gun/energy/automatic/rapidlaser"
+ locked = 1
+
datum/design/ammo_9mm
name = "Ammunition Box (9mm)"
desc = "A box of prototype 9mm ammunition."
@@ -1618,6 +1628,15 @@ datum/design/plasmapistol
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000)
build_path = "/obj/item/weapon/gun/energy/toxgun"
+
+datum/design/lawgiver
+ name = "Lawgiver Mk II"
+ desc = "A highly advanced firearm for the modern police force. It has multiple voice-activated firing modes."
+ id = "lawgiver"
+ req_tech = list("combat" = 6, "plasmatech" = 4, "bluespace" = 5, "materials" = 7)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 6000, "$glass" = 1000, "$uranium" = 1000, "$plasma" = 1000, "$diamond" = 3000)
+ build_path = "/obj/item/weapon/gun/energy/lawgiver"
/////////////////////////////////////////
/////////////////Mining//////////////////
/////////////////////////////////////////
diff --git a/data/investigate/gravity.html b/data/investigate/gravity.html
index f36d107e..3696847b 100644
--- a/data/investigate/gravity.html
+++ b/data/investigate/gravity.html
@@ -1,2 +1,2 @@
-23:18 [0x200a0a0] (92,152,1) || the gravitational generator has regained power.
-23:18 [0x200a0a0] (92,152,1) || the gravitational generator is now charging.
+00:33 [0x20077ab] (92,152,1) || the gravitational generator has regained power.
+00:33 [0x20077ab] (92,152,1) || the gravitational generator is now charging.
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index d03c3ad7..e5eaad5d 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ