Fixes revolver paths, span classes, typo. Cleans exodus-1.dmm

Tweaks syringe gun and dart gun, renames syringe gun cartridges and makes them printable.
Adjusts penetration so that passing through mobs happens with a probability that scales with damage.
Adds a .45 signal pistol to the HoP's closet and a 9mm one to the mercenary shuttle.
This commit is contained in:
mwerezak
2015-02-14 01:56:20 -05:00
parent 8cb3c6a821
commit 08635587e1
17 changed files with 1197 additions and 1193 deletions

View File

@@ -40,7 +40,7 @@
new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"), new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/g9mm, 5, "Silenced 9mm", "S9"), new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/g9mm, 5, "Silenced 9mm", "S9"),
new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"), new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"),
new/datum/uplink_item(/obj/item/weapon/gun/projectile, 6, "Revolver", "RE"), new/datum/uplink_item(/obj/item/weapon/gun/projectile/revolver, 6, "Revolver", "RE"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Mercenary Bundle", "BU") new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Mercenary Bundle", "BU")
), ),
"Stealthy and Inconspicuous Weapons" = list( "Stealthy and Inconspicuous Weapons" = list(

View File

@@ -201,6 +201,11 @@
path = /obj/item/weapon/reagent_containers/syringe path = /obj/item/weapon/reagent_containers/syringe
category = "Medical" category = "Medical"
/datum/autolathe/recipe/syringegun_ammo
name = "syringe"
path = /obj/item/weapon/syringe_cartridge
category = "Arms and Ammunition"
/datum/autolathe/recipe/shotgun_blanks /datum/autolathe/recipe/shotgun_blanks
name = "ammunition (shotgun, blank)" name = "ammunition (shotgun, blank)"
path = /obj/item/ammo_casing/shotgun/blank path = /obj/item/ammo_casing/shotgun/blank

View File

@@ -79,7 +79,6 @@
/obj/item/weapon/storage/box/syringes /obj/item/weapon/storage/box/syringes
name = "box of syringes" name = "box of syringes"
desc = "A box full of syringes." desc = "A box full of syringes."
// desc = "A biohazard alert warning is printed on the box"
icon_state = "syringe" icon_state = "syringe"
New() New()
@@ -93,7 +92,7 @@
new /obj/item/weapon/reagent_containers/syringe( src ) new /obj/item/weapon/reagent_containers/syringe( src )
/obj/item/weapon/storage/box/syringegun /obj/item/weapon/storage/box/syringegun
name = "box of compressed gas cartridges" name = "box of syringe gun cartridges"
desc = "A box full of compressed gas cartridges." desc = "A box full of compressed gas cartridges."
icon_state = "syringe" icon_state = "syringe"

View File

@@ -54,6 +54,7 @@
new /obj/item/weapon/storage/box/ids(src) new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids( src ) new /obj/item/weapon/storage/box/ids( src )
new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/gun/projectile/detective/flash(src)
new /obj/item/device/flash(src) new /obj/item/device/flash(src)
return return

View File

@@ -595,7 +595,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile(M), slot_r_hand) M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver(M), slot_r_hand)
M.equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(M), slot_l_store) M.equip_to_slot_or_del(new /obj/item/ammo_magazine/a357(M), slot_l_store)
if ("tournament chef") //Steven Seagal FTW if ("tournament chef") //Steven Seagal FTW

View File

@@ -101,7 +101,7 @@
//Does not stun, only blinds, but has area of effect. //Does not stun, only blinds, but has area of effect.
/obj/item/ammo_casing/shotgun/flash /obj/item/ammo_casing/shotgun/flash
name = "flash shell" name = "flash shell"
desc = "A flash shell used to provide illumination." desc = "A chemical shell used to signal distress or provide illumination."
icon_state = "fshell" icon_state = "fshell"
projectile_type = /obj/item/projectile/energy/flash/flare projectile_type = /obj/item/projectile/energy/flash/flare
matter = list("metal" = 250, "glass" = 250) matter = list("metal" = 250, "glass" = 250)

View File

