diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index e26a763524..0000000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-#### Brief description of the bug
-
-
-#### What you expected to happen
-
-
-#### What actually happened
-
-
-#### Steps to reproduce
-- (Step 1)
-- (Step 2)
-- (and so on)
-
-
-#### Code Revision
-- (Found using the "Show Server Revision" verb under the OOC tab.)
-
-
-#### Anything else you may wish to add:
-- (Location if it's a mapping issue, screenshots, sprites, etc.)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 8b761636db..73e550111f 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,25 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
+title: ''
+labels: 'Type: Bug'
+assignees: ''
---
-#### Brief description of the issue
+
+
+
+
+#### Brief description of the bug
+
#### What you expected to happen
-
+
#### What actually happened
-
+
#### Steps to reproduce
- (Step 1)
- (Step 2)
- (and so on)
+
#### Code Revision
- (Found using the "Show Server Revision" verb under the OOC tab.)
+
#### Anything else you may wish to add:
- (Location if it's a mapping issue, screenshots, sprites, etc.)
diff --git a/_build_dependencies.sh b/_build_dependencies.sh
index 8e582bab3d..597b844932 100644
--- a/_build_dependencies.sh
+++ b/_build_dependencies.sh
@@ -2,7 +2,7 @@
# For dreamchecker
export SPACEMAN_DMM_VERSION=suite-1.7
# For NanoUI + TGUI
-export NODE_VERSION=12
+export NODE_VERSION=16
# Byond Major
export BYOND_MAJOR=514
# Byond Minor
diff --git a/code/_global_vars/religion.dm b/code/_global_vars/religion.dm
deleted file mode 100644
index 7dab008b19..0000000000
--- a/code/_global_vars/religion.dm
+++ /dev/null
@@ -1,8 +0,0 @@
-// All religion stuff
-GLOBAL_VAR(religion)
-GLOBAL_VAR(deity)
-
-//bible
-GLOBAL_VAR(bible_name)
-GLOBAL_VAR(bible_icon_state)
-GLOBAL_VAR(bible_item_state)
diff --git a/code/controllers/subsystems/tgui.dm b/code/controllers/subsystems/tgui.dm
index a0d96cf80c..d70d06017a 100644
--- a/code/controllers/subsystems/tgui.dm
+++ b/code/controllers/subsystems/tgui.dm
@@ -23,6 +23,10 @@ SUBSYSTEM_DEF(tgui)
/datum/controller/subsystem/tgui/PreInit()
basehtml = file2text('tgui/public/tgui.html')
+ // Inject inline polyfills
+ var/polyfill = file2text('tgui/public/tgui-polyfill.min.js')
+ polyfill = ""
+ basehtml = replacetextEx(basehtml, "", polyfill)
/datum/controller/subsystem/tgui/Shutdown()
close_all_uis()
diff --git a/code/datums/autolathe/devices_vr.dm b/code/datums/autolathe/devices_vr.dm
index 9d92132caa..65af7b630c 100644
--- a/code/datums/autolathe/devices_vr.dm
+++ b/code/datums/autolathe/devices_vr.dm
@@ -1,3 +1,3 @@
/datum/category_item/autolathe/devices/sleevecard
name = "sleevecard"
- path =/obj/item/device/sleevecard
+ path =/obj/item/device/paicard/sleevecard
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index a35c23cd6b..736fdff021 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -75,6 +75,8 @@
//used to store what traits the player had picked out in their preferences before joining, in text form.
var/list/traits = list()
+ var/datum/religion/my_religion
+
/datum/mind/New(var/key)
src.key = key
purchase_log = list()
@@ -571,4 +573,4 @@
/mob/living/simple_mob/construct/juggernaut/mind_initialize()
. = ..()
mind.assigned_role = "Juggernaut"
- mind.special_role = "Cultist"
+ mind.special_role = "Cultist"
\ No newline at end of file
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index e11bf6e2c2..ff8b25ce12 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -448,6 +448,8 @@ var/list/mob/living/forced_ambiance_list = new
return // Being buckled to something solid keeps you in place.
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.item_flags & NOSLIP))
return
+ if(H.incorporeal_move) // VOREstation edit - Phaseshifted beings should not be affected by gravity
+ return
if(H.m_intent == "run")
H.AdjustStunned(6)
diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm
index 5fba7b155d..f811abf957 100644
--- a/code/game/jobs/job/civilian_chaplain.dm
+++ b/code/game/jobs/job/civilian_chaplain.dm
@@ -29,20 +29,14 @@
return
var/obj/item/weapon/storage/bible/B = locate(/obj/item/weapon/storage/bible) in H
- if(!B)
+ var/obj/item/weapon/card/id/I = locate(/obj/item/weapon/card/id) in H
+
+ if(!B || !I)
return
- if(GLOB.religion)
- B.deity_name = GLOB.deity
- B.name = GLOB.bible_name
- B.icon_state = GLOB.bible_icon_state
- B.item_state = GLOB.bible_item_state
- to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the [title].")
- return
-
- INVOKE_ASYNC(src, .proc/religion_prompts, H, B)
+ INVOKE_ASYNC(src, .proc/religion_prompts, H, B, I)
-/datum/job/chaplain/proc/religion_prompts(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B)
+/datum/job/chaplain/proc/religion_prompts(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B, obj/item/weapon/card/id/I)
var/religion_name = "Unitarianism"
var/new_religion = sanitize(input(H, "You are the crew services officer. Would you like to change your religion? Default is Unitarianism", "Name change", religion_name), MAX_NAME_LEN)
if(!new_religion)
@@ -83,18 +77,48 @@
B.name = "Guru Granth Sahib"
else
B.name = "The Holy Book of [new_religion]"
- feedback_set_details("religion_name","[new_religion]")
var/deity_name = "Hashem"
var/new_deity = sanitize(input(H, "Would you like to change your deity? Default is Hashem", "Name change", deity_name), MAX_NAME_LEN)
if((length(new_deity) == 0) || (new_deity == "Hashem"))
new_deity = deity_name
- B.deity_name = new_deity
- GLOB.religion = new_religion
- GLOB.bible_name = B.name
- GLOB.deity = B.deity_name
- feedback_set_details("religion_deity","[new_deity]")
-
+ var/new_title = sanitize(input(H, "Would you like to change your title?", "Title Change", I.assignment), MAX_NAME_LEN)
+ var/list/all_jobs = get_job_datums()
+
+ // Are they trying to fake an actual existent job
+ var/faking_job = FALSE
+
+ for (var/datum/job/J in all_jobs)
+ if (J.title == new_title || (new_title in get_alternate_titles(J.title)))
+ faking_job = TRUE
+
+ if (length(new_title) != 0 && !faking_job)
+ I.assignment = new_title
+
+ H.mind.my_religion = new /datum/religion(new_religion, new_deity, B.name, "bible", "bible", new_title)
+
+ B.deity_name = H.mind.my_religion.deity
+ I.assignment = H.mind.my_religion.title
+ I.name = text("[I.registered_name]'s ID Card ([I.assignment])")
+ data_core.manifest_modify(I.registered_name, I.assignment, I.rank)
+
+/datum/religion
+ var/religion = "Unitarianism"
+ var/deity = "Hashem"
+ var/bible_name = "Bible"
+ var/bible_icon_state = "bible"
+ var/bible_item_state = "bible"
+ var/title = "Chaplain"
+ var/configured = FALSE
+
+/datum/religion/New(var/r, var/d, var/bn, var/bis, var/bits, var/t)
+ . = ..()
+ religion = r
+ deity = d
+ bible_name = bn
+ bible_icon_state = bis
+ bible_item_state = bits
+ title = t
\ No newline at end of file
diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm
index c896b77f37..ba63655b9c 100644
--- a/code/game/machinery/telecomms/logbrowser.dm
+++ b/code/game/machinery/telecomms/logbrowser.dm
@@ -26,13 +26,13 @@
data["network"] = network
data["temp"] = temp
- var/list/servers = list()
+ var/list/serverData = list()
for(var/obj/machinery/telecomms/T in servers)
- servers.Add(list(list(
+ serverData.Add(list(list(
"id" = T.id,
"name" = T.name,
)))
- data["servers"] = servers
+ data["servers"] = serverData
data["selectedServer"] = null
if(SelectedServer)
diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm
index 5a79f08be0..384790e60d 100644
--- a/code/game/machinery/telecomms/telemonitor.dm
+++ b/code/game/machinery/telecomms/telemonitor.dm
@@ -26,13 +26,13 @@
data["network"] = network
data["temp"] = temp
- var/list/machinelist = list()
+ var/list/machinelistData = list()
for(var/obj/machinery/telecomms/T in machinelist)
- machinelist.Add(list(list(
+ machinelistData.Add(list(list(
"id" = T.id,
"name" = T.name,
)))
- data["machinelist"] = machinelist
+ data["machinelist"] = machinelistData
data["selectedMachine"] = null
if(SelectedMachine)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index bc0c2dca14..bdaf5f7d75 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -107,6 +107,8 @@
var/tip_timer // reference to timer id for a tooltip we might open soon
+ var/no_random_knockdown = FALSE //stops item from being able to randomly knock people down in combat
+
/obj/item/New()
..()
if(embed_chance < 0)
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index f743ab87f2..23d7452f3d 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -14,6 +14,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
var/obj/item/device/radio/radio
var/looking_for_personality = 0
var/mob/living/silicon/pai/pai
+ var/image/screen_layer
+ var/screen_color = "#00ff0d"
/obj/item/device/paicard/relaymove(var/mob/user, var/direction)
if(user.stat || user.stunned)
@@ -48,12 +50,19 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
return ..()
var/turf/location = get_turf(src)
- var/obj/item/device/paicard/card = new(location)
- var/mob/living/silicon/pai/new_pai = new(card)
+ if(istype(src , /obj/item/device/paicard/typeb))
+ var/obj/item/device/paicard/typeb/card = new(location)
+ var/mob/living/silicon/pai/new_pai = new(card)
+ new_pai.key = user.key
+ card.setPersonality(new_pai)
+ new_pai.SetName(actual_pai_name)
+ else
+ var/obj/item/device/paicard/card = new(location)
+ var/mob/living/silicon/pai/new_pai = new(card)
+ new_pai.key = user.key
+ card.setPersonality(new_pai)
+ new_pai.SetName(actual_pai_name)
qdel(src)
- new_pai.key = user.key
- card.setPersonality(new_pai)
- new_pai.SetName(actual_pai_name)
return ..()
// VOREStation Edit End
@@ -214,6 +223,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
else //
dat += "Radio Uplink
"
dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
"
+ /* - //A button for instantly deleting people from the game is lame, especially considering that pAIs on our server tend to activate without a master.
dat += {"
| Wipe current pAI personality @@ -221,6 +231,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) |