From 3554c78e6bea03638f58ab16c90b39496a5388d5 Mon Sep 17 00:00:00 2001 From: Coul Date: Thu, 17 Oct 2019 20:48:25 -0400 Subject: [PATCH 001/138] make 513 compile --- code/__DEFINES/misc.dm | 2 +- code/__HELPERS/lists.dm | 5 ----- code/__HELPERS/unsorted.dm | 13 ++++++++++++- code/_onclick/hud/plane_master.dm | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 7dd5fc5a609..169a5129eee 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -384,7 +384,7 @@ #define EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE "syndicate_base" // Filters -#define FILTER_AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, border=4, color="#04080FAA") +#define FILTER_AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, color="#04080FAA") //Fullscreen overlay resolution in tiles. #define FULLSCREEN_OVERLAY_RESOLUTION_X 15 diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 49983658d48..5ffe891d95b 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -69,11 +69,6 @@ return list[index] return -/proc/islist(list/list) - if(istype(list)) - return 1 - return 0 - //Return either pick(list) or null if list is not of type /list or is empty /proc/safepick(list/list) if(!islist(list) || !list.len) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 82295bc9d80..f1611b38fd9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -540,9 +540,20 @@ Returns 1 if the chain up to the area contains the given typepath /proc/between(var/low, var/middle, var/high) return max(min(middle, high), low) -proc/arctan(x) + + +#if DM_VERSION > 513 +#warn 513 is definitely stable now, remove this +#endif +#if DM_VERSION < 513 +/proc/arctan(x) var/y=arcsin(x/sqrt(1+x*x)) return y +/proc/islist(list/list) + if(istype(list)) + return 1 + return 0 +#endif //returns random gauss number proc/GaussRand(var/sigma) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index a5586578b3f..9c0f498cd83 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -16,7 +16,7 @@ filters += filter(type = "outline", size = _size, color = _color) /obj/screen/plane_master/proc/shadow(_size, _border, _offset = 0, _x = 0, _y = 0, _color = "#04080FAA") - filters += filter(type = "drop_shadow", x = _x, y = _y, color = _color, size = _size, offset = _offset, border = _border) + filters += filter(type = "drop_shadow", x = _x, y = _y, color = _color, size = _size, offset = _offset) /obj/screen/plane_master/proc/clear_filters() filters = list() From 85051d8762d52bdf58dfc02cf4f4cf05b8d4bf01 Mon Sep 17 00:00:00 2001 From: craftxbox Date: Sat, 19 Oct 2019 23:56:04 -0230 Subject: [PATCH 002/138] quickfix to stop people using the scanner inside it (#12567) --- code/game/machinery/adv_med.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index b0368d652fb..0863b65415a 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -140,6 +140,9 @@ if(stat & (NOPOWER|BROKEN)) return + if(occupant == user) + return // you cant reach that + if(panel_open) to_chat(user, "Close the maintenance panel first.") return From d3b14d9519c652785ac6dce015b08e9eb3bd6b90 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 19 Oct 2019 22:26:06 -0400 Subject: [PATCH 003/138] Automatic changelog generation for PR #12567 [ci skip] --- html/changelogs/AutoChangeLog-pr-12567.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12567.yml diff --git a/html/changelogs/AutoChangeLog-pr-12567.yml b/html/changelogs/AutoChangeLog-pr-12567.yml new file mode 100644 index 00000000000..b07a190cffa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12567.yml @@ -0,0 +1,4 @@ +author: "craftxbox" +delete-after: True +changes: + - bugfix: "quickfix to stop people using the scanner inside it" From 47bff3e06593f30249b12a1358e196d24b9e8d5c Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sat, 19 Oct 2019 22:26:13 -0400 Subject: [PATCH 004/138] Fixes Lavaland Mob and Tendril Clumping (#12595) --- code/game/turfs/simulated/floor/asteroid.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/simulated/floor/asteroid.dm b/code/game/turfs/simulated/floor/asteroid.dm index 66c4cf1ac4d..049f5ff8509 100644 --- a/code/game/turfs/simulated/floor/asteroid.dm +++ b/code/game/turfs/simulated/floor/asteroid.dm @@ -283,12 +283,14 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me else //this is not danger, don't spawn a boss, spawn something else randumb = pickweight(mob_spawn_list) - for(var/mob/living/simple_animal/hostile/H in urange(12,T)) //prevents mob clumps - if((ispath(randumb, /mob/living/simple_animal/hostile/megafauna) || ismegafauna(H)) && get_dist(src, H) <= 7) + for(var/thing in urange(12, T)) //prevents mob clumps + if(!ishostile(thing) && !istype(thing, /obj/structure/spawner)) + continue + if((ispath(randumb, /mob/living/simple_animal/hostile/megafauna) || ismegafauna(thing)) && get_dist(src, thing) <= 7) return //if there's a megafauna within standard view don't spawn anything at all - if(ispath(randumb, /mob/living/simple_animal/hostile/asteroid) || istype(H, /mob/living/simple_animal/hostile/asteroid)) + if(ispath(randumb, /mob/living/simple_animal/hostile/asteroid) || istype(thing, /mob/living/simple_animal/hostile/asteroid)) return //if the random is a standard mob, avoid spawning if there's another one within 12 tiles - if((ispath(randumb, /obj/structure/spawner/lavaland) || istype(H, /obj/structure/spawner/lavaland)) && get_dist(src, H) <= 2) + if((ispath(randumb, /obj/structure/spawner/lavaland) || istype(thing, /obj/structure/spawner/lavaland)) && get_dist(src, thing) <= 2) return //prevents tendrils spawning in each other's collapse range if(ispath(randumb, /mob/living/simple_animal/hostile/megafauna/bubblegum)) //there can be only one bubblegum, so don't waste spawns on it From 4d7160b7c5fb005c2f7de4e2d50bf6086b4bb6e2 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 19 Oct 2019 22:26:15 -0400 Subject: [PATCH 005/138] Automatic changelog generation for PR #12595 [ci skip] --- html/changelogs/AutoChangeLog-pr-12595.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12595.yml diff --git a/html/changelogs/AutoChangeLog-pr-12595.yml b/html/changelogs/AutoChangeLog-pr-12595.yml new file mode 100644 index 00000000000..71f943250b5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12595.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - bugfix: "Fixes excessive mob and tendril clumping on Lavaland" From 5b6819ceb57dbcb7cadbf7a62dbc540769354d2c Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 20 Oct 2019 12:16:29 -0400 Subject: [PATCH 006/138] Fixes R&D Materials Exploit (#12608) --- code/modules/research/rdconsole.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 9c62b44cdf9..202b931b7a9 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -357,7 +357,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, submenu = 0 if(linked_lathe) //Also sends salvaged materials to a linked protolathe, if any. for(var/material in linked_destroy.loaded_item.materials) - linked_lathe.materials.insert_amount(min((linked_lathe.materials.max_amount - linked_lathe.materials.total_amount), (linked_destroy.loaded_item.materials[material]*(linked_destroy.decon_mod/10))), material) + var/can_insert = min(linked_lathe.materials.max_amount - linked_lathe.materials.total_amount, linked_destroy.loaded_item.materials[material] * (linked_destroy.decon_mod / 10), linked_destroy.loaded_item.materials[material]) + linked_lathe.materials.insert_amount(can_insert, material) linked_destroy.loaded_item = null else menu = 0 From 22078ace9a55eb1afaf8a9cc2f7bd614cee35a6a Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 20 Oct 2019 12:16:31 -0400 Subject: [PATCH 007/138] Automatic changelog generation for PR #12608 [ci skip] --- html/changelogs/AutoChangeLog-pr-12608.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12608.yml diff --git a/html/changelogs/AutoChangeLog-pr-12608.yml b/html/changelogs/AutoChangeLog-pr-12608.yml new file mode 100644 index 00000000000..ff439d7ef8e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12608.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - bugfix: "Fixes being able to exploit the destructive analyzer for unlimited materials" From 26c45be6704c367c666663b502d4be51b942bb1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2019 22:33:21 +0000 Subject: [PATCH 008/138] Bump pillow from 5.1.0 to 6.2.0 in /tools/mapmerge2 Bumps [pillow](https://github.com/python-pillow/Pillow) from 5.1.0 to 6.2.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/5.1.0...6.2.0) Signed-off-by: dependabot[bot] --- tools/mapmerge2/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index adb42438e7e..d24cb40dcc6 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ pygit2==0.27.2 bidict==0.13.1 -Pillow==5.1.0 +Pillow==6.2.0 From d574b521b6e87f06c72b1174072f9b4e76afe81a Mon Sep 17 00:00:00 2001 From: actioninja Date: Wed, 23 Oct 2019 01:24:32 -0700 Subject: [PATCH 009/138] Prevents nanoui from flickering when opened in fancy mode --- code/modules/nano/nanoui.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 5bd0f3827ac..0df04d27928 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -416,6 +416,11 @@ nanoui is used to open and update nano browser uis if(!initial_data) set_initial_data(src_object.ui_data(user, ui_key, state)) // Get the UI data. + // Preset the can_rezie and titlebar values on uis if the user has fancy uis set + // Prevents the ui from flickering when opened + if(user.client.prefs.nanoui_fancy) + set_window_options("focus=0;can_close=1;can_minimize=1;can_maximize=0;can_resize=0;titlebar=0;") + user << browse(get_html(), "window=[window_id];[window_size][window_options]") winset(user, "mapwindow.map", "focus=true") // return keyboard focus to map on_close_winset() From 589a240c90d56cbad2d0f131084af0e4e582aa14 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Wed, 23 Oct 2019 17:08:46 -0400 Subject: [PATCH 010/138] Automatic changelog generation for PR #12638 [ci skip] --- html/changelogs/AutoChangeLog-pr-12638.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12638.yml diff --git a/html/changelogs/AutoChangeLog-pr-12638.yml b/html/changelogs/AutoChangeLog-pr-12638.yml new file mode 100644 index 00000000000..064e917211f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12638.yml @@ -0,0 +1,4 @@ +author: "actioninja" +delete-after: True +changes: + - bugfix: "Nanoui interfaces in fancy mode now open more cleanly" From ce270bfca97715c8f7a15a312c7363777b7d77cc Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 27 Oct 2019 00:12:00 -0400 Subject: [PATCH 011/138] Fixes Hierophant Atmos (#12649) --- code/game/turfs/simulated/floor/indestructible.dm | 3 --- code/game/turfs/simulated/floor/misc_floor.dm | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/code/game/turfs/simulated/floor/indestructible.dm b/code/game/turfs/simulated/floor/indestructible.dm index 480793fb561..3896dc513f2 100644 --- a/code/game/turfs/simulated/floor/indestructible.dm +++ b/code/game/turfs/simulated/floor/indestructible.dm @@ -45,7 +45,6 @@ oxygen = 14 nitrogen = 23 temperature = 300 - planetary_atmos = TRUE /turf/simulated/floor/indestructible/necropolis/Initialize(mapload) . = ..() @@ -65,7 +64,6 @@ oxygen = 14 nitrogen = 23 temperature = 300 - planetary_atmos = TRUE /turf/simulated/floor/indestructible/boss/air oxygen = MOLES_O2STANDARD @@ -79,7 +77,6 @@ oxygen = 14 nitrogen = 23 temperature = 300 - planetary_atmos = TRUE smooth = SMOOTH_TRUE /turf/simulated/floor/indestructible/hierophant/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 5a097b5fe5b..a29eab05a3b 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -188,5 +188,4 @@ desc = "Warm brass plating. You can feel it gently vibrating, as if machinery is on the other side." icon_state = "reebe" baseturf = /turf/simulated/floor/clockwork/reebe - uses_overlay = FALSE - planetary_atmos = TRUE + uses_overlay = FALSE \ No newline at end of file From 063587129f24805744a6262be24fabb65f9e3c86 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:12:02 -0400 Subject: [PATCH 012/138] Automatic changelog generation for PR #12649 [ci skip] --- html/changelogs/AutoChangeLog-pr-12649.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12649.yml diff --git a/html/changelogs/AutoChangeLog-pr-12649.yml b/html/changelogs/AutoChangeLog-pr-12649.yml new file mode 100644 index 00000000000..a274d994605 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12649.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - bugfix: "Fixes Hierophant arena atmos" From b3eba906dbeb0a7e94d39d114deb90a2d661824f Mon Sep 17 00:00:00 2001 From: AdamElTablawy Date: Sat, 26 Oct 2019 23:13:19 -0500 Subject: [PATCH 013/138] blacklists hellhounds from the xeno spawn pool (#12450) --- code/modules/mob/living/simple_animal/hostile/hellhound.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/hellhound.dm b/code/modules/mob/living/simple_animal/hostile/hellhound.dm index d83ca04d6c4..f5948fcb275 100644 --- a/code/modules/mob/living/simple_animal/hostile/hellhound.dm +++ b/code/modules/mob/living/simple_animal/hostile/hellhound.dm @@ -8,7 +8,6 @@ icon_dead = "hellhound_dead" icon_resting = "hellhound_rest" mutations = list(BREATHLESS) - gold_core_spawnable = HOSTILE_SPAWN atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = INFINITY @@ -126,4 +125,3 @@ melee_damage_lower = 20 melee_damage_upper = 30 environment_smash = 2 - gold_core_spawnable = NO_SPAWN From 82a259bef74c20d97673216265b9104e59fa5f56 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:13:22 -0400 Subject: [PATCH 014/138] Automatic changelog generation for PR #12450 [ci skip] --- html/changelogs/AutoChangeLog-pr-12450.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12450.yml diff --git a/html/changelogs/AutoChangeLog-pr-12450.yml b/html/changelogs/AutoChangeLog-pr-12450.yml new file mode 100644 index 00000000000..260848c3740 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12450.yml @@ -0,0 +1,4 @@ +author: "AdamElTablawy" +delete-after: True +changes: + - rscdel: "Xenobiology can no longer produce hellhounds with gold slime cores." From d67a3b1d2f6b1d8672c89ad760780f8c2880b522 Mon Sep 17 00:00:00 2001 From: craftxbox Date: Sun, 27 Oct 2019 01:45:23 -0230 Subject: [PATCH 015/138] Highlight regex 2 Electric boogaloo (#12474) --- goon/browserassets/html/browserOutput.html | 1 - goon/browserassets/js/browserOutput.js | 30 ++++++++++++++-------- goon/browserassets/js/jquery.mark.min.js | 7 ----- 3 files changed, 19 insertions(+), 19 deletions(-) delete mode 100644 goon/browserassets/js/jquery.mark.min.js diff --git a/goon/browserassets/html/browserOutput.html b/goon/browserassets/html/browserOutput.html index cfa67167f88..a7dfb16abee 100644 --- a/goon/browserassets/html/browserOutput.html +++ b/goon/browserassets/html/browserOutput.html @@ -15,7 +15,6 @@ - diff --git a/goon/browserassets/js/browserOutput.js b/goon/browserassets/js/browserOutput.js index 1fcca3c6068..136b0106021 100644 --- a/goon/browserassets/js/browserOutput.js +++ b/goon/browserassets/js/browserOutput.js @@ -41,6 +41,7 @@ var opts = { 'suppressOptionsClose': false, //Whether or not we should be hiding the suboptions menu 'highlightTerms': [], 'highlightLimit': 5, + 'highlightRegexEnable':false, 'highlightColor': '#FFFF00', //The color of the highlighted message 'pingDisabled': false, //Has the user disabled the ping counter @@ -157,13 +158,15 @@ function setHighlightColor(match) { //Highlights words based on user settings function highlightTerms(el) { - var element = $(el) - if(!(element.mark)) { // mark.js isn't loaded; give up - return - } for (var i = 0; i < opts.highlightTerms.length; i++) { //Each highlight term if(opts.highlightTerms[i]) { - element.mark(opts.highlightTerms[i], {"element" : "span", "each" : setHighlightColor}); + var rexp = new RegExp(opts.highlightTerms[i],"gmi") + if(!opts.highlightRegexEnable){ + rexp = new RegExp("("+opts.highlightTerms[i].replace(new RegExp("([^a-zA-Z0-9])","gmi"),"\\$1")+")","gmi") + el.innerText = el.innerText.replace(rexp,"$1") //disabling regex disables html matching too + continue; + } + el.innerHTML = el.innerHTML.replace(rexp,"$0") //i cant figure out a proper, non snowflakey way to let people select the group that gets highlighted } } } @@ -572,6 +575,7 @@ $(function() { 'spingDisabled': getCookie('pingdisabled'), 'shighlightTerms': getCookie('highlightterms'), 'shighlightColor': getCookie('highlightcolor'), + 'shighlightRegexEnable': getCookie('highlightregexenable'), 'shideSpam': getCookie('hidespam'), 'darkChat': getCookie('darkChat'), }; @@ -609,6 +613,10 @@ $(function() { opts.highlightColor = savedConfig.shighlightColor; internalOutput('Loaded highlight color of: '+savedConfig.shighlightColor+'', 'internal'); } + if (savedConfig.shighlightRegexEnable) { + opts.highlightRegexEnable = savedConfig.shighlightRegexEnable; + internalOutput('Loaded highlight regex enable of: '+savedConfig.shighlightRegexEnable+'', 'internal'); + } if (savedConfig.shideSpam) { opts.hideSpam = $.parseJSON(savedConfig.shideSpam); internalOutput('Loaded hide spam preference of: ' + savedConfig.shideSpam + '', 'internal'); @@ -965,10 +973,6 @@ $(function() { }); $('#highlightTerm').click(function(e) { - if(!($().mark)) { - internalOutput('Highlighting is disabled. You are probably using Internet Explorer 8 and need to update.', 'internal'); - return; - } if ($('.popup .highlightTerm').is(':visible')) {return;} var termInputs = ''; for (var i = 0; i < opts.highlightLimit; i++) { @@ -976,7 +980,9 @@ $(function() { } var popupContent = '
String Highlighting
' + '
' + - '
Choose up to '+opts.highlightLimit+' strings that will highlight the line when they appear in chat.
' + + '
Choose up to '+opts.highlightLimit+' strings that will highlight the line when they appear in chat.
'+ + 'Enable Regex'+ + '
See here for details
' + '
' + termInputs + '
' + '
'; createPopup(popupContent, 250); + document.querySelector(".popup #highlightRegexEnable").checked = opts.highlightRegexEnable; }); - $('body').on('keyup', '#highlightColor', function() { var color = $('#highlightColor').val(); color = color.trim(); @@ -1014,6 +1020,7 @@ $(function() { } var color = $('#highlightColor').val(); + opts.highlightRegexEnable = document.querySelector("#highlightRegexEnable").checked color = color.trim(); if (color == '' || color.charAt(0) != '#') { opts.highlightColor = '#FFFF00'; @@ -1023,6 +1030,7 @@ $(function() { var $popup = $('#highlightPopup').closest('.popup'); $popup.remove(); + setCookie('highlightregexenable', opts.highlightRegexEnable,365) setCookie('highlightterms', JSON.stringify(opts.highlightTerms), 365); setCookie('highlightcolor', opts.highlightColor, 365); }); diff --git a/goon/browserassets/js/jquery.mark.min.js b/goon/browserassets/js/jquery.mark.min.js deleted file mode 100644 index b399b7901b4..00000000000 --- a/goon/browserassets/js/jquery.mark.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*!*************************************************** - * mark.js v7.0.2 - * https://github.com/julmot/mark.js - * Copyright (c) 2014–2016, Julian Motz - * Released under the MIT license https://git.io/vwTVl - *****************************************************/ -"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _extends=Object.assign||function(a){for(var b=1;b-1)return!1;a=a.replace(new RegExp("["+b+"]","gmi"),"["+b+"]"),c.push(b)}return!0})}),a}},{key:"createMergedBlanksRegExp",value:function(a){return a.replace(/[\s]+/gim,"[\\s]*")}},{key:"createAccuracyRegExp",value:function(a){var b=this,c=this.opt.accuracy,d="string"==typeof c?c:c.value,e="string"==typeof c?[]:c.limiters,f="";switch(e.forEach(function(a){f+="|"+b.escapeStr(a)}),d){case"partially":return"()("+a+")";case"complementary":return"()([^\\s"+f+"]*"+a+"[^\\s"+f+"]*)";case"exactly":return"(^|\\s"+f+")("+a+")(?=$|\\s"+f+")"}}},{key:"getSeparatedKeywords",value:function(a){var b=this,c=[];return a.forEach(function(a){b.opt.separateWordSearch?a.split(" ").forEach(function(a){a.trim()&&c.push(a)}):a.trim()&&c.push(a)}),{keywords:c,length:c.length}}},{key:"getElements",value:function(){var a=void 0,b=[];return a="undefined"==typeof this.ctx?[]:this.ctx instanceof HTMLElement?[this.ctx]:Array.isArray(this.ctx)?this.ctx:Array.prototype.slice.call(this.ctx),a.forEach(function(a){if(-1===b.indexOf(a)){b.push(a);var c=a.querySelectorAll("*");c.length&&(b=b.concat(Array.prototype.slice.call(c)))}}),a.length||this.log("Empty context","warn"),{elements:b,length:b.length}}},{key:"matches",value:function(a,b){return(a.matches||a.matchesSelector||a.msMatchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.oMatchesSelector).call(a,b)}},{key:"matchesExclude",value:function(a,b){var c=this,d=!0,e=this.opt.exclude.concat(["script","style","title"]);return this.opt.iframes||(e=e.concat(["iframe"])),b&&(e=e.concat(["*[data-markjs='true']"])),e.every(function(b){return c.matches(a,b)?d=!1:!0}),!d}},{key:"onIframeReady",value:function(a,b,c){try{!function(){var d=a.contentWindow,e="about:blank",f="complete",g=function(){try{if(null===d.document)throw new Error("iframe inaccessible");b(d.document)}catch(a){c()}},h=function(){var b=a.getAttribute("src").trim(),c=d.location.href;return c===e&&b!==e&&b},i=function(){var b=function b(){try{h()||(a.removeEventListener("load",b),g())}catch(a){c()}};a.addEventListener("load",b)};d.document.readyState===f?h()?i():g():i()}()}catch(a){c()}}},{key:"forEachElementInIframe",value:function(a,b){var c=this,d=arguments.length<=2||void 0===arguments[2]?function(){}:arguments[2],e=0,f=function(){--e<1&&d()};this.onIframeReady(a,function(a){var d=Array.prototype.slice.call(a.querySelectorAll("*"));0===(e=d.length)&&f(),d.forEach(function(a){"iframe"===a.tagName.toLowerCase()?!function(){var d=0;c.forEachElementInIframe(a,function(a,c){b(a,c),c-1===d&&f(),d++},f)}():(b(a,d.length),f())})},function(){var b=a.getAttribute("src");c.log("iframe '"+b+"' could not be accessed","warn"),f()})}},{key:"forEachElement",value:function(a){var b=this,c=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],e=this.getElements(),f=e.elements,g=e.length,h=function(){0===--g&&c()};h(++g),f.forEach(function(c){if(!b.matchesExclude(c,d)){if("iframe"===c.tagName.toLowerCase())return void b.forEachElementInIframe(c,function(c){b.matchesExclude(c,d)||a(c)},h);a(c)}h()})}},{key:"forEachNode",value:function(a){var b=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1];this.forEachElement(function(b){for(b=b.firstChild;b;b=b.nextSibling)3===b.nodeType&&b.textContent.trim()&&a(b)},b)}},{key:"wrapMatches",value:function(a,c,d,e,f){for(var g=this.opt.element?this.opt.element:"mark",h=d?0:2,i=void 0;null!==(i=c.exec(a.textContent));)if(e(i[h])){var j=i.index;d||(j+=i[h-1].length);var k=a.splitText(j);if(a=k.splitText(i[h].length),null!==k.parentNode){var l=b.createElement(g);l.setAttribute("data-markjs","true"),this.opt.className&&l.setAttribute("class",this.opt.className),l.textContent=i[h],k.parentNode.replaceChild(l,k),f(l)}c.lastIndex=0}}},{key:"unwrapMatches",value:function(a){for(var c=a.parentNode,d=b.createDocumentFragment();a.firstChild;)d.appendChild(a.removeChild(a.firstChild));c.replaceChild(d,a),c.normalize()}},{key:"markRegExp",value:function(a,b){var c=this;this.opt=b,this.log('Searching with expression "'+a+'"');var d=0,e=function(a){d++,c.opt.each(a)};this.forEachNode(function(b){c.wrapMatches(b,a,!0,function(a){return c.opt.filter(b,a,d)},e)},function(){0===d&&c.opt.noMatch(a),c.opt.done(d)})}},{key:"mark",value:function(a,b){var c=this;this.opt=b;var d=this.getSeparatedKeywords("string"==typeof a?[a]:a),e=d.keywords,f=d.length,g=0;0===f&&this.opt.done(g),e.forEach(function(a){var b=new RegExp(c.createRegExp(a),"gmi"),d=0,h=function(a){d++,g++,c.opt.each(a)};c.log('Searching with expression "'+b+'"'),c.forEachNode(function(e){c.wrapMatches(e,b,!1,function(){return c.opt.filter(e,a,d,g)},h)},function(){0===d&&c.opt.noMatch(a),e[f-1]===a&&c.opt.done(g)})})}},{key:"unmark",value:function(a){var b=this;this.opt=a;var c=this.opt.element?this.opt.element:"*";c+="[data-markjs]",this.opt.className&&(c+="."+this.opt.className),this.log('Removal selector "'+c+'"'),this.forEachElement(function(a){b.matches(a,c)&&b.unwrapMatches(a)},function(){b.opt.done()},!1)}},{key:"opt",set:function(b){this._opt=_extends({},{element:"",className:"",exclude:[],iframes:!1,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:a.console},b)},get:function(){return this._opt}}]),c}();return c.fn.mark=function(a,b){return new d(this).mark(a,b),this},c.fn.markRegExp=function(a,b){return new d(this).markRegExp(a,b),this},c.fn.unmark=function(a){return new d(this).unmark(a),this},c},window,document); \ No newline at end of file From c3e016042673c2e9460f4185d31584328e23408e Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:15:24 -0400 Subject: [PATCH 016/138] Automatic changelog generation for PR #12474 [ci skip] --- html/changelogs/AutoChangeLog-pr-12474.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12474.yml diff --git a/html/changelogs/AutoChangeLog-pr-12474.yml b/html/changelogs/AutoChangeLog-pr-12474.yml new file mode 100644 index 00000000000..94a03a29600 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12474.yml @@ -0,0 +1,5 @@ +author: "craftxbox" +delete-after: True +changes: + - rscadd: "Vanilla JS Regex for chat highlighting" + - rscdel: "Removed jquery mark" From ca71ab312b7b554c756e6ad87afc093ebe9876e4 Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Sun, 27 Oct 2019 00:15:47 -0400 Subject: [PATCH 017/138] Xenomorph highpop spawn balance (#12508) --- code/modules/events/alien_infestation.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 2d3cb8465c9..dd4eb3b6923 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -1,6 +1,8 @@ /datum/event/alien_infestation announceWhen = 400 + var/highpop_trigger = 80 var/spawncount = 2 + var/list/playercount var/successSpawn = 0 //So we don't make a command report if nothing gets spawned. /datum/event/alien_infestation/setup() @@ -12,6 +14,9 @@ /datum/event/alien_infestation/start() var/list/vents = list() + playercount = length(GLOB.clients)//grab playercount when event starts not when game starts + if(playercount >= highpop_trigger) //spawn with 4 if highpop + spawncount = 4 for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) if(is_station_level(temp_vent.loc.z) && !temp_vent.welded) if(temp_vent.parent.other_atmosmch.len > 50) //Stops Aliens getting stuck in small networks. See: Security, Virology From 209379d22ae1813784e98cebede861f3b7cbf0fb Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 27 Oct 2019 00:19:13 -0400 Subject: [PATCH 018/138] Nerfs Glass Armor (#12544) --- code/game/objects/structures/window.dm | 29 +++++++++---------- code/modules/mining/equipment/survival_pod.dm | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 654fb23fdd6..553f2c476e7 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -481,10 +481,9 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f reinf = TRUE cancolor = TRUE heat_resistance = 1600 - armor = list("melee" = 80, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) - max_integrity = 75 + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) + max_integrity = 50 explosion_block = 1 - damage_deflection = 11 glass_type = /obj/item/stack/sheet/rglass /obj/structure/window/reinforced/tinted @@ -554,9 +553,9 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f shardtype = /obj/item/shard/plasma glass_type = /obj/item/stack/sheet/plasmaglass heat_resistance = 32000 - max_integrity = 200 + max_integrity = 150 explosion_block = 1 - armor = list("melee" = 80, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) + armor = list("melee" = 75, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) /obj/structure/window/plasmabasic/BlockSuperconductivity() return 1 @@ -570,7 +569,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f reinf = TRUE max_integrity = 500 explosion_block = 2 - armor = list("melee" = 80, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) + armor = list("melee" = 85, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) damage_deflection = 21 /obj/structure/window/plasmareinforced/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) @@ -607,7 +606,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f smooth = SMOOTH_TRUE canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced) explosion_block = 1 - armor = list("melee" = 80, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) + armor = list("melee" = 75, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) /obj/structure/window/full/plasmareinforced name = "reinforced plasma window" @@ -620,7 +619,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f reinf = TRUE max_integrity = 1000 explosion_block = 2 - armor = list("melee" = 80, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) + armor = list("melee" = 85, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100) /obj/structure/window/full/plasmareinforced/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) return @@ -632,10 +631,10 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f icon_state = "r_window" smooth = SMOOTH_TRUE canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced) - max_integrity = 150 + max_integrity = 100 reinf = TRUE heat_resistance = 1600 - armor = list("melee" = 80, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) explosion_block = 1 glass_type = /obj/item/stack/sheet/rglass cancolor = TRUE @@ -658,11 +657,11 @@ obj/structure/window/full/reinforced/ice desc = "A reinforced, air-locked pod window." icon = 'icons/obj/smooth_structures/shuttle_window.dmi' icon_state = "shuttle_window" - max_integrity = 150 + max_integrity = 100 reinf = TRUE heat_resistance = 1600 explosion_block = 3 - armor = list("melee" = 90, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) smooth = SMOOTH_TRUE canSmoothWith = null glass_type = /obj/item/stack/sheet/titaniumglass @@ -679,12 +678,12 @@ obj/structure/window/full/reinforced/ice icon = 'icons/obj/smooth_structures/plastitanium_window.dmi' icon_state = "plastitanium_window" dir = FULLTILE_WINDOW_DIR - max_integrity = 200 + max_integrity = 100 fulltile = TRUE flags = PREVENT_CLICK_UNDER reinf = TRUE heat_resistance = 1600 - armor = list("melee" = 95, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) smooth = SMOOTH_TRUE canSmoothWith = null explosion_block = 3 @@ -744,4 +743,4 @@ obj/structure/window/full/reinforced/ice dir = FULLTILE_WINDOW_DIR max_integrity = 120 level = 3 - glass_amount = 2 + glass_amount = 2 \ No newline at end of file diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index ea76ad423e2..bb2ce3a68f8 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -80,7 +80,7 @@ flags = PREVENT_CLICK_UNDER reinf = TRUE heat_resistance = 1600 - armor = list("melee" = 90, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) + armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100) smooth = SMOOTH_MORE canSmoothWith = list(/turf/simulated/wall/mineral/titanium/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod) explosion_block = 3 From 20db71cb7ef75e9675da62d2603053a97ee26c0e Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:19:15 -0400 Subject: [PATCH 019/138] Automatic changelog generation for PR #12544 [ci skip] --- html/changelogs/AutoChangeLog-pr-12544.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12544.yml diff --git a/html/changelogs/AutoChangeLog-pr-12544.yml b/html/changelogs/AutoChangeLog-pr-12544.yml new file mode 100644 index 00000000000..7306d7dd289 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12544.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - tweak: "windows are easier to break" From 76ab2c77001d2bfdccbcbf5c761568549992655c Mon Sep 17 00:00:00 2001 From: TDSSS <32099540+TDSSS@users.noreply.github.com> Date: Sun, 27 Oct 2019 05:19:40 +0100 Subject: [PATCH 020/138] Makes yellow documents destructible (#12540) --- code/game/objects/items/documents.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index a2b1f2fdedb..2bf519b4a22 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -33,6 +33,7 @@ name = "'Yellow' secret documents" desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Yellow\"." icon_state = "docs_yellow" + resistance_flags = NONE /obj/item/documents/syndicate/yellow/trapped desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Yellow\", and have a thin film of clear material covering their surface." From be3ec27111c792282ee50e1c086c81d26e1ddbf4 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:19:42 -0400 Subject: [PATCH 021/138] Automatic changelog generation for PR #12540 [ci skip] --- html/changelogs/AutoChangeLog-pr-12540.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12540.yml diff --git a/html/changelogs/AutoChangeLog-pr-12540.yml b/html/changelogs/AutoChangeLog-pr-12540.yml new file mode 100644 index 00000000000..b4174f53119 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12540.yml @@ -0,0 +1,4 @@ +author: "TDSSS" +delete-after: True +changes: + - tweak: "yellow documents are no longer indestructible." From 2a21b501b9e7ab35e470f86ec7acbfec24103f8a Mon Sep 17 00:00:00 2001 From: Ionward Date: Sat, 26 Oct 2019 21:20:07 -0700 Subject: [PATCH 022/138] Adds vox versions of Battlemage, Paranormal, Inquisitor, Berserker, and Syndicate Elite Hardsuits, fixed Wizard hardsuit action_type (#12559) --- code/modules/clothing/spacesuits/ert.dm | 4 +++- code/modules/clothing/suits/wiz_robe.dm | 2 +- icons/mob/species/vox/helmet.dmi | Bin 67746 -> 73777 bytes icons/mob/species/vox/suit.dmi | Bin 236524 -> 250990 bytes 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index 4670eca24a8..a97752a29db 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -197,6 +197,7 @@ "Grey" = 'icons/mob/species/grey/helmet.dmi', "Tajaran" = 'icons/mob/species/tajaran/helmet.dmi', "Unathi" = 'icons/mob/species/unathi/helmet.dmi', + "Vox" = 'icons/mob/species/vox/helmet.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi' ) @@ -210,9 +211,10 @@ sprite_sheets = list( "Tajaran" = 'icons/mob/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/species/unathi/suit.dmi', + "Vox" = 'icons/mob/species/vox/suit.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi' ) - hide_tail_by_species = list("Unathi, Tajaran, Vulpkanin") + hide_tail_by_species = list("Unathi, Tajaran, Vox, Vulpkanin") /obj/item/clothing/suit/space/hardsuit/ert/paranormal/New() ..() diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index f623ba4c087..09fab3322fb 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -181,7 +181,7 @@ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100) - actions_types = null //No inbuilt light + actions_types = list() //No inbuilt light resistance_flags = FIRE_PROOF | ACID_PROOF magical = TRUE diff --git a/icons/mob/species/vox/helmet.dmi b/icons/mob/species/vox/helmet.dmi index 74bd0762ff8911656a0eb00f7947fd9051023f31..67fafc2b51abe2ed2ac6f4eb924b641bf65c8b26 100644 GIT binary patch literal 73777 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

