Skip to content

Commit

Permalink
Sentry Upgrades + Minisentries (ColonialMarines-Mirror#576)
Browse files Browse the repository at this point in the history
-Sentry projectiles made slightly more powerful and accurate; 40 damage up from 35; penetration remains at 20.

-Sentry burst now customizable from 2 to 6 shots. Accuracy loss and scatter scale with the number of shots. Delay between bursts shots reduced to 0.1.

-Sentry no longer tries to acquire targets it has no clear line of fire to.

-Sentry now has a 360 mode that reduces its detection radius from 7 to 3 tiles.

-Sentry now has an alert notification system that triggers while on when it detects a hostile, falls over, takes damage, is destroyed, or runs out of ammo.

-Dropship gauss turret damage and pen increased considerably. These are still pretty easy to juke out and flank, but now should be feared.

-A big limitation is this thing's reliance on a slow process, making it incredibly sluggish; when the detpacks are merged, I will probably modify this to tap into its faster timer process.

-Still waiting on proper hand/back sprites though.

-Minisentries have 150 HP vs 200 HP of the standard sentry, have a lower knockover threshold of 70 damage vs 100, and generally have their maintenance actions (battery/ammo replacement) done twice as quickly.

-Minisentries can be point bought from Engi vendors for 26 points, or be bought at Req for 80 requisition.

-Minisentries have no manual fire mode; they are auto-fire only, and have a smaller burst ceiling than the standard sentry; 2-4 vs 2-6.

-Minisentries can be folded up, or deployed from their folded state; this takes about 4 seconds. A folded Minisentry can fit on the back, or in a technician's backpack (which can now hold M56D and sentry parts).
  • Loading branch information
Surrealaser authored and Rohesie committed Nov 7, 2018
1 parent 115c312 commit 878ab5f
Show file tree
Hide file tree
Showing 16 changed files with 666 additions and 125 deletions.
10 changes: 9 additions & 1 deletion code/__DEFINES/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,12 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse

//MEDEVAC DEFINES
#define MEDEVAC_COOLDOWN 3000 //300 seconds or 5 minutes
#define MEDEVAC_TELE_DELAY 50 //5 seconds
#define MEDEVAC_TELE_DELAY 50 //5 seconds
//Sentry defines
#define SENTRY_ALERT_AMMO 1
#define SENTRY_ALERT_HOSTILE 2
#define SENTRY_ALERT_FALLEN 3
#define SENTRY_ALERT_DAMAGE 4
#define SENTRY_ALERT_BATTERY 5
#define SENTRY_ALERT_DELAY 200 //20 seconds
#define SENTRY_DAMAGE_ALERT_DELAY 50 //5 seconds
4 changes: 3 additions & 1 deletion code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1653,7 +1653,7 @@ var/list/WALLITEMS = list(

//Bresenham's algorithm. This one deals efficiently with all 8 octants.
//Just don't ask me how it works.
/proc/getline2(atom/from_atom,atom/to_atom)
/proc/getline2(atom/from_atom, atom/to_atom, exclude_origin=FALSE)
if(!from_atom || !to_atom) return 0
var/list/turf/turfs = list()

Expand Down Expand Up @@ -1696,6 +1696,8 @@ var/list/WALLITEMS = list(
cur_x += dx2
cur_y += dy2

if(exclude_origin)
turfs -= get_turf(from_atom)

return turfs

Expand Down
63 changes: 55 additions & 8 deletions code/datums/supplypacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
//NOTE: Don't add living things to crates, that's bad, it will break the shuttle.
//NOTE: Do NOT set the price of any crates below 7 points. Doing so allows infinite points.

#define RO_PRICE_NEAR_FREE 10
#define RO_PRICE_VERY_CHEAP 20
#define RO_PRICE_CHEAP 30
#define RO_PRICE_NORMAL 40
#define RO_PRICE_PRICY 60
#define RO_PRICE_VERY_PRICY 100
#define RO_PRICE_NEAR_FREE 10
#define RO_PRICE_VERY_CHEAP 20
#define RO_PRICE_CHEAP 30
#define RO_PRICE_NORMAL 40
#define RO_PRICE_PRICY 60
#define RO_PRICE_PRETTY_PRICY 80
#define RO_PRICE_VERY_PRICY 100
#define RO_PRICE_MAX_PRICY 120

var/list/all_supply_groups = list("Operations", "Weapons", "Hardpoint Modules", "Attachments", "Ammo", "Armor", "Clothing", "Medical", "Engineering", "Science", "Supplies")

Expand Down Expand Up @@ -232,12 +234,34 @@ WEAPONS

/datum/supply_packs/weapons_sentry
name = "UA 571-C sentry crate (x1)"
contains = list()
contains = list(
/obj/item/storage/box/sentry
)
cost = RO_PRICE_VERY_PRICY
containertype = /obj/item/storage/box/sentry
containertype = /obj/structure/closet/crate/weapon
containername = "\improper sentry crate"
group = "Weapons"

/datum/supply_packs/weapons_minisentry
name = "UA-580 point defense sentry crate (x1)"
contains = list(
/obj/item/storage/box/minisentry
)
cost = RO_PRICE_PRETTY_PRICY
containertype = /obj/structure/closet/crate/weapon
containername = "\improper mini-sentry crate"
group = "Weapons"

/datum/supply_packs/weapons_m56d_emplacement
name = "M56D mounted smartgun crate (x1)"
contains = list(
/obj/item/storage/box/m56d_hmg
)
cost = RO_PRICE_VERY_PRICY
containertype = /obj/structure/closet/crate/weapon
containername = "\improper M56D emplacement crate"
group = "Weapons"

/datum/supply_packs/gun/pistols
contains = list(
/obj/item/weapon/gun/pistol/m4a3,
Expand Down Expand Up @@ -1768,6 +1792,29 @@ AMMO
containername = "\improper M402 mortar ammo crate"
group = "Ammo"

/datum/supply_packs/ammo_minisentry
name = "UA-580 point defense sentry ammo crate (x3)"
contains = list(
/obj/item/ammo_magazine/minisentry,
/obj/item/ammo_magazine/minisentry,
/obj/item/ammo_magazine/minisentry,
)
cost = RO_PRICE_NORMAL
containertype = /obj/structure/closet/crate/ammo
containername = "\improper mini-sentry ammo crate"
group = "Ammo"

/datum/supply_packs/ammo_m56d
name = "M56D mounted smartgun ammo crate (x2)"
contains = list(
/obj/item/ammo_magazine/m56d,
/obj/item/ammo_magazine/m56d,
)
cost = RO_PRICE_NORMAL
containertype = /obj/structure/closet/crate/ammo
containername = "\improper M56D emplacement ammo crate"
group = "Ammo"

/*******************************************************************************
ARMOR
*******************************************************************************/
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/vending/new_marine_vendors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,7 @@
list("Plasteel x10", 7, /obj/item/stack/sheet/plasteel/small_stack, null, "orange"),
list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, "orange"),
list("Plasma cutter", 20, /obj/item/tool/pickaxe/plasmacutter, null, "black"),
list("UA-580 point defense sentry kit", 26, /obj/item/storage/box/minisentry, null, "black"),
list("Plastique explosive", 5, /obj/item/explosive/plastique, null, "black"),
list("Entrenching tool", 1, /obj/item/tool/shovel/etool, null, "black"),
list("Range Finder", 10, /obj/item/device/binoculars/tactical/range, null, "black"),
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/radio/encryptionkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
name = "AI Integrated Encryption Key"
desc = "Integrated encryption key"
icon_state = "cap_cypherkey"
channels = list("Command" = 1, "MP" = 1, "Engi" = 1, "MedSci" = 1)
channels = list("Almayer" = 1, "Command" = 1, "MP" = 1, "Engi" = 1, "MedSci" = 1)

/obj/item/device/encryptionkey/engi
name = "Engineering Radio Encryption Key"
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@

/obj/item/storage/backpack/marine/tech
name = "\improper USCM technician backpack"
desc = "The standard-issue backpack worn by USCM technicians."
desc = "The standard-issue backpack worn by USCM technicians. Specially equipped to hold sentry gun and M56D emplacement parts."
icon_state = "marinepackt"
bypass_w_limit = list("/obj/item/device/m56d_gun",
"/obj/item/ammo_magazine/m56d",
Expand Down
Loading

0 comments on commit 878ab5f

Please sign in to comment.