12/21 modernizations from TG live (#103)

* sync (#3)

* shuttle auto call

* Merge /vore into /master (#39)

* progress

* Compile errors fixed

No idea if it's test worthy tho as conflicts with race overhaul and
narky removal.

* Update admins.txt

* efforts continue

Fuck grab code, seriously

* grab code is cancer

* Execute the Narkism

Do not hesitate.

Show no mercy.

* holy shit grab code is awful

* have I bitched about grab code

My bitching, let me show you it

* código de agarre es una mierda

No really it is

* yeah I don't even know anymore.

* Lolnope. Fuck grab code

* I'm not even sure what to fix anymore

* Self eating is not an acceptable fate

* Taste the void, son.

* My code doesn't pass it's own sanity check.

Maybe it's a sign of things to come.

* uncommented and notes

* It Works and I Don't Know Why (#38)

* shuttle auto call

* it works and I don't know why

* Subsystem 12/21

Most Recent TG subsystem folder

* globalvars 12/21

Tossed out the flavor_misc and parallax files

* Onclick 12/21

as well as .dme updates

* _defines 12/21

ommited old _MC.dm

* _HELPERS 12/21

Preserved snowflake placement of furry sprites

* _defeines/genetics

reapplied narkism holdover for snowflake races.

* Oops forgot mutant colors

* modules porting 12/21 + Sounds/icons

Admin, Client and most of mob life files ommitted

* enviroment file

* Admin optimizations

ahelp log system kept

* Mob ports 12/21

Flavor text preserved

* datums ported 12/21

* Game ported 12/21

* batch of duplicate fixes/dogborg work

Dogborgs need to be modernized to refractored borg standards.

* moar fixes

* Maps and futher compile fixes
This commit is contained in:
Poojawa
2016-12-22 03:57:55 -06:00
committed by GitHub
parent f5e143a452
commit cf59ac1c3d
2215 changed files with 707445 additions and 87041 deletions
+38 -22
View File
@@ -13,7 +13,7 @@ var/global/list/uplinks = list()
var/active = FALSE
var/lockable = TRUE
var/telecrystals = 20
var/selected_cat = null
var/owner = null
var/datum/game_mode/gamemode = null
var/spent_telecrystals = 0
@@ -27,6 +27,28 @@ var/global/list/uplinks = list()
uplinks -= src
return ..()
/obj/item/device/uplink/attackby(obj/item/I, mob/user, params)
for(var/item in subtypesof(/datum/uplink_item))
var/datum/uplink_item/UI = item
var/path = null
if(initial(UI.refund_path))
path = initial(UI.refund_path)
else
path = initial(UI.item)
var/cost = 0
if(initial(UI.refund_amount))
cost = initial(UI.refund_amount)
else
cost = initial(UI.cost)
var/refundable = initial(UI.refundable)
if(I.type == path && refundable && I.check_uplink_validity())
telecrystals += cost
spent_telecrystals -= cost
user << "<span class='notice'>[I] refunded.</span>"
qdel(I)
return
..()
/obj/item/device/uplink/interact(mob/user)
active = TRUE
ui_interact(user)
@@ -46,22 +68,24 @@ var/global/list/uplinks = list()
data["lockable"] = lockable
var/list/uplink_items = get_uplink_items(gamemode)
data["categories"] = list()
for(var/category in uplink_items)
var/list/cat = list(
"name" = category,
"items" = list(),
)
for(var/item in uplink_items[category])
var/datum/uplink_item/I = uplink_items[category][item]
cat["items"] += list(list(
"name" = I.name,
"cost" = I.cost,
"desc" = I.desc,
))
"items" = (category == selected_cat ? list() : null))
if(category == selected_cat)
for(var/item in uplink_items[category])
var/datum/uplink_item/I = uplink_items[category][item]
cat["items"] += list(list(
"name" = I.name,
"cost" = I.cost,
"desc" = I.desc,
))
data["categories"] += list(cat)
return data
/obj/item/device/uplink/ui_act(action, params)
if(!active)
return
@@ -82,6 +106,9 @@ var/global/list/uplinks = list()
if("lock")
active = FALSE
SStgui.close_uis(src)
if("select")
selected_cat = params["category"]
return 1
/obj/item/device/uplink/ui_host()
@@ -89,18 +116,7 @@ var/global/list/uplinks = list()
// Refund certain items by hitting the uplink with it.
/obj/item/device/radio/uplink/attackby(obj/item/I, mob/user, params)
for(var/item in subtypesof(/datum/uplink_item))
var/datum/uplink_item/UI = item
var/path = initial(UI.item)
var/cost = initial(UI.cost)
var/refundable = initial(UI.refundable)
if(I.type == path && refundable)
hidden_uplink.telecrystals += cost
hidden_uplink.spent_telecrystals -= cost
user << "<span class='notice'>[I] refunded.</span>"
qdel(I)
return
..()
return hidden_uplink.attackby(I, user, params)
// A collection of pre-set uplinks, for admin spawns.
/obj/item/device/radio/uplink/New()
+62 -41
View File
@@ -44,7 +44,9 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
var/category = "item category"
var/desc = "item description"
var/item = null // Path to the item to spawn.
var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
var/cost = 0
var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds.
var/refundable = FALSE
var/surplus = 100 // Chance of being included in the surplus crate.
var/list/include_modes = list() // Game modes to allow this item in.
@@ -138,13 +140,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "Stechkin Pistol"
desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \
with suppressors."
item = /obj/item/weapon/gun/projectile/automatic/pistol
item = /obj/item/weapon/gun/ballistic/automatic/pistol
cost = 7
/datum/uplink_item/dangerous/revolver
name = "Syndicate Revolver"
desc = "A brutally simple syndicate revolver that fires .357 Magnum rounds and has 7 chambers."
item = /obj/item/weapon/gun/projectile/revolver
item = /obj/item/weapon/gun/ballistic/revolver
cost = 13
surplus = 50
@@ -152,7 +154,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "Bulldog Shotgun"
desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatiable with all 12g rounds. Designed for close \
quarter anti-personel engagements."
item = /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog
item = /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog
cost = 8
surplus = 40
include_modes = list(/datum/game_mode/nuclear)
@@ -161,20 +163,20 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "C-20r Submachine Gun"
desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \
20-round magazine and is compatible with suppressors."
item = /obj/item/weapon/gun/projectile/automatic/c20r
item = /obj/item/weapon/gun/ballistic/automatic/c20r
cost = 10
surplus = 40
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/dangerous/smg/unrestricted
item = /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted
item = /obj/item/weapon/gun/ballistic/automatic/c20r/unrestricted
include_modes = list(/datum/game_mode/gang)
/datum/uplink_item/dangerous/machinegun
name = "L6 Squad Automatic Weapon"
desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \
This deadly weapon has a massive 50-round magazine of devastating 5.56x45mm ammunition."
item = /obj/item/weapon/gun/projectile/automatic/l6_saw
item = /obj/item/weapon/gun/ballistic/automatic/l6_saw
cost = 18
surplus = 0
include_modes = list(/datum/game_mode/nuclear)
@@ -190,7 +192,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/dangerous/sniper
name = "Sniper Rifle"
desc = "Ranged fury, Syndicate style. guaranteed to cause shock and awe or your TC back!"
item = /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate
item = /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate
cost = 16
surplus = 25
include_modes = list(/datum/game_mode/nuclear)
@@ -198,7 +200,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/dangerous/bolt_action
name = "Surplus Rifle"
desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this."
item = /obj/item/weapon/gun/projectile/shotgun/boltaction
item = /obj/item/weapon/gun/ballistic/shotgun/boltaction
cost = 2
include_modes = list(/datum/game_mode/nuclear)
@@ -259,7 +261,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/dangerous/foamsmg
name = "Toy Submachine Gun"
desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade rounds with a 20-round magazine."
item = /obj/item/weapon/gun/projectile/automatic/c20r/toy
item = /obj/item/weapon/gun/ballistic/automatic/c20r/toy
cost = 5
surplus = 0
include_modes = list(/datum/game_mode/nuclear)
@@ -268,7 +270,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "Toy Machine Gun"
desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \
riot grade darts, that can briefly incapacitate someone in just one volley."
item = /obj/item/weapon/gun/projectile/automatic/l6_saw/toy
item = /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy
cost = 10
surplus = 0
include_modes = list(/datum/game_mode/nuclear)
@@ -319,11 +321,29 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/ammo/pistol
name = "10mm Handgun Magazine"
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These subsonic rounds \
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds \
are dirt cheap but are half as effective as .357 rounds."
item = /obj/item/ammo_box/magazine/m10mm
cost = 1
/datum/uplink_item/ammo/pistolap
name = "10mm Armour Piercing Magazine"
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds are less effective at injuring the target but penetrate protective gear."
item = /obj/item/ammo_box/magazine/m10mm/ap
cost = 2
/datum/uplink_item/ammo/pistolfire
name = "10mm Incendiary Magazine"
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with incendiary rounds which ignite the target."
item = /obj/item/ammo_box/magazine/m10mm/fire
cost = 2
/datum/uplink_item/ammo/pistolhp
name = "10mm Hollow Point Magazine"
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds are more damaging but ineffective against armour."
item = /obj/item/ammo_box/magazine/m10mm/hp
cost = 3
/datum/uplink_item/ammo/bolt_action
name = "Surplus Rifle Clip"
desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds."
@@ -519,14 +539,23 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
deflecting all ranged weapon fire, but you also refuse to use dishonorable ranged weaponry."
item = /obj/item/weapon/sleeping_carp_scroll
cost = 17
surplus = 0
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang)
/datum/uplink_item/stealthy_weapons/cqc
name = "CQC Manual"
desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing."
item = /obj/item/weapon/cqc_manual
include_modes = list(/datum/game_mode/nuclear)
cost = 13
surplus = 0
/datum/uplink_item/stealthy_weapons/throwingweapons
name = "Box of Throwing Weapons"
desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \
throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs."
item = /obj/item/weapon/storage/box/syndie_kit/throwing_weapons
cost = 5
cost = 3
/datum/uplink_item/stealthy_weapons/edagger
name = "Energy Dagger"
@@ -538,7 +567,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "Toy Gun with Riot Darts"
desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \
darts effective at incapacitating a target."
item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot
item = /obj/item/weapon/gun/ballistic/automatic/toy/pistol/riot
cost = 3
surplus = 10
exclude_modes = list(/datum/game_mode/gang)
@@ -624,16 +653,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
surplus = 10
exclude_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/stealthy_weapons/boobytrap
name = "Booby Trap"
desc = "A small explosive device that can be attached to boxes or closets. \
The next person to open the box or closet will trigger an explosion \
that knocks them down and destroys the boobytrapped object."
item = /obj/item/device/boobytrap
cost = 4
surplus = 10
exclude_modes = list(/datum/game_mode/nuclear)
// Stealth Items
/datum/uplink_item/stealthy_tools
category = "Stealth and Camouflage Items"
@@ -697,8 +716,9 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/stealthy_tools/smugglersatchel
name = "Smuggler's Satchel"
desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \
your stolen goods. Comes with a crowbar and a floor tile inside."
item = /obj/item/weapon/storage/backpack/satchel_flat
your stolen goods. Comes with a crowbar and a floor tile inside. Properly hidden satchels have been \
known to survive intact even beyond the current shift. "
item = /obj/item/weapon/storage/backpack/satchel/flat
cost = 2
surplus = 30
@@ -734,7 +754,14 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
item = /obj/item/weapon/storage/box/syndie_kit/cutouts
cost = 1
surplus = 20
/datum/uplink_item/stealthy_tools/fakenucleardisk
name = "Decoy Nuclear Authentication Disk"
desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny. Don't try to give this to us to complete your objective, we know better!"
item = /obj/item/weapon/disk/fakenucleardisk
cost = 1
surplus = 1
//Space Suits and Hardsuits
/datum/uplink_item/suits
category = "Space Suits and Hardsuits"
@@ -845,12 +872,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
cost = 2
surplus = 75
/datum/uplink_item/device_tools/selfdestruct_firingpin
name = "Trick Firing Pin"
desc = "This pin will detonate the weapon it is put into upon trying to use it"
item = /obj/item/device/firing_pin/trick
cost = 4
/datum/uplink_item/device_tools/ai_detector
name = "Artificial Intelligence Detector"
desc = "A functional multitool that turns red when it detects an artificial intelligence watching it or its \
@@ -874,13 +895,6 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
cost = 2
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/thermitespray
name = "Thermite Kit"
desc = "A boxed zippo and 50u spray bottle filled with thermite, specially designed for spraying walls. \
50u is enough thermite to spray 5 walls."
item = /obj/item/weapon/storage/box/syndie_kit/thermite
cost = 3
/datum/uplink_item/device_tools/c4
name = "Composition C-4"
desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \
@@ -981,6 +995,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
cost = 4
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/telecrystal
name = "Raw Telecrystal"
desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count."
item = /obj/item/stack/telecrystal
cost = 1
surplus = 0
// Implants
/datum/uplink_item/implants
category = "Implants"
@@ -1132,7 +1153,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/gang)
/datum/uplink_item/badass/surplus/spawn_item(turf/loc, obj/item/device/uplink/U)
var/list/uplink_items = get_uplink_items()
var/list/uplink_items = get_uplink_items(ticker.mode)
var/crate_value = 50
var/obj/structure/closet/crate/C = new(loc)
@@ -1159,7 +1180,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
cost = 0
/datum/uplink_item/badass/random/spawn_item(turf/loc, obj/item/device/uplink/U)
var/list/uplink_items = get_uplink_items()
var/list/uplink_items = get_uplink_items(ticker.mode)
var/list/possible_items = list()
for(var/category in uplink_items)
for(var/item in uplink_items[category])