CIn~^&|%~EW% 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 literal 67746 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 Ypv2=8PsS}%2>hujX+11`VEOWY0i5U%4gdfE diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi index a088466564feb86f87707806afaa93a70ceb1dcd..07c7bf5d415869e565a28c88285c72440e9f385a 100644 GIT binary patch delta 27303 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 Date: Sun, 27 Oct 2019 00:20:10 -0400 Subject: [PATCH 023/138] Automatic changelog generation for PR #12559 [ci skip] --- html/changelogs/AutoChangeLog-pr-12559.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12559.yml diff --git a/html/changelogs/AutoChangeLog-pr-12559.yml b/html/changelogs/AutoChangeLog-pr-12559.yml new file mode 100644 index 00000000000..5bb7308eca4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12559.yml @@ -0,0 +1,5 @@ +author: "Ionward" +delete-after: True +changes: + - bugfix: "fixed Battlemage armor having an unintended helmet light" + - imageadd: "added Vox versions of Battlemage, Paranormal, Inquisitor, Berserker, and Syndicate Elite Hardsuits." From 393b248835ee1cc7f079a5c38ebdeab164633699 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 27 Oct 2019 00:22:12 -0400 Subject: [PATCH 024/138] Removes Ancient Storage Codersprite (#12594) --- .../objects/items/weapons/storage/storage.dm | 2 +- icons/mob/screen_gen.dmi | Bin 141348 -> 141665 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 9ef53c54601..b57bd8b9e50 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -459,7 +459,7 @@ boxes.plane = HUD_PLANE closer = new /obj/screen/close( ) closer.master = src - closer.icon_state = "x" + closer.icon_state = "backpack_close" closer.layer = ABOVE_HUD_LAYER closer.plane = ABOVE_HUD_PLANE orient2hud() diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 78778b27d97ed433d343728aeb7348a0673d7b4f..6a29745a7a781e7a3b15adb732207bc367c454be 100644 GIT binary patch delta 16661 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

y{X{-2)?| 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 delta 16343 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 Date: Sun, 27 Oct 2019 00:22:14 -0400 Subject: [PATCH 025/138] Automatic changelog generation for PR #12594 [ci skip] --- html/changelogs/AutoChangeLog-pr-12594.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12594.yml diff --git a/html/changelogs/AutoChangeLog-pr-12594.yml b/html/changelogs/AutoChangeLog-pr-12594.yml new file mode 100644 index 00000000000..a19eb7b14ee --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12594.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - rscadd: "updates the close icon for storage to not be a trashy codersprite" From 00f5e0613c30db2b5063beefb3fc13717116cd42 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sun, 27 Oct 2019 00:23:22 -0400 Subject: [PATCH 026/138] Stamina Damage Rework (#12591) --- code/__DEFINES/mobs.dm | 2 ++ code/__HELPERS/mobs.dm | 2 +- code/_onclick/hud/screen_objects.dm | 2 +- code/datums/action.dm | 2 +- code/game/gamemodes/vampire/vampire_powers.dm | 2 +- code/game/machinery/OpTable.dm | 2 +- .../items/weapons/storage/artistic_toolbox.dm | 2 +- code/game/objects/structures.dm | 2 +- .../objects/structures/crates_lockers/closets.dm | 2 +- code/game/objects/structures/tables_racks.dm | 2 +- .../clothing/spacesuits/rig/modules/modules.dm | 4 ++-- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- code/modules/martial_arts/cqc.dm | 12 ++++++------ code/modules/martial_arts/krav_maga.dm | 4 ++-- code/modules/martial_arts/mimejutsu.dm | 4 ++-- code/modules/martial_arts/sleeping_carp.dm | 10 +++++----- .../living/carbon/alien/humanoid/update_icons.dm | 2 +- code/modules/mob/living/carbon/human/emote.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- .../mob/living/carbon/human/species/_species.dm | 4 ++-- code/modules/mob/living/carbon/life.dm | 6 ++++-- code/modules/mob/living/carbon/status_procs.dm | 15 +++++++++++++++ code/modules/mob/living/carbon/update_status.dm | 16 +++++++--------- code/modules/mob/living/damage_procs.dm | 10 ++++++---- code/modules/mob/living/living_defines.dm | 2 ++ code/modules/mob/living/silicon/pai/pai.dm | 4 ++-- code/modules/mob/living/silicon/robot/life.dm | 2 +- code/modules/mob/living/silicon/robot/robot.dm | 2 +- .../mob/living/silicon/robot/update_status.dm | 4 ++-- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/living/update_status.dm | 4 ++-- code/modules/mob/status_procs.dm | 3 +++ code/modules/paperwork/photocopier.dm | 2 +- code/modules/projectiles/projectile/beams.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 1 - code/modules/reagents/chemistry/reagents/blob.dm | 4 ++-- code/modules/recycling/disposal.dm | 8 ++++---- code/modules/surgery/helpers.dm | 4 ++-- paradise.dme | 1 + 39 files changed, 91 insertions(+), 67 deletions(-) create mode 100644 code/modules/mob/living/carbon/status_procs.dm diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1db82f879fe..293d97e4fa3 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -95,6 +95,8 @@ #define APPEARANCE_ALL_BODY APPEARANCE_ALL_HAIR|APPEARANCE_HEAD_ACCESSORY|APPEARANCE_MARKINGS|APPEARANCE_BODY_ACCESSORY|APPEARANCE_ALT_HEAD #define APPEARANCE_ALL 32767 +#define STAMINA_REGEN_BLOCK_TIME (10 SECONDS) + //Slime evolution threshold. Controls how fast slimes can split/grow #define SLIME_EVOLUTION_THRESHOLD 10 diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 10658df4c4b..7c61cf832b5 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -381,7 +381,7 @@ This is always put in the attack log. drifting = 0 Uloc = user.loc - if(!user || user.stat || user.weakened || user.stunned || (!drifting && user.loc != Uloc)|| (extra_checks && !extra_checks.Invoke())) + if(!user || user.stat || user.IsWeakened() || user.stunned || (!drifting && user.loc != Uloc)|| (extra_checks && !extra_checks.Invoke())) . = 0 break diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index c279a7be2a5..c3c9b6f7e65 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -169,7 +169,7 @@ /obj/screen/storage/Click(location, control, params) if(world.time <= usr.next_move) return 1 - if(usr.stat || usr.paralysis || usr.stunned || usr.weakened) + if(usr.stat || usr.paralysis || usr.stunned || usr.IsWeakened()) return 1 if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech return 1 diff --git a/code/datums/action.dm b/code/datums/action.dm index 043117efb84..b7af84e9ddf 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -72,7 +72,7 @@ if(owner.restrained()) return 0 if(check_flags & AB_CHECK_STUNNED) - if(owner.stunned || owner.weakened) + if(owner.stunned || owner.IsWeakened()) return 0 if(check_flags & AB_CHECK_LYING) if(owner.lying) diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 7791c48b432..6c9674d130e 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -584,7 +584,7 @@ return if(stat != DEAD) - if(weakened) + if(IsWeakened()) visible_message("[src] looks to be in pain!") adjustBrainLoss(60) else diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index c8bdeb37ac4..2c6e60c3d52 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -52,7 +52,7 @@ /obj/machinery/optable/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob) - if(usr.stat || (!ishuman(user) && !isrobot(user)) || user.restrained() || !check_table(user) || user.weakened || user.stunned) + if(usr.stat || (!ishuman(user) && !isrobot(user)) || user.restrained() || !check_table(user) || user.IsWeakened() || user.stunned) return if(!ismob(O)) //humans only diff --git a/code/game/objects/items/weapons/storage/artistic_toolbox.dm b/code/game/objects/items/weapons/storage/artistic_toolbox.dm index 0d8613cce4a..0c0e2b03b3c 100644 --- a/code/game/objects/items/weapons/storage/artistic_toolbox.dm +++ b/code/game/objects/items/weapons/storage/artistic_toolbox.dm @@ -71,7 +71,7 @@ return if(!victim) return - if(!victim.stat && !victim.restrained() && !victim.weakened) + if(!victim.stat && !victim.restrained() && !victim.IsWeakened()) to_chat(user, "They're moving too much to feed to His Grace!") return user.visible_message("[user] is trying to feed [victim] to [src]!") diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 797f0922565..6849e6d07d3 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -132,7 +132,7 @@ if(user.restrained() || user.buckled) to_chat(user, "You need your hands and legs free for this.") return 0 - if(user.stat || user.paralysis || user.sleeping || user.lying || user.weakened) + if(user.stat || user.paralysis || user.sleeping || user.lying || user.IsWeakened()) return 0 if(issilicon(user)) to_chat(user, "You need hands for this.") diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index b58aecc7c78..23ee0d0c5df 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -270,7 +270,7 @@ return if(O.loc == user) return - if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.lying) + if(user.restrained() || user.stat || user.IsWeakened() || user.stunned || user.paralysis || user.lying) return if((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src))) return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index c4c0f9b7965..c8c148ac1e1 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -696,7 +696,7 @@ return /obj/structure/rack/attack_hand(mob/living/user) - if(user.weakened || user.resting || user.lying) + if(user.IsWeakened() || user.resting || user.lying) return user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_KICK) diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index 19c10a31c58..53330341bfe 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -13,7 +13,7 @@ desc = "It looks pretty sciency." icon = 'icons/obj/rig_modules.dmi' icon_state = "module" - + toolspeed = 1 var/damage = 0 @@ -155,7 +155,7 @@ to_chat(usr, "The suit is not initialized.") return 0 - if(usr.lying || usr.stat || usr.stunned || usr.paralysis || usr.weakened) + if(usr.lying || usr.stat || usr.stunned || usr.paralysis || usr.IsWeakened()) to_chat(usr, "You cannot use the suit in this state.") return 0 diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index c8b5e79eb32..3167e68ca6f 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -1052,7 +1052,7 @@ if(user.restrained()) to_chat(user, "You need your hands free for this.") return 0 - if(user.stat || user.paralysis || user.sleeping || user.lying || user.weakened) + if(user.stat || user.paralysis || user.sleeping || user.lying || user.IsWeakened()) return 0 return 1 #undef ONLY_DEPLOY diff --git a/code/modules/martial_arts/cqc.dm b/code/modules/martial_arts/cqc.dm index b57e7fc4f98..556cfded723 100644 --- a/code/modules/martial_arts/cqc.dm +++ b/code/modules/martial_arts/cqc.dm @@ -53,7 +53,7 @@ /datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - if(!D.weakened && !D.resting && !D.lying) + if(!D.IsWeakened() && !D.resting && !D.lying) D.visible_message("[A] slams [D] into the ground!", \ "[A] slams you into the ground!") playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) @@ -70,7 +70,7 @@ if(!can_use(A)) return FALSE var/success = FALSE - if(!D.stat || !D.weakened) + if(!D.stat || !D.IsWeakened()) D.visible_message("[A] kicks [D] back!", \ "[A] kicks you back!") playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) @@ -79,7 +79,7 @@ D.apply_damage(10, BRUTE) add_attack_logs(A, D, "Melee attacked with martial-art [src] : Kick", ATKLOG_ALL) success = TRUE - if(D.weakened && !D.stat) + if(D.IsWeakened() && !D.stat) D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \ "[A] kicks your head, knocking you out!") playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) @@ -164,7 +164,7 @@ A.do_attack_animation(D) var/picked_hit_type = pick("CQC'd", "neck chopped", "gut punched", "Big Bossed") var/bonus_damage = 13 - if(D.weakened || D.resting || D.lying) + if(D.IsWeakened() || D.resting || D.lying) bonus_damage += 5 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE) @@ -175,7 +175,7 @@ D.visible_message("[A] [picked_hit_type] [D]!", \ "[A] [picked_hit_type] you!") add_attack_logs(A, D, "Melee attacked with martial-art [src] : [picked_hit_type]", ATKLOG_ALL) - if(A.resting && !D.stat && !D.weakened) + if(A.resting && !D.stat && !D.IsWeakened()) D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) @@ -204,7 +204,7 @@ restraining = FALSE if(prob(65)) - if(!D.stat || !D.weakened || !restraining) + if(!D.stat || !D.IsWeakened() || !restraining) I = D.get_active_hand() D.visible_message("[A] strikes [D]'s jaw with their hand!", \ "[A] strikes your jaw, disorienting you!") diff --git a/code/modules/martial_arts/krav_maga.dm b/code/modules/martial_arts/krav_maga.dm index 5da6b329dcb..88e69919990 100644 --- a/code/modules/martial_arts/krav_maga.dm +++ b/code/modules/martial_arts/krav_maga.dm @@ -75,7 +75,7 @@ return 0 /datum/martial_art/krav_maga/proc/leg_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(D.stat || D.weakened) + if(D.stat || D.IsWeakened()) return 0 D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") @@ -111,7 +111,7 @@ datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/livi add_attack_logs(A, D, "Melee attacked with [src]") var/picked_hit_type = pick("punches", "kicks") var/bonus_damage = 10 - if(D.weakened || D.resting || D.lying) + if(D.IsWeakened() || D.resting || D.lying) bonus_damage += 5 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE) diff --git a/code/modules/martial_arts/mimejutsu.dm b/code/modules/martial_arts/mimejutsu.dm index 5bfff3bf093..a6d6d9e3341 100644 --- a/code/modules/martial_arts/mimejutsu.dm +++ b/code/modules/martial_arts/mimejutsu.dm @@ -22,7 +22,7 @@ return 0 /datum/martial_art/mimejutsu/proc/mimeChuck(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(!D.stat && !D.stunned && !D.weakened) + if(!D.stat && !D.stunned && !D.IsWeakened()) var/damage = rand(5, 8) + A.dna.species.punchdamagelow if(!damage) playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) @@ -54,7 +54,7 @@ return basic_hit(A,D) /datum/martial_art/mimejutsu/proc/mimePalm(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(!D.stat && !D.stunned && !D.weakened) + if(!D.stat && !D.stunned && !D.IsWeakened()) D.visible_message("[A] has barely touched [D] with [A.p_their()] palm!", \ "[A] hovers [A.p_their()] palm over your face!") diff --git a/code/modules/martial_arts/sleeping_carp.dm b/code/modules/martial_arts/sleeping_carp.dm index 38f1dba77b9..b3e30930c6a 100644 --- a/code/modules/martial_arts/sleeping_carp.dm +++ b/code/modules/martial_arts/sleeping_carp.dm @@ -35,7 +35,7 @@ return 0 /datum/martial_art/the_sleeping_carp/proc/wristWrench(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(!D.stat && !D.stunned && !D.weakened) + if(!D.stat && !D.stunned && !D.IsWeakened()) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] grabs [D]'s wrist and wrenches it sideways!", \ "[A] grabs your wrist and violently wrenches it to the side!") @@ -50,7 +50,7 @@ return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/backKick(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(A.dir == D.dir && !D.stat && !D.weakened) + if(A.dir == D.dir && !D.stat && !D.IsWeakened()) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] in the back!", \ "[A] kicks you in the back, making you stumble and fall!") @@ -63,7 +63,7 @@ return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/kneeStomach(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(!D.stat && !D.weakened) + if(!D.stat && !D.IsWeakened()) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] knees [D] in the stomach!", \ "[A] winds you with a knee in the stomach!") @@ -77,7 +77,7 @@ return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/headKick(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(!D.stat && !D.weakened) + if(!D.stat && !D.IsWeakened()) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] in the head!", \ "[A] kicks you in the jaw!") @@ -91,7 +91,7 @@ return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/proc/elbowDrop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - if(D.weakened || D.resting || D.stat) + if(D.IsWeakened() || D.resting || D.stat) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] elbow drops [D]!", \ "[A] piledrives you with [A.p_their()] elbow!") diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index bdc2ee31f77..7f17a8a87e1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -25,7 +25,7 @@ icon_state = "alien[caste]_dead" pixel_y = 0 - else if(stat == UNCONSCIOUS || weakened) + else if(stat == UNCONSCIOUS || IsWeakened()) icon_state = "alien[caste]_unconscious" pixel_y = 0 else if(leap_on_click) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index c23db2f5501..32841d3804d 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -383,7 +383,7 @@ message = "[src] flips in [M]'s general direction." SpinAnimation(5,1) else - if(lying || weakened) + if(lying || IsWeakened()) message = "[src] flops and flails around on the floor." else var/obj/item/grab/G diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 433a6adcc8f..6c1cfeb7714 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -633,7 +633,7 @@ emp_act if("brute") if(M.force > 35) // durand and other heavy mechas Paralyse(1) - else if(M.force > 20 && !weakened) // lightweight mechas like gygax + else if(M.force > 20 && !IsWeakened()) // lightweight mechas like gygax Weaken(2) update |= affecting.receive_damage(dmg, 0) playsound(src, 'sound/weapons/punch4.ogg', 50, TRUE) diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index c6c8b75518a..c56f0140ee2 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -246,7 +246,7 @@ if(H.r_hand && (H.r_hand.flags & HANDSLOW)) . += H.r_hand.slowdown - var/health_deficiency = (H.maxHealth - H.health + H.staminaloss) + var/health_deficiency = max(H.maxHealth - H.health, H.staminaloss) var/hungry = (500 - H.nutrition)/5 // So overeat would be 100 and default level would be 80 if(H.reagents) for(var/datum/reagent/R in H.reagents.reagent_list) @@ -751,7 +751,7 @@ return FALSE //Unsupported slot /datum/species/proc/get_perceived_trauma(mob/living/carbon/human/H) - return H.health - H.getStaminaLoss() + return min(H.health, H.maxHealth - H.getStaminaLoss()) /datum/species/proc/handle_hud_icons(mob/living/carbon/human/H) if(!H.client) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index a9263f58ea2..5352ba525f1 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -258,8 +258,10 @@ //this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - - setStaminaLoss(max((staminaloss - 3), 0)) + if(stam_regen_start_time <= world.time) + if(stam_paralyzed) + update_stamina() + setStaminaLoss(0, FALSE) var/restingpwr = 1 + 4 * resting diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm new file mode 100644 index 00000000000..a9f68773ed5 --- /dev/null +++ b/code/modules/mob/living/carbon/status_procs.dm @@ -0,0 +1,15 @@ +/mob/living/carbon/IsWeakened(include_stamcrit = TRUE) + return ..() || (include_stamcrit && stam_paralyzed) + +/mob/living/carbon/proc/enter_stamcrit() + if(!(status_flags & CANWEAKEN)) + return + if(absorb_stun(0)) //continuous effect, so we don't want it to increment the stuns absorbed. + return + if(!IsWeakened()) + to_chat(src, "You're too exhausted to keep going...") + var/prev = stam_paralyzed + stam_paralyzed = TRUE + update_canmove() + if(!prev && getStaminaLoss() < 120) // Puts you a little further into the initial stamcrit, makes stamcrit harder to outright counter with chems. + adjustStaminaLoss(30, FALSE) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/update_status.dm b/code/modules/mob/living/carbon/update_status.dm index 58c6e09764b..f78bdf63ec9 100644 --- a/code/modules/mob/living/carbon/update_status.dm +++ b/code/modules/mob/living/carbon/update_status.dm @@ -18,15 +18,13 @@ create_debug_log("woke up, trigger reason: [reason]") /mob/living/carbon/update_stamina() - ..() - if(staminaloss) - var/total_health = (health - staminaloss) - if(total_health <= HEALTH_THRESHOLD_CRIT && !stat) - to_chat(src, "You're too exhausted to keep going...") - Weaken(5) - setStaminaLoss(health - 2) - handle_hud_icons_health() - return + var/stam = getStaminaLoss() + if(stam > DAMAGE_PRECISION && (maxHealth - stam) <= HEALTH_THRESHOLD_CRIT && !stat) + enter_stamcrit() + else if(stam_paralyzed) + stam_paralyzed = FALSE + update_canmove() + handle_hud_icons_health() /mob/living/carbon/can_hear() . = FALSE diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 4f2323e2025..09abb09041d 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -260,28 +260,30 @@ if(status_flags & GODMODE) return FALSE var/old_stamloss = staminaloss - staminaloss = max(staminaloss + amount, 0) + staminaloss = min(max(staminaloss + amount, 0), 120) if(old_stamloss == staminaloss) updating = FALSE . = STATUS_UPDATE_NONE else . = STATUS_UPDATE_STAMINA + if(amount > 0) + stam_regen_start_time = world.time + STAMINA_REGEN_BLOCK_TIME if(updating) - handle_hud_icons_health() update_stamina() /mob/living/proc/setStaminaLoss(amount, updating = TRUE) if(status_flags & GODMODE) return FALSE var/old_stamloss = staminaloss - staminaloss = amount + staminaloss = min(max(amount, 0), 120) if(old_stamloss == staminaloss) updating = FALSE . = STATUS_UPDATE_NONE else . = STATUS_UPDATE_STAMINA + if(amount > 0) + stam_regen_start_time = world.time + STAMINA_REGEN_BLOCK_TIME if(updating) - handle_hud_icons_health() update_stamina() /mob/living/proc/getMaxHealth() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 5bc42caab14..74a51a771ac 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -69,3 +69,5 @@ var/deathgasp_on_death = FALSE var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added + var/stam_regen_start_time = 0 //used to halt stamina regen temporarily + var/stam_paralyzed = FALSE //knocks you down \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index cb6b3eaa104..25547e5de9e 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -318,7 +318,7 @@ set category = "pAI Commands" set name = "Unfold Chassis" - if(stat || sleeping || paralysis || weakened) + if(stat || sleeping || paralysis || IsWeakened()) return if(loc != card) @@ -353,7 +353,7 @@ set category = "pAI Commands" set name = "Collapse Chassis" - if(stat || sleeping || paralysis || weakened) + if(stat || sleeping || paralysis || IsWeakened()) return if(loc == card) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index bf09191ecf2..258ccec026a 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -169,7 +169,7 @@ weaponlock_time = 120 /mob/living/silicon/robot/update_canmove(delay_action_updates = 0) - if(paralysis || stunned || weakened || buckled || lockcharge || stat) + if(paralysis || stunned || IsWeakened() || buckled || lockcharge || stat) canmove = 0 else canmove = 1 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 59a0d38f15a..2bb0775bf0d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -906,7 +906,7 @@ var/list/robot_verbs_default = list( /mob/living/silicon/robot/update_icons() overlays.Cut() - if(stat != DEAD && !(paralysis || stunned || weakened || low_power_mode)) //Not dead, not stunned. + if(stat != DEAD && !(paralysis || stunned || IsWeakened() || low_power_mode)) //Not dead, not stunned. if(custom_panel in custom_eye_names) overlays += "eyes-[custom_panel]" else diff --git a/code/modules/mob/living/silicon/robot/update_status.dm b/code/modules/mob/living/silicon/robot/update_status.dm index fafc5a4c8c3..63c13f97d24 100644 --- a/code/modules/mob/living/silicon/robot/update_status.dm +++ b/code/modules/mob/living/silicon/robot/update_status.dm @@ -1,6 +1,6 @@ // No args for restraints because robots don't have those /mob/living/silicon/robot/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, ignore_lying = FALSE) - if(stat || lockcharge || weakened || stunned || paralysis || !is_component_functioning("actuator")) + if(stat || lockcharge || IsWeakened() || stunned || paralysis || !is_component_functioning("actuator")) return TRUE /mob/living/silicon/robot/has_vision(information_only = FALSE) @@ -14,7 +14,7 @@ death() create_debug_log("died of damage, trigger reason: [reason]") return - if(!is_component_functioning("actuator") || !is_component_functioning("power cell") || paralysis || sleeping || resting || stunned || weakened || getOxyLoss() > maxHealth * 0.5) + if(!is_component_functioning("actuator") || !is_component_functioning("power cell") || paralysis || sleeping || resting || stunned || IsWeakened() || getOxyLoss() > maxHealth * 0.5) if(stat == CONSCIOUS) KnockOut() create_debug_log("fell unconscious, trigger reason: [reason]") diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 26f02503c14..01c1f7cfe43 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -500,7 +500,7 @@ . |= pcollar.GetAccess() /mob/living/simple_animal/update_canmove(delay_action_updates = 0) - if(paralysis || stunned || weakened || stat || resting) + if(paralysis || stunned || IsWeakened() || stat || resting) drop_r_hand() drop_l_hand() canmove = 0 diff --git a/code/modules/mob/living/update_status.dm b/code/modules/mob/living/update_status.dm index bdaa0972aef..20cc969119f 100644 --- a/code/modules/mob/living/update_status.dm +++ b/code/modules/mob/living/update_status.dm @@ -62,11 +62,11 @@ // Whether the mob is capable of standing or not /mob/living/proc/can_stand() - return !(weakened || paralysis || stat || (status_flags & FAKEDEATH)) + return !(IsWeakened() || paralysis || stat || (status_flags & FAKEDEATH)) // Whether the mob is capable of actions or not /mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, ignore_lying = FALSE) - if(stat || paralysis || stunned || weakened || (!ignore_restraints && restrained()) || (!ignore_lying && lying)) + if(stat || paralysis || stunned || IsWeakened() || (!ignore_restraints && restrained()) || (!ignore_lying && lying)) return TRUE // wonderful proc names, I know - used to check whether the blur overlay diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index f6e6e07673f..6716ea0e4a9 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -190,6 +190,9 @@ return +/mob/proc/IsWeakened() + return weakened + /mob/proc/Weaken() return diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 5a09e1a55a9..e7be4698fcf 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -317,7 +317,7 @@ src.add_fingerprint(user) if(target == user && !user.incapacitated()) visible_message("[usr] jumps onto [src]!") - else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis) + else if(target != user && !user.restrained() && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) if(target.anchored) return if(!ishuman(user)) return visible_message("[usr] drags [target.name] onto [src]!") diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 22d6c3744d1..814ac3d7e46 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -47,7 +47,7 @@ /obj/item/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" - damage = 36 + damage = 30 damage_type = STAMINA flag = "energy" hitsound = 'sound/weapons/tap.ogg' diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index e8f7d16cc37..1945c6dffe5 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -314,7 +314,6 @@ var/const/INGEST = 2 if(update_flags & STATUS_UPDATE_CANMOVE) M.update_canmove() if(update_flags & STATUS_UPDATE_STAMINA) - M.handle_hud_icons_health() M.update_stamina() if(update_flags & STATUS_UPDATE_BLIND) M.update_blind_effects() diff --git a/code/modules/reagents/chemistry/reagents/blob.dm b/code/modules/reagents/chemistry/reagents/blob.dm index 903ac9fa350..571db376f80 100644 --- a/code/modules/reagents/chemistry/reagents/blob.dm +++ b/code/modules/reagents/chemistry/reagents/blob.dm @@ -25,7 +25,7 @@ if(method == TOUCH) volume = ..() M.apply_damage(0.6*volume, BRUTE) - M.adjustStaminaLoss(0.4*volume) + M.adjustStaminaLoss(volume) if(iscarbon(M)) M.emote("scream") @@ -105,7 +105,7 @@ if(method == TOUCH) volume = ..() M.apply_damage(0.4*volume, BURN) - M.adjustStaminaLoss(0.4*volume) + M.adjustStaminaLoss(volume) if(M.reagents) M.reagents.add_reagent("frostoil", 0.4*volume) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 8efd181ac1a..02ca42e94d9 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -189,20 +189,20 @@ var/target_loc = target.loc var/msg for(var/mob/V in viewers(usr)) - if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis) + if(target == user && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) V.show_message("[usr] starts climbing into the disposal.", 3) - if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis) + if(target != user && !user.restrained() && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) if(target.anchored) return V.show_message("[usr] starts stuffing [target.name] into the disposal.", 3) if(!do_after(usr, 20, target = target)) return if(target_loc != target.loc) return - if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis) // if drop self, then climbed in + if(target == user && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) // if drop self, then climbed in // must be awake, not stunned or whatever msg = "[user.name] climbs into the [src]." to_chat(user, "You climb into the [src].") - else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis) + else if(target != user && !user.restrained() && !user.stat && !user.IsWeakened() && !user.stunned && !user.paralysis) msg = "[user.name] stuffs [target.name] into the [src]!" to_chat(user, "You stuff [target.name] into the [src]!") diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index c63cd286787..867e53579be 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -144,9 +144,9 @@ /proc/can_operate(mob/living/carbon/M) if(locate(/obj/machinery/optable, M.loc) && (M.lying || M.resting)) return TRUE - if(locate(/obj/structure/bed, M.loc) && (M.buckled || M.lying || M.weakened || M.stunned || M.paralysis || M.sleeping || M.stat)) + if(locate(/obj/structure/bed, M.loc) && (M.buckled || M.lying || M.IsWeakened() || M.stunned || M.paralysis || M.sleeping || M.stat)) return TRUE - if(locate(/obj/structure/table, M.loc) && (M.lying || M.weakened || M.stunned || M.paralysis || M.sleeping || M.stat)) + if(locate(/obj/structure/table, M.loc) && (M.lying || M.IsWeakened() || M.stunned || M.paralysis || M.sleeping || M.stat)) return TRUE return FALSE diff --git a/paradise.dme b/paradise.dme index abd9b1372a3..35725ea6bbf 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1755,6 +1755,7 @@ #include "code\modules\mob\living\carbon\death.dm" #include "code\modules\mob\living\carbon\give.dm" #include "code\modules\mob\living\carbon\life.dm" +#include "code\modules\mob\living\carbon\status_procs.dm" #include "code\modules\mob\living\carbon\superheroes.dm" #include "code\modules\mob\living\carbon\update_icons.dm" #include "code\modules\mob\living\carbon\update_status.dm" From a54c6d654130bb486b52db95706183efe3990e0f Mon Sep 17 00:00:00 2001 From: farie82 Date: Sun, 27 Oct 2019 05:24:06 +0100 Subject: [PATCH 027/138] fixes the blob runtimes and invisble blob zombies (#12614) --- code/game/gamemodes/blob/blobs/blob_mobs.dm | 9 ++------- code/game/gamemodes/blob/blobs/factory.dm | 7 ++++--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index f94a9a3fbfd..e1cef880e0a 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -139,11 +139,7 @@ /mob/living/simple_animal/hostile/blob/blobspore/update_icons() ..() - if(overmind && overmind.blob_reagent_datum) - adjustcolors(overmind.blob_reagent_datum.complementary_color) - else - adjustcolors(overmind.blob_reagent_datum.complementary_color) //to ensure zombie/other overlays update - + adjustcolors(overmind?.blob_reagent_datum?.complementary_color) /mob/living/simple_animal/hostile/blob/blobspore/adjustcolors(var/a_color) color = a_color @@ -152,8 +148,7 @@ overlays.Cut() overlays = human_overlays var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head") - I.color = overmind.blob_reagent_datum.complementary_color - color = initial(overmind.blob_reagent_datum.complementary_color)//looks better. + I.color = color overlays += I ///////////////// diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index a8fdc03ec96..b8bff19cbcf 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -23,6 +23,7 @@ flick("blob_factory_glow", src) spore_delay = world.time + 100 // 10 seconds var/mob/living/simple_animal/hostile/blob/blobspore/BS = new/mob/living/simple_animal/hostile/blob/blobspore(src.loc, src) - BS.color = overmind.blob_reagent_datum.complementary_color - BS.overmind = overmind - overmind.blob_mobs.Add(BS) + if(overmind) + BS.color = overmind.blob_reagent_datum?.complementary_color + BS.overmind = overmind + overmind.blob_mobs.Add(BS) From 3aba865458379a58272caaa40970b9cfdf403ad4 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 00:24:08 -0400 Subject: [PATCH 028/138] Automatic changelog generation for PR #12614 [ci skip] --- html/changelogs/AutoChangeLog-pr-12614.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12614.yml diff --git a/html/changelogs/AutoChangeLog-pr-12614.yml b/html/changelogs/AutoChangeLog-pr-12614.yml new file mode 100644 index 00000000000..6d61baefdfa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12614.yml @@ -0,0 +1,5 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "Fixed the invisible blob zombies" + - bugfix: "A runtime in blob/factory/run_action" From 49a70daba0b285aef268f08f46a728b8aa0c3d26 Mon Sep 17 00:00:00 2001 From: Terilia Date: Sun, 27 Oct 2019 05:26:34 +0100 Subject: [PATCH 029/138] A red headcrab day (#12396) --- code/game/objects/structures/spawner.dm | 14 +- code/modules/events/event_container.dm | 3 +- code/modules/events/headcrabs.dm | 137 +++--------------- .../living/simple_animal/hostile/headcrab.dm | 41 ++++-- icons/mob/headcrab.dmi | Bin 11944 -> 15147 bytes 5 files changed, 63 insertions(+), 132 deletions(-) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index f960a7443ee..b3b3157c391 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -85,4 +85,16 @@ /obj/structure/spawner/mining/basilisk name = "basilisk den" desc = "A den housing a nest of basilisks, bring a coat." - mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) \ No newline at end of file + mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) + +/obj/structure/spawner/headcrab + name = "headcrab nest" + desc = "A living nest for headcrabs. It is moving ominously." + icon_state = "headcrab_nest" + icon = 'icons/mob/headcrab.dmi' + max_integrity = 200 + max_mobs = 15 + spawn_time = 600 + mob_types = list(/mob/living/simple_animal/hostile/headcrab, /mob/living/simple_animal/hostile/headcrab/fast, /mob/living/simple_animal/hostile/headcrab/poison) + spawn_text = "crawls out of" + faction = list("hostile") \ No newline at end of file diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 3f86b88924c..1c99d2d1bc0 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -181,7 +181,8 @@ var/list/event_last_fired = list() new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Swarmer Spawn", /datum/event/spawn_swarmer, 150, is_one_shot = 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 40, is_one_shot = 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 0, list(ASSIGNMENT_MEDICAL = 150), 1) + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 0, list(ASSIGNMENT_MEDICAL = 150), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Headcrabs", /datum/event/headcrabs, 0, list(ASSIGNMENT_SECURITY = 20)) ) /datum/event_container/major diff --git a/code/modules/events/headcrabs.dm b/code/modules/events/headcrabs.dm index ced8562c96c..b1eef858d7e 100644 --- a/code/modules/events/headcrabs.dm +++ b/code/modules/events/headcrabs.dm @@ -1,114 +1,29 @@ -#define LOC_ATMOS_CONTROL 0 -#define LOC_FPMAINT 1 -#define LOC_FPMAINT2 2 -#define LOC_FSMAINT 3 -#define LOC_FSMAINT2 4 -#define LOC_ASMAINT 5 -#define LOC_ASMAINT2 6 -#define LOC_APMAINT 7 -#define LOC_MAINTCENTRAL 8 -#define LOC_FORE 9 -#define LOC_STARBOARD 10 -#define LOC_PORT 11 -#define LOC_AFT 12 -#define LOC_STORAGE 13 -#define LOC_DISPOSAL 14 -#define LOC_GENETICS 15 -#define LOC_ELECTRICAL 16 -#define LOC_ABANDONEDBAR 17 -#define LOC_ELECTRICAL_SHOP 18 -#define LOC_GAMBLING_DEN 19 - #define HEADCRAB_NORMAL 0 #define HEADCRAB_FASTMIX 1 #define HEADCRAB_FAST 2 #define HEADCRAB_POISONMIX 3 #define HEADCRAB_POISON 4 -/*#define HEADCRAB_CLOWN 5 */ //Planned for the future. maybe +#define HEADCRAB_SPAWNER 5 /datum/event/headcrabs announceWhen = 10 endWhen = 11 - var/location var/locstring - var/headcrab + var/headcrab_type /datum/event/headcrabs/start() - - location = rand(0,19) + var/list/availableareas = list() + for(var/area/maintenance/A in world) + availableareas += A + var/area/randomarea = pick(availableareas) var/list/turf/simulated/floor/turfs = list() - var/spawn_area_type - switch(location) - if(LOC_ATMOS_CONTROL) - spawn_area_type = /area/maintenance/atmos_control - locstring = "Atmospherics Maintenance" - if(LOC_FPMAINT) - spawn_area_type = /area/maintenance/fpmaint - locstring = "EVA Maintenance" - if(LOC_FPMAINT2) - spawn_area_type = /area/maintenance/fpmaint2 - locstring = "Arrivals North Maintenance" - if(LOC_FSMAINT) - spawn_area_type = /area/maintenance/fsmaint - locstring = "Dormitory Maintenance" - if(LOC_FSMAINT2) - spawn_area_type = /area/maintenance/fsmaint2 - locstring = "Bar Maintenance" - if(LOC_ASMAINT) - spawn_area_type = /area/maintenance/asmaint - locstring = "Medbay Maintenance" - if(LOC_ASMAINT2) - spawn_area_type = /area/maintenance/asmaint2 - locstring = "Science Maintenance" - if(LOC_APMAINT) - spawn_area_type = /area/maintenance/apmaint - locstring = "Cargo Maintenance" - if(LOC_MAINTCENTRAL) - spawn_area_type = /area/maintenance/maintcentral - locstring = "Bridge Maintenance" - if(LOC_FORE) - spawn_area_type = /area/maintenance/fore - locstring = "Fore Maintenance" - if(LOC_STARBOARD) - spawn_area_type = /area/maintenance/starboard - locstring = "Starboard Maintenance" - if(LOC_PORT) - spawn_area_type = /area/maintenance/port - locstring = "Locker Room Maintenance" - if(LOC_AFT) - spawn_area_type = /area/maintenance/aft - locstring = "Engineering Maintenance" - if(LOC_STORAGE) - spawn_area_type = /area/maintenance/storage - locstring = "Atmospherics Maintenance" - if(LOC_DISPOSAL) - spawn_area_type = /area/maintenance/disposal - locstring = "Waste Disposal" - if(LOC_GENETICS) - spawn_area_type = /area/maintenance/genetics - locstring = "Genetics Maintenance" - if(LOC_ELECTRICAL) - spawn_area_type = /area/maintenance/electrical - locstring = "Electrical Maintenance" - if(LOC_ABANDONEDBAR) - spawn_area_type = /area/maintenance/abandonedbar - locstring = "Maintenance Bar" - if(LOC_ELECTRICAL_SHOP) - spawn_area_type = /area/maintenance/electrical_shop - locstring ="Electronics Den" - if(LOC_GAMBLING_DEN) - spawn_area_type = /area/maintenance/gambling_den - locstring = "Gambling Den" - for(var/areapath in typesof(spawn_area_type)) - var/area/A = locate(areapath) - for(var/turf/simulated/floor/F in A.contents) - if(turf_clear(F)) - turfs += F - + for(var/turf/simulated/floor/F in randomarea) + if(turf_clear(F)) + turfs += F var/list/spawn_types = list() var/max_number - headcrab = rand(0, 4) //rand(0,x) for the future - switch(headcrab) //Switch is for the future + headcrab_type = rand(0, 5) + switch(headcrab_type) if(HEADCRAB_NORMAL) spawn_types = list(/mob/living/simple_animal/hostile/headcrab) max_number = 6 @@ -124,9 +39,13 @@ if(HEADCRAB_POISON) spawn_types = list(/mob/living/simple_animal/hostile/headcrab/poison) max_number = 3 + if(HEADCRAB_SPAWNER) + spawn_types = list(/obj/structure/spawner/headcrab) + max_number = 2 var/num = rand(2,max_number) + while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) @@ -136,31 +55,11 @@ /datum/event/headcrabs/announce() - event_announcement.Announce("Bioscans indicate that creatures have been breeding in [locstring]. Clear them out, before this starts to affect productivity", "Lifesign Alert") - -#undef LOC_ATMOS_CONTROL -#undef LOC_FPMAINT -#undef LOC_FPMAINT2 -#undef LOC_FSMAINT -#undef LOC_FSMAINT2 -#undef LOC_ASMAINT -#undef LOC_ASMAINT2 -#undef LOC_APMAINT -#undef LOC_MAINTCENTRAL -#undef LOC_FORE -#undef LOC_STARBOARD -#undef LOC_PORT -#undef LOC_AFT -#undef LOC_STORAGE -#undef LOC_DISPOSAL -#undef LOC_GENETICS -#undef LOC_ELECTRICAL -#undef LOC_ABANDONEDBAR -#undef LOC_ELECTRICAL_SHOP -#undef LOC_GAMBLING_DEN + event_announcement.Announce("Bioscans indicate that headcrabs have been breeding on the station. Clear them out, before this starts to affect productivity", "Lifesign Alert") #undef HEADCRAB_NORMAL #undef HEADCRAB_FASTMIX #undef HEADCRAB_FAST #undef HEADCRAB_POISONMIX -#undef HEADCRAB_POISON \ No newline at end of file +#undef HEADCRAB_POISON +#undef HEADCRAB_SPAWNER \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 71356b7c52c..e48d980c2a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -5,8 +5,9 @@ icon_state = "headcrab" icon_living = "headcrab" icon_dead = "headcrab_dead" - health = 40 - maxHealth = 40 + health = 60 + maxHealth = 60 + dodging = 1 melee_damage_lower = 5 melee_damage_upper = 10 ranged = 1 @@ -18,7 +19,8 @@ attack_sound = 'sound/creatures/headcrab_attack.ogg' speak_emote = list("hisses") var/is_zombie = 0 - stat_attack = DEAD //so they continue to attack when they are on the ground. + stat_attack = DEAD //so they continue to attack when they are on the ground. + robust_searching = 1 var/host_species = "" var/list/human_overlays = list() @@ -28,6 +30,17 @@ if(H.stat == DEAD || (!H.check_death_method() && H.health <= HEALTH_THRESHOLD_DEAD)) Zombify(H) break + var/cycles = 4 + if(cycles >= 4) + for(var/mob/living/simple_animal/K in oview(src, 1)) //Only for corpse right next to/on same tile + if(K.stat == DEAD || (!K.check_death_method() && K.health <= HEALTH_THRESHOLD_DEAD)) + visible_message("[src] consumes [target] whole!") + if(health < maxHealth) + health += 10 + qdel(K) + break + cycles = 0 + cycles++ ..() /mob/living/simple_animal/hostile/headcrab/OpenFire(atom/A) @@ -51,7 +64,7 @@ var/obj/item/clothing/suit/armor/A = H.wear_suit if(A.armor && A.armor["melee"]) maxHealth += A.armor["melee"] //That zombie's got armor, I want armor! - maxHealth += 50 + maxHealth += 200 health = maxHealth name = "zombie" desc = "A corpse animated by the alien being on its head." @@ -114,8 +127,8 @@ icon_state = "fast_headcrab" icon_living = "fast_headcrab" icon_dead = "fast_headcrab_dead" - health = 30 - maxHealth = 30 + health = 40 + maxHealth = 40 ranged_cooldown_time = 30 jumpdistance = 8 jumpspeed = 2 @@ -144,11 +157,13 @@ icon_state = "poison_headcrab" icon_living = "poison_headcrab" icon_dead = "poison_headcrab_dead" - health = 60 - maxHealth = 60 + health = 80 + maxHealth = 80 ranged_cooldown_time = 50 jumpdistance = 3 jumpspeed = 1 + melee_damage_lower = 8 + melee_damage_upper = 20 attack_sound = 'sound/creatures/ph_scream1.ogg' speak_emote = list("screech") @@ -167,6 +182,10 @@ /mob/living/simple_animal/hostile/headcrab/poison/AttackingTarget() . = ..() - var/mob/living/carbon/C = target - if(C.can_inject(null, FALSE, "head", FALSE)) - C.reagents.add_reagent("lsd", 5) + if(iscarbon(target) && target.reagents) + var/inject_target = pick("chest", "head") + var/mob/living/carbon/C = target + if(C.stunned || C.can_inject(null, FALSE, inject_target, FALSE)) + if(C.eye_blurry < 60) + C.AdjustEyeBlurry(10) + visible_message("[src] buries its fangs deep into the [inject_target] of [target]!") diff --git a/icons/mob/headcrab.dmi b/icons/mob/headcrab.dmi index b308179b45f3a1d0b6375c757e1612132045e3eb..a1081b39835019b53ebcad941088ce8926f91681 100644 GIT binary patch literal 15147 zcmbWeWpG@vwl&yh$IQ@XrkI(T5_8NzpI$NLyRdT5GE#loX_q5r7B)003E5MnVMufB+`}Tkx>p?=#UBCGgLbm#U_V z#CK;CCrbwxOM5#2z$3FLu@fPf1xxC1kB+G=RmJ}(wTN~=)IfChpgeFv2E)ep1w~IA z+pEZAi?C&rj4boUSy@ya$4BC{;aF6pP1xandeohiG=le3sX5DEI5Uk{RAf3&RfB;U z!u*R49Hh!5km2%3M5F;4uHa-wfcv^?z%ok2%sTWYICkM!iq8O)r^NIVv0(x+O6C6R zvn;9<|D1iMa1t#vmx^x@*eP$pf+$R}t*_fM!~HEhG9LEQjtN;sfi zeuNePKnjqR5LNZaJkRp<(VcgF?6!BCi005XYw$?0*+n*Cfes%qB!E<~fiHA}wDd#% z)D6u|_4O+qT}YwrPii!6zfZEi3K{c+;pK0}g4S!7jfPY91>g`2+bg_gRXNsd#~7zx6}Wc$F@6dSIvlB(VpD)EGG0NFeN zr$vmqYj$oV79ng!cYajRGhNr?)_WqpQR_ac6zAynzrbq(%d+pobOD8=#4WycOOF`@ zQfp?r=5||wtGGFCMSKK%sKwrM6TH0H7x$U0<$otF^4z4x;x#VBX3jcvN{2?wYdd`O zq!>*q`M(t7cILTUfO@k8LB8*9=1H$Uc6u5V0=^1uE2~FV_5`^@O0kBY6+}4SePBrp zQZA33ole_+vhqT-!jjU#$F0h1coWoXADC^To*c!W#}hZdR3;1K)hv3im_N1c6WE_e z;|TCy;)J5ihqL=(&mVg{XZD|{(9S~0AoO9&I{n*%*ix0AlJ3N4B_F9*c{kMKx{Ryy zligM@6hPv7?+xqr^tT!B*5L!l_S$Tam-<&%vZ0cftXf2tFSUhEHef2?c`*-ygdj@)_BzjyA{Q-_>o+_=| zFXExW=v>*%o8|Orr~J&_y{h{MKk>>Rad#Wq$jaV9&~Ouz zZUW_02T+Byotkw4JwO*a87pMy{NNb$tbftDcsj7_hRX7%1a#_6r3ckwzY8Sw-Y0m4 z1gCy}(t;Z1_6soAN2ZIjyQYt`Io;_MJ{v=xu{LjT7!v;l&~!gkL=fs~J10W59hLtW zH{#cRA>!qQfdZY5NUK-CM=_LoKe=v6un9$5$YllA&tG?PK)?X$CRgOgmni>tYw#_q zU%|p{0~I!}Gxe1Q#*n|IO1c0G%&c|S(o-lb<0`C~NO#VzUOUHjL%VME7n3vl zx13@g;;NbRLdIi($BN`ezuha&ukv=fK2W;ZBjwC^jmhv8#q#QXv8D-u$M?;sV^|X~ zQi^9+s&_%wVrnA;N17mKvIh*1V2epW5h2eQ{O=tpUtB{rGt&eaN)r>+sDLC!im$wQ zbWQC`mbujRD2esKK}0=J&CEEPE$5g$!^aU9peK@+7xOBr(~y0_KsgD7(z4v(y|cV6 z&VZ5lg#Co})J(J2c+RkSlFnG^3vHF(E=o^j#bF4ys;)pqgi?0pAJ3KNblG(0P<(oiwTY#%~euq{xTJiJ@8W?#PtAXS8P8n$*GhK_cL%84FEG zp)w8saScCA&4D(Z!+dilUZ{j_OvlW=fqoAe_b>&6Y#z{ zxhcg%DPc0%JoRdnHm>r59hKt3=BVUnj@-FVQS>KfN*diVC2_s_L1CAc65wyGa`gD; zhZ!;)-Wmg2Y&d=|&A)3LRsBv>1qEB^B7UDAm9jwK9_OpFZd=VtYEa5Dikpk;{as5Q zD^!V`{tI?b?D-yPz9v3-Iv5Hf9oJcK71WYWNF#r94dHTuJq}r?a+`5!V)f;vQrh%V zP7dYhsbB6Nnww%gP^5l&eIZYH0#GJeMn}UY%M`PIV*=K$-Kd3mvDNAJiWJ3m50|VR zcCX#!b=cOZR0^>a%W;)P>J9HbIRf@` zvrkHIps4tKNcfHv42o-IuhS)X(Umo3Q62St2fvjHB-$Kd@sbeBtNE@;-1m!ZCSX4` zr$*YZc0%SEOYfeg8~?YWc&}S(Uym>u<7RkG+T+cIA zNzNH~7fJJ0^%z6#5-XNr>jt;p3EKphlY9S*WPcfH?!=1;)#dA4=iAuKJ$=y$6b%1I zVJz^FJo-uBgTg^4y5Q|-LK52V!rosdSnaEZx6X`M5O@k`Hk#sqH`r>v8lZ>kLybGO z^e}$>dCvFzRsAAWUqe-EfRzHkP=q7*OPLcy>CNS8OBlE<+%}&BfDsy2H>dSwjtEu~ zTOXT=myClS?bTxU?Jh(@z)3;xa+^yL0mShA6x$4V5X*&>YN7BlF>?v;wm&@Xp)zai zfgcujPq%x8{_pcu5lRTYZYHZiHV_SF`S3mp8{_q@%C^<85^Bgh{4+`!PRZxkKXVD^ z2H8y-bZTJx00Syfg`M>7U*p$}PZCK?IT8c0>#fd|a77lvnWLRT zq0)fM@8)LYDzoNbAOOD>K z4*+9?L+Su39_*iBI6ygv2i|?b9_#X-`+R^1Qy>M=|8wOn{QsRjU6~3dMdalIPD1<} zrc?pzgO&hsNpnefD&i%Rr$UF*7#utyXgNNDuHs#wSY z5eIPQM6okkih^@q&BpWWAkpkx@bQK_lr=#t#KhuGYM9od;W_j5ejPPg0K5+R%*Phb z>G$KC)$OBF@f$R&IC3?0y8vK*@7MhrC>mp?z>ZBsk_=lrh@96*tHf-$^b@goGur7Q zWsS?3j?hosrX^2-6)Bvha)*S|@1$|J$*BncF%;EYMe*QUmK9+2O25&BLQc#qq%jrG zhm%y___mK_nEbffJ~Ix8*$C*hf*?(z^KE<2Zr+r(=g9pe#ezR>(ZGkX4WA*A*dVie z3q5_*sFW{ylsaUG)5HhY&}_n`o{Nok2O|RC(J7d2Z9@v}Rnf|U066x5G(UwA&ixm70&ux}zxVK*tso22S;1lH ztqZii&^GHgMtAKhSe>3KtqFPcy~yIlu?m zcydv&U?y6!m~X*JXm?4K5IJ`ci4hY5XlXjq4(MJSBO@h@z`O}Px*nR=z+eCrSwPRsy%FigFiz_29MaU-&EA5UW!wPQ4~KZg9j@lCSg~4fJp8mn7&dc-23^?pw=S ziK!*a_KW;vORx|spr-qotw{S(`DyYT7ZG4CMYi(^O@6Sfs!DRk+VZcd+Ve}!`R6v2 zRbe5;W&b;w(ASroiJ5ra+?g_3S`<1kaxe;WH0{dJE4#D zdh3`z$ozdSyiXW#^(F=FOYEg9)Rx86mSxvBLz^0jz$AD{m?_8<9SDeU2w~`Yeo1r* z`w|VLBt`1g{58ohVoaoETjFW+hZp$_*TKs`g|n5p%GteylanQ3bL=9 z2(k+WG8sRb*0bF|wB-ND)BS#~{y7x^K+iC-WRs$*s!Hl3bm4pSm+(s1-zVwuw)=HG z*_Je-Fj+1`vggBfI%pIe@=MYTKyD0bYRlm)(NcmL(Ye3bUW7IusW3){u?8U4JjWm% z4;c~v+*MRjc~a7Ya11!G%-+{B(i!B^d;eeUk4+nz6THsmPDh$F zoW=B5F=3Gi6z%@E2fICQ;zTC&Q!|u_Dk@j-q?^;1TKs9}4>`;LFhf)V?rQLQ8r-IU z{H{VLAk()?!Hrs8vQaOmpE!G;`1JsI06FCxij=v;%S=ik5JQxPy>l@&%-^jJ z8uQIIl}$;InPih{gx9ogW(Rdx@x_LC7QEplNMYJ~2UY6SC4Z2Q#Ly=Hmt&pL7>y<9 zo@*4E=1tJ=n}^Fb|LPtFv8ze{%Ui;yeIZ3nV7COD*9Q}tPdQ`*S4PUu_=Dr8hh0UI zD?{psNRWw1dq5OOWAMNLn6Foe;d-C)etQG8E@INAB1M?;u^p@i)T^kIo) zy8Z`_w^bLLHbdDz{i4CT^R$VOVDm$8`wxjFZvIt$&!w*C$z(0;hh8m%p+U)i^FA&; z1vT8sJg*mMzG2BYU__N@IZ}EHK`7_}P|Qj4tS9h%tf@9pAJYYZ^^B{3yn(YD7(S=# zwJIm2%n_z-EGL=)I*ao^n5%!nh{($$H{Qj3uuXxh3{*!jT1)v0_C8rh{BJDN4$eN7 zuNWhLjn`%Z%Gu)wnG@s$i&c4QCCKTRzEKluk|$u1{J-#v^8yxZLUP<|P;L>^j9|j= zVkna?L>3k7B^6FNUQ?6&wmtU&ySVL@cL{I)!|L}g7ibexITX@v zsaK^(T|ug20L4h~EPvp~Y^m1tIk)_#%_RUVjrQ!X6A``}gX6}ZTr8Go} zxihE3g-PIbqNA%Pg!ezi4#r2+d&k@%tq8Cys} z9bz6MN->31^uRyJsOI**k9Ak>?t0YZvb}IM=j3}gJFfTWN5@dZci~pjb1g4{D;Hp# zqw5U??e%=c_X6MA;d8aZ1kSy=?wS#eK?GHx4TV=OC6L^u@G9fF9r&pNT&n@N*5B=S zszru?PJp`xH%)I_`cjC^MCe9FXFc3o&DiBeVJGcZgJMXrK z`h*1^i*M4JKVw)GZF!2YWg8ttd->=oa6|^Z?*T(w-F#BKpsMxB_5G_S?&j4MTpsec zt#}qrN7SI-uXo|VunOsaUWlheqdx*K@FqkbrAnh;g?M@VU^H{Aqy+mn6z+>Y0rBL< z^OecIlK+oT)30ISK3dYRv)L3rEvj@8PoHGSOOTLfV<2!>uVZfi0LnkTlg5j8=CW7S zy5PL0PFMcn+Tqm#&K54#sJziJf3trBv(sk_^;RK`p9Z8^6E5B<^xC=MI7WanGe413 z(-B@*o!E7uzcYi!+8mdy_i}uGG`PCn|MBGLgsIJ@QRvmkJiwH1An!tGmK??lW*~Rl z!JWCzB4h!D`LfY%*6YY(#uaaT!Ca9x{8{|<@jCd6BFj$(-0FKMDvHO491yVq$Ct`Y z?vvf2XWz$s<@dM4Zt0O9y6qMFJ>Egeey@+BVEe#l5E!3DKQr~LoSH?3x-PpIdYNz$ zwQQJ*RLmR8nYR2BKRjrX4TKqLQ&!hO}5X`byMf0(jI|hfj@X52K0!Ztpc=;Q#yDv1n~RaEf}+g}|XSTENQpk>PM+D?fC3Rcx2j zFQvq=-cMx zOXwoWcntaGifh1P?00F6*~chp<-WlAux_KfaHkw!FjRlmOn-fEvW7hVQy_g&PTmz;ssO#}{qL9s zhsrm-fgsNbfX`ia)t9`RA~2~7Bi($wF=2Q;Uzb?Z$H;TATkU-!{p&k;3jKZ<>h3(~ z-@j5(#+v~m&yk>&8&8XgtSqbE32W3iba~9d-4HB5`dEC)hPj0n-$~#(NhHXD{p&Nb zpcyVPChiECbWKVLa=cMG3vUnVl!6%zBSk?s%`aL2prxRS>VMikm7o(rB(J z%d~5}6SDNDXMg(0LdfC0o{vvXhcqq8@|AgfKDR6S^(;9IONvC8;%z)GmxS`C7FJ9} zHH}POpsuvsm4AnhmU}Yp@tPdt6mfpJA`4o*%GE@ou^+Mk8X@0wn02~j zW6t|fJB;3pU>@nV@0+gI`q6%~o5!`6KqZ%5?+c(rUhj( zyC0xtNc5~fc(EIg(rang5!A!vu=ihd6Sy<_>#4?b56S;anLrrc9q#YV)t_An@tL; z!|q{t4dm;diM@i1+kw-uQsgbOG~nA0Q#M!aT_|v&vW9e7>Tj!)W>2SfZKUQN_bV$9 z%y`QzQK9rEv`@jVpSg;7K(i2X=<2qb^folXqGA2&mfz>Yil~mk0$KO-pycW8X8SF1 zA_VoHPkRI)nKq<_M!e*c*ROCaFq)pbJC{j|mBIXL0S`NS_XB2FH(vv%PM5J1zRO4{ zQ0+Q+3qa{(4mda^CBSd1!saa2m!;o)S$@Ca+QKp#__^Gtt{1#vL+tj;lrm`Z@cYnh zmSk4Aepj()XV4O~VGgVF()rpt4FHXnV8f%!#JO&dS?3sy%Nxo}WafK~7DZOL%0$03 zP_HyrwvbH%(A}OUxT+^PSDC-ol3PnFsRYetU*Q|>kk z-$@Ch(2=C!Ln$aJO7!y_LJWDtcyPqiM(hmao}Qz7kXl|c|0uk(sog7q(jvF_%0NRB z>e9EeSy7U7s|I`lbUm-U6D@+oui%Xi(kE~_0ObfV@iZ1jk$&aq)Z7r`0_OZucA6bPZjRp#i`xEsf%%qJ>}Azyqw7E9s^b^8t(M@ zSuZZq42LxiI9uoM^cx6uJ$CQ!bCp_;L1b-Nf>5SIirL|Yirn|lQXL93mt7Z3EA!pS z=gdSsl;&Wc(f+i&-8f)Mj*XIc{o+hS#w4=)kc1Fkn=aRC)Y7);p&T<}#)2L@aMkX8 z{qH{W{-)jg(~$8JQZd8}HfGJ-CsX9A?q>5IL_jx*JjZAgE`O9CgVSnM)+*-=?c*Du zWCZoz1$DYkGr8?;AJ~Is_%V<|Ce#-fn0T{>zcsJ^wa;kL%Y+vEU099??Wb&5=51?# zkx*WQPypU?0sP6i_SW2%zl1BrkZ7veP;@+g8QO1aSW@11KwGp5Ji}J}KGNZ-DR0Kt z?p<2SQnm8Bx+4@<`+k6^AyrUkTW`*R9x1uxf2MiC|Em)MV8SQgvrk^6rheu#aVJ%0 zn)Vy4!K6c0Y99J&W-==06@X!x2o4cq(V9w7!MMeJ)VNvb5hc{U=;r(^xN_h!}l z46yMnZ=~$@Jx7j$5&2A5oL?Q54wxF52^XS>`z2f?(}>WF{YG#v4{LA zGN1XjUSvLxex$+fJ88vV5kn$EJBr|nwR3#ldwF{^`Za5Gp+p%#bCL1t!9%$18oMuZ#!7NNxGQ)xxRrKT z^J>dM$gA0Wlrf5IMe*MPAT?e4#Ta+P$g# zuapB4d;#pWCt;!aQ|nV38d;;@4+0nu9WuizZ8mq!)KFrKIF-{SM1ML4NP(lT3*66e zNaw*bkAc608&!3$6V6V~21uGdedCKEOQMU*#~8uGcNGfgxz0i69k2T7{1P(hPa_s5 z-?kZft{MKX>&YHv$s5>blO$C8%SK^AWAMJWoYY>5yl@gNb1&P_MDz zxZ%>LI{T9|WFQ!d_a6fWoFSu_YcR{9lyD!JI{U~@Z0G+-gh@!{%2JmuoQeca=)^G? zJkMI8&mTMW>coNeBwJZ%Ga9h=0B!BOHwV5-gq^SKd zVf_b*#K&0w3wU(n^|U)D?Zl?BUaQo=F_o$y!j`EhXbS)U5kJlXSmG~0oOwK}g27cc zqE1%u&(SaAg9r^lHgv{h(*!YKfpZyDWoCu*rY6hZ4mwf{ktvDrdVBQN#j{nXKRw6$ zjQwZV(MKPZ$=zSUJf)5=_iBV}d2k zd*YKx0}*l@lkJpEI;#@lo9E`xNmI&g)O=1L%c+aRTVUn2n%2k>XNZ_l$2(wXb!8d! z?pW!nW^uQCI5=hNSbK5XO_Zi!ZO7MLQ!}-1QCTg;K#GNwAXhS6sDc+GML&Uaa>l6{ zO^uSn6UcyN9LM1|LV3Uejwpdx56fD1fzC~+%r>RPd9z|{*O95>`x{(!tp5yoedvtTGckcX?AeKH=IRF?#LC0gw4nI zvUX;74&6h*+o-@(Gb6x6<1nUCjXt!>uUGx<2iFsHuuN&f%IE!}1Z{yq3iizl+GA~%0A&%+ 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 literal 11944 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 Date: Sun, 27 Oct 2019 00:26:36 -0400 Subject: [PATCH 030/138] Automatic changelog generation for PR #12396 [ci skip] --- html/changelogs/AutoChangeLog-pr-12396.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12396.yml diff --git a/html/changelogs/AutoChangeLog-pr-12396.yml b/html/changelogs/AutoChangeLog-pr-12396.yml new file mode 100644 index 00000000000..db1331c65d4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12396.yml @@ -0,0 +1,9 @@ +author: "Terilia" +delete-after: True +changes: + - rscadd: "Headcrab Nests" + - tweak: "Headcrabs can now eat dead simple_animal corpses to regain 10 hp." + - tweak: "Poison Headcrabs will not inject LSD anymore." + - tweak: "Headcrabs have more HP and some do more damage." + - tweak: "Headcrabs will not stop attacking people after they are unconscious." + - imageadd: "Headcrab Nest DMI" From af8916732bee3677bf05f23fefcbfa41ea7c5b10 Mon Sep 17 00:00:00 2001 From: Evankhell561 <49106866+Evankhell561@users.noreply.github.com> Date: Sun, 27 Oct 2019 00:28:29 -0400 Subject: [PATCH 031/138] Remove the snowflake power cells (#12637) --- code/game/machinery/chiller.dm | 4 +- code/game/machinery/defib_mount.dm | 6 +-- code/game/machinery/portable_turret.dm | 6 +-- code/game/machinery/recharger.dm | 20 ++++---- code/game/machinery/rechargestation.dm | 8 ++-- code/game/machinery/spaceheater.dm | 4 +- code/game/mecha/combat/gygax.dm | 4 +- code/game/mecha/combat/marauder.dm | 2 - code/game/objects/items/devices/scanners.dm | 14 +++--- code/game/objects/items/weapons/defib.dm | 48 +++++++++---------- code/game/objects/items/weapons/stunbaton.dm | 44 ++++++++--------- .../mission_code/UO71-terrorspiders.dm | 2 +- .../mob/living/silicon/robot/drone/drone.dm | 3 +- .../modules/mob/living/silicon/robot/robot.dm | 10 ++-- .../mob/living/silicon/robot/syndicate.dm | 3 +- .../mob/living/simple_animal/bot/ed209bot.dm | 6 +-- .../mob/living/simple_animal/bot/mulebot.dm | 4 +- .../mob/living/simple_animal/hostile/mimic.dm | 6 +-- code/modules/mob/transform_procs.dm | 5 +- code/modules/power/apc.dm | 2 +- code/modules/projectiles/guns/energy.dm | 36 +++++++------- .../guns/energy/kinetic_accelerator.dm | 4 +- .../projectiles/guns/energy/nuclear.dm | 4 +- .../projectiles/guns/energy/special.dm | 16 +++---- 24 files changed, 121 insertions(+), 140 deletions(-) diff --git a/code/game/machinery/chiller.dm b/code/game/machinery/chiller.dm index afb17f3c90a..f29bb26e8ca 100644 --- a/code/game/machinery/chiller.dm +++ b/code/game/machinery/chiller.dm @@ -11,9 +11,7 @@ /obj/machinery/space_heater/air_conditioner/New() ..() - cell = new(src) - cell.charge = 1000 - cell.maxcharge = 1000 + cell = new /obj/item/stock_parts/cell(src) update_icon() return diff --git a/code/game/machinery/defib_mount.dm b/code/game/machinery/defib_mount.dm index 4f27dfa4be5..267ea5da392 100644 --- a/code/game/machinery/defib_mount.dm +++ b/code/game/machinery/defib_mount.dm @@ -53,9 +53,9 @@ . += "There are a pair of bolts in the defib unit housing securing the [src] to the wall." /obj/machinery/defibrillator_mount/process() - if(defib && defib.bcell && defib.bcell.charge < defib.bcell.maxcharge && is_operational()) + if(defib && defib.cell && defib.cell.charge < defib.cell.maxcharge && is_operational()) use_power(200) - defib.bcell.give(180) //90% efficiency, slightly better than the cell charger's 87.5% + defib.cell.give(180) //90% efficiency, slightly better than the cell charger's 87.5% update_icon() /obj/machinery/defibrillator_mount/update_icon() @@ -64,7 +64,7 @@ add_overlay("defib") if(defib.powered) add_overlay(defib.safety ? "online" : "emagged") - var/ratio = defib.bcell.charge / defib.bcell.maxcharge + var/ratio = defib.cell.charge / defib.cell.maxcharge ratio = CEILING(ratio * 4, 1) * 25 add_overlay("charge[ratio]") if(clamps_locked) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index a07c639c36f..68c029f2111 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -353,7 +353,7 @@ var/list/turret_icons to_chat(user, "You remove the turret and salvage some components.") if(installation) var/obj/item/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge + Gun.cell.charge = gun_charge Gun.update_icon() if(prob(50)) new /obj/item/stack/sheet/metal(loc, rand(1,4)) @@ -857,7 +857,7 @@ var/list/turret_icons to_chat(user, "\the [I] is stuck to your hand, you cannot put it in \the [src]") return installation = I.type //installation becomes I.type - gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge + gun_charge = E.cell.charge //the gun's charge is stored in gun_charge to_chat(user, "You add [I] to the turret.") if(istype(installation, /obj/item/gun/energy/laser/tag/blue) || istype(installation, /obj/item/gun/energy/laser/tag/red)) @@ -964,7 +964,7 @@ var/list/turret_icons build_step = 3 var/obj/item/gun/energy/Gun = new installation(loc) - Gun.power_supply.charge = gun_charge + Gun.cell.charge = gun_charge Gun.update_icon() installation = null gun_charge = 0 diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index ff5410f6953..8e4e5e3dc59 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -107,8 +107,8 @@ if(charging) if(istype(charging, /obj/item/gun/energy)) var/obj/item/gun/energy/E = charging - if(E.power_supply.charge < E.power_supply.maxcharge) - E.power_supply.give(E.power_supply.chargerate * recharge_coeff) + if(E.cell.charge < E.cell.maxcharge) + E.cell.give(E.cell.chargerate * recharge_coeff) E.on_recharge() use_power(250) using_power = TRUE @@ -116,8 +116,8 @@ if(istype(charging, /obj/item/melee/baton)) var/obj/item/melee/baton/B = charging - if(B.bcell) - if(B.bcell.give(B.bcell.chargerate)) + if(B.cell) + if(B.cell.give(B.cell.chargerate)) use_power(200) using_power = TRUE @@ -141,8 +141,8 @@ if(istype(charging, /obj/item/bodyanalyzer)) var/obj/item/bodyanalyzer/B = charging - if(B.power_supply) - if(B.power_supply.give(B.power_supply.chargerate)) + if(B.cell) + if(B.cell.give(B.cell.chargerate)) use_power(200) using_power = TRUE @@ -155,13 +155,13 @@ if(istype(charging, /obj/item/gun/energy)) var/obj/item/gun/energy/E = charging - if(E.power_supply) - E.power_supply.emp_act(severity) + if(E.cell) + E.cell.emp_act(severity) else if(istype(charging, /obj/item/melee/baton)) var/obj/item/melee/baton/B = charging - if(B.bcell) - B.bcell.charge = 0 + if(B.cell) + B.cell.charge = 0 ..(severity) /obj/machinery/recharger/update_icon(using_power = FALSE) //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier. diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 4b081307762..57903822b50 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -173,17 +173,17 @@ F.icon_state = "flash" if(istype(O,/obj/item/gun/energy/disabler/cyborg)) var/obj/item/gun/energy/disabler/cyborg/D = O - if(D.power_supply.charge < D.power_supply.maxcharge) + if(D.cell.charge < D.cell.maxcharge) var/obj/item/ammo_casing/energy/E = D.ammo_type[D.select] - D.power_supply.give(E.e_cost) + D.cell.give(E.e_cost) D.on_recharge() D.update_icon() else D.charge_tick = 0 if(istype(O,/obj/item/melee/baton)) var/obj/item/melee/baton/B = O - if(B.bcell) - B.bcell.charge = B.bcell.maxcharge + if(B.cell) + B.cell.charge = B.cell.maxcharge //Service if(istype(O,/obj/item/reagent_containers/food/condiment/enzyme)) if(O.reagents.get_reagent_amount("enzyme") < 50) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 00d29b43459..3cfe6fe50ff 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -18,9 +18,7 @@ /obj/machinery/space_heater/New() ..() - cell = new(src) - cell.charge = 1000 - cell.maxcharge = 1000 + cell = new /obj/item/stock_parts/cell(src) update_icon() return diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm index b47693f1dcb..a82cc58e028 100644 --- a/code/game/mecha/combat/gygax.dm +++ b/code/game/mecha/combat/gygax.dm @@ -62,6 +62,4 @@ ME.attach(src) /obj/mecha/combat/gygax/dark/add_cell() - cell = new /obj/item/stock_parts/cell/bluespace(src) - cell.charge = 30000 - cell.maxcharge = 30000 \ No newline at end of file + cell = new /obj/item/stock_parts/cell/hyper(src) diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index 4b17b172c55..7bd95d87a35 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -59,8 +59,6 @@ /obj/mecha/combat/marauder/seraph/add_cell() cell = new /obj/item/stock_parts/cell/bluespace(src) - cell.charge = 40000 - cell.maxcharge = 40000 /obj/mecha/combat/marauder/seraph/loaded/New() ..()//Let it equip whatever is needed. diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 0c791be07cc..536c3dfd0e2 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -600,7 +600,7 @@ REAGENT SCANNER throw_speed = 5 throw_range = 10 origin_tech = "magnets=6;biotech=6" - var/obj/item/stock_parts/cell/power_supply + var/obj/item/stock_parts/cell/cell var/cell_type = /obj/item/stock_parts/cell/upgraded var/ready = TRUE // Ready to scan var/time_to_use = 0 // How much time remaining before next scan is available. @@ -609,7 +609,7 @@ REAGENT SCANNER var/scan_cd = 60 SECONDS //how long before we can scan again /obj/item/bodyanalyzer/get_cell() - return power_supply + return cell /obj/item/bodyanalyzer/advanced cell_type = /obj/item/stock_parts/cell/upgraded/plus @@ -624,8 +624,8 @@ REAGENT SCANNER /obj/item/bodyanalyzer/New() ..() - power_supply = new cell_type(src) - power_supply.give(power_supply.maxcharge) + cell = new cell_type(src) + cell.give(cell.maxcharge) update_icon() /obj/item/bodyanalyzer/proc/setReady() @@ -635,7 +635,7 @@ REAGENT SCANNER /obj/item/bodyanalyzer/update_icon(printing = FALSE) overlays.Cut() - var/percent = power_supply.percent() + var/percent = cell.percent() if(ready) icon_state = "bodyanalyzer_1" else @@ -657,7 +657,7 @@ REAGENT SCANNER playsound(user.loc, 'sound/machines/buzz-sigh.ogg', 50, 1) return - if(power_supply.charge >= usecharge) + if(cell.charge >= usecharge) mobScan(M, user) else to_chat(user, "The scanner beeps angrily at you! It's out of charge!") @@ -691,7 +691,7 @@ REAGENT SCANNER var/mob/living/silicon/robot/R = user R.cell.use(usecharge) else - power_supply.use(usecharge) + cell.use(usecharge) ready = FALSE update_icon(TRUE) addtimer(CALLBACK(src, /obj/item/bodyanalyzer/.proc/setReady), scan_cd) diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 23e81e3c41d..581c4395650 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -20,11 +20,11 @@ var/safety = 1 //if you can zap people with the defibs on harm mode var/powered = 0 //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise var/obj/item/twohanded/shockpaddles/paddles - var/obj/item/stock_parts/cell/high/bcell = null + var/obj/item/stock_parts/cell/high/cell = null var/combat = 0 //can we revive through space suits? /obj/item/defibrillator/get_cell() - return bcell + return cell /obj/item/defibrillator/New() //starts without a cell for rnd ..() @@ -35,7 +35,7 @@ /obj/item/defibrillator/loaded/New() //starts with hicap ..() paddles = make_paddles() - bcell = new(src) + cell = new(src) update_icon() return @@ -49,8 +49,8 @@ . += "Ctrl-click to remove the paddles from the defibrillator." /obj/item/defibrillator/proc/update_power() - if(bcell) - if(bcell.charge < paddles.revivecost) + if(cell) + if(cell.charge < paddles.revivecost) powered = 0 else powered = 1 @@ -63,21 +63,21 @@ overlays += "[icon_state]-paddles" if(powered) overlays += "[icon_state]-powered" - if(!bcell) + if(!cell) overlays += "[icon_state]-nocell" if(!safety) overlays += "[icon_state]-emagged" /obj/item/defibrillator/proc/update_charge() if(powered) //so it doesn't show charge if it's unpowered - if(bcell) - var/ratio = bcell.charge / bcell.maxcharge + if(cell) + var/ratio = cell.charge / cell.maxcharge ratio = Ceiling(ratio*4) * 25 overlays += "[icon_state]-charge[ratio]" /obj/item/defibrillator/CheckParts(list/parts_list) ..() - bcell = locate(/obj/item/stock_parts/cell) in contents + cell = locate(/obj/item/stock_parts/cell) in contents update_icon() /obj/item/defibrillator/ui_action_click() @@ -90,7 +90,7 @@ /obj/item/defibrillator/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stock_parts/cell)) var/obj/item/stock_parts/cell/C = W - if(bcell) + if(cell) to_chat(user, "[src] already has a cell.") else if(C.maxcharge < paddles.revivecost) @@ -98,14 +98,14 @@ return user.drop_item() W.loc = src - bcell = W + cell = W to_chat(user, "You install a cell in [src].") if(istype(W, /obj/item/screwdriver)) - if(bcell) - bcell.update_icon() - bcell.loc = get_turf(src.loc) - bcell = null + if(cell) + cell.update_icon() + cell.loc = get_turf(src.loc) + cell = null to_chat(user, "You remove the cell from the [src].") update_icon() @@ -120,7 +120,7 @@ to_chat(user, "You silently enable [src]'s safety protocols with the card.") /obj/item/defibrillator/emp_act(severity) - if(bcell) + if(cell) deductcharge(1000 / severity) if(safety) safety = 0 @@ -182,15 +182,15 @@ var/M = get(paddles, /mob) remove_paddles(M) QDEL_NULL(paddles) - QDEL_NULL(bcell) + QDEL_NULL(cell) return ..() /obj/item/defibrillator/proc/deductcharge(var/chrgdeductamt) - if(bcell) - if(bcell.charge < (paddles.revivecost+chrgdeductamt)) + if(cell) + if(cell.charge < (paddles.revivecost+chrgdeductamt)) powered = 0 update_icon() - if(bcell.use(chrgdeductamt)) + if(cell.use(chrgdeductamt)) update_icon() return 1 else @@ -199,8 +199,8 @@ /obj/item/defibrillator/proc/cooldowncheck(var/mob/user) spawn(50) - if(bcell) - if(bcell.charge >= paddles.revivecost) + if(cell) + if(cell.charge >= paddles.revivecost) user.visible_message("[src] beeps: Unit ready.") playsound(get_turf(src), 'sound/machines/defib_ready.ogg', 50, 0) else @@ -226,7 +226,7 @@ /obj/item/defibrillator/compact/loaded/New() ..() paddles = make_paddles() - bcell = new(src) + cell = new(src) update_icon() return @@ -239,7 +239,7 @@ /obj/item/defibrillator/compact/combat/loaded/New() ..() paddles = make_paddles() - bcell = new /obj/item/stock_parts/cell/infinite(src) + cell = new /obj/item/stock_parts/cell/infinite(src) update_icon() return diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 232d8384e45..6782057d928 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -13,7 +13,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) var/stunforce = 7 var/status = 0 - var/obj/item/stock_parts/cell/high/bcell = null + var/obj/item/stock_parts/cell/high/cell = null var/hitcost = 1000 var/throw_hit_chance = 35 @@ -22,7 +22,7 @@ return FIRELOSS /obj/item/melee/baton/get_cell() - return bcell + return cell /obj/item/melee/baton/New() ..() @@ -30,7 +30,7 @@ return /obj/item/melee/baton/Destroy() - QDEL_NULL(bcell) + QDEL_NULL(cell) return ..() /obj/item/melee/baton/throw_impact(atom/hit_atom) @@ -40,7 +40,7 @@ /obj/item/melee/baton/loaded/New() //this one starts with a cell pre-installed. ..() - bcell = new(src) + cell = new(src) update_icon() return @@ -55,12 +55,12 @@ return 1 else return 0 - if(bcell) - if(bcell.charge < (hitcost+chrgdeductamt)) // If after the deduction the baton doesn't have enough charge for a stun hit it turns off. + if(cell) + if(cell.charge < (hitcost+chrgdeductamt)) // If after the deduction the baton doesn't have enough charge for a stun hit it turns off. status = 0 update_icon() playsound(loc, "sparks", 75, 1, -1) - if(bcell.use(chrgdeductamt)) + if(cell.use(chrgdeductamt)) return 1 else return 0 @@ -68,7 +68,7 @@ /obj/item/melee/baton/update_icon() if(status) icon_state = "[base_icon]_active" - else if(!bcell) + else if(!cell) icon_state = "[base_icon]_nocell" else icon_state = "[base_icon]" @@ -77,15 +77,15 @@ . = ..() if(isrobot(loc)) . += "This baton is drawing power directly from your own internal charge." - if(bcell) - . += "The baton is [round(bcell.percent())]% charged." - if(!bcell) + if(cell) + . += "The baton is [round(cell.percent())]% charged." + if(!cell) . += "The baton does not have a power source installed." /obj/item/melee/baton/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stock_parts/cell)) var/obj/item/stock_parts/cell/C = W - if(bcell) + if(cell) to_chat(user, "[src] already has a cell.") else if(C.maxcharge < hitcost) @@ -94,15 +94,15 @@ if(!user.unEquip(W)) return W.loc = src - bcell = W + cell = W to_chat(user, "You install a cell in [src].") update_icon() else if(istype(W, /obj/item/screwdriver)) - if(bcell) - bcell.update_icon() - bcell.loc = get_turf(src.loc) - bcell = null + if(cell) + cell.update_icon() + cell.loc = get_turf(src.loc) + cell = null to_chat(user, "You remove the cell from the [src].") status = 0 update_icon() @@ -121,13 +121,13 @@ else status = 0 to_chat(user, "You do not have enough reserve power to charge the [src]!") - else if(bcell && bcell.charge >= hitcost) + else if(cell && cell.charge >= hitcost) status = !status to_chat(user, "[src] is now [status ? "on" : "off"].") playsound(loc, "sparks", 75, 1, -1) else status = 0 - if(!bcell) + if(!cell) to_chat(user, "[src] does not have a power source!") else to_chat(user, "[src] is out of charge.") @@ -203,13 +203,13 @@ H.forcesay(GLOB.hit_appends) /obj/item/melee/baton/emp_act(severity) - if(bcell) + if(cell) deductcharge(1000 / severity) ..() /obj/item/melee/baton/wash(mob/user, atom/source) - if(bcell) - if(bcell.charge > 0 && status == 1) + if(cell) + if(cell.charge > 0 && status == 1) flick("baton_active", source) user.Stun(stunforce) user.Weaken(stunforce) diff --git a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm index 63dfd3f5e4d..6c822c80c03 100644 --- a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm +++ b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm @@ -205,7 +205,7 @@ if(inawaymission) if(ismob(loc)) to_chat(loc, "Your [src] deactivates, as it is out of range from its power source.") - power_supply.charge = 0 + cell.charge = 0 inawaymission = 0 update_icon() diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index edf53f56918..589f2f06b49 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -52,8 +52,7 @@ camera.network.Add("Engineering") //They are unable to be upgraded, so let's give them a bit of a better battery. - cell.maxcharge = 10000 - cell.charge = 10000 + cell = new /obj/item/stock_parts/cell/high(src) // NO BRAIN. mmi = null diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2bb0775bf0d..1cded581118 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -151,9 +151,7 @@ var/list/robot_verbs_default = list( C.wrapped = new C.external_type if(!cell) - cell = new /obj/item/stock_parts/cell(src) - cell.maxcharge = 7500 - cell.charge = 7500 + cell = new /obj/item/stock_parts/cell/high(src) ..() @@ -1316,8 +1314,7 @@ var/list/robot_verbs_default = list( /mob/living/silicon/robot/deathsquad/New(loc) ..() - cell.maxcharge = 25000 - cell.charge = 25000 + cell = new /obj/item/stock_parts/cell/hyper(src) /mob/living/silicon/robot/deathsquad/init() laws = new /datum/ai_laws/deathsquad @@ -1370,8 +1367,7 @@ var/list/robot_verbs_default = list( /mob/living/silicon/robot/ert/New(loc, cyborg_unlock) ..(loc) - cell.maxcharge = 25000 - cell.charge = 25000 + cell = new /obj/item/stock_parts/cell/hyper(src) var/rnum = rand(1,1000) var/borgname = "ERT [rnum]" name = borgname diff --git a/code/modules/mob/living/silicon/robot/syndicate.dm b/code/modules/mob/living/silicon/robot/syndicate.dm index f762ba440cf..f97b1f5c005 100644 --- a/code/modules/mob/living/silicon/robot/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/syndicate.dm @@ -17,8 +17,7 @@ /mob/living/silicon/robot/syndicate/New(loc) ..() - cell.maxcharge = 25000 - cell.charge = 25000 + cell = new /obj/item/stock_parts/cell/hyper(src) /mob/living/silicon/robot/syndicate/init() laws = new /datum/ai_laws/syndicate_override diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index a22d373ba79..c457f90c3f5 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -384,15 +384,15 @@ if(!lasercolor) var/obj/item/gun/energy/gun/advtaser/G = new /obj/item/gun/energy/gun/advtaser(Tsec) - G.power_supply.charge = 0 + G.cell.charge = 0 G.update_icon() else if(lasercolor == "b") var/obj/item/gun/energy/laser/tag/blue/G = new /obj/item/gun/energy/laser/tag/blue(Tsec) - G.power_supply.charge = 0 + G.cell.charge = 0 G.update_icon() else if(lasercolor == "r") var/obj/item/gun/energy/laser/tag/red/G = new /obj/item/gun/energy/laser/tag/red(Tsec) - G.power_supply.charge = 0 + G.cell.charge = 0 G.update_icon() if(prob(50)) diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index d0271feeb87..2c8e56f3fbe 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -59,9 +59,7 @@ var/datum/job/cargo_tech/J = new/datum/job/cargo_tech access_card.access = J.get_access() prev_access = access_card.access - cell = new(src) - cell.charge = 2000 - cell.maxcharge = 2000 + cell = new /obj/item/stock_parts/cell/upgraded(src) mulebot_count++ set_suffix(suffix ? suffix : "#[mulebot_count]") diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index c0628cd72af..761f44d11bd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -244,10 +244,10 @@ var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy/ranged/OpenFire(the_target) if(Zapgun) - if(Zapgun.power_supply) + if(Zapgun.cell) var/obj/item/ammo_casing/energy/shot = Zapgun.ammo_type[Zapgun.select] - if(Zapgun.power_supply.charge >= shot.e_cost) - Zapgun.power_supply.use(shot.e_cost) + if(Zapgun.cell.charge >= shot.e_cost) + Zapgun.cell.use(shot.e_cost) Zapgun.update_icon() ..() else if(Zapstick) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a03b7745d0a..52b3bb61b27 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -63,10 +63,7 @@ var/mob/living/silicon/robot/O = new /mob/living/silicon/robot( loc ) // cyborgs produced by Robotize get an automatic power cell - O.cell = new(O) - O.cell.maxcharge = 7500 - O.cell.charge = 7500 - + O.cell = new /obj/item/stock_parts/cell/high(O) O.gender = gender O.invisibility = 0 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 89df4beacd2..e051fc50660 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -205,7 +205,7 @@ has_electronics = 2 //installed and secured // is starting with a power cell installed, create it and set its charge level if(cell_type) - cell = new/obj/item/stock_parts/cell(src) + cell = new/obj/item/stock_parts/cell/upgraded(src) cell.maxcharge = cell_type // cell_type is maximum charge (old default was 1000 or 2500 (values one and two respectively) cell.charge = start_charge * cell.maxcharge / 100 // (convert percentage to actual value) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 3fbfcdaa934..c745d6be846 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/guns/energy.dmi' fire_sound_text = "laser blast" - var/obj/item/stock_parts/cell/power_supply //What type of power cell this uses + var/obj/item/stock_parts/cell/cell //What type of power cell this uses var/cell_type = /obj/item/stock_parts/cell var/modifystate = 0 var/list/ammo_type = list(/obj/item/ammo_casing/energy) @@ -20,7 +20,7 @@ var/charge_delay = 4 /obj/item/gun/energy/emp_act(severity) - power_supply.use(round(power_supply.charge / severity)) + cell.use(round(cell.charge / severity)) if(chambered)//phil235 if(chambered.BB) qdel(chambered.BB) @@ -30,15 +30,15 @@ update_icon() /obj/item/gun/energy/get_cell() - return power_supply + return cell /obj/item/gun/energy/New() ..() if(cell_type) - power_supply = new cell_type(src) + cell = new cell_type(src) else - power_supply = new(src) - power_supply.give(power_supply.maxcharge) + cell = new(src) + cell.give(cell.maxcharge) update_ammo_types() on_recharge() if(selfcharge) @@ -66,14 +66,14 @@ if(charge_tick < charge_delay) return charge_tick = 0 - if(!power_supply) + if(!cell) return // check if we actually need to recharge var/obj/item/ammo_casing/energy/E = ammo_type[select] if(use_external_power) - var/obj/item/stock_parts/cell/external = get_external_power_supply() + var/obj/item/stock_parts/cell/external = get_external_cell() if(!external || !external.use(E.e_cost)) //Take power from the borg... return //Note, uses /10 because of shitty mods to the cell system - power_supply.give(100) //... to recharge the shot + cell.give(100) //... to recharge the shot on_recharge() update_icon() @@ -91,14 +91,14 @@ /obj/item/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[select] - return power_supply.charge >= shot.e_cost + return cell.charge >= shot.e_cost /obj/item/gun/energy/newshot() - if(!ammo_type || !power_supply) + if(!ammo_type || !cell) return if(!chambered) var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(power_supply.charge >= shot.e_cost) //if there's enough power in the power_supply cell... + if(cell.charge >= shot.e_cost) //if there's enough power in the cell cell... chambered = shot //...prepare a new shot based on the current ammo type selected if(!chambered.BB) chambered.newshot() @@ -106,7 +106,7 @@ /obj/item/gun/energy/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered - power_supply.use(shot.e_cost)//... drain the power_supply cell + cell.use(shot.e_cost)//... drain the cell cell robocharge() chambered = null //either way, released the prepared shot newshot() @@ -131,7 +131,7 @@ /obj/item/gun/energy/update_icon() overlays.Cut() - var/ratio = Ceiling((power_supply.charge / power_supply.maxcharge) * charge_sections) + var/ratio = Ceiling((cell.charge / cell.maxcharge) * charge_sections) var/obj/item/ammo_casing/energy/shot = ammo_type[select] var/iconState = "[icon_state]_charge" var/itemState = null @@ -142,7 +142,7 @@ iconState += "_[shot.select_name]" if(itemState) itemState += "[shot.select_name]" - if(power_supply.charge < shot.e_cost) + if(cell.charge < shot.e_cost) overlays += "[icon_state]_empty" else if(!shaded_charge) @@ -172,7 +172,7 @@ user.visible_message("[user] melts [user.p_their()] face off with the [name]!") playsound(loc, fire_sound, 50, 1, -1) var/obj/item/ammo_casing/energy/shot = ammo_type[select] - power_supply.use(shot.e_cost) + cell.use(shot.e_cost) update_icon() return FIRELOSS else @@ -198,9 +198,9 @@ if(R && R.cell) var/obj/item/ammo_casing/energy/shot = ammo_type[select] //Necessary to find cost of shot if(R.cell.use(shot.e_cost)) //Take power from the borg... - power_supply.give(shot.e_cost) //... to recharge the shot + cell.give(shot.e_cost) //... to recharge the shot -/obj/item/gun/energy/proc/get_external_power_supply() +/obj/item/gun/energy/proc/get_external_cell() if(istype(loc, /obj/item/rig_module)) var/obj/item/rig_module/module = loc if(module.holder && module.holder.wearer) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1b8eebbf311..60ab08f979d 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -106,7 +106,7 @@ empty() /obj/item/gun/energy/kinetic_accelerator/proc/empty() - power_supply.use(500) + cell.use(500) update_icon() /obj/item/gun/energy/kinetic_accelerator/proc/attempt_reload(recharge_time) @@ -136,7 +136,7 @@ return /obj/item/gun/energy/kinetic_accelerator/proc/reload() - power_supply.give(500) + cell.give(500) on_recharge() if(!suppressed) playsound(loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 1a8a5afd1eb..4663b2d5c04 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -39,8 +39,8 @@ /obj/item/gun/energy/gun/mini/New() gun_light = new /obj/item/flashlight/seclite(src) ..() - power_supply.maxcharge = 600 - power_supply.charge = 600 + cell.maxcharge = 600 + cell.charge = 600 /obj/item/gun/energy/gun/mini/update_icon() ..() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 5a9e87aa119..0572ce36f76 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -43,7 +43,7 @@ /obj/item/gun/energy/decloner/update_icon() ..() var/obj/item/ammo_casing/energy/shot = ammo_type[select] - if(power_supply.charge > shot.e_cost) + if(cell.charge > shot.e_cost) overlays += "decloner_spin" // Flora Gun // @@ -160,26 +160,26 @@ /obj/item/gun/energy/plasmacutter/examine(mob/user) . = ..() - if(power_supply) - . += "[src] is [round(power_supply.percent())]% charged." + if(cell) + . += "[src] is [round(cell.percent())]% charged." /obj/item/gun/energy/plasmacutter/attackby(obj/item/A, mob/user) if(istype(A, /obj/item/stack/sheet/mineral/plasma)) - if(power_supply.charge >= power_supply.maxcharge) + if(cell.charge >= cell.maxcharge) to_chat(user,"[src] is already fully charged.") return var/obj/item/stack/sheet/S = A S.use(1) - power_supply.give(1000) + cell.give(1000) on_recharge() to_chat(user, "You insert [A] in [src], recharging it.") else if(istype(A, /obj/item/stack/ore/plasma)) - if(power_supply.charge >= power_supply.maxcharge) + if(cell.charge >= cell.maxcharge) to_chat(user,"[src] is already fully charged.") return var/obj/item/stack/ore/S = A S.use(1) - power_supply.give(500) + cell.give(500) on_recharge() to_chat(user, "You insert [A] in [src], recharging it.") else @@ -489,7 +489,7 @@ M.update_inv_r_hand() /obj/item/gun/energy/temperature/proc/update_charge() - var/charge = power_supply.charge + var/charge = cell.charge switch(charge) if(900 to INFINITY) overlays += "900" if(800 to 900) overlays += "800" From 19a29319de0c1ec8deff392fa44e314d3832b411 Mon Sep 17 00:00:00 2001 From: Darkmight9 <45213755+Darkmight9@users.noreply.github.com> Date: Sun, 27 Oct 2019 00:30:05 -0400 Subject: [PATCH 032/138] Decorations galore part 1! (#12615) --- code/__DEFINES/crafting.dm | 4 + code/datums/components/ducttape.dm | 15 +- code/game/objects/items/decorations.dm | 274 +++++++++++++++ code/modules/crafting/craft.dm | 7 +- code/modules/crafting/recipes.dm | 445 +++++++++++++++++++++++++ icons/obj/decorations.dmi | Bin 6072 -> 23152 bytes paradise.dme | 1 + 7 files changed, 739 insertions(+), 7 deletions(-) create mode 100644 code/game/objects/items/decorations.dm diff --git a/code/__DEFINES/crafting.dm b/code/__DEFINES/crafting.dm index 7bfd2935280..0fbd76b9e21 100644 --- a/code/__DEFINES/crafting.dm +++ b/code/__DEFINES/crafting.dm @@ -6,6 +6,10 @@ #define CAT_ROBOT "Robots" #define CAT_MISC "Misc" #define CAT_PRIMAL "Tribal" +#define CAT_DECORATIONS "Decorations" +#define CAT_DECORATION "Decorations" +#define CAT_HOLIDAY "Holiday" +#define CAT_LARGE_DECORATIONS "Large Decorations" #define CAT_CLOTHING "Clothing" #define CAT_FOOD "Foods" #define CAT_BREAD "Breads" diff --git a/code/datums/components/ducttape.dm b/code/datums/components/ducttape.dm index 85568f7a09c..98512589a46 100644 --- a/code/datums/components/ducttape.dm +++ b/code/datums/components/ducttape.dm @@ -2,20 +2,23 @@ var/x_offset = 0 var/y_offset = 0 var/icon/tape_overlay = null + var/hide_tape = FALSE -/datum/component/ducttape/Initialize(obj/item/I, mob/user, x, y) +/datum/component/ducttape/Initialize(obj/item/I, mob/user, x, y, hide_tape) if(!istype(I)) //Something went wrong return + if(!hide_tape) //if TRUE this hides the tape overlay and added examine text + RegisterSignal(parent, COMSIG_OBJ_UPDATE_ICON, .proc/add_tape_overlay) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/add_tape_text) x_offset = x y_offset = y - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/add_tape_text) - RegisterSignal(parent, COMSIG_OBJ_UPDATE_ICON, .proc/add_tape_overlay) RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/afterattack) RegisterSignal(parent, COMSIG_ITEM_PICKUP, .proc/pick_up) I.update_icon() //Do this first so the action button properly shows the icon - var/datum/action/item_action/remove_tape/RT = new(I) - if(I.loc == user) - RT.Grant(user) + if(!hide_tape) //the tape can no longer be removed if TRUE + var/datum/action/item_action/remove_tape/RT = new(I) + if(I.loc == user) + RT.Grant(user) /datum/component/proc/add_tape_text(datum/source, mob/user, list/examine_list) examine_list += "There's some sticky tape attached to [source]." diff --git a/code/game/objects/items/decorations.dm b/code/game/objects/items/decorations.dm new file mode 100644 index 00000000000..59ff6574890 --- /dev/null +++ b/code/game/objects/items/decorations.dm @@ -0,0 +1,274 @@ +/obj/item/decorations + icon = 'icons/obj/decorations.dmi' + + +//duct tape decorations +/obj/item/decorations/sticky_decorations + w_class = WEIGHT_CLASS_TINY + +/obj/item/decorations/sticky_decorations/New() + . = ..() + AddComponent(/datum/component/ducttape, src, null, 0, 0, TRUE)//add this to something to make it sticky but without the tape overlay + + + +/obj/item/decorations/sticky_decorations/flammable + resistance_flags = FLAMMABLE + + +//Non-holiday decorations + +/obj/item/decorations/sticky_decorations/flammable/heart + name = "paper heart" + desc = "Do not break." + icon_state = "decoration_heart" + +/obj/item/decorations/sticky_decorations/flammable/star + name = "paper star" + desc = "Throw it and make a wish!" + icon_state = "decoration_star" + +/obj/item/decorations/sticky_decorations/flammable/singleeye + name = "paper eye" + desc = "Feels like it stares into your soul." + icon_state = "paper_eye" + +/obj/item/decorations/sticky_decorations/flammable/googlyeyes + name = "paper googly eyes" + desc = "Seems to be looking at something with interest." + icon_state = "paper_googly_eyes" + +/obj/item/decorations/sticky_decorations/flammable/paperclock + name = "paper clock" + desc = "A paper clock. Right at least twice a day." + icon_state = "paper_clock" + + +//Holiday decorations + +//Halloween decorations + +/obj/item/decorations/sticky_decorations/flammable/jack_o_lantern + name = "paper jack o'lantern" + desc = "A paper jack o'lantern. Although you can't put a candle in him he has a fun loving smile none the less!" + icon_state = "decoration_jack_o_lantern" + +/obj/item/decorations/sticky_decorations/flammable/ghost + name = "paper ghost" + desc = "A paper ghost. If it starts moving on its own, you know who to call." + icon_state = "decoration_ghost" + +/obj/item/decorations/sticky_decorations/flammable/spider + name = "paper spider" + desc = "A paper spider. Creepy but not venomous, thankfully." + icon_state = "decoration_spider" + +/obj/item/decorations/sticky_decorations/flammable/spiderweb + name = "paper spiderweb" + desc = "A paper spiderweb. You see someone wrote 'For Rent' on it." + icon_state = "decoration_spider_web" + +/obj/item/decorations/sticky_decorations/flammable/skull + name = "paper skull" + desc = "A paper skull. Seems a paper skeleton lost their head!" + icon_state = "decoration_skull" + +/obj/item/decorations/sticky_decorations/flammable/skeleton + name = "paper skeleton" + desc = "A paper skeleton. Instead of rattling, his bones rustle." + icon_state = "decoration_skeleton" + +/obj/item/decorations/sticky_decorations/flammable/cauldron + name = "paper cauldron" + desc = "A paper cauldron. Careful, a paper witch might be about." + icon_state = "paper_cauldron" + +//Christmas decorations + +/obj/item/decorations/sticky_decorations/flammable/snowman + name = "paper snowman" + desc = "A paper snowman. This one won't melt when it gets warm." + icon_state = "decoration_snowman" + +/obj/item/decorations/sticky_decorations/flammable/christmas_stocking + name = "paper stocking" + desc = "A paper Christmas stocking. Sadly you won't find gifts in it but at least you won't find coal either." + icon_state = "decoration_christmas_stocking" + +/obj/item/decorations/sticky_decorations/flammable/christmas_tree + name = "paper christmas tree" + desc = "A paper Christmas tree. Maybe someone will leave a present under it?" + icon_state = "decoration_christmas_tree" + +/obj/item/decorations/sticky_decorations/flammable/snowflake + name = "paper snowflake" + desc = "A paper snowflake. Imagine if snow was this big!" + icon_state = "decoration_snowflake" + +/obj/item/decorations/sticky_decorations/flammable/candy_cane + name = "paper candy cane" + desc = "A paper candy cane. Sadly, non-edible." + icon_state = "decoration_candy_cane" + +/obj/item/decorations/sticky_decorations/flammable/mistletoe + name = "paper mistletoe" + desc = "Paper mistletoe. If you stand next to this, expect to be kissed." + icon_state = "decoration_mistletoe" + +/obj/item/decorations/sticky_decorations/flammable/holly + name = "paper holly" + desc = "Paper holly. Wait is it the red berries or the white ones you kiss under?" + icon_state = "decoration_holly" + +//Tinsel + +/obj/item/decorations/sticky_decorations/flammable/tinsel + name = "paper tinsel" + desc = "Paper tinsel, because Nanotrasen is too cheap to buy the real deal." + icon_state = "decoration_tinsel_white" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/red + icon_state = "decoration_tinsel_red" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/blue + icon_state = "decoration_tinsel_blue" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/yellow + icon_state = "decoration_tinsel_yellow" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/purple + icon_state = "decoration_tinsel_purple" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/green + icon_state = "decoration_tinsel_green" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/orange + icon_state = "decoration_tinsel_orange" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/black + icon_state = "decoration_tinsel_black" + +/obj/item/decorations/sticky_decorations/flammable/tinsel/halloween + desc = "Paper tinsel, because Nanotrasen is too cheap to buy the real deal. At least this one is spooky." + icon_state = "decoration_tinsel_halloween" + +//Valentines decorations + + + +/obj/item/decorations/sticky_decorations/flammable/arrowed_heart + name = "paper heart" + desc = "A paper heart. It's been shot through and Cupid is to blame!" + icon_state = "decoration_arrow_heart" + +/obj/item/decorations/sticky_decorations/flammable/heart_chain + name = "paper heart chain" + desc = "A paper chain of hearts. May our hearts always be together." + icon_state = "decoration_heart_chain" + +//St. Patrick's day + +/obj/item/decorations/sticky_decorations/flammable/four_leaf_clover + name = "paper four leaf clover" + desc = "A paper four leaf clover. Take it with you, it might bring good luck!" + icon_state = "decoration_four_leaf_clover" + +/obj/item/decorations/sticky_decorations/flammable/pot_of_gold + name = "paper pot of gold" + desc = "A paper pot of gold. You found the end of the paper rainbow!" + icon_state = "decoration_pot_o_gold" + +/obj/item/decorations/sticky_decorations/flammable/leprechaun_hat + name = "paper leprechaun hat" + desc = "A paper leprechaun hat. If you find the paper leprechaun that dropped this they might give you their pot of paper gold!" + icon_state = "decoration_leprechaun_hat" + +//Easter + +/obj/item/decorations/sticky_decorations/flammable/easter_bunny + name = "paper Easter bunny" + desc = "A paper Easter bunny. Help him find his lost eggs!" + icon_state = "decoration_easter_bunny" + +/obj/item/decorations/sticky_decorations/flammable/easter_egg + name = "paper Easter egg" + desc = "A paper Easter egg. If the chef won't let us use their eggs, then this will have to do." + icon_state = "decoration_easter_egg_blue" + +/obj/item/decorations/sticky_decorations/flammable/easter_egg/yellow + icon_state = "decoration_easter_egg_yellow" + +/obj/item/decorations/sticky_decorations/flammable/easter_egg/red + icon_state = "decoration_easter_egg_red" + +/obj/item/decorations/sticky_decorations/flammable/easter_egg/purple + icon_state = "decoration_easter_egg_purple" + +/obj/item/decorations/sticky_decorations/flammable/easter_egg/orange + icon_state = "decoration_easter_egg_orange" + + + + +/////// +//Decorative structures +/////// + + +/obj/structure/decorative_structures + icon = 'icons/obj/decorations.dmi' + icon_state = "" + density = 1 + anchored = 0 + max_integrity = 100 + +/obj/structure/decorative_structures/metal + flags = CONDUCT + +/obj/structure/decorative_structures/metal/statue/metal_angel + name = "metal angel statue" + desc = "You feel a holy presence looking back at you." + icon_state = "metal_angel_statue" + +/obj/structure/decorative_structures/metal/statue/golden_disk + name = "golden disk statue" + desc = "You aren't sure what the runes say around the large plasma crystal." + icon_state = "golden_disk_statue" + +/obj/structure/decorative_structures/metal/statue/sun + name = "sun statue" + desc = "You wonder if you could be so grossly incandescent." + icon_state = "sun_statue" + +/obj/structure/decorative_structures/metal/statue/tesla + name = "tesla statue" + desc = "Lady Tesla, a powerful and dangerous mistress." + icon_state = "tesla_statue" + +/obj/structure/decorative_structures/metal/statue/moon + name = "moon statue" + desc = "Expect a lot of Vulps to howl around this thing." + icon_state = "moon_statue" + +/obj/structure/decorative_structures/metal/statue/tesla_monument + name = "tesla monument" + desc = "Praise be to lady Tesla!" + icon_state = "tesla_monument" + + +/obj/structure/decorative_structures/flammable + resistance_flags = FLAMMABLE + max_integrity = 50 + + +/obj/structure/decorative_structures/flammable/grandfather_clock + name = "grandfather clock" + desc = "Seems the hands have stopped." + icon_state = "grandfather_clock" + +/obj/structure/decorative_structures/flammable/lava_land_display + name = "lava land display" + desc = "The tomb of many a miner and possibly a home for much worse things." + icon_state = "lava_land_display" + + diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 0bd4060c831..391338fc181 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -8,6 +8,7 @@ CAT_MISC, CAT_PRIMAL, CAT_FOOD, + CAT_DECORATIONS, CAT_CLOTHING) var/list/subcategories = list( list( //Weapon subcategories @@ -20,7 +21,11 @@ CAT_CAKE, CAT_SUSHI, CAT_SANDWICH), - CAT_CLOTHING) //Clothing subcategories + list( //Decoration subcategories + CAT_DECORATION, + CAT_HOLIDAY, + CAT_LARGE_DECORATIONS), + CAT_CLOTHING) //Clothing subcategories var/display_craftable_only = FALSE var/display_compact = TRUE diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index d0ad4b8dc41..b49e20f1302 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -571,3 +571,448 @@ time = 50 category = CAT_MISC always_availible = FALSE + +/datum/crafting_recipe/paper_craft + name = "Paper Heart" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/heart + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 1) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red)//cutters act as makeshift scissors. I doubt the barber wants to have their scissors stolen when somone wants to decorate + category = CAT_DECORATIONS + subcategory = CAT_DECORATION + +/datum/crafting_recipe/paper_craft/single_eye + name = "Paper Eye" + result = /obj/item/decorations/sticky_decorations/flammable/singleeye + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/blue) + category = CAT_DECORATIONS + subcategory = CAT_DECORATION + +/datum/crafting_recipe/paper_craft/googlyeyes + name = "Paper Googly Eye" + result = /obj/item/decorations/sticky_decorations/flammable/googlyeyes + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_DECORATION + +/datum/crafting_recipe/paper_craft/clock + name = "Paper Clock" + result = /obj/item/decorations/sticky_decorations/flammable/paperclock + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_DECORATION + +/datum/crafting_recipe/paper_craft/jack_o_lantern + name = "Paper Jack o'Lantern" + result = /obj/item/decorations/sticky_decorations/flammable/jack_o_lantern + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/orange, + /obj/item/toy/crayon/green)//pen ink is black + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/ghost + name = "Paper Ghost" + result = /obj/item/decorations/sticky_decorations/flammable/ghost + tools = list(/obj/item/wirecutters, + /obj/item/pen)//it's white paper why need a white crayon? + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/spider + name = "Paper Spider" + result = /obj/item/decorations/sticky_decorations/flammable/spider + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/spiderweb + name = "Paper Spiderweb" + result = /obj/item/decorations/sticky_decorations/flammable/spiderweb + tools = list(/obj/item/wirecutters) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/skull + name = "Paper Skull" + result = /obj/item/decorations/sticky_decorations/flammable/skull + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/skeleton + name = "Paper Skeleton" + result = /obj/item/decorations/sticky_decorations/flammable/skeleton + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/cauldron + name = "Paper Cauldron" + result = /obj/item/decorations/sticky_decorations/flammable/cauldron + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/snowman + name = "Paper Snowman" + result = /obj/item/decorations/sticky_decorations/flammable/snowman + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/orange) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/christmas_stocking + name = "Paper Christmas Stocking" + result = /obj/item/decorations/sticky_decorations/flammable/christmas_stocking + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/christmas_tree + name = "Paper Christmas Tree" + result = /obj/item/decorations/sticky_decorations/flammable/christmas_tree + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red, + /obj/item/toy/crayon/yellow, + /obj/item/toy/crayon/blue, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/snowflake + name = "Paper Snowflake" + result = /obj/item/decorations/sticky_decorations/flammable/snowflake + tools = list(/obj/item/wirecutters) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/candy_cane + name = "Paper Candy Cane" + result = /obj/item/decorations/sticky_decorations/flammable/candy_cane + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/mistletoe + name = "Paper Mistletoe" + result = /obj/item/decorations/sticky_decorations/flammable/mistletoe + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/holly + name = "Paper Holly" + result = /obj/item/decorations/sticky_decorations/flammable/holly + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_white + name = "Paper Tinsel White" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_red + name = "Red Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/red + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_blue + name = "Blue Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/blue + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/blue) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_yellow + name = "Yellow Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/yellow + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/yellow) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_purple + name = "Purple Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/purple + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/purple) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_green + name = "Green Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/green + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_orange + name = "Orange Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/orange + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/orange) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_black + name = "Black Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/black + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/pen) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/tinsel_halloween + name = "Halloween style Paper Tinsel" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/tinsel/halloween + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2) + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/orange) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/arrowed_heart + name = "Paper Arrowed Heart" + result = /obj/item/decorations/sticky_decorations/flammable/arrowed_heart + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/heart_chain + name = "Paper Heart Chain" + result = /obj/item/decorations/sticky_decorations/flammable/heart_chain + reqs = list(/obj/item/paper = 1, + /obj/item/stack/tape_roll = 2, + /obj/item/stack/cable_coil = 2) + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/four_leaf_clover + name = "Paper Four Leaf Clover" + result = /obj/item/decorations/sticky_decorations/flammable/four_leaf_clover + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/pot_of_gold + name = "Paper Pot of Gold" + result = /obj/item/decorations/sticky_decorations/flammable/pot_of_gold + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/red, + /obj/item/toy/crayon/yellow, + /obj/item/toy/crayon/orange, + /obj/item/toy/crayon/green, + /obj/item/toy/crayon/blue, + /obj/item/toy/crayon/purple) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/leprechaun_hat + name = "Paper Leprechaun Hat" + time = 10 + result = /obj/item/decorations/sticky_decorations/flammable/leprechaun_hat + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/yellow, + /obj/item/toy/crayon/green) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_bunny + name = "Paper Easter Bunny" + result = /obj/item/decorations/sticky_decorations/flammable/easter_bunny + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/toy/crayon/blue, + /obj/item/toy/crayon/purple) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_egg_blue + name = "Blue Paper Easter Egg" + result = /obj/item/decorations/sticky_decorations/flammable/easter_egg + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/blue) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_egg_yellow + name = "Yellow Paper Easter Egg" + result = /obj/item/decorations/sticky_decorations/flammable/easter_egg/yellow + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/yellow) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_egg_red + name = "Red Paper Easter Egg" + result = /obj/item/decorations/sticky_decorations/flammable/easter_egg/red + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_egg_purple + name = "Purple Paper Easter Egg" + result = /obj/item/decorations/sticky_decorations/flammable/easter_egg/purple + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/purple) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/paper_craft/easter_egg_orange + name = "Orange Paper Easter Egg" + result = /obj/item/decorations/sticky_decorations/flammable/easter_egg/orange + tools = list(/obj/item/wirecutters, + /obj/item/toy/crayon/orange) + category = CAT_DECORATIONS + subcategory = CAT_HOLIDAY + +/datum/crafting_recipe/metal_angel_statue + name = "Metal angel statue" + time = 50 + result = /obj/structure/decorative_structures/metal/statue/metal_angel + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/sheet/mineral/gold = 6) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/golden_disk_statue + name = "Golden disk statue" + time = 50 + result = /obj/structure/decorative_structures/metal/statue/golden_disk + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/sheet/mineral/plasma = 3, + /obj/item/stack/sheet/mineral/gold = 8) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/sun_statue + name = "Sun statue" + time = 40 + result = /obj/structure/decorative_structures/metal/statue/sun + reqs = list(/obj/item/stack/sheet/metal = 6, + /obj/item/stack/sheet/mineral/gold = 4) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/moon_statue + name = "Moon statue" + time = 50 + result = /obj/structure/decorative_structures/metal/statue/moon + reqs = list(/obj/item/stack/sheet/metal = 6, + /obj/item/stack/sheet/mineral/silver = 6, + /obj/item/stack/sheet/mineral/gold = 4) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/tesla_statue + name = "Tesla statue" + time = 40 + result = /obj/structure/decorative_structures/metal/statue/tesla + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/sheet/glass = 8) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/tesla_monument + name = "Tesla monument" + time = 50 + result = /obj/structure/decorative_structures/metal/statue/tesla_monument + reqs = list(/obj/item/stack/sheet/metal = 8, + /obj/item/stock_parts/cell = 3, + /obj/item/stack/cable_coil = 4) + tools = list(/obj/item/weldingtool) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/grandfather_clock + name = "Grandfather clock" + time = 50 + result = /obj/structure/decorative_structures/flammable/grandfather_clock + reqs = list(/obj/item/stack/sheet/wood = 5, + /obj/item/stack/sheet/mineral/gold = 1, + /obj/item/stack/sheet/glass = 2) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/lava_land_display + name = "Lava land display" + time = 50 + result = /obj/structure/decorative_structures/flammable/lava_land_display + reqs = list(/obj/item/paper = 4, + /obj/item/stack/sheet/wood = 4, + /obj/item/stack/rods = 4, + /obj/item/stock_parts/cell = 1, + /obj/item/stack/cable_coil = 4)//thing is a wireframe construct with an electro magnetic hover field + tools = list(/obj/item/wirecutters, + /obj/item/pen, + /obj/item/weldingtool, + /obj/item/toy/crayon/red) + category = CAT_DECORATIONS + subcategory = CAT_LARGE_DECORATIONS diff --git a/icons/obj/decorations.dmi b/icons/obj/decorations.dmi index a3b7f9dcd20db7fceb81d67759a0dbf037b9d1e4..8bbfa2e3592c44f22b7553602d817de9df3b6c0e 100644 GIT binary patch literal 23152 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 n(6jo=sVnHk_ Date: Sun, 27 Oct 2019 00:30:06 -0400 Subject: [PATCH 033/138] Automatic changelog generation for PR #12615 [ci skip] --- html/changelogs/AutoChangeLog-pr-12615.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12615.yml diff --git a/html/changelogs/AutoChangeLog-pr-12615.yml b/html/changelogs/AutoChangeLog-pr-12615.yml new file mode 100644 index 00000000000..06f18af2b82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12615.yml @@ -0,0 +1,6 @@ +author: "Darkmight9" +delete-after: True +changes: + - rscadd: "Adds a wide variety of craftable decorations! You can find them in the new 'Decorations' tab in the crafting menu." + - tweak: "tweaked the duct tape component so that you can now add it to items to make them naturally stick to walls." + - imageadd: "added decorative sprites." From aa20f6d757e328a03f66c4abf3dc3e06a8edc93a Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Sun, 27 Oct 2019 15:37:33 +0000 Subject: [PATCH 034/138] Hellhound Updates (nerfs lesser hound) (#12459) --- .../living/simple_animal/hostile/hellhound.dm | 51 ++++++++++++++----- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/hellhound.dm b/code/modules/mob/living/simple_animal/hostile/hellhound.dm index f5948fcb275..201c4c07992 100644 --- a/code/modules/mob/living/simple_animal/hostile/hellhound.dm +++ b/code/modules/mob/living/simple_animal/hostile/hellhound.dm @@ -91,11 +91,6 @@ return TRUE return FALSE -/mob/living/simple_animal/hostile/hellhound/AttackingTarget() - . = ..() - if(. && ishuman(target) && (!client || a_intent == INTENT_HARM)) - special_aoe() - /mob/living/simple_animal/hostile/hellhound/attackby(obj/item/C, mob/user, params) . = ..() if(target && isliving(target)) @@ -103,14 +98,6 @@ if(L.stat != CONSCIOUS) target = user -/mob/living/simple_animal/hostile/hellhound/proc/special_aoe() - if(world.time < (smoke_lastuse + smoke_freq)) - return - smoke_lastuse = world.time - var/datum/effect_system/smoke_spread/sleeping/smoke = new - smoke.set_up(10, 0, loc) - smoke.start() - /mob/living/simple_animal/hostile/hellhound/greater name = "Greater Hellhound" desc = "A demonic-looking black canine monster with glowing red eyes and sharp teeth. Greater hounds are far stronger than their lesser kin, and typically employed by powerful bluespace entities." @@ -120,8 +107,46 @@ maxHealth = 400 health = 400 force_threshold = 5 // no punching + universal_speak = 1 smoke_freq = 200 life_regen_cycle_trigger = 5 melee_damage_lower = 20 melee_damage_upper = 30 environment_smash = 2 + +/mob/living/simple_animal/hostile/hellhound/greater/New() + . = ..() + // Movement + AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) + var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new + telespell.clothes_req = FALSE + telespell.invocation_type = "none" + AddSpell(telespell) + var/obj/effect/proc_holder/spell/aoe_turf/knock/knockspell = new + knockspell.invocation_type = "none" + AddSpell(knockspell) + // Defense + var/obj/effect/proc_holder/spell/targeted/forcewall/greater/wallspell = new + wallspell.clothes_req = FALSE + wallspell.invocation_type = "none" + AddSpell(wallspell) + // Offense + var/obj/effect/proc_holder/spell/aoe_turf/conjure/creature/summonspell = new + summonspell.charge_max = 1 + summonspell.invocation_type = "none" + summonspell.summon_type = list(/mob/living/simple_animal/hostile/hellhound) + summonspell.summon_amt = 1 + AddSpell(summonspell) + +/mob/living/simple_animal/hostile/hellhound/greater/AttackingTarget() + . = ..() + if(. && ishuman(target) && (!client || a_intent == INTENT_HARM)) + special_aoe() + +/mob/living/simple_animal/hostile/hellhound/greater/proc/special_aoe() + if(world.time < (smoke_lastuse + smoke_freq)) + return + smoke_lastuse = world.time + var/datum/effect_system/smoke_spread/sleeping/smoke = new + smoke.set_up(10, 0, loc) + smoke.start() From e1533459f1a818911e25a0082ba2934ec90bbf0f Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 27 Oct 2019 11:37:35 -0400 Subject: [PATCH 035/138] Automatic changelog generation for PR #12459 [ci skip] --- html/changelogs/AutoChangeLog-pr-12459.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-12459.yml diff --git a/html/changelogs/AutoChangeLog-pr-12459.yml b/html/changelogs/AutoChangeLog-pr-12459.yml new file mode 100644 index 00000000000..18ab9dbd1f8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-12459.yml @@ -0,0 +1,4 @@ +author: "Kyep" +delete-after: True +changes: + - tweak: "Tweaked Greater Hellhound, added more non-violent options and one unique combat spell." From 30ae578c503c36cc32e1dee8fadaeadea0954a05 Mon Sep 17 00:00:00 2001 From: variableundefined <40092670+variableundefined@users.noreply.github.com> Date: Sun, 27 Oct 2019 11:37:44 -0400 Subject: [PATCH 036/138] Manual Changelog Compile 10/27/2019 (#12651) --- html/changelog.html | 76 ++++++++++++++++++++++ html/changelogs/.all_changelog.yml | 57 ++++++++++++++++ html/changelogs/AutoChangeLog-pr-12396.yml | 9 --- html/changelogs/AutoChangeLog-pr-12450.yml | 4 -- html/changelogs/AutoChangeLog-pr-12474.yml | 5 -- html/changelogs/AutoChangeLog-pr-12540.yml | 4 -- html/changelogs/AutoChangeLog-pr-12544.yml | 4 -- html/changelogs/AutoChangeLog-pr-12546.yml | 4 -- html/changelogs/AutoChangeLog-pr-12548.yml | 4 -- html/changelogs/AutoChangeLog-pr-12559.yml | 5 -- html/changelogs/AutoChangeLog-pr-12560.yml | 4 -- html/changelogs/AutoChangeLog-pr-12567.yml | 4 -- html/changelogs/AutoChangeLog-pr-12572.yml | 4 -- html/changelogs/AutoChangeLog-pr-12581.yml | 4 -- html/changelogs/AutoChangeLog-pr-12582.yml | 4 -- html/changelogs/AutoChangeLog-pr-12583.yml | 4 -- html/changelogs/AutoChangeLog-pr-12584.yml | 4 -- html/changelogs/AutoChangeLog-pr-12586.yml | 4 -- html/changelogs/AutoChangeLog-pr-12587.yml | 5 -- html/changelogs/AutoChangeLog-pr-12594.yml | 4 -- html/changelogs/AutoChangeLog-pr-12595.yml | 4 -- html/changelogs/AutoChangeLog-pr-12608.yml | 4 -- html/changelogs/AutoChangeLog-pr-12614.yml | 5 -- html/changelogs/AutoChangeLog-pr-12615.yml | 6 -- html/changelogs/AutoChangeLog-pr-12638.yml | 4 -- html/changelogs/AutoChangeLog-pr-12649.yml | 4 -- 26 files changed, 133 insertions(+), 107 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-12396.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12450.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12474.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12540.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12544.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12546.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12548.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12559.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12560.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12567.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12572.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12581.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12582.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12583.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12584.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12586.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12587.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12594.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12595.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12608.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12614.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12615.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12638.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-12649.yml diff --git a/html/changelog.html b/html/changelog.html index d95c936a8cb..e16a576f43d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,82 @@ -->

