diff --git a/code/controllers/subsystems/cult.dm b/code/controllers/subsystems/cult.dm index f432b46c9a2..af50519ccd7 100644 --- a/code/controllers/subsystems/cult.dm +++ b/code/controllers/subsystems/cult.dm @@ -23,8 +23,10 @@ for(var/rune in subtypesof(/datum/rune)) var/datum/rune/R = new rune runes_by_name[R.name] = rune - tome_data += "[R.name]: [R.desc]" - tome_data += "This rune [R.can_be_talisman() ? "can" : "cannot"] be turned into a talisman.
" + tome_data += "
" + tome_data += "[capitalize_first_letters(R.name)]: [R.desc]
" + tome_data += "This rune [R.can_be_talisman() ? "can" : "cannot"] be turned into a talisman.

" + tome_data += "
" /datum/controller/subsystem/cult/proc/add_rune(var/datum/rune/R) if(check_rune_limit()) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f9eabecfc21..f5e5c0f6a12 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -137,7 +137,9 @@ output += "Objective #[obj_count]: [objective.explanation_text]" obj_count++ - recipient << browse(output,"window=memory") + var/datum/browser/memory_win = new(recipient, "memory") + memory_win.set_content(output) + memory_win.open() /datum/mind/proc/edit_memory() if(!ROUND_IS_STARTED) diff --git a/code/game/gamemodes/cult/items/tome.dm b/code/game/gamemodes/cult/items/tome.dm index bbe350a0f18..d89c2eb8346 100644 --- a/code/game/gamemodes/cult/items/tome.dm +++ b/code/game/gamemodes/cult/items/tome.dm @@ -56,18 +56,21 @@ to_chat(scribe, SPAN_WARNING("You are unable to write a rune here.")) return - // This counts how many runes exist in the game, for some sort of arbitrary rune limit. I trust the old devs had their reasons. - Geeves - if(SScult.check_rune_limit()) - to_chat(scribe, SPAN_WARNING("The cloth of reality can't take that much of a strain. Remove some runes first!")) - return - else - switch(alert("What shall you do with the tome?", "Tome of Nar'sie", "Read it", "Scribe a rune", "Cancel")) - if("Cancel") + switch(alert("What shall you do with the tome?", "Tome of Nar'sie", "Read it", "Scribe a rune", "Cancel")) + if("Cancel") + return + if("Read it") + if(use_check_and_message(user)) return - if("Read it") - if(use_check_and_message(user)) - return - user << browse("[SScult.tome_data]", "window=Arcane Tome") + var/datum/browser/tome_win = new(user, "Arcane Tome", "Nar'Sie's Runes") + tome_win.set_content(SScult.tome_data) + tome_win.add_stylesheet("cult", 'html/browser/cult.css') + tome_win.open() + return + if("Scribe a rune") + // This counts how many runes exist in the game, for some sort of arbitrary rune limit. I trust the old devs had their reasons. - Geeves + if(SScult.check_rune_limit()) + to_chat(scribe, SPAN_WARNING("The cloth of reality can't take that much of a strain. Remove some runes first!")) return //only check if they want to scribe a rune, so they can still read if standing on a rune diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 8d9948cd5ac..45062bb0a1a 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -51,8 +51,7 @@ print_loc = src /obj/machinery/autolathe/Destroy() - qdel(wires) - wires = null + QDEL_NULL(wires) return ..() /obj/machinery/autolathe/proc/update_recipe_list() @@ -69,7 +68,7 @@ if(shocked) shock(user, 50) - var/dat = "

Autolathe Control Panel


" + var/dat = "
" if(!disabled) dat += "" @@ -77,14 +76,15 @@ var/material_bottom = "" for(var/material in stored_material) - material_top += "" + material_top += "" material_bottom += "" dat += "[material_top][material_bottom]
[material][capitalize_first_letters(material)][stored_material[material]]/[storage_capacity[material]]

" - dat += "

Printable Designs

Showing: [show_category].

" + dat += "

Printable Designs

Showing: [show_category]

