Commit Graph

265 Commits

Author SHA1 Message Date
Matt Atlas
3b6f7996c4 Human Sprites 2: The Desimpsonifying (#7057) 2019-11-09 11:23:42 +02:00
Lady Fowl
f9334feb41 Client FPS Tweak (#7127)
Allows you to set your FPS via preferences
2019-10-18 23:37:44 +03:00
Karolis
c540d9d021 dark skin for reals (#7084)
This passed review with (#7035) let's get this.
2019-09-28 23:09:01 +03:00
Karolis
61f6e5a6c1 Styles basic HTML UIs (#7001) 2019-09-24 00:42:15 +04:00
Werner
612bb40e30 Removes the option to join as random job. (#6886) 2019-09-08 12:24:42 +03:00
Alberyk
2824a51cf0 Adds more depth to citizenship and religion choices at the character setup (#6785)
This pr adds some depth to the citizenship and religion choices at the character setup.
Citizenship will now affect your loadout and mission as a consular officer.
Religion will now affect your chaplain's religion name, bible name and sprite.
Selecting any option will bring a small lore pop up for citizenship and religion choices.
2019-08-16 19:16:20 +03:00
Erki
38e4b5d77b Implement "send_link" macro (#6767)
When to_chat gets converted to a proc, then the construct of to_chat(some, link(url)) will no longer work. Or will produce odd results.

As a result, the send_link macro is now created. Replaced existent instances of the previous construct and added a simple grep check for this as well. It won't catch all, probably, but it'll catch the most common instances.
2019-07-22 01:22:44 +03:00
Erki
bd2d9a184d Better factions and contractors (#6493)
Intent of this PR: make factions actually matter.

How we're going to do this:

Make factions limit job choices.
Make factions have alternative loadouts that override job uniforms
Make factions be visible in the employment records.
Revert existing faction loadout options or put them behind a preference, in favour of new shit.
2019-07-16 00:21:34 +03:00
LordFowl
8d436c4a03 Converts all necessary << outputs into the to_chat() macro. (#6076)
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;

All << is converted into to_chat().
2019-03-10 23:39:03 +02:00
Werner
7a03f16d1c Fix Logging Error (#5823) 2018-12-23 01:28:51 +02:00
Werner
af0a4df520 Better antag tracking (#5816)
This PR moves the tracking of the antagonists from the char spawn to the assignment and removal of the antag status.

It should properly account for all antags that are added/removed via the add_antagonist / remove_antagonist verbs
2018-12-22 23:42:47 +02:00
Werner
2447da3d6e Adds additional logging to figure out what causes NULL job entries in the db (#5494)
Adds additional logging to figure out what causes NULL job entries in the db
Adds logging of the alt_titles the chars join with.
2018-11-01 11:42:48 +02:00
Karolis
4065e29e86 Vue.js UI implementation (#4868)
This UI is going to be more integrated with BYOND host objects. It's update principal is very different from nanoui's. It is based around state that is being synchronized with server and client (browser). Such synchronization has it's problems, like it can't handle rapid changes, what could cause client and server to become out of sync and client state to be discard.
2018-08-04 20:19:29 +03:00
Lohikar
9c33cc2e09 Minor refactors/fixes (#4589)
changes:

Underwear has been promoted to a human layer; this might fix some potential issues with human icon caching.
turf/Entered() code has been cleaned up and proximity checks have been timerized.
Fixed an issue where openspaces wouldn't render objects that entered an openspace after init.
Shortened organ keymap prefix as it didn't really need to be that long.
2018-04-15 22:13:24 +03:00
LordFowl
64e386785c Abling Disability (#4485)
This PR implements a system for manipulating a client's color safely and also ports a prioritization system for sorting client color from /tg/. Currently this PR also implements client coloration in the form of color blindness, namely:
Monochromacy
Deuteranopia
Tritanopia
Protanopia

DTP are mild brain traumas, whereas monocrhomacy is a severe brain trauma.
Furthermore, this PR removes the Needs Glasses prompt in character creation, and replaces it with a disability selector, allowing people to more closely refine their special little snowflakes.
Current disabilities available:
Nervousness
Nearsightedness
Deuteranopia
Tritanopia
Protanopia
Deafness
Muteness
2018-04-05 21:57:50 +03:00
Lohikar
0abc1d2a65 Repath a bunch of things to /mob/abstract childtypes (#4111)
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes.

* Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
2018-01-24 11:27:14 +01:00
Lohikar
2fddb0a25c Bag styles (#4099)
changes:

You can now select in preferences if you want to take a generic (grey) bag instead of your job-specific variant.
Cleaned up some leftover bagcode from before the bag type vars.
2018-01-21 01:05:33 +02:00
chaoko99
c0ee47579d Adds a preference to have an intent check for guns (#3653)
what title says
2017-12-17 11:37:16 +02:00
chaoko99
0999a3ccd0 Space Dust Parallax defaults on. (#3581) 2017-10-13 17:41:19 +03:00
Alberyk
a53ccd1453 Changes default occupation's preference to return to lobby (#3570)
This will reduce the ammount of people getting jobs they do not want and then having to cryo/ask admins for a respawn.
Fixes #3571
2017-10-07 20:32:18 +02:00
Alberyk
011b5506c4 Adds messenger bags (#3289)
Ports the messenger bags from baystation 12, also adds the syndicate and wizard version. And fixes some issues with some jobs missing the bag vars and miners not getting their industrial bags.
2017-08-20 14:02:55 +03:00
Lohikar
eace452b30 Human icon key & preferences tweaks (#3274)
changes:

Reworked how human body icon keys are generated; resulting keys should be much shorter now and involve less duplication of the same string.
Players are now shown a message when they try to add markings to a species that has none available.
Admin revive for human-types will now also re-apply their organ and marking prefs.
Admin revive now also resets shock_stage (fixes rejuv'd mobs being slow for a while)
2017-08-14 01:01:40 +03:00
skull132
324dba97dc Fix some runtimes (#2755) 2017-06-18 13:48:24 +03:00
Alberyk
0e977d08e6 Ports baystation character preview system (#2630)
Ports the bay's character preview system, which is far better to observe aesthetic changes in the character creation, also solves the issues such as markings don't showing up at the character selection menu.
2017-06-09 15:14:24 +03:00
Alberyk
17354e5109 Ports body markings from polaris (#2607)
Ports the body marking system from polaris. And I think I got all the SQL related procs.
2017-06-06 00:43:45 +03:00
skull132
a3ec0cf45d Better SQL prepared statements (#2474)
The system used to be of complexity O(n^2). Essentially two for loops running per every argument. Which ended up being surprisingly slow (there were instances where I saw the argument parser as using quite a lot of CPU time).

This replaces it with a more linear algorithm. It's somewhere near O(n) where n is the length of the unparsed query. Which is more stable and faaaster. This comes with two changes, however:

Parameters inside the query now have to be delimited from both sides with : (colons). The alternative to this would be to use something like $n or just assume that space marks the end of a marker. Only the former is workable, the latter would break a few queries already.
Arguments in the argument array no longer have to be prefixed by : (colons). So, while in the query you would write :thing:, you'd initialize the array of args as: list("thing" = somevar). It could be made to work without it, but eh, I think this is fine.
Argument validation is slightly weaker. What I mean by this is that with the old system, unused keys would result in an error. This is no longer a thing. Missing keys will still result in an error, however.
One more improvement: double delimiting removes an edge case where if key A partially covers key B, depending on the order, key A would mangle key B.
Updated and tested all queries that I could find. So this should be good.
2017-05-29 21:17:41 +03:00
skull132
4678b8bbcc Implement signatures (#2098) 2017-05-27 12:39:22 +03:00
Lohikar
2a0353d8f9 Progress bar pref (#1938)
changes:

Players can now toggle progress bars on/off in Preferences.
This just adds another flag to the parallax toggles pref to keep things simple.
2017-03-19 11:39:23 +02:00
Lohikar
73c29bd5a7 Miscellaneous Fixes (#1868)
changes:

Engineering now actually gets engineering-type alert consoles instead of the non-functional base type.
Lighting is no longer broken by shuttles.
The ERT shuttle autoannouncer should no longer cause lighting runtimes.
Fixed some bad newlines in some character setup help texts.
Custom loadout tweaks now properly write to SQL.
Custom loadout is now saved as JSON.
Players are now shown a notice when the server was unable to load their custom loadout.
Drowsyness is now clamped to zero.
Added some new tips to the example.
Tweaked some tips' grammar.
Removed some tips that do not apply to our code base.
Probably fixes embraced vampire thralls not getting vampire verbs.
Fixes #1844.
Fixes #1835.
Probably fixes #1687.
Probably fixes #1824.
Fixes #1839
2017-03-05 15:14:28 +02:00
Lohikar
0cba68911d Lighting Overhaul & General process improvements (#1612)
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.

changes:

New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.
2017-01-29 01:13:54 +02:00
skull132
b5c9958ab7 Fixes no client passed to delete_character_sql() (#1570) 2017-01-14 20:57:28 +02:00
skull132
9d3556283e Fix #1490, #1495, #1430, #1425, #1472, plus spacelube (#1537)
Fixes #1490
Fixes #1495
Fixes runtimes from meteors.
Fixes #1430
Fixes #1425
Fxies #1472
Fixes spacelube not drying.
2017-01-12 23:07:46 +02:00
skull132
f0878244b9 Fix the thing (#1467) 2017-01-08 15:56:41 +02:00
skull132
a79808984e Fix Save ops order (#1367)
And fix field nulling if the database doesn't return anything.
2017-01-02 00:44:46 +02:00
LordFowl
bc8871ac2b Shells and Periphery (#1327)
Adds Shells. Adds tags. Adds IPC subspecies. Adds HK-47's. Does not add IPC construction.

Beyond the obvious review of shells, the exact stats of the IPC subspecies need review. They were largely an afterthought, and quickly overshadowed by the shell project.
2016-12-28 02:23:26 +02:00
skull132
22c43472ae More Merge Fixes (#1304)
* Fixes SQL saving of hex numbers
* Removes completed TODO-MERGE notes
* Changes one instance of Galactic Common to Ceti Basic
* Renames instances of blind.layer to blind.invisibility (as is proper)
* Fixes the SQL schema some more
* Implements pAI saving
2016-12-26 02:34:29 +02:00
LordFowl
93143a8e45 Vaurca Update Dec2016 (#1289)
Adds Vaurca subspecies and a whole slew of content related to them. Also, custom organs for them.
2016-12-25 01:11:09 +02:00
skull132
24258106da SQL Saves - Season 2 Episode 2 - The Fixening (#1286)
Update the schema
 Modify player_preferences and character related tables
 Readd the incidents + missing CCIAA tables to it
 Fix loading
 Fix saving
 Make it impossible to edit character name after a while
 Sanity check so you cannot enter without a valid (saved) character
 Fix New Character button
 Remove debug messages

Fixes #600 
Fixes #588
2016-12-25 00:56:36 +02:00
Alberyk
b247ba78a4 Adding socks (#1284)
The long waited sock update;

Socks are being added as another underwear like option, with some exclusive ones for females. Only humans (and squish) can have them atm.

Also, I am nearly sure this will work.
2016-12-24 04:28:43 +02:00
LordFowl
51bd200d7c Porting Apollo Infractions Computer (#1033)
Ports Apollo's infraction's system, creating a permanent criminal record for every character. Every minor or medium infraction accrued over the course of a round is added to the character's permanent security record which is available at vanilla records councils. Antagonists are automatically exempt from this process, and players can exercise control over what charges they consider canon or not.

Brigging a person is now dependent on the criminal sentencing computer, which reads a person's ID and applies a brig timer automatically for the charges selected. Personnel without ID's will have to be brigged manually.
2016-12-23 01:00:04 +02:00
skull132
0b26cd9ab1 Fix more things 2016-12-18 00:42:49 +02:00
skull132
ff7f93cbd8 Saving + Updating + ALL THE THINGS
Everything. Absoloutely positively everything. Fuck.

Hey, it compiles now, doe!
2016-12-11 21:44:35 +02:00
skull132
7925063160 SQL Saves - Sanitization
Everything is now proper good sanitized!
2016-12-10 19:48:00 +02:00
skull132
e9b688e1f6 Merge branch 'development-2' into development
Christ on a stick. SO MANY ERRORS. REEE.

# Conflicts:
#	baystation12.dme
#	code/_helpers/lists.dm
#	code/_helpers/logging.dm
#	code/_helpers/text.dm
#	code/_onclick/click.dm
#	code/controllers/configuration.dm
#	code/controllers/master_controller.dm
#	code/datums/supplypacks.dm
#	code/game/antagonist/antagonist.dm
#	code/game/antagonist/antagonist_print.dm
#	code/game/antagonist/outsider/commando.dm
#	code/game/antagonist/outsider/ninja.dm
#	code/game/area/areas.dm
#	code/game/gamemodes/cult/cult_items.dm
#	code/game/gamemodes/game_mode.dm
#	code/game/jobs/access.dm
#	code/game/machinery/atmoalter/canister.dm
#	code/game/machinery/autolathe.dm
#	code/game/machinery/doors/airlock.dm
#	code/game/machinery/recharger.dm
#	code/game/machinery/suit_storage_unit.dm
#	code/game/mecha/mech_fabricator.dm
#	code/game/mecha/mecha.dm
#	code/game/objects/effects/spiders.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/PDA/PDA.dm
#	code/game/objects/items/devices/flash.dm
#	code/game/objects/items/devices/lightreplacer.dm
#	code/game/objects/items/devices/paicard.dm
#	code/game/objects/items/devices/scanners.dm
#	code/game/objects/items/devices/suit_cooling.dm
#	code/game/objects/items/devices/uplink.dm
#	code/game/objects/items/robot/robot_upgrades.dm
#	code/game/objects/items/toys.dm
#	code/game/objects/items/weapons/cards_ids.dm
#	code/game/objects/items/weapons/handcuffs.dm
#	code/game/objects/items/weapons/manuals.dm
#	code/game/objects/items/weapons/material/kitchen.dm
#	code/game/objects/items/weapons/material/misc.dm
#	code/game/objects/items/weapons/material/swords.dm
#	code/game/objects/items/weapons/melee/energy.dm
#	code/game/objects/items/weapons/melee/misc.dm
#	code/game/objects/items/weapons/scrolls.dm
#	code/game/objects/items/weapons/storage/belt.dm
#	code/game/objects/items/weapons/stunbaton.dm
#	code/game/objects/items/weapons/tools.dm
#	code/game/objects/objs.dm
#	code/game/objects/structures/crates_lockers/closets.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/janicart.dm
#	code/game/sound.dm
#	code/game/turfs/simulated.dm
#	code/game/verbs/ooc.dm
#	code/global.dm
#	code/modules/admin/verbs/debug.dm
#	code/modules/admin/verbs/modifyvariables.dm
#	code/modules/client/client procs.dm
#	code/modules/client/preferences.dm
#	code/modules/clothing/clothing.dm
#	code/modules/clothing/head/hardhat.dm
#	code/modules/clothing/head/helmet.dm
#	code/modules/clothing/head/jobs.dm
#	code/modules/clothing/head/misc_special.dm
#	code/modules/clothing/shoes/jobs.dm
#	code/modules/clothing/spacesuits/alien.dm
#	code/modules/clothing/spacesuits/captain.dm
#	code/modules/clothing/spacesuits/miscellaneous.dm
#	code/modules/clothing/spacesuits/rig/rig_pieces.dm
#	code/modules/clothing/spacesuits/rig/suits/alien.dm
#	code/modules/clothing/spacesuits/spacesuits.dm
#	code/modules/clothing/spacesuits/void/merc.dm
#	code/modules/clothing/spacesuits/void/void.dm
#	code/modules/clothing/suits/armor.dm
#	code/modules/clothing/suits/jobs.dm
#	code/modules/clothing/suits/storage.dm
#	code/modules/clothing/suits/utility.dm
#	code/modules/clothing/suits/wiz_robe.dm
#	code/modules/clothing/under/jobs/security.dm
#	code/modules/economy/Events.dm
#	code/modules/economy/Events_Mundane.dm
#	code/modules/economy/economy_misc.dm
#	code/modules/events/blob.dm
#	code/modules/events/event.dm
#	code/modules/events/event_container.dm
#	code/modules/events/event_manager.dm
#	code/modules/events/money_lotto.dm
#	code/modules/events/prison_break.dm
#	code/modules/events/spacevine.dm
#	code/modules/hydroponics/trays/tray.dm
#	code/modules/mob/dead/observer/observer.dm
#	code/modules/mob/emote.dm
#	code/modules/mob/holder.dm
#	code/modules/mob/language/station.dm
#	code/modules/mob/living/bot/cleanbot.dm
#	code/modules/mob/living/carbon/alien/diona/diona.dm
#	code/modules/mob/living/carbon/alien/diona/diona_attacks.dm
#	code/modules/mob/living/carbon/give.dm
#	code/modules/mob/living/carbon/human/emote.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/inventory.dm
#	code/modules/mob/living/carbon/human/life.dm
#	code/modules/mob/living/carbon/human/species/outsider/vox.dm
#	code/modules/mob/living/carbon/human/species/station/golem.dm
#	code/modules/mob/living/carbon/human/species/station/station.dm
#	code/modules/mob/living/carbon/human/update_icons.dm
#	code/modules/mob/living/carbon/metroid/metroid.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defense.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/living/silicon/ai/ai.dm
#	code/modules/mob/living/silicon/pai/admin.dm
#	code/modules/mob/living/silicon/pai/pai.dm
#	code/modules/mob/living/silicon/robot/drone/drone.dm
#	code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
#	code/modules/mob/living/silicon/robot/emote.dm
#	code/modules/mob/living/silicon/robot/robot_items.dm
#	code/modules/mob/living/silicon/robot/robot_modules.dm
#	code/modules/mob/living/silicon/silicon.dm
#	code/modules/mob/living/simple_animal/bees.dm
#	code/modules/mob/living/simple_animal/friendly/cat.dm
#	code/modules/mob/living/simple_animal/friendly/corgi.dm
#	code/modules/mob/living/simple_animal/friendly/farm_animals.dm
#	code/modules/mob/living/simple_animal/friendly/mouse.dm
#	code/modules/mob/living/simple_animal/friendly/spiderbot.dm
#	code/modules/mob/living/simple_animal/hostile/hostile.dm
#	code/modules/mob/living/simple_animal/simple_animal.dm
#	code/modules/mob/logout.dm
#	code/modules/mob/mob.dm
#	code/modules/mob/mob_grab_specials.dm
#	code/modules/mob/mob_helpers.dm
#	code/modules/mob/new_player/sprite_accessories.dm
#	code/modules/organs/organ.dm
#	code/modules/organs/organ_alien.dm
#	code/modules/organs/organ_external.dm
#	code/modules/paperwork/faxmachine.dm
#	code/modules/projectiles/ammunition/boxes.dm
#	code/modules/projectiles/ammunition/bullets.dm
#	code/modules/projectiles/guns/energy/nuclear.dm
#	code/modules/projectiles/guns/energy/rifle.dm
#	code/modules/projectiles/guns/energy/special.dm
#	code/modules/projectiles/guns/projectile.dm
#	code/modules/projectiles/guns/projectile/automatic.dm
#	code/modules/projectiles/guns/projectile/pistol.dm
#	code/modules/projectiles/guns/projectile/revolver.dm
#	code/modules/projectiles/guns/projectile/shotgun.dm
#	code/modules/projectiles/projectile/bullets.dm
#	code/modules/projectiles/projectile/special.dm
#	code/modules/reagents/reagent_containers.dm
#	code/modules/reagents/reagent_containers/food/drinks.dm
#	code/modules/research/designs.dm
#	code/modules/research/destructive_analyzer.dm
#	code/modules/research/rdconsole.dm
#	code/modules/spells/artifacts.dm
#	code/modules/spells/spellbook.dm
#	code/modules/tables/tables.dm
#	code/world.dm
#	config/example/config.txt
#	icons/mob/items_lefthand.dmi
#	icons/mob/items_righthand.dmi
#	icons/obj/lighting.dmi
2016-10-31 00:01:52 +02:00
LordFowl
660a5d0063 Miscellaneous Content Patch (#1002)
rscadd: "Added three new energy-based weapons, one designed purely for pest-control."
rscadd: "Added a new rare handpistol, based off of a proposed competitor to the NT Mk58."
rscadd: "Added a new pet for the Head of Security - the PTR-7 Tranquilizer Rifle."
rscadd: "Syndicate manhack delivery grenades are now available via the traitor uplink."
rscadd: "Manhacks will no longer attack anyone belonging to the 'syndicate' faction, including Heist pirates."
tweak: "Tweaked loadout customisation whitelists, generally making them more restrictive by role."
bugfix: "It is no longer possible to be older or younger than your species ought to be."
2016-10-22 23:26:42 +03:00
skull132
87e041aa75 Merge remote-tracking branch 'bay12-upstream/master' into development 2016-10-07 00:58:39 +03:00
Alberyk
0c8f3c007d Adding old code duffel bags and mercs/wizards bags (#817)
Bringing back our duffel bags and antags packbags from old code.
2016-08-27 18:22:05 +02:00
NanakoAC
d6803a26e3 Respawning Tweaks (#646)
changes:

rscadd: "Respawn timers are now tracked individually for playing as animals (mice), small synthetics (drones and pAIs) and crew (everything else). This means you can now play as a mouse or drone while waiting to respawn as a full crewmember.".
tweak: "You can now spawn as a drone immediately upon joining as an observer, without having to wait ten minutes. There is still a cooldown between respawning as a drone if you just died as one."
tweak: "Slightly improved the error messages if you try to respawn when you've not waited long enough."
In addition, unlisted changes:
The admin verb 'Allow player to respawn' now sets all three respawn timers
Respawn times are now centralised in setup #defines, for easier editing in future
Nonliving mobs will no longer attempt to ghost when deleted. A comment in mob.dm explains this change
2016-08-03 22:34:41 +03:00
NanakoAC
40b1cec944 PAI Candidacy Fix (#666)
Fixes #108 
Fixes #661 
Fixes #608
2016-08-03 22:33:44 +03:00
skull132
b5b1f7abad Not hard-deleting characters (#552)
Characters are no longer hard deleted from the database.
This makes it so that persistent records about characters can't be fucked up.
2016-07-11 16:53:42 +03:00