+

27 October 2019

+

AdamElTablawy updated:

+
    +
  • Xenobiology can no longer produce hellhounds with gold slime cores.
  • +
+

AzuleUtama updated:

+
    +
  • Vampire's shape shift ability and DNA scrambler item now clear flavour text on use.
  • +
+

Darkmight9 updated:

+
    +
  • Adds a wide variety of craftable decorations! You can find them in the new 'Decorations' tab in the crafting menu.
  • +
  • tweaked the duct tape component so that you can now add it to items to make them naturally stick to walls.
  • +
  • added decorative sprites.
  • +
+

Fox McCloud updated:

+
    +
  • windows are easier to break
  • +
  • Adds in the Rod of Asclepius, a healing item that carries an immense burden
  • +
  • Fixes Bubblegum spawning being ridiculously rare
  • +
  • Fixes planetary atmos not correctly happening
  • +
  • Fixes atmos pipe unwrenching
  • +
  • Survival pod medical vendors only have 2 pairs of splints instead of a wide array of medicines
  • +
  • Hivelord core, when used on someone, no longer fully revives them; instead it heals 25 burn, 25 brute, resets body temperature, removes all CC, cures all internal bleeding, and mends all fractures (slowdown bonus still stays
  • +
  • updates the close icon for storage to not be a trashy codersprite
  • +
  • Fixes excessive mob and tendril clumping on Lavaland
  • +
  • Fixes being able to exploit the destructive analyzer for unlimited materials
  • +
  • Fixes Hierophant arena atmos
  • +
+

Ionward updated:

+
    +
  • fixed Battlemage armor having an unintended helmet light
  • +
  • added Vox versions of Battlemage, Paranormal, Inquisitor, Berserker, and Syndicate Elite Hardsuits.
  • +
+

SteelSlayer updated:

+
    +
  • Fixes the RPED and bluespace RPED not displaying a list of parts in players chat when used on a machine
  • +
+

TDSSS updated:

+
    +
  • yellow documents are no longer indestructible.
  • +
+

Tayyyyyyy updated:

+
    +
  • single quotes showing up weird in names and announcement titles
  • +
+

Terilia updated:

+
    +
  • Headcrab Nests
  • +
  • Headcrabs can now eat dead simple_animal corpses to regain 10 hp.
  • +
  • Poison Headcrabs will not inject LSD anymore.
  • +
  • Headcrabs have more HP and some do more damage.
  • +
  • Headcrabs will not stop attacking people after they are unconscious.
  • +
  • Headcrab Nest DMI
  • +
+

Ty-Omaha updated:

+
    +
  • Admin attack log level of heirophant club updated
  • +
+

actioninja updated:

+
    +
  • Nanoui interfaces in fancy mode now open more cleanly
  • +
+

craftxbox updated:

+
    +
  • Vanilla JS Regex for chat highlighting
  • +
  • Removed jquery mark
  • +
  • quickfix to stop people using the scanner inside it
  • +
+

farie82 updated:

+
    +
  • Cult whispering now uses your real name
  • +
  • Fixed the invisible blob zombies
  • +
  • A runtime in blob/factory/run_action
  • +
+

13 October 2019

Darkmight9 updated: