Commit Graph

668 Commits

Author SHA1 Message Date
Militaires
cecf676684 [Ready] Outputs datum (#41535)
Idea and instructions by @Razharas, many thanks.

This PR only implements the framework required to catalog as well as play the sounds. Their to_chat text, and icons (if any) are not included, are to be pushed in a separate PR.

This PR does not remove the old playsound_local system, it is kept for the sake of not necessitating a direct changeover of every single playsound in the code, which will surely cause a lot of merge conflicts. It does however, replace bike horns' and toy nukes' means of playback to this datum, purely as proof of concept.

Playsound_local may remain in the code to support playback of admin-uploaded sounds that do not have an inherent datum. Playsound will likely be renamed to something else in the next PR to reflect its new, more universal function. We will see.

New process for adding sounds:

    Create a new datum/outputs subtype.
    If you wish, write down some supporting text; this gives further meaning to the sound.
    Add multiple sounds to the sounds list, and weight them as you wish. (New)
    Add a sound icon if you wish, it defaults to a generic sound circle anyways though.
    playsound(/datum/outputs/new_subtype, receiver), and it will deliver, icon, sound, and text to the receiver.

Maintaining implication is that from now on playsound should only be processing datum/outputs

This pr intends to gut to_chats that are added alongside playsounds in the code.
This pr eliminates the need to initialize sounds in a list so that you can weight them or have the game play them randomly from the list.

Sound Rings
Currently, only mobs with the audiolocation var may view them. Sound icons have an alpha that depends on the volume of the sound, louder sounds create a more opaque image

Sound rings are completely modular and may be changed to any image.

In addition to renaming playsound to reflect its new function. I intend to give blind people sound icons at the cost of their small view, but that is for another PR.

cl Basilman
refactor: refactored how sounds are stored and played
add: Added sound rings and supporting text
/cl
2019-02-04 10:25:48 +13:00
kevinz000
a7e974f9d3 [READY]Ports yet another SDQL2 upgrade, refactors SDQL2 to a datum, adds SDQL2 options/more features (#42008)
Thanks to PJB3005
cl
experimental: SDQL2 has been refactored to a datum!
rscadd: A new SDQL2 panel has been added to admin tabs, for tracking, VVing, and halting SDQL2 queries.
rscadd: SDQL2 documentation is now available in SDQL_2.dm
rscadd: SDQL2 now has MAP added. MAP will cause the query to execute on whatever is specified in MAP, whether it's a variable or a procedure call (which will grab the return results), etc etc.
rscadd: SDQL2 now has a superuser mode, for uses outside of admin button pressing. This causes it to operate without admin protection wrapping.
rscadd: SDQL2 now supports options, including ignoring nulls in select or forcing it to operate in high priority mode, which lets it use 95% of the tick instead of obeying the Master Controller's tick limit. USE WITH CAUTION. Also includes a mode for blocking proccalls
rscadd: SDQL2 now supports TRUE/FALSE.
rscadd: To use options, append OPTIONS to the query. Available are "PRIORITY" = HIGH/NORMAL, "SELECT" = FORCE_NULLS/DISABLE or 0/FALSE, "PROCCALL" = ASYNC/BLOCKING.
/cl

Also displaytimetext is refactored.
2019-01-07 20:03:41 +13:00
0d0be32b607ee4ecbc2358f3dd4a27de
00762e4851 [I GUESS THIS MIGHT BE TESTMERGED? I DUNNO] return of the ling action buttons (#41928)
cl 0d0be32, PKPenguin321, Armhulen, epochayur
refactor: Changeling powers are now action buttons rather than verbs.
imageadd: Thanks to epochayur for creating and compiling sprites for every single changeling action button!
imageadd: Thanks to Armhulen for the changeling button background sprite!
/cl

original pr #35394

the two main bugs i saw are fixed. reviving works, monkeyform/humanform works

fixes #41899
2019-01-03 11:33:18 +13:00
XDTM
9f74fef3d5 Allows the antimagic component to react to spells, limits holymelon uses (#41739) 2018-12-17 19:09:35 -05:00
Qustinnus
b9f5dbac6b Adds a new race: Ethereal (also adds wrappers for nutrition adjustment) (#40995)
cl Qustinnus / Floyd / Ethereal sprites by Space, is that it? / Alerts and food sprites by MrDroppodBringer
add: Adds Ethereal; a race which lives off of electricity and shines bright. If they are healthy they shine a bright green light, and the more damaged they are, the less they shine and the greyer they become. Their punches do burn damage and they are weak to blunt attacks!
They dont need to eat normal food and dont have nutrition, Instead they gain charge by going into borg rechargers, eating ethereal food or doign specific interactions.
refactor: all nutrition changes now go through a proc so we can override behavior
/cl

Adds Ethereal. A race which is essentialy inspired by Zoltan but then with different mechanics to make it fit with SS13 more. I'm trying to stay away from making them actually provide power but the change from nutrition to electricity seemed kind of fun.

They have the following specifications:

    They are walking lights; and shine bright and green if healthy, and get greyer and darker the more damaged they are. When dead they are just a grey unlit corpse.
    They do burn punch damage instead of blunt.
    They are weaker to blunt; especially when low on charge
    They have charge instead of nutrition. Charge is gained by some interactions or by going into a borg charger. or eating new ethereal food.
    They are slightly stronger to shock damage, and gain charge from it a bit; however, it is still deadly to them and thus they aren't free insulated gloves.
2018-11-29 10:09:56 +13:00
ShizCalev
dc019b09ba Fixes illiterate & blind mobs being able to read books (#41400)
cl ShizCalev
fix: Fixed inconsistency where illiterate and blind mobs were able to read some books/manuals, but not others.
fix: Fixed mobs being granted mime speak even if they failed to finish reading the Guide to Advanced Mimery Volumes 1/2.
/cl

Step towards resolving #41396
2018-11-12 21:10:21 +13:00
ShizCalev
24778debd1 Mob/topic fixes 2018-10-31 20:33:01 -04:00
Jordan Brown
fb0b3a19f0 Merge pull request #41144 2018-10-28 14:09:53 -04:00
ShizCalev
17d894fcba Adds examine messages to disembodied & robot heads (#40999)
cl ShizCalev
tweak: Added some examine messages to disembodied heads indicating if it's missing eyes, or if it's brain is nonfunctional.
tweak: Added some examine messages to cyborg parts to indicate their current construction status.
tweak: You can now remove the power cell and cut the wiring out of a cyborg chest during construction.
/cl

Small indicator to help alleviate some minor wastes of time (such as folks bringing suicider's heads to the roboticist instead of the chef.)

Added some missing destroy handling, fixed vars not being set and unset properly, cleaned up some duplicate code in human/examine handling for departed souls.
2018-10-27 13:10:55 +13:00
MrDoomBringer
3d24bc0f08 Prevents blob overminds, sentient diseases, etc. from dumping out boxes (#40823)
* nerf boxes

* uuh i think i see what you mean. hows this

* shuffles it over to mob.dm

* asdf

* hows this

* ooga

* i should probably rebase

* t

* cheaper and stronger unlike me

* aaaaa

* does the thing with the words
2018-10-26 22:03:09 +02:00
AnturK
9306d01f6f Adds old name tracking to player panel, cleans up some name assignments. 2018-10-25 20:39:51 +02:00
oranges
294cd92353 Merge pull request #40951 from ShizCalev/ID-fix
Fixes fully_replace_character_name not updating bank account names
2018-10-18 00:03:16 +13:00
AnturK
65412f4088 Adds helper global mob signals. (#40936)
global mob death and global mob created signal.
2018-10-18 00:02:00 +13:00
Emmett Gaines
5d8419541b Adds movetype based speed modifiers and makes the mood speed mod use it (#40581)
This allows us to more easily keep track of speed modifiers which only affect certain move modes. Also cleans up a small bit of movespeed and mood code while I'm at it.
2018-10-17 23:17:07 +13:00
ShizCalev
47cb992bd6 Fixes replace_identification_name not updating account names 2018-10-15 22:59:25 -04:00
kevinz000
3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00
XDTM
6f21758521 Handheld IDs are valid for authentication (#40456)
cl XDTM
tweak: Holding an ID in your hands uses it instead of your worn ID for authentication purposes.
tweak: If you don't have an ID in your id slot, the belt slot will be checked as well.
/cl

Fixes #40437

Makes sense if you want to use a specific access card without playing pocket tetris. The get_idcard has an argument for prioritizing worn id over held id, for stuff like identification.
2018-10-03 09:58:37 +13:00
Qustinnus
b4922d96a0 Emagged clown cars now come with siege-tank mode. (#40190)
cl Floyd / Qustinnus (thx to mrdoombringer for sprite + idea)
add: The clowncar now comes with an inbuilt cannon that can be activated by emagging its circuits
fix: cars can only kidnap if they have the CAN_KIDNAP trait
fix: removes a dot too much in a to_chat in clown car actions
/cl
2018-09-28 09:23:43 +12:00
ShizCalev
c66cbad2d0 [s] Fixes pride mirror exploit (#40477)
* Fixes pride mirror exploit

* Cleanup, adds no_tk check to canUseTopic
2018-09-26 12:34:10 +03:00
Emmett Gaines
31914a594e Componentizes orbiting (#40433)
cl ninjanomnom
fix: Orbiting is a little more aggressive about staying in orbit. The wisp as a result now correctly follows you over shuttle moves.
/cl

Goodbye SSorbit you ticking piece of shit

This also gives update_sight a signal so wisp code isn't hardcoded into it.
2018-09-25 18:23:27 +12:00
AnturK
a27be2fa14 Objective refactor (#40220)
* Objective refactor

* Custom antag types for leftover objectives.

* Removes dumbness.

* Forgot to hide these from TP

* Makes the list static.
2018-09-20 11:18:59 -04:00
Jordan Brown
e06f32b14d Adds null check to world status map check (#40305)
* Adds null check to world status map check

* Fix stat
2018-09-17 20:20:58 -04:00
Patrick Chieppe
2c8248575a Logging system refactor and improvement (#39521)
* Refactor several log lines to use datum_info_line and atom_loc_line

* Add default return strings from datum_info_line and atom_loc_line

* Add parentheses around atom_loc_line data

* Change more logs to use atom_loc_line

* Add check in atom_loc_line for turfs to avoid calling get_turf on them

* Re-add removed 'at'

* Replace datum_info_line with key_name and atom_loc_line with loc_name

* Refactor logging functions

* Avoid double-logging self-interactions

* Fallback to simple stringification if all else fails in key_name()

* Rewrite muscle spasm logging to use log_message

* Standardize logging of martial arts

* Tweak individual logging panel look

* Fix individual logging panel source

* When I typed || I really meant &&

* Fix Telecomms logging always showing client logs in the panel

* Reverts addition of buggy ownership log to panel

* Remove colon

* Fix missing log_directed_talk tag

* Add warning for missing type in log_direted_talk

* Change warnings to stack_traces

* Add square brackets around fallthrough key_name() case to help parsing

* Allow atom arguments/src in log_*() functions

* Change log_combat call with null argument to log_message

* Change mecha types' log_message() arguments to match atom and mob version

* Add key_name() case for atoms

* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it

* Fix log_globally logic

* Add logging for hitting objects with items

* Move log_combat() to atoms.dm

* Use utility functions for object stringification in log_combat()

* Use utility functions for object stringification in log_combat()

* Add missing logs for interacting with display cases

* Rewrite log_combat() comment

* Add missing space in log_combat()

* Add logging for hitting grilles barehanded

* Add missing ..()
2018-08-12 21:41:09 +02:00
kevinz000
5f4b418eaa Movespeed Modification System (#39181)
In preparation of pixel movement, I want to refactor our slowdown system to something more modular, and something that doesn't require /quite/ as many proccalls/calculations a tick. The way this works is intended to only have things recalculate when it's necessary, rather than calling it every move.
However, I've left movement_delay() in, as without completely redoing a lot of code it's not /quite/ ready at this point to tear it out completely, but I'm hoping everything can be transitioned over to this system later.
2018-08-09 16:55:15 -04:00
kevinz000
5b5e1ee577 Third time's the charm - Photography update: 7x7 cameras, photo logging with full metadata, persistent albums and wall frames! (#38944)
* Photography Update

* Pictures logged in their own /data/picture_logs folder rather than normal logs

* Pictures logged in their own /data/picture_logs folder rather than normal logs

* Photos broke, retrying

* Persistence stuff

* I'm almost done I promise!

* Persistence mostly working, compile, etc etc

* Persistence mostly working, compile, etc etc

* Remove something really not needed from the PR

* Prevents duplication

* default to off

* removes check tick

* increase slots in albums to 21

* Allows for singular loading

* Update camera_image_capturing.dm

* Addresses review

* Anturk

* Update camera.dm

* Update misc.dm

* Update datum.dm

* Update camera.dm
2018-08-01 14:52:41 +02:00
AnturK
db55efe45e Unsets focus on mob Destroy. (#39286) 2018-07-23 06:15:30 -04:00
XDTM
1532545638 Adds Rest hud button, adds small delay to getting up (#39052)
* Adds Rest hud button, adds small delay to getting up

* icons and icon code
2018-07-11 15:14:59 -04:00
Emmett Gaines
3167e2be86 Rewrites the antimagic component to properly use signals (#38649)
It's been updated to make use of the signal refactor and other code cleaned up. As a free side benefit I also made it work if applied to mobs directly.
2018-07-05 20:26:14 +12:00
ShizCalev
ff532a4ca4 Spellchecks TGStation 2018-06-19 18:57:44 -04:00
Tad Hardesty
a211dce412 Fix widescreen turf examine 2018-06-13 18:17:22 -07:00
Tad Hardesty
abbc32e0a1 Fix being able to examine out-of-view turfs 2018-06-13 00:06:20 -07:00
ShizCalev
3abd2b6d27 Cleans up logging 2018-06-09 15:51:58 -04:00
Tad Hardesty
78456aae3b Fix meson goggles and lantern wisps conflicting (#38211) 2018-06-07 21:33:22 -04:00
oranges
df02e48ecb Individual Logs now follow the client around automatically (#37790)
The logging is now stored in the persistent client/player_details datum,
that will survive an entire round

The existing mob log is retained and a new admin verb is added to access
it. It will only show logs for the mob in question, across all players
who possibly spent time in that mob

A new log type is added that tracks the mobs the player changes across
into and the times they occured, to better help admins manage complex
situations, this also appears in the mob log as a record of the players
who entered/exited control of the mob
2018-06-06 11:09:59 +02:00
Tad Hardesty
1d34850c73 Fix mecha mouse pointer issues (#38213)
* Fix mecha mouse pointer issues

* Migrate ranged ability mouse pointers to new system
2018-06-02 20:41:57 -04:00
vuonojenmustaturska
c65a99f130 Move NODROP_1, DROPDEL_1, ABSTRACT_1 and NOBLUDGEON_1 to item_flags where they belong (#38171)
* (mostly) nodrop

* (mostly) dropdel

* (mostly) abstract

* nobludgeon

* things i missed

* forgot one

* unintended changes

* energy handcuffs
2018-06-01 11:36:31 +02:00
ShizCalev
028231cb81 Updates BYOND links to use HTTPS (#37918)
* Updates BYOND links to use HTTPS

* revert

* if -> If
2018-05-19 19:50:05 -07:00
oranges
ecd0d8b538 Merge pull request #37476 from AnturK/thisalwaysbuggedme
Uppercases slot defines.
2018-04-28 13:13:56 +12:00
AnturK
2219c09ac8 Removes some unused code. (#37449) 2018-04-27 11:32:56 -04:00
AnturK
52a99c09d6 Uppercase slot defines 2018-04-27 10:38:32 +02:00
Fox McCloud
057aa31cda Kills off /obj/item/device (#37297)
* Kills off /obj/item/device

* whoops

* whoops

* Fix
2018-04-23 15:00:23 +02:00
kevinz000
f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
Cruix
dedf5f5ed9 Disease antagonist (#35988)
* Virus antagonist initial commit

* Updated disease code

* Sentient virus improvements

* Renamed /mob/living/var/viruses to diseases, and /mob/living/var/resistances to disease_resistances

* Added sentient virus event

* Renamed VIRUS defines to DISEASE defines

* Fixed bugs in rewritten disease code

* Fixed advanced disease Copy()

* Finalized disease antagonist

* Made cooldown buttons stop processing if they are removed from an owner.
Made sentient disease active sneeze and cough not available if the host is unconscious.
Made sentient disease menu refresh when adaptations are ready or hosts are added or removed.
Made sentient disease following use movement signals instead of fastprocess.

* Added better icons to sentient disease abilities
2018-03-05 13:55:10 +01:00
kevinz000
503ea18210 World time stat mc panel (#36111) 2018-03-04 21:53:21 +01:00
kevinz000
8ebc63d2f2 Randomized Station Time + Night Shifts 2018-02-20 21:59:44 -08:00
coiax
6f65453257 Mobs start with a random nutrition amount (#34791)
* Mobs start with a random nutrition amount

🆑 coiax
balance: Mobs will now start with a random nutrition amount, between
hungry and mildly well fed.
/🆑

Basically, if everyone starts the round with 400 nutrition, then
everyone will likely get hungry at around the same time if they're
standing around. This means there's a little more variance in our
starting values, which means the kitchen could be more important a
little bit sooner.

* Forgot to save and commit the fix

* Aaaa

* Moved random nutrition to Initialize
2018-01-27 14:55:21 +13:00
Jordan Brown
fec2d66318 Datum var cleanup (#34314)
* Consolidates datum var location

* Move ui_screen to /datum/tgui

* Move focusers to datum.dm. Move fingerprintslast to /atom

* Remove focusers list, makes mobs check if their focus is QDELETED in Life()

* Consolidate use_tag and var_edited into datum_flags

* Revert garbage comment

* Thought I already removed this

* Remove the var_edited preservation

* Removes focus QDELETED handling
2018-01-21 22:38:56 -05:00
AnturK
e38e6b8fa4 Antag Panel / Check antagonists Refactor (#34236)
* Antag Panel & Friends Refactor

* Prettfying

* Removes abduction also blob from default configs.

* Ninja fixes

* Ninjafix

* First draft of the new check_antags

* I love coding without compiler

* Yes

* Fixes

* Check_antags part  2

* Fixes and cleanup

* Okay should be good now.

* Adds simple no move & no tc syndie for events

* Integrates toggle objective pr

* Why i even bother.

* Offer mob shows all antags

* Some minor visual stuff

* Proper name for the helper
2018-01-19 09:43:23 -05:00
AnturK
f12c3c0283 Moves creating tag before intialization (#34512)
* Moves creating tag before intialization

* Two nukes for price of one.

* coord
2018-01-19 09:40:40 -05:00
Jordan Brown
a5f70b3708 Move a definition to the right file (#34288) 2018-01-11 22:30:24 -05:00