@@ -40,7 +40,7 @@
if(istype(user,/mob/living/carbon/human)) if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
if(H.species && H.species.name != "Vox" && H.species.name != "Vox Armalis") if(H.species && H.species.name != "Vox" && H.species.name != "Vox Armalis")
user << "\red \The [src] does not respond to you!" user << "<span class='warning'>\The [src] does not respond to you!</span>"
return 0 return 0
return ..() return ..()
@@ -81,7 +81,7 @@
if(H.species.name == "Vox Armalis") if(H.species.name == "Vox Armalis")
..() ..()
return return
user << "\red \The [src] is far too large for you to pick up." user << "<span class='warning'>\The [src] is far too large for you to pick up.</span>"
return return
/obj/item/weapon/gun/energy/noisecannon/update_icon() /obj/item/weapon/gun/energy/noisecannon/update_icon()

View File

@@ -99,7 +99,7 @@ obj/item/weapon/gun/energy/laser/retro
/obj/item/weapon/gun/energy/lasertag/special_check(var/mob/living/carbon/human/M) /obj/item/weapon/gun/energy/lasertag/special_check(var/mob/living/carbon/human/M)
if(ishuman(M)) if(ishuman(M))
if(!istype(M.wear_suit, required_vest)) if(!istype(M.wear_suit, required_vest))
M << "\red You need to be wearing your laser tag vest!" M << "<span class='warning'>You need to be wearing your laser tag vest!</span>"
return 0 return 0
return ..() return ..()

View File

@@ -18,14 +18,14 @@
mode = 1 mode = 1
charge_cost = 100 charge_cost = 100
fire_sound = 'sound/weapons/Laser.ogg' fire_sound = 'sound/weapons/Laser.ogg'
user << "\red [src.name] is now set to kill." user << "<span class='warning'>[src.name] is now set to kill.</span>"
projectile_type = /obj/item/projectile/beam projectile_type = /obj/item/projectile/beam
modifystate = "energykill" modifystate = "energykill"
if(1) if(1)
mode = 0 mode = 0
charge_cost = 100 charge_cost = 100
fire_sound = 'sound/weapons/Taser.ogg' fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun." user << "<span class='warning'>[src.name] is now set to stun.</span>"
projectile_type = /obj/item/projectile/beam/stun projectile_type = /obj/item/projectile/beam/stun
modifystate = "energystun" modifystate = "energystun"
update_icon() update_icon()
@@ -66,16 +66,16 @@
if (prob(src.reliability)) if (prob(src.reliability))
for (var/mob/living/M in range(0,src)) //Only a minor failure, enjoy your radiation if you're in the same tile or carrying it for (var/mob/living/M in range(0,src)) //Only a minor failure, enjoy your radiation if you're in the same tile or carrying it
if (src in M.contents) if (src in M.contents)
M << "\red Your gun feels pleasantly warm for a moment." M << "<span class='warning'>Your gun feels pleasantly warm for a moment.</span>"
else else
M << "\red You feel a warm sensation." M << "<span class='warning'>You feel a warm sensation.</span>"
M.apply_effect(rand(3,120), IRRADIATE) M.apply_effect(rand(3,120), IRRADIATE)
lightfail = 1 lightfail = 1
else else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents) if (src in M.contents)
M << "\red Your gun's reactor overloads!" M << "<span class='danger'>Your gun's reactor overloads!</span>"
M << "\red You feel a wave of heat wash over you." M << "<span class='warning'>You feel a wave of heat wash over you.</span>"
M.apply_effect(300, IRRADIATE) M.apply_effect(300, IRRADIATE)
crit_fail = 1 //break the gun so it stops recharging crit_fail = 1 //break the gun so it stops recharging
processing_objects.Remove(src) processing_objects.Remove(src)

View File

@@ -18,19 +18,19 @@
mode = 0 mode = 0
charge_cost = 100 charge_cost = 100
fire_sound = 'sound/weapons/Taser.ogg' fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun." user << "<span class='warning'>[src.name] is now set to stun.</span>"
projectile_type = /obj/item/projectile/beam/stun projectile_type = /obj/item/projectile/beam/stun
if(0) if(0)
mode = 1 mode = 1
charge_cost = 100 charge_cost = 100
fire_sound = 'sound/weapons/Laser.ogg' fire_sound = 'sound/weapons/Laser.ogg'
user << "\red [src.name] is now set to kill." user << "<span class='warning'>[src.name] is now set to kill.</span>"
projectile_type = /obj/item/projectile/beam projectile_type = /obj/item/projectile/beam
if(1) if(1)
mode = 2 mode = 2
charge_cost = 200 charge_cost = 200
fire_sound = 'sound/weapons/pulse.ogg' fire_sound = 'sound/weapons/pulse.ogg'
user << "\red [src.name] is now set to DESTROY." user << "<span class='warning'>[src.name] is now set to DESTROY.</span>"
projectile_type = /obj/item/projectile/beam/pulse projectile_type = /obj/item/projectile/beam/pulse
/obj/item/weapon/gun/energy/pulse_rifle/mounted /obj/item/weapon/gun/energy/pulse_rifle/mounted
@@ -44,7 +44,7 @@
fire_delay = 10 fire_delay = 10
/obj/item/weapon/gun/energy/pulse_rifle/destroyer/attack_self(mob/living/user as mob) /obj/item/weapon/gun/energy/pulse_rifle/destroyer/attack_self(mob/living/user as mob)
user << "\red [src.name] has three settings, and they are all DESTROY." user << "<span class='warning'>[src.name] has three settings, and they are all DESTROY.</span>"
//WHY? //WHY?

View File

@@ -43,13 +43,13 @@
if(0) if(0)
mode = 1 mode = 1
charge_cost = 100 charge_cost = 100
user << "\red The [src.name] is now set to increase yield." user << "<span class='warning'>The [src.name] is now set to increase yield.</span>"
projectile_type = /obj/item/projectile/energy/florayield projectile_type = /obj/item/projectile/energy/florayield
modifystate = "florayield" modifystate = "florayield"
if(1) if(1)
mode = 0 mode = 0
charge_cost = 100 charge_cost = 100
user << "\red The [src.name] is now set to induce mutations." user << "<span class='warning'>The [src.name] is now set to induce mutations.</span>"
projectile_type = /obj/item/projectile/energy/floramut projectile_type = /obj/item/projectile/energy/floramut
modifystate = "floramut" modifystate = "floramut"
update_icon() update_icon()
@@ -58,7 +58,7 @@
/obj/item/weapon/gun/energy/floragun/afterattack(obj/target, mob/user, adjacent_flag) /obj/item/weapon/gun/energy/floragun/afterattack(obj/target, mob/user, adjacent_flag)
//allow shooting into adjacent hydrotrays regardless of intent //allow shooting into adjacent hydrotrays regardless of intent
if(adjacent_flag && istype(target,/obj/machinery/portable_atmospherics/hydroponics)) if(adjacent_flag && istype(target,/obj/machinery/portable_atmospherics/hydroponics))
user.visible_message("\red <b> \The [user] fires \the [src] into \the [target]!</b>") user.visible_message("<span class='danger'>\The [user] fires \the [src] into \the [target]!</span>")
Fire(target,user) Fire(target,user)
return return
..() ..()
@@ -123,7 +123,7 @@
/obj/item/weapon/gun/energy/staff/handle_click_empty(mob/user = null) /obj/item/weapon/gun/energy/staff/handle_click_empty(mob/user = null)
if (user) if (user)
user.visible_message("*fizzle*", "\red <b>*fizzle*</b>") user.visible_message("*fizzle*", "<span class='danger'>*fizzle*</span>")
else else
src.visible_message("*fizzle*") src.visible_message("*fizzle*")
playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 1) playsound(src.loc, 'sound/effects/sparks1.ogg', 100, 1)
@@ -146,11 +146,11 @@ obj/item/weapon/gun/energy/staff/focus
attack_self(mob/living/user as mob) attack_self(mob/living/user as mob)
if(projectile_type == "/obj/item/projectile/forcebolt") if(projectile_type == "/obj/item/projectile/forcebolt")
charge_cost = 200 charge_cost = 200
user << "\red The [src.name] will now strike a small area." user << "<span class='warning'>The [src.name] will now strike a small area.</span>"
projectile_type = "/obj/item/projectile/forcebolt/strong" projectile_type = "/obj/item/projectile/forcebolt/strong"
else else
charge_cost = 100 charge_cost = 100
user << "\red The [src.name] will now strike only a single person." user << "<span class='warning'>The [src.name] will now strike only a single person.</span>"
projectile_type = "/obj/item/projectile/forcebolt" projectile_type = "/obj/item/projectile/forcebolt"
*/ */

