dogborg tweaks, so fuggin DUMB (#5202)
* apparantly you need shuttles, who knew * some tweaks Sprites need adjustments Janidogs need adjustments in UI * Hm, maybe a fix. Revert attempt to rename sprites * [MIRROR] Better Chat Squashing (#5193) * Merge pull request #35058 from uraniummeltdown/chatsquash Better Chat Squashing * Better Chat Squashing * [MIRROR] Sexy Solar Sprites (#5191) * replaced solar panel sprites with better ones * Sexy Solar Sprites * Automatic changelog generation for PR #5191 [ci skip] * [MIRROR] New Coffin Sprite (#5190) * coffins have a new sprite (#34995) * New Coffin Sprite * Automatic changelog generation for PR #5190 [ci skip] * [MIRROR] Makes fire colorful and anime (#5187) * Makes fire colorful and anime (#34977) * - Makes fire colorful and anime * - Updates light color on fires - Makes fire update color less often (1/7th as often) * - Changes the transition from blue to purple to be much more gradual, it starts at 40000 and peaks at 120000 Kelvin now - Changes fusion fire (>4 million Kelvin) to have a slight colorshift to it (It's just the druggy overlay). * - Moves fire above gas (and everything else) - Changes fire alpha for low temperature fires to compensate for items no longer rendering on top of fire * - Makes the new fire layer a define and makes sure it isn't above "Hyperspace Ripples" whatever that is * - Removes comment * - FIRE_LAYER is already defined for burning humans. * Makes fire colorful and anime * Automatic changelog generation for PR #5187 [ci skip] * [MIRROR] Expand Cyborg (#5183) * Expand Cyborg (#34958) * Expand Cyborg * i ded pls nerf * Oh sheet * Expand Cyborg * Automatic changelog generation for PR #5183 [ci skip] * [MIRROR] Cosmic Bedsheet (#5170) * adds cosmic space bedsheet * Cosmic Bedsheet * [MIRROR] The punisher no longer punishes ticker subsystems with delayed fires (#5174) * Merge pull request #34964 from MrStonedOne/patch-463 The punisher no longer punishes ticker subsystems with delayed fires * The punisher no longer punishes ticker subsystems with delayed fires * Fuck this I'm done with it
This commit is contained in:
@@ -50,14 +50,16 @@
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
icon = 'icons/effects/fire.dmi'
|
||||
icon_state = "1"
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
layer = GASFIRE_LAYER
|
||||
light_range = LIGHT_RANGE_FIRE
|
||||
light_color = LIGHT_COLOR_FIRE
|
||||
blend_mode = BLEND_ADD
|
||||
|
||||
var/volume = 125
|
||||
var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
|
||||
var/just_spawned = TRUE
|
||||
var/bypassing = FALSE
|
||||
var/visual_update_tick = 0
|
||||
|
||||
/obj/effect/hotspot/Initialize()
|
||||
. = ..()
|
||||
@@ -96,6 +98,64 @@
|
||||
AT.fire_act(temperature, volume)
|
||||
return
|
||||
|
||||
/obj/effect/hotspot/proc/gauss_lerp(x, x1, x2)
|
||||
var/b = (x1 + x2) * 0.5
|
||||
var/c = (x2 - x1) / 6
|
||||
return NUM_E ** -((x - b) ** 2 / (2 * c) ** 2)
|
||||
|
||||
/obj/effect/hotspot/proc/update_color()
|
||||
cut_overlays()
|
||||
|
||||
var/heat_r = heat2colour_r(temperature)
|
||||
var/heat_g = heat2colour_g(temperature)
|
||||
var/heat_b = heat2colour_b(temperature)
|
||||
var/heat_a = 255
|
||||
var/greyscale_fire = 1 //This determines how greyscaled the fire is.
|
||||
|
||||
if(temperature < 5000) //This is where fire is very orange, we turn it into the normal fire texture here.
|
||||
var/normal_amt = gauss_lerp(temperature, 1000, 3000)
|
||||
heat_r = LERP(heat_r,255,normal_amt)
|
||||
heat_g = LERP(heat_g,255,normal_amt)
|
||||
heat_b = LERP(heat_b,255,normal_amt)
|
||||
heat_a -= gauss_lerp(temperature, -5000, 5000) * 128
|
||||
greyscale_fire -= normal_amt
|
||||
if(temperature > 40000) //Past this temperature the fire will gradually turn a bright purple
|
||||
var/purple_amt = temperature < LERP(40000,200000,0.5) ? gauss_lerp(temperature, 40000, 200000) : 1
|
||||
heat_r = LERP(heat_r,255,purple_amt)
|
||||
if(temperature > 200000 && temperature < 500000) //Somewhere at this temperature nitryl happens.
|
||||
var/sparkle_amt = gauss_lerp(temperature, 200000, 500000)
|
||||
var/mutable_appearance/sparkle_overlay = mutable_appearance('icons/effects/effects.dmi', "shieldsparkles")
|
||||
sparkle_overlay.blend_mode = BLEND_ADD
|
||||
sparkle_overlay.alpha = sparkle_amt * 255
|
||||
add_overlay(sparkle_overlay)
|
||||
if(temperature > 400000 && temperature < 1500000) //Lightning because very anime.
|
||||
var/mutable_appearance/lightning_overlay = mutable_appearance(icon, "overcharged")
|
||||
lightning_overlay.blend_mode = BLEND_ADD
|
||||
add_overlay(lightning_overlay)
|
||||
if(temperature > 4500000) //This is where noblium happens. Some fusion-y effects.
|
||||
var/fusion_amt = temperature < LERP(4500000,12000000,0.5) ? gauss_lerp(temperature, 4500000, 12000000) : 1
|
||||
var/mutable_appearance/fusion_overlay = mutable_appearance('icons/effects/tile_effects.dmi', "chem_gas")
|
||||
fusion_overlay.blend_mode = BLEND_ADD
|
||||
fusion_overlay.alpha = fusion_amt * 255
|
||||
var/mutable_appearance/rainbow_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "druggy")
|
||||
rainbow_overlay.blend_mode = BLEND_ADD
|
||||
rainbow_overlay.alpha = fusion_amt * 255
|
||||
rainbow_overlay.appearance_flags = RESET_COLOR
|
||||
heat_r = LERP(heat_r,150,fusion_amt)
|
||||
heat_g = LERP(heat_g,150,fusion_amt)
|
||||
heat_b = LERP(heat_b,150,fusion_amt)
|
||||
add_overlay(fusion_overlay)
|
||||
add_overlay(rainbow_overlay)
|
||||
|
||||
set_light(l_color = rgb(LERP(250,heat_r,greyscale_fire),LERP(160,heat_g,greyscale_fire),LERP(25,heat_b,greyscale_fire)))
|
||||
|
||||
heat_r /= 255
|
||||
heat_g /= 255
|
||||
heat_b /= 255
|
||||
|
||||
color = list(LERP(0.3, 1, 1-greyscale_fire) * heat_r,0.3 * heat_g * greyscale_fire,0.3 * heat_b * greyscale_fire, 0.59 * heat_r * greyscale_fire,LERP(0.59, 1, 1-greyscale_fire) * heat_g,0.59 * heat_b * greyscale_fire, 0.11 * heat_r * greyscale_fire,0.11 * heat_g * greyscale_fire,LERP(0.11, 1, 1-greyscale_fire) * heat_b, 0,0,0)
|
||||
alpha = heat_a
|
||||
|
||||
#define INSUFFICIENT(path) (!location.air.gases[path] || location.air.gases[path][MOLES] < 0.5)
|
||||
/obj/effect/hotspot/process()
|
||||
if(just_spawned)
|
||||
@@ -142,6 +202,9 @@
|
||||
else
|
||||
icon_state = "1"
|
||||
|
||||
if((visual_update_tick++ % 7) == 0)
|
||||
update_color()
|
||||
|
||||
if(temperature > location.max_fire_temperature_sustained)
|
||||
location.max_fire_temperature_sustained = temperature
|
||||
|
||||
|
||||
@@ -43,12 +43,17 @@ img.icon {
|
||||
content: 'x';
|
||||
}
|
||||
.r {
|
||||
display: inline;
|
||||
padding: .2em .6em .3em;
|
||||
font-size: 75%;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
color: #f00;
|
||||
display: inline-block;
|
||||
min-width: 0.5em;
|
||||
font-size: 0.7em;
|
||||
padding: 0.2em 0.3em;
|
||||
line-height: 1;
|
||||
color: white;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
background-color: crimson;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
a {color: #0000ff;}
|
||||
|
||||
@@ -312,8 +312,14 @@ function output(message, flag) {
|
||||
{
|
||||
lastmessages.append($('<span/>', { 'class': 'r', 'text': 2}));
|
||||
}
|
||||
if(parseInt(lastmessages.css("font-size")) < 24) //Completely arbitrary max size
|
||||
lastmessages.css("font-size","+=2")
|
||||
var insertedBadge = $(lastmessages).find('.r');
|
||||
insertedBadge.animate({
|
||||
"font-size": "0.9em"
|
||||
}, 100, function() {
|
||||
insertedBadge.animate({
|
||||
"font-size": "0.7em"
|
||||
}, 100);
|
||||
});
|
||||
opts.messageCount--;
|
||||
handled = true;
|
||||
}
|
||||
|
||||
@@ -83,13 +83,13 @@
|
||||
H.endTailWag()
|
||||
|
||||
/mob/living/carbon/human/proc/is_wagging_tail()
|
||||
return (dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts)))
|
||||
return (dna && dna.species && (("waggingtail_lizard" in dna.species.mutant_bodyparts) || ("waggingtail_human" in dna.species.mutant_bodyparts)|| ("mam_waggingtail" in dna.species.mutant_bodyparts)))
|
||||
|
||||
/datum/emote/living/carbon/human/wag/can_run_emote(mob/user, status_check = TRUE)
|
||||
if(!..())
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.dna && H.dna.species && (("tail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || ("tail_human" in H.dna.species.mutant_bodyparts) || ("waggingtail_human" in H.dna.species.mutant_bodyparts)))
|
||||
if(H.dna && H.dna.species && (("tail_lizard" in H.dna.species.mutant_bodyparts) || ("waggingtail_lizard" in H.dna.species.mutant_bodyparts) || ("tail_human" in H.dna.species.mutant_bodyparts) || ("waggingtail_human" in H.dna.species.mutant_bodyparts)|| ("mam_tail" in H.dna.species.mutant_bodyparts) || ("mam_waggingtail" in H.dna.species.mutant_bodyparts)))
|
||||
return TRUE
|
||||
|
||||
/datum/emote/living/carbon/human/wag/select_message_type(mob/user)
|
||||
|
||||
@@ -506,7 +506,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
|
||||
/datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour)
|
||||
var/list/bodyparts_to_add = mutant_bodyparts.Copy()
|
||||
var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER, BODY_TAUR_LAYER)
|
||||
var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER, BODY_TAUR_LAYER, ABOVE_BODY_ADJ_LAYER, UNDER_BODY_ADJ_LAYER)
|
||||
var/list/standing = list()
|
||||
|
||||
H.remove_overlay(BODY_BEHIND_LAYER)
|
||||
@@ -514,6 +514,10 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
H.remove_overlay(BODY_FRONT_LAYER)
|
||||
//CITADEL EDIT - Do not forget to add this to relevent_layers list just above too!
|
||||
H.remove_overlay(BODY_TAUR_LAYER)
|
||||
H.remove_overlay(ABOVE_BODY_ADJ_LAYER)
|
||||
H.remove_overlay(ABOVE_BODY_FRONT_LAYER)
|
||||
H.remove_overlay(ABOVE_BODY_BEHIND_LAYER)
|
||||
//END EDIT
|
||||
|
||||
if(!mutant_bodyparts)
|
||||
return
|
||||
@@ -797,7 +801,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
else
|
||||
I.color = "#[H.hair_color]"
|
||||
if(FACEHAIR)
|
||||
@@ -834,7 +838,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
if(hair_color == "mutcolor3")
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
I.color = "#[H.hair_color]"
|
||||
@@ -846,7 +850,9 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
H.apply_overlay(BODY_ADJ_LAYER)
|
||||
H.apply_overlay(BODY_FRONT_LAYER)
|
||||
H.apply_overlay(BODY_TAUR_LAYER) // CITADEL EDIT
|
||||
|
||||
H.apply_overlay(ABOVE_BODY_ADJ_LAYER)
|
||||
H.apply_overlay(ABOVE_BODY_FRONT_LAYER)
|
||||
H.apply_overlay(ABOVE_BODY_BEHIND_LAYER)
|
||||
|
||||
//This exists so sprite accessories can still be per-layer without having to include that layer's
|
||||
//number in their sprite name, which causes issues when those numbers change.
|
||||
@@ -858,9 +864,16 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
return "ADJ"
|
||||
if(BODY_FRONT_LAYER)
|
||||
return "FRONT"
|
||||
//CITADEL EDIT
|
||||
if(BODY_TAUR_LAYER)
|
||||
return "TAUR"
|
||||
|
||||
if(ABOVE_BODY_ADJ_LAYER)
|
||||
return "ABADJ"
|
||||
if(ABOVE_BODY_FRONT_LAYER)
|
||||
return "ABFRONT"
|
||||
if(ABOVE_BODY_BEHIND_LAYER)
|
||||
return "ABBEHIND"
|
||||
//END EDIT
|
||||
|
||||
/datum/species/proc/spec_life(mob/living/carbon/human/H)
|
||||
if(NOBREATH in species_traits)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/obj/machinery/power/solar
|
||||
name = "solar panel"
|
||||
desc = "A solar panel. Generates electricity when in contact with sunlight."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon = 'goon/icons/obj/power.dmi'
|
||||
icon_state = "sp_base"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
@@ -181,7 +181,7 @@
|
||||
/obj/item/solar_assembly
|
||||
name = "solar panel assembly"
|
||||
desc = "A solar panel assembly kit, allows constructions of a solar panel, or with a tracking circuit board, a solar tracker."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon = 'goon/icons/obj/power.dmi'
|
||||
icon_state = "sp_base"
|
||||
item_state = "electropack"
|
||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/obj/machinery/power/tracker
|
||||
name = "solar tracker"
|
||||
desc = "A solar directional tracker."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon = 'goon/icons/obj/power.dmi'
|
||||
icon_state = "tracker"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
|
||||
@@ -696,6 +696,15 @@
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_expand
|
||||
name = "Cyborg Upgrade (Expand)"
|
||||
id = "borg_upgrade_expand"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/expand
|
||||
materials = list(MAT_METAL=200000, MAT_TITANIUM=5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/boris_ai_controller
|
||||
name = "B.O.R.I.S. AI-Cyborg Remote Control Module"
|
||||
id = "borg_ai_control"
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
display_name = "Cyborg Upgrades: Utility"
|
||||
description = "Utility upgrades for cybogs."
|
||||
prereq_ids = list("engineering", "cyborg")
|
||||
design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair")
|
||||
design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand")
|
||||
research_cost = 2500
|
||||
export_price = 5000
|
||||
|
||||
|
||||
Reference in New Issue
Block a user