Commit Graph

160 Commits

Author SHA1 Message Date
Emmett Gaines 328fc7b1f1 Adds elements: Lightweight shared components/Global components (#44817)
If you came here thinking this was some game feature then you are in the wrong place. Here is where I ramble about code.

This adds /datum/element as a sort of sibling to components. Only one of each type gets instanced and they do not get tied directly to any particular thing like a component does. Basically they're a very lightweight component for doing simple functionality that doesn't have much state.

Originally this concept came about as a kind of component that could be shared between many parents to reduce some resource costs. Doing this would allow us to componentize more behaviors that are a part of too many things to be viable to have a whole component for every single one. For example a component on every space turf would be entirely unviable. With elements it's much more reasonable.

This implements a prety bare framework and a couple components are migrated to it. It's ready to be used but I fully expect I'm going to need to refine how it works for all the usecases we'll want it for.

Also: this fixes the qdeleted signal. This signal isn't even possible because after qdel is done there's nothing to receive a signal anyway. I've changed it to a qdeling signal instead. I need it to work for some elements to know when to clean themselves up.
2019-07-09 11:26:51 +12:00
oranges 64460ae3ca Merge pull request #44825 from AutomaticFrenzy/patch/lints
In advance of eventually adding SpacemanDMM's linter to Travis, fix everything it can currently detect.

Some lists, including global lists, are given types so that L[i].foo expressions can be checked.

Some procs are given a new form of return type annotation so that DuplicateObject(O).forceMove()-type invocations can be checked.

Open to syntax suggestions on the return type annotations, and on whether the preprocessor strategy makes sense.

Return type syntax is currently roughly:

    <typepath> | <paramname>([_])*(.type)?
2019-07-03 19:31:11 +12:00
Tad Hardesty 0f0604575f Add return type annotations to some procs 2019-06-25 23:03:38 -07:00
kingofkosmos ebf787a97a * "You should..." and "You must..." 2019-06-26 06:13:32 +03:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
bgobandit 893b020228 Some spelling and text changes. (#44426)
* fixes some spelling

* Spelling changes, immersion changes, text changes in general

* Update code/datums/mutations/body.dm

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2019-06-11 14:36:56 +02:00
vuonojenmustaturska 6a106bc877 Remove reagent ids and use typepaths where applicable (#44166)
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
2019-05-31 21:57:26 +12:00
Tlaltecuhtli 1625ecdef4 fixes message spam from ridden vehicles (#44116)
* fixes message spam from ridden vehicles

* e
2019-05-27 22:53:11 +12:00
YPOQ bf9d249a42 Fixes borg wheelchairs going super fast (#43761) 2019-05-01 08:54:37 -04:00
Tlaltecuhtli 5cfd1c851c [ready]secway + atv nerfs (#43396)
* 1

* dont commit this

* commit this

* commit erefasdagsdbsvrsccsdsdfsdfs

* changes

* fdf

* fixes bullet_act

* obj_break

* (____Y____)
2019-04-13 16:11:24 -04:00
ShizCalev d128a12773 paraplegic vehicle fixes (#43399)
* paraplegic vehicle fixes

* im on a boat
2019-04-03 11:10:57 -04:00
ShizCalev 896236f5bf Clowncar exploit fix (#43237)
Fixed an exploit allowing you to grab people from anywhere with a clowncar.
2019-03-21 20:57:09 -07:00
ShizCalev 362988c1ed Simple animals can only damage clowncars from the inside if they can smash walls (#43238) 2019-03-21 20:38:16 -07:00
ShizCalev 87f14a9885 Beartrap fixes 2019-02-24 14:54:15 -05:00
tralezab c967f674ad fixes borg wheelchair sanic speed (plus the whip) (#42602)
* SKRRRRRRRRRRRRRRRRRRRRRRRRRT

* VRRRRRRRRRRRRRRRRROOOOOOOOOOOOO

* rrrrrrrrrrrrrrrrrrrrrrrrrrrrr    RRRRRRRRRRRRRRRRR (checks on whip removed)

* Apply suggestions from code review

elegant changes

Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>

* thbahtegegarf

* whoops

* ebhfbfaaetbfheabhehaetjyr
2019-01-31 16:56:05 -05:00
81Denton 21fd1b2cea Ports wheelchairs from Hippiestation (#42401)
* Ports wheelchairs from Hippiestation

* Apply suggestions from code review

Thanks Cyberboss!

Co-Authored-By: 81Denton <32391752+81Denton@users.noreply.github.com>

* Removes unneccessary vars+attackby(), uses obj_destruction()

* Uses overlay SS and moved()

* removes redundant else, GetComponent(), moves has_buckled_mobs() to Destroy(), etc.

* Apply suggestions from code review

Co-Authored-By: 81Denton <32391752+81Denton@users.noreply.github.com>

* Removes unneeded has_buckled_mobs()
2019-01-24 09:25:23 -05:00
Suicidalpickles 289f242be7 Adjusts vehicles to new movement delay (#42273)
* changes secway movespeed

title

* adds other vehicles
2019-01-12 12:05:13 +13:00
coiax be89c6aa3c Fixes missing . in clown car honking (#41816) 2018-12-06 20:06:47 -05:00
Qustinnus c1c8e2352d You can now thank the clown car driver, and new medals for being the best clown car driver (#41572)
* done

* also this

* also a medal for enough thanks

* done
2018-11-28 23:29:31 -05:00
k-k-karma bcd7f03d32 clean up Cyberboss's mess 2018-11-11 23:31:31 +00:00
Jordan Brown 6d392a8225 Delete bike meme music (#41431) 2018-11-11 18:02:55 -05: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
Qustinnus e1a103f3e5 Fixes vehicle bug which caused you to keep special actions when you were forcemoved out of them through weird means (Admin intervention, special items) (#40659)
* fix

* i guess?

* ismob
2018-10-05 04:48:29 -04: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
subject217 682215d55b Clown car fix second edition (#40252)
* does the thing

this is also how the other ridden vehicles do it

* qustinnus suggestion

* you really should check your diffs locally before you push
2018-09-14 14:02:36 +12:00
subject217 b3d1888bd6 Clown Car balance changes (#40222)
balance: The Clown Car can no longer move unrestricted in zero gravity environments.
balance: The Clown Car now costs 20 TC to purchase.

This PR was done at the request of @vuonojenmustaturska. I renamed entered.dm to sealed.dm because it's where the sealed subtype is defined and it's primarily used for procs specific to sealed. The balance changes were Naksu's idea. I definitely think not being able to move freely in space is a good change. I'm ambivalent about the TC, but the item felt like a gimmick that you should fully commit to like His Grace, and the free space movement + 4 TC space suit was a bit cancerous.
2018-09-13 10:23:13 +12:00
ShizCalev ced052879d Correct terminal punctuation mistakes (#40123) 2018-09-05 23:11:53 -07:00
81Denton d8393bed10 Add examine descs, air alarm construction descs (#39949)
A bunch of items were missing examine messages about their alt+click
functionality, I added them. Also, construction step descs for air alarms.
2018-09-05 23:06:23 -07:00
Qustinnus 08f1269b1f [READY] Fixes some clown car bugs and adds emag abilities (#39937)
add: Clown cars can now fit any mob (besides megafauna)
add: Repair your clown car with bananas
add: Emag the clowncar to unlock a button panel. Activate it to press a random button for a random effect!
balance: lowers health and cost of clown car
fix: removes a return in the clown car code that caused the wrong flags to be assigned
fix: you cant open the clowncar trunk from the inside anymore, you can still escape though.
fix: fixes broken to_chat in clown car
2018-09-05 23:18:54 +12:00
Jordan Brown 17c0f2d6a9 Merge pull request #40035 from Aranclanos/clowncarspan
Fixes the span tag closure on the clowncar space lube message
2018-09-01 13:19:07 -04:00
Aranclanos 862b01c053 Fixes the span tag closure on the clowncar space lube message 2018-08-31 15:34:35 -03:00
Mickyan 43700c3273 Skateboards have adjustable speed, can fit in backpacks (#39496)
Skateboards are fun but without even considering the bumping hazards they're almost impossible to use on station just because of how unreasonably fast they are.
They're so fast, they couldn't be any faster. Literally! They have no move delay, making them as fast as a vehicle can possibly be.
But if you think you can handle it, you can simply adjust it back to sanic speed. Crashing penalties are unaffected.

I see no reason why they shouldn't fit in backpacks, maybe they used to be strong weapons a while ago but nowadays you can find stronger stuff just laying around that fit in backpacks just fine.
Plenty of items bigger than a skateboard that already fit in backpacks, too. (i.e. instruments)
2018-08-30 19:59:39 +12:00
Garen Crownguard 291583440f screwdriver_act signal (#39877) 2018-08-27 05:56:45 -04:00
Qustinnus 065b67e136 [READY] New clown traitor item: The clown car (#39317)
I've been wanting to add this for a while, and now I have. The clown car is a vehicle you can use if you're a traitor clown to run people over, shove them into your compact trunk, and take them for a ride. If you drive into any walls however, you and everyone you kidnapped, fall out of the car, leaving you somewhat vulnerable.

It also comes with a lube-defense mechanism(tm) which has a 1/3 chance to drop some lube if someone decides to shoot at your sweet ride.

You can also honk your horn or drop all of the drivers if you would like to.
2018-08-26 12:41:05 +12:00
Militaires 02d7a948ab Fix BM Speedwagon offsets (#39419)
after they were broken by some DEGENERATE
2018-07-29 14:42:00 -07:00
XDTM 43184b87a5 Limb damage rework (#38436)
balance: Limbs no longer need to have full damage to be dismemberable, although more damage means higher dismemberment chance.
balance: Damaging limbs now only counts as 75% for the mob's total health. Bleeding still applies normally.
add: Limbs that reach max damage will now be disabled until they are healed to half health.
add: Disabled limbs work similarly to missing limbs, but they can still be used to wear items or handcuffs.


Fixes #38445


Always felt odd how reaching max damage on a limb had no consequence. Now it does.
Currently i only added effects for disabling arms and legs; "breaking" heads and torsos has no effect as of now.
2018-07-17 20:34:02 +12:00
ninjanomnom 059da44453 Converts collide back to bump and fixes double bumping in another way
This is in preparation for step_x support as the default behavior for these procs is necessary for proper functionality.

turf/Enter and atom/movable/Move default code got rewritten to replicate default byond functionality with minor changes.
2018-07-07 11:22:29 -04:00
vuonojenmustaturska 1eccbcca18 Adds an EMP protection component, allowing ANYTHING to be protected from EMP (#37671)
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like

This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.
2018-05-22 11:38:02 +12:00
AnturK 52a99c09d6 Uppercase slot defines 2018-04-27 10:38:32 +02:00
imsxz c2a279ee2b fixes the laws of matter conservation (#37300) 2018-04-20 16:31:28 -04:00
Jordan Brown d301dd545c Merge pull request #36623 from 81Denton/cApITalIze-tHiS
Capitalizes craft menu items
2018-03-23 16:38:39 -04:00
kevinz000 f300a5c155 Interaction/Attack Hand Refactor (#36405) 2018-03-23 11:20:54 +01:00
Denton 389e47dbe5 craft menu capitalization 2018-03-22 12:54:32 +01:00
TheDreamweaver 68cafe6fd1 Adds Wheely-Heels and Kindle Kicks [Merge Ready] (#36309)
* Adds Wheely-Heels, a pair of shoes with inbuilt roller-wheels. Can be rarely received as reward from arcade machines.

* Fixed issues with Wheely-heels, added Kindle Kicks

* Cleaned up code

* Fixed Destroy()

* Thoust shall return the parent, like Oedipus

* Final Fix XIV
2018-03-13 02:57:48 -06:00
ACCount12 1621f37a8c Ports some operation to tool_act 2018-02-21 01:37:54 +03:00
YPOQ 9a9183d705 Fixes bicycle riding (#35739) 2018-02-17 21:11:59 -05:00
ShizCalev 5a07158b37 Fixes scooter runtime 2018-02-12 23:42:24 -06:00
ACCount c6e607dc17 Refactors use_sound and changes the way tools play sounds (#35521)
* Adds list support to usesound, ports drills to usesound

* Adds more tool sounds, changes usesound usage to play_tool_sound

* fix
2018-02-12 17:16:47 +02:00
ShizCalev bfde5ac057 [s] Fixes altclick exploits (#35456)
* Fixes altclick exploits

* Removed free spam, fixes monkey altclicks

* replaced named args with proper defines

* More cleanup and fixes

* Better yet

* Another exploit fix

* pet carrier fix
2018-02-11 16:06:12 +13:00
Iamgoofball 10a24645c6 Adds basic trailer support to vehicles (#35388)
* Adds basic trailer support to vehicles

* Move compat.
2018-02-08 22:21:42 +13:00