View File

@@ -1,16 +1,16 @@
/obj/item/weapon/syringe_cartridge /obj/item/weapon/syringe_cartridge
name = "compressed gas cartridge" name = "syringe gun cartridge"
desc = "An impact-triggered compressed gas cartridge that can fitted to a syringe for rapid injection." desc = "An impact-triggered compressed gas cartridge that can fitted to a syringe for rapid injection."
icon = 'icons/obj/ammo.dmi' icon = 'icons/obj/ammo.dmi'
icon_state = "syringe-cartridge" icon_state = "syringe-cartridge"
var/icon_flight = "syringe-cartridge-flight" //so it doesn't look so weird when shot var/icon_flight = "syringe-cartridge-flight" //so it doesn't look so weird when shot
matter = list("metal" = 125, "glass" = 375)
flags = CONDUCT flags = CONDUCT
slot_flags = SLOT_BELT slot_flags = SLOT_BELT
throwforce = 3 throwforce = 3
force = 3 force = 3
w_class = 1 w_class = 1
var/obj/item/weapon/reagent_containers/syringe/syringe var/obj/item/weapon/reagent_containers/syringe/syringe
var/primed = 0
/obj/item/weapon/syringe_cartridge/update_icon() /obj/item/weapon/syringe_cartridge/update_icon()
underlays.Cut() underlays.Cut()
@@ -39,14 +39,13 @@
//the icon state will revert back when update_icon() is called from throw_impact() //the icon state will revert back when update_icon() is called from throw_impact()
icon_state = icon_flight icon_state = icon_flight
underlays.Cut() underlays.Cut()
primed = 1
/obj/item/weapon/syringe_cartridge/throw_impact(atom/hit_atom, var/speed) /obj/item/weapon/syringe_cartridge/throw_impact(atom/hit_atom, var/speed)
..() //handles embedding for us. Should have a decent chance if thrown fast enough ..() //handles embedding for us. Should have a decent chance if thrown fast enough
if(syringe) if(syringe)
//check speed to see if we hit hard enough to trigger the rapid injection //check speed to see if we hit hard enough to trigger the rapid injection
//incidentally, this means syringe_cartridges can be used with the pneumatic launcher //incidentally, this means syringe_cartridges can be used with the pneumatic launcher
if(speed >= 10 && primed && isliving(hit_atom)) if(speed >= 10 && isliving(hit_atom))
var/mob/living/L = hit_atom var/mob/living/L = hit_atom
//unfortuately we don't know where the dart will actually hit, since that's done by the parent. //unfortuately we don't know where the dart will actually hit, since that's done by the parent.
if(L.can_inject()) if(L.can_inject())
@@ -93,7 +92,7 @@
/obj/item/weapon/gun/launcher/syringe/attack_self(mob/living/user as mob) /obj/item/weapon/gun/launcher/syringe/attack_self(mob/living/user as mob)
if(next) if(next)
user.visible_message("[user] unlatches and carefully relax the bolt on [src].", "<span class='notice'>You unlatch and carefully relax the bolt on [src], unloading the spring.</span>") user.visible_message("[user] unlatches and carefully relaxes the bolt on [src].", "<span class='warning'>You unlatch and carefully relax the bolt on [src], unloading the spring.</span>")
next = null next = null
else if(darts.len) else if(darts.len)
playsound(src.loc, 'sound/weapons/flipblade.ogg', 50, 1) playsound(src.loc, 'sound/weapons/flipblade.ogg', 50, 1)
@@ -106,7 +105,7 @@
user << "<span class='warning'>[src] is empty.</span>" user << "<span class='warning'>[src] is empty.</span>"
return return
if(next) if(next)
user << "<span class='warning'>The cover on [src] is locked shut.</span>" user << "<span class='warning'>[src]'s cover is locked shut.</span>"
return return
var/obj/item/weapon/syringe_cartridge/C = darts[1] var/obj/item/weapon/syringe_cartridge/C = darts[1]
darts -= C darts -= C
@@ -129,7 +128,7 @@
..() ..()
/obj/item/weapon/gun/launcher/syringe/rapid /obj/item/weapon/gun/launcher/syringe/rapid
name = "rapid syringe gun" name = "syringe gun revolver"
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to four syringes. The spring still needs to be drawn between shots." desc = "A modification of the syringe gun design, using a rotating cylinder to store up to five syringes. The spring still needs to be drawn between shots."
icon_state = "rapidsyringegun" icon_state = "rapidsyringegun"
max_darts = 4 max_darts = 5

View File

@@ -1,11 +1,11 @@
/obj/item/projectile/bullet/chemdart /obj/item/projectile/bullet/chemdart
name = "dart" name = "dart"
icon_state = "dart" icon_state = "dart"
damage = 1 damage = 5
sharp = 1 sharp = 1
embed = 0 embed = 1 //the dart is shot fast enough to pierce space suits, so I guess splintering inside the target can be a thing. Should be rare due to low damage.
var/reagent_amount = 15 var/reagent_amount = 15
kill_count = 10 //shorter range kill_count = 15 //shorter range
/obj/item/projectile/bullet/chemdart/New() /obj/item/projectile/bullet/chemdart/New()
reagents = new/datum/reagents(reagent_amount) reagents = new/datum/reagents(reagent_amount)
@@ -19,7 +19,7 @@
/obj/item/ammo_casing/chemdart /obj/item/ammo_casing/chemdart
name = "chemical dart" name = "chemical dart"
desc = "A small hollow dart." desc = "A small hardened, hollow dart."
icon_state = "dart" icon_state = "dart"
caliber = "dart" caliber = "dart"
projectile_type = /obj/item/projectile/bullet/chemdart projectile_type = /obj/item/projectile/bullet/chemdart

View File

@@ -21,9 +21,8 @@
if(ismob(A)) if(ismob(A))
if(iscarbon(A)) if(iscarbon(A))
//squishy mobs absorb KE if (damage <= 20 && !prob(damage)) return 0
if (damage <= 20) return 0 damage *= 0.7 //squishy mobs absorb KE
damage *= 0.7
return 1 return 1
if(istype(A, /obj/machinery) || istype(A, /obj/structure)) if(istype(A, /obj/machinery) || istype(A, /obj/structure))

View File

@@ -6,11 +6,12 @@
check_armour = "energy" check_armour = "energy"
//releases a very short burst of light on impact, mainly used to blind people //releases a burst of light on impact or after travelling a distance
/obj/item/projectile/energy/flash /obj/item/projectile/energy/flash
name = "shell" //a chemical filled shell or something name = "chemical shell"
icon_state = "bullet" icon_state = "bullet"
damage = 5 damage = 5
kill_count = 15 //if the shell hasn't hit anything after travelling this far it just explodes.
var/flash_range = 0 var/flash_range = 0
var/brightness = 7 var/brightness = 7
var/light_duration = 5 var/light_duration = 5

File diff suppressed because it is too large Load Diff

View File

@@ -705,7 +705,7 @@
"nC" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nC" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = null; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
"nD" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nD" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
"nE" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership) "nE" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
"nF" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "nF" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/ammo_magazine/mc9mm/flash,/obj/item/weapon/gun/projectile/pistol/flash,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
"nG" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "nG" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"nH" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "nH" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
"nI" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "nI" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)