" var/index = 0 - for(var/datum/autolathe/recipe/R in machine_recipes) + for(var/recipe in machine_recipes) + var/datum/autolathe/recipe/R = recipe index++ if(R.hidden && !hacked || (show_category != "All" && show_category != R.category)) continue @@ -108,7 +108,7 @@ else material_string += ", " material_string += "[round(R.resources[material] * mat_efficiency)] [material]" - material_string += ".
" + material_string += "
" //Build list of multipliers for sheets. if(R.is_stack) if(max_sheets) @@ -119,12 +119,13 @@ multiplier_string += "\[x[i]\]" multiplier_string += "\[x[max_sheets]\]" - dat += "" - + dat += "" dat += "
[R.hidden ? "*" : ""][can_make ? "" : ""][R.name][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string][material_string]
[R.hidden ? "*" : ""][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string][material_string]

" - user << browse(dat, "window=autolathe") - onclose(user, "autolathe") + var/datum/browser/autolathe_win = new(user, "autolathe", "
Autolathe Control Panel
") + autolathe_win.set_content(dat) + autolathe_win.add_stylesheet("misc", 'html/browser/misc.css') + autolathe_win.open() /obj/machinery/autolathe/attackby(obj/item/O, mob/user) if(busy) diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index e16a8c731d7..ea6b3133904 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -422,10 +422,10 @@ switch(menustat) if("menu") if (beaker) - dat += "" - dat += "" - dat += "" - dat += "" + dat += "

Commands

Activate Biogenerator
Detach Container
NameCostProduction Amount
" + dat += "" + dat += "" + dat += "" var/lastclass = "Commands" for (var/k in biorecipies) @@ -439,19 +439,19 @@ if(emag == 0 || emagged == 1) if(lastclass != class) - dat += "" + dat += "" lastclass = class - dat += "" + dat += "" + dat += "" + dat += "" dat += "" dat += "

Commands

Activate Biogenerator
Detach Container
NameCostProduction Amount

[class]

[class]

[name][round(cost/build_eff)]
[name][round(cost/build_eff)]" for(var/num in listamount) - dat += "" var/fakenum = "" if(num <= 9) fakenum = "0" if(num*round(cost/build_eff) > points) - dat += "([fakenum][num])" + dat += "
([fakenum][num])
" else dat += "([fakenum][num])" - dat += "
" @@ -459,19 +459,20 @@ else dat += "
No beaker inside. Please insert a beaker.
" if("nopoints") - dat += "You do not have biomass to create products.
Please, put growns into reactor and activate it.
" + dat += "You do not have biomass to create products.
Please put growns into the reactor and activate it.
" dat += "Return to menu" if("complete") dat += "Operation complete.
" dat += "Return to menu" if("void") - dat += "Error: No growns inside.
Please, put growns into reactor.
" + dat += "Error: No growns inside.
Please put growns into the reactor.
" dat += "Return to menu" - dat += "" + dat += "" - user << browse(dat, "window=biogenerator") - onclose(user, "biogenerator") - return + var/datum/browser/biogen_win = new(user, "biogenerator", "Biogenerator", 450, 500) + biogen_win.set_content(dat) + biogen_win.add_stylesheet("misc", 'html/browser/misc.css') + biogen_win.open() /obj/machinery/biogenerator/attack_hand(mob/user as mob) interact(user) @@ -556,6 +557,7 @@ if("detach") if(beaker) beaker.forceMove(src.loc) + usr.put_in_hands(beaker) beaker = null update_icon() if("create") diff --git a/code/game/machinery/chem_heater.dm b/code/game/machinery/chem_heater.dm index 8621f50ea7c..1054771c898 100644 --- a/code/game/machinery/chem_heater.dm +++ b/code/game/machinery/chem_heater.dm @@ -52,33 +52,33 @@ if(stat & BROKEN) return user.set_machine(src) - var/dat ="" - dat += "Chem Heater MKI" - dat += "

Chem Heater MKI

" + var/dat = "" - dat += "

Power: [use_power ? "On" : "Off"]

" - dat += "

Target Temp: [round(target_temperature)]K / [round(target_temperature - T0C,0.1)]C
" + dat += "Power: [use_power ? "On" : "Off"]" - dat += "(" - dat += "----|" - dat += "---|" - dat += "--|" - dat += "-|" - dat += "+|" - dat += "++|" - dat += "+++|" + dat += "

Target Temp: [round(target_temperature)]K / [round(target_temperature - T0C,0.1)]C
" + + dat += "| " + dat += "----" + dat += "---" + dat += "--" + dat += "-" + dat += "+" + dat += "++" + dat += "+++" dat += "++++" - dat += ")

" + dat += "|

" if(container) - dat += "

Beaker Temp: [round(container.get_temperature(),0.01)]K / [round(container.get_temperature() - T0C,0.1)]C (Remove)

" + dat += "

Beaker Temp: [round(container.get_temperature(),0.01)]K / [round(container.get_temperature() - T0C,0.1)]C Remove

" else dat += "

No container loaded!

" - dat += "" + dat += "" - user << browse(dat, "window=chem_heater") - onclose(user, "chem_heater") + var/datum/browser/chem_win = new(user, "chem_heater", "Chem Heater MKI") + chem_win.set_content(dat) + chem_win.open() /obj/machinery/chem_heater/Topic(href, href_list) if(stat & BROKEN) return diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 20f2c97d050..e24a508d1a9 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -59,16 +59,17 @@ var/global/list/frozen_crew = list() if(!(ROUND_IS_STARTED)) return - dat += "

[storage_name]
" - dat += "Welcome, [user.real_name].


" - dat += "View Storage Log.
" + dat += "
[storage_name]
" + dat += "Welcome, [user.real_name].


" + dat += "View Storage Log
" if(allow_items) - dat += "View Objects.
" - dat += "Recover Object.
" - dat += "Recover All Objects.
" + dat += "View Objects
" + dat += "Recover Object
" + dat += "Recover All Objects
" - user << browse(dat, "window=cryopod_console") - onclose(user, "cryopod_console") + var/datum/browser/cryocon_win = new(user, "cryopod_console", "Cryogenic Oversight Console") + cryocon_win.set_content(dat) + cryocon_win.open() /obj/machinery/computer/cryopod/Topic(href, href_list) if(..()) @@ -82,12 +83,14 @@ var/global/list/frozen_crew = list() if(!length(frozen_crew)) to_chat(user, SPAN_WARNING("Nothing has been stored recently.")) return - var/dat = "
Recently Stored [storage_type]


" + var/dat = "
Recently Stored [storage_type]

" for(var/person in frozen_crew) - dat += " - [person]
" - dat += "
" + dat += " - [person]
" + dat += "
" - user << browse(dat, "window=cryolog") + var/datum/browser/cryolog_win = new(user, "cryolog", "Cryogenic Storage Log") + cryolog_win.set_content(dat) + cryolog_win.open() if(href_list["view"]) if(!allow_items) @@ -96,19 +99,21 @@ var/global/list/frozen_crew = list() to_chat(user, SPAN_WARNING("There are no stored objects.")) return - var/dat = "
Recently Stored Objects


" + var/dat = "
Recently Stored Objects


" for(var/obj/item/I in frozen_items) - dat += " - [I.name]
" - dat += "
" + dat += " - [I.name]
" + dat += "
" - user << browse(dat, "window=cryoitems") + var/datum/browser/cryoitems_win = new(user, "cryoitems", "Cryogenic Storage Log") + cryoitems_win.set_content(dat) + cryoitems_win.open() else if(href_list["item"]) if(!allow_items) return if(frozen_items.len <= 0) - to_chat(user, SPAN_NOTICE("There is nothing to recover from storage.")) + to_chat(user, SPAN_WARNING("There is nothing to recover from storage.")) return var/obj/item/I = input(user, "Please choose which object to retrieve.", "Object recovery", null) as null|anything in frozen_items @@ -116,12 +121,14 @@ var/global/list/frozen_crew = list() return if(!(I in frozen_items)) - to_chat(user, SPAN_NOTICE("\The [I] is no longer in storage.")) + to_chat(user, SPAN_WARNING("\The [I] is no longer in storage.")) return visible_message(SPAN_NOTICE("The console beeps happily as it disgorges \the [I]."), range = 3) I.forceMove(get_turf(src)) + if(Adjacent(user)) + user.put_in_hands(I) frozen_items -= I log_and_message_admins("has retrieved \an [I] from \the [src]", user, get_turf(src)) @@ -130,7 +137,7 @@ var/global/list/frozen_crew = list() return if(frozen_items.len <= 0) - to_chat(user, SPAN_NOTICE("There is nothing to recover from storage.")) + to_chat(user, SPAN_WARNING("There is nothing to recover from storage.")) return visible_message(SPAN_NOTICE("The console beeps happily as it disgorges the desired objects."), range = 3) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 6dbe4fee33d..0593a49b071 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -109,35 +109,28 @@ interact(user) /obj/machinery/space_heater/interact(mob/user) - - - var/dat - dat = "Power cell: " + var/dat = "Power cell: " if(cell) - dat += "Detected
" + dat += "Detected
" else - dat += "Not Detected
" + dat += "Not Detected
" dat += "Power: " if(on) - dat += "On
" + dat += "On
" else - dat += "Off
" + dat += "Off
" - dat += "Power Level: [cell ? round(cell.percent(),1) : 0]%

" + dat += "Power Level: [cell ? round(cell.percent(),1) : 0]%

" dat += "Set Temperature: " - dat += "-" - - dat += " [set_temperature]K ([set_temperature-T0C]°C)" - dat += "+
" + dat += " [set_temperature]K ([set_temperature-T0C]°C) " + dat += "+
" user.set_machine(src) - user << browse("Space Heater Control Panel[dat]", "window=spaceheater") - onclose(user, "spaceheater") - return // needed? - - + var/datum/browser/heater_win = new(user, "spaceheater", "Space Heater Control Panel") + heater_win.set_content(dat) + heater_win.open() /obj/machinery/space_heater/Topic(href, href_list) if (usr.stat) diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm index 70427e28c5d..f67e26ed4e9 100644 --- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm +++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm @@ -37,26 +37,26 @@ ///////////////////Options for using captured souls/////////////////////////////////////// /obj/item/device/soulstone/attack_self(mob/user) - if (!in_range(src, user)) + if(!in_range(src, user)) return user.set_machine(src) - var/dat = "Soul Stone
" + + var/dat = "" for(var/mob/living/simple_animal/shade/A in src) - dat += "Captured Soul: [A.name]
" - dat += {"Summon Shade"} - dat += "
" - dat += {" Close"} - user << browse(dat, "window=aicard") - onclose(user, "aicard") - return - - - + dat += "Captured Soul: [A.name]
" + dat += "Summon Shade
" + dat += "This will summon the spirit of [A.name] in a pure energy form. Be cautious, for they will be weak without a protective construct to house them.
" + dat += "Close" + + var/datum/browser/soulstone_win = new(user, "soulstone", capitalize_first_letters(name)) + soulstone_win.set_content(dat) + soulstone_win.add_stylesheet("cult", 'html/browser/cult.css') + soulstone_win.open() /obj/item/device/soulstone/Topic(href, href_list) var/mob/U = usr if (!in_range(src, U)||U.machine!=src) - U << browse(null, "window=aicard") + U << browse(null, "window=soulstone") U.unset_machine() return @@ -65,7 +65,7 @@ switch(href_list["choice"])//Now we switch based on choice. if ("Close") - U << browse(null, "window=aicard") + U << browse(null, "window=soulstone") U.unset_machine() return diff --git a/code/modules/spell_system/spellbook/spellbook.dm b/code/modules/spell_system/spellbook/spellbook.dm index 5026f1d9a5a..352f9d8574f 100644 --- a/code/modules/spell_system/spellbook/spellbook.dm +++ b/code/modules/spell_system/spellbook/spellbook.dm @@ -78,14 +78,15 @@ var/list/artefact_feedback = list(/obj/structure/closet/wizard/armor = "HS", var/name = "" //name of target var/desc = "" //description of target var/info = "" //additional information + dat += "
" if(ispath(spellbook.spells[i],/datum/spellbook)) var/datum/spellbook/S = spellbook.spells[i] - name = initial(S.name) + name = html_decode(capitalize_first_letters(initial(S.name))) desc = initial(S.book_desc) info = "[initial(S.max_uses)] Spell Slots" else if(ispath(spellbook.spells[i],/obj)) var/obj/O = spellbook.spells[i] - name = "Artefact: [capitalize(initial(O.name))]" //because 99.99% of objects dont have capitals in them and it makes it look weird. + name = "Artefact: [capitalize_first_letters(initial(O.name))]" //because 99.99% of objects dont have capitals in them and it makes it look weird. desc = initial(O.desc) else if(ispath(spellbook.spells[i],/spell)) var/spell/S = spellbook.spells[i] @@ -110,9 +111,14 @@ var/list/artefact_feedback = list(/obj/structure/closet/wizard/armor = "HS", if(spellbook.book_flags & CAN_MAKE_CONTRACTS) dat += " Make Contract" dat += "
[desc]
" + dat += "
" dat += "
Re-memorize your spellbook.
" dat += "
[spellbook.book_flags & LOCKED ? "Unlock" : "Lock"] the spellbook.
" - user << browse(dat,"window=spellbook") + + var/datum/browser/spellbook_win = new(user, "spellbook", spellbook.title) + spellbook_win.set_content(dat) + spellbook_win.add_stylesheet("spellbook", 'html/browser/spellbook.css') + spellbook_win.open() /obj/item/spellbook/Topic(href,href_list) ..() @@ -233,7 +239,7 @@ var/list/artefact_feedback = list(/obj/structure/closet/wizard/armor = "HS", return "You learn the spell [S]" /datum/spellbook - var/name = "\improper book of tomes" + var/name = "book of tomes" var/desc = "The legendary book of spells of the wizard." var/book_desc = "Holds information on the various tomes available to a wizard" var/feedback = "" //doesn't need one. diff --git a/code/modules/spell_system/spellbook/variants/battlemage.dm b/code/modules/spell_system/spellbook/variants/battlemage.dm index 508c694c69e..2f34dc94184 100644 --- a/code/modules/spell_system/spellbook/variants/battlemage.dm +++ b/code/modules/spell_system/spellbook/variants/battlemage.dm @@ -3,7 +3,7 @@ /datum/spellbook/battlemage - name = "\improper battlemage's bible" + name = "battlemage's bible" feedback = "BM" desc = "A treatise on the use of magic in combat situation." book_desc = "Mix physical with the mystical in head to head combat." diff --git a/code/modules/spell_system/spellbook/variants/cleric.dm b/code/modules/spell_system/spellbook/variants/cleric.dm index 60d89e08ada..371411d3c50 100644 --- a/code/modules/spell_system/spellbook/variants/cleric.dm +++ b/code/modules/spell_system/spellbook/variants/cleric.dm @@ -2,7 +2,7 @@ spellbook_type = /datum/spellbook/cleric /datum/spellbook/cleric - name = "\improper cleric's tome" + name = "cleric's tome" feedback = "CR" desc = "For those who do not harm, or at least feel sorry about it." book_desc = "All about healing and control. Mobility and offense comes at a higher price but not impossible." diff --git a/code/modules/spell_system/spellbook/variants/druid.dm b/code/modules/spell_system/spellbook/variants/druid.dm index 3ab3913b4cc..baa010e83b0 100644 --- a/code/modules/spell_system/spellbook/variants/druid.dm +++ b/code/modules/spell_system/spellbook/variants/druid.dm @@ -2,7 +2,7 @@ spellbook_type = /datum/spellbook/druid /datum/spellbook/druid - name = "\improper druid's leaflet" + name = "druid's leaflet" feedback = "DL" desc = "It smells like an air freshener." book_desc = "Summons, nature, and a bit o' healin." diff --git a/code/modules/spell_system/spellbook/variants/necromancer.dm b/code/modules/spell_system/spellbook/variants/necromancer.dm index d60dfc6b4e5..1e9fd0d6f75 100644 --- a/code/modules/spell_system/spellbook/variants/necromancer.dm +++ b/code/modules/spell_system/spellbook/variants/necromancer.dm @@ -3,7 +3,7 @@ /datum/spellbook/necromancer - name = "\improper necromancer's grimoire" + name = "necromancer's grimoire" feedback = "NG" desc = "A grimoire full of spells dealing with the death and the afterlife." book_desc = "A spellbook full of dark magic dealing mostly with the afterlife." diff --git a/code/modules/spell_system/spellbook/variants/spatial.dm b/code/modules/spell_system/spellbook/variants/spatial.dm index a561d53b51f..a258ea0605b 100644 --- a/code/modules/spell_system/spellbook/variants/spatial.dm +++ b/code/modules/spell_system/spellbook/variants/spatial.dm @@ -2,7 +2,7 @@ spellbook_type = /datum/spellbook/spatial /datum/spellbook/spatial - name = "\improper spatial manual" + name = "spatial manual" feedback = "SP" desc = "You feel like this might disappear from out of under you." book_desc = "Movement and teleportation. Run from your problems!" diff --git a/code/modules/spell_system/spellbook/variants/standard.dm b/code/modules/spell_system/spellbook/variants/standard.dm index 7b305d3af5e..242e5832a3d 100644 --- a/code/modules/spell_system/spellbook/variants/standard.dm +++ b/code/modules/spell_system/spellbook/variants/standard.dm @@ -2,7 +2,7 @@ spellbook_type = /datum/spellbook/standard /datum/spellbook/standard - name = "\improper standard spellbook" + name = "standard spellbook" feedback = "SB" title = "Book of Spells and Artefacts" title_desc = "Buy spells using your available spell slots. Artefacts may also be bought however their cost is permanent." diff --git a/code/modules/spell_system/spellbook/variants/student.dm b/code/modules/spell_system/spellbook/variants/student.dm index e2b968dbaa0..34d564eb997 100644 --- a/code/modules/spell_system/spellbook/variants/student.dm +++ b/code/modules/spell_system/spellbook/variants/student.dm @@ -9,7 +9,7 @@ ..() /datum/spellbook/student - name = "\improper student's spellbook" + name = "student's spellbook" feedback = "ST" desc = "This spell book has a sticker on it that says, 'certified for children 5 and older'." book_desc = "This spellbook is dedicated to teaching neophytes in the ways of magic." diff --git a/html/browser/cult.css b/html/browser/cult.css new file mode 100644 index 00000000000..9726bfe3e76 --- /dev/null +++ b/html/browser/cult.css @@ -0,0 +1,42 @@ +.uiTitle, +head, +header { + background-color: #4b1b1b; + color: #e02b2b; +} + +body { + background-color: #3a1515; + color: #ec2d2d; +} + +hr { + background-color: #581f1f; +} + +a, +a:link, +a:visited, +a:active, +.linkOn, +.linkOff { + background: #5a2222; + color: #ff6868; + transition: background 0.2s, color 0.2s; +} + +a:hover { + background: #ff6868; + color: #5a2222; +} + +.rune-block { + background-color: #3a1515; + color: #ec2d2d; + transition: background-color 0.2s, color 0.2s; +} + +.rune-block:hover { + background-color: #240d0d; + color: #ff1616; +} \ No newline at end of file diff --git a/html/browser/misc.css b/html/browser/misc.css new file mode 100644 index 00000000000..db992bdf91d --- /dev/null +++ b/html/browser/misc.css @@ -0,0 +1,39 @@ +h1, +h2, +h3, +h4, +h5, +h6 { + padding: 8px 0 4px 0; + color: #5c87a8; +} + +table { + border-collapse: collapse; +} + +tr.build { + border-bottom: 1px solid transparent; + transition: background-color 0.2s, color 0.2s, border 0.2s; +} + +tr.build:hover { + border-bottom: 1px solid #5c87a8; + background-color: #1d1d1d; + color: #99c2c9; +} + +.no-build { + display: inline-block; + color: #141414; + text-decoration: none; + background-color: #7c7c7c; + border: 1px solid #161616; + padding: 1px 4px 1px 4px; + margin: 0 2px 0 0; + cursor: default; +} + +.inline { + display: inline; +} \ No newline at end of file diff --git a/html/browser/spellbook.css b/html/browser/spellbook.css new file mode 100644 index 00000000000..7706b23753b --- /dev/null +++ b/html/browser/spellbook.css @@ -0,0 +1,39 @@ +.uiTitle, +head, +header { + background-color: #371146; + color: #cb6df0; +} + + +body { + background: #3e144e; + color: #d486f3; +} + +a, +a:link, +a:visited, +a:active, +.linkOn, +.linkOff { + background: #591b72; + color: #ce7dee; + transition: background 0.2s, color 0.2s; +} + +a:hover { + background: #ce7dee; + color: #591b72; +} + +.spell-block { + background-color: #3e144e; + color: #d486f3; + transition: background-color 0.2s, color 0.2s; +} + +.spell-block:hover { + background-color: #280c33; + color: #e39bff; +} \ No newline at end of file diff --git a/html/changelogs/geeves-better_uis.yml b/html/changelogs/geeves-better_uis.yml new file mode 100644 index 00000000000..71e8e116be2 --- /dev/null +++ b/html/changelogs/geeves-better_uis.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Improved the UIs of, Memories/Notes, cult tomes, autolathes, biogenerators, chem heaters, wizard spellbooks, cryopods, soulstones, space heaters." \ No newline at end of file