Commit Graph

8759 Commits

Author SHA1 Message Date
Pieter-Jan Briers
cad06813a8 Notify message on changing state of InjectorComponent 2020-02-24 17:40:24 +01:00
Pieter-Jan Briers
58ab7631c2 Give every job their fancy ID types. 2020-02-24 16:58:25 +01:00
Injazz
15fa417a4f Explosion now throws affected entities, fixes probability/severi… (#732)
* throwforce and probability fixes for explosions

Applies force to all affected by explosion entities with ItemComponent
Fixes probability issues with explosion related callbacks

* dependency fix, throw helper

* delete TODO

Co-authored-by: gituhabu <48828502+gituhabu@users.noreply.github.com>
2020-02-24 03:52:15 +01:00
Víctor Aguilera Puerto
090dd8cee8 ControlMob verb and command (#724)
* ControlMob verb and command, mobs have MindComponent by default

* Use IActorComponent instead of MindComponent for User entity.
Fixes using Control Mob while aghosting/visiting an entity.

* Use static Loc class
2020-02-24 03:49:40 +01:00
Pieter-Jan Briers
8a5e879633 Glass airlocks actually let light through. 2020-02-24 01:55:44 +01:00
moneyl
1b7860aeda Add injectors + injected reagent metabolism via BloodstreamCompo… (#730)
* Add BloodstreamComponent and BloodstreamSystem

New component for metabolizing reagents that other organs like the stomach pass their input reagents to.

* Change StomachComponent to put ingested reagents in bloodstream after delay

Now StomachComponent does not metabolize any reagents. Instead, it tracks how long each reagent has been inside it, and once they pass "digestionDelay" they'll be put inside the bloodstream, where the bloodstream will handle metabolism of the reagent.

* Add reagent injectors

Injects reagents straight into the bloodstream when used on mobs with bloodstreams. Also allows draw/inject from beakers. Does not support drawing blood/reagents from the bloodstream yet.

* Address code review

Make use of `Loc` static class instead of using `ILocalizationManager`. Localize InjectorToggleMode enum properly.
2020-02-24 01:47:33 +01:00
Pieter-Jan Briers
d8291ed9c4 Shadow & FOV stuff (#735)
* Content fixes for shadow/occluder stuff.

* Observers don't have FOV.

* Update submodule
2020-02-23 17:30:45 +01:00
ShadowCommander
a3e61a77db Implement StorageFillComponent (#726) 2020-02-23 00:40:09 +01:00
py01
ad4dd335b8 Sound for burning your hand on a powered light (#733) 2020-02-23 00:39:00 +01:00
4dplanner
b0e3ab3393 MovementSpeedModifierComponent (#721)
* movement modifier system

* update default exposedata values

* changing base speed marks as dirty

* formatting

* movement speed modifier component

* Moves slowdown component to the prototype

AIController respects slowdown

* reset dirty flag
2020-02-23 00:37:56 +01:00
Rohesie
ffe55648b6 BaseTurfs (#699)
* tweaks

* Baseturfs

* dotnet messages

* indentation

* comment

* Change requests

* Smaller diff

* Diff
2020-02-23 00:30:36 +01:00
Víctor Aguilera Puerto
4f397e1ce2 Fix warnings (#723) 2020-02-23 00:28:50 +01:00
Acruid
ee6eec9c40 SubscribeEvent() has been split into SubscribeNetworkEvent() and SubscribeLocalEvent() methods on EntitySystem.
Most methods on EntityEventBus now require callers to specify the source (Local or Network) of the events.
2020-02-19 17:08:59 -08:00
Acruid
e719745b10 Removed the Sender object from events. If you needed this field, add it to the event class. 2020-02-19 14:39:00 -08:00
Acruid
c51533686b Updates the Content EntitySystems with the changes to the event API.
Visual Studio wants to update the version of the solution, and change some GUIDs around.
2020-02-18 19:43:54 -08:00
moneyl
5f030cdf93 Improve addai error handling and help message (#708)
* Improve addai error handling and help message

Fix client crash from giving addai an invalid processorId argument and improved it's help message to describe each parameter.

* Only IoC resolve when addai is run

Makes the code simpler. No need to cache it since it's going to be run so infrequently.
2020-02-17 00:21:15 +01:00
micheel665
987a39c25e Added a button to add entities to storage items (#709) 2020-02-17 00:19:35 +01:00
py01
b2b8021d9b Adds rsi sprites for bureaucracy items, fixes pen and paper spri… (#711) 2020-02-17 00:16:06 +01:00
Víctor Aguilera Puerto
70c41f63b0 Adds InRangeUnobstructed method to InteractionSystem (#698)
* You cannot pickup items across walls, or pickup items when dead/in crit.

* Adds InRangeUnobstructed method to InteractionSystem.
Changes HandsSystem and ItemComponent to use it.
2020-02-16 23:04:06 +01:00
Profane McBane
9e368b336f Let stacks specify if they get thrown as one item, or individual… (#679) 2020-02-13 23:43:02 +01:00
Qustinnus
de094ddacc Fixes the direction humans turn to when throwing something (#686)
* Fixes the direction humans turn to when throwing something

* shorter
2020-02-13 16:21:29 +01:00
Víctor Aguilera Puerto
934f6fb7e2 Add OnDamaged method to IOnDamageBehavior (#685)
* Add OnDamaged method to IOnDamageBehavior

* Adds Source, SourceMob to OnDamage.
2020-02-13 15:57:40 +01:00
Daniel Thompson
b4b0f6e04b Adds config options for diagonal movement (#684)
* Adds config options for diagonal movement

* Addresses comment
2020-02-13 15:10:09 +01:00
Víctor Aguilera Puerto
f8a64bcd5c Prevent items from being dropped across impassable entities (#670) 2020-02-12 00:01:44 +01:00
adrian
9544099c99 Paper and pen (#582)
* A very basic paper and pen implementation

* Removes SharedWriteComponent

* Update ContentNetIDs.cs
2020-02-12 00:01:05 +01:00
Pieter-Jan Briers
16016461c1 Merge branches 'kestrel' and '20-02-09-kestrel' 2020-02-09 23:20:23 +01:00
Tyler Young
f34d447bde Update MoMMILink to use Kestler StatusHost handlers. 2020-02-09 09:25:48 -05:00
adrian
253972d529 Fixes placing objects on closed lockers (#658) 2020-02-09 10:42:12 +01:00
Pieter-Jan Briers
913b4d97a1 Allow more lobby parameters to be configured. 2020-02-08 21:23:37 +01:00
Profane McBane
c7043d20b1 Fixes melee combat (#655) 2020-02-08 20:46:45 +01:00
moneyl
a2a3e5e2e4 Fix issues with exploding items from own hand (#645)
* Fix crash in CameraRecoilComponent from NaN values

Doesn't proceed with camera shake if either component of recoil is NaN.

* Log NaN recoil value in CameraRecoilComponent

* Fix ExplosionHelper passing NaN recoil values when exploding from hand

With other commits CameraRecoilComponent now won't crash from NaN recoil values. Still want to fix this so explosions shake the camera. Just sets a value slightly greater than 0.0 for distance if it is (0.0, 0.0)
2020-02-08 20:46:12 +01:00
Pieter-Jan Briers
eb7c80ba7a You can no longer place unless you are in admin or sandbox. 2020-02-08 20:45:02 +01:00
Pieter-Jan Briers
6d9f2b5a68 Fix attack sounds playing globally. 2020-02-08 18:26:01 +01:00
Markus W. Halvorsen
595ffb3237 Clamp out of range item drops (#631) 2020-02-08 15:32:21 +01:00
ShadowCommander
d1c5cf9607 Fix TemperatureComponent (#620)
* Remove TEMPERATURE Net ID

* Remove Temperature NetID
2020-02-08 11:29:06 +01:00
ShadowCommander
4515b5a0af Fix wires getting placed when picking up a wire coil (#628) 2020-02-08 11:27:18 +01:00
Profane McBane
fec20133d9 disable collisions between mobs (#625) 2020-02-07 15:15:06 -08:00
ShadowCommander
cf78f8aa65 Drink fixes (#605)
* Fix max_volume in cup YAML

Fixes #563

Added parsing of max_volume from YAML. Before it would get max volume only from drink content total.

* Fix drink owner getting deleted early

_contents.SplitSolution causes _contents.SolutionChanged to call Finish early causing a crash when try to get SoundComponent from the deleted Entity.
2020-02-07 18:13:11 +01:00
Tad Hardesty
34bbca5cc2 Fix powernets detecting APCs on other maps (#604) 2020-02-07 17:55:27 +01:00
Tad Hardesty
89a4265dda Change player's facing when they click on something (#598) 2020-02-07 17:54:56 +01:00
Víctor Aguilera Puerto
6bd818c8ce Fix two crashes relating to food (#600)
* Fix crash when eating bread due to a missing prototype

* Fix crash when finishing a food.

It tried to get the transform component of a deleted entity.
2020-02-06 16:40:41 +01:00
ike709
dea2be8321 Fixes "joingame" command allowing players to join before round s… (#595) 2020-02-06 16:15:39 +01:00
moneyl
6a1d2124df Revert unnecessary changes made by previous PR to SolutionCompon… (#583)
#574 added an out arg to `SolutionComponent.TryRemoveSolution` containing the solution that was removed. I made this change since I thought there was no way to get the removed solution for further use. Didn't notice `SplitSolution` which provides nearly the same behavior. With this PR I want to remove that out arg from `TryRemoveSolution` to keep the SolutionComponent API simple and to avoid having multiple ways of doing things. Existing code uses `SplitSolution`, I just wasn't paying attention.

Feel free to deny merging this if I'm over thinking it. I think it'll help keep solution code from becoming a mess.
2020-02-06 16:13:32 +01:00
Tyler Young
ef751f68dc Faster Power (#596)
uses SnapGridComponent to select nearby wires instead of entity list (only marginally faster if entity queries are using DynamicTree)

TheoreticalLoad double dipping property setter, reduced to one update

minor refactoring

Co-authored-by: Tyler Young <tyler.young@impromptu.ninja>
2020-02-06 14:50:52 +01:00
Tyler Young
fcccae5df0 Replaces constructors of Ray with CollisionRay (#594)
Companion of https://github.com/space-wizards/RobustToolbox/pull/951
2020-02-06 14:17:37 +01:00
moneyl
493b80095d Chem dispenser attempts to eject into hands (#576)
Previously the chem dispenser eject button placed the container on top of the dispenser. Now it will attempt to place it in your active hand, then your secondary hand. If both hands are full then it'll place it on top of the dispenser like before.
2020-01-29 19:15:35 +01:00
moneyl
972d601664 Add solution pouring / click-transfer (#574)
* Add click-based solution transfer

For example, clicking on a beaker with a soda can to transfer the soda to the beaker. Works on plain solution containers like beakers and also on open drink containers like soda cans as long as they have the `PourIn` and `PourOut` solution  capabilities. If no `SolutionComponent` is added to a drink entity, the `DrinkComponent` will give the entity one. This PR extends that behavior slightly by also giving these default `SolutionComponent`'s the proper capabilities for pouring in/out.

* Improve fix for poured drinks not immediately disappearing

Instead of making `DrinkComponent.Use` public this 
 splits out the code important to both users and made that function public, leaving `Use` private.

* Shorten solution transfer popup

* Make code review changes

- Move pouring code from SolutionComponent to new PourableComponent. Added PourableComponent to client ignore list and added to existing container prototypes.
- Added EmptyVolume property to shared SolutionComponent for convenience.
- Removed DrinkComponent fix from pouring AttackBy code. Instead DrinkComponent subscribes to the SolutionChanged action and updates its self when necessary.
- Fixed pouring being able to add more than a containers max volume and sometimes deleting reagents.
- Added message for when a container is full.

* More code review changes

- Remove IAttackBy ComponentReference attribute in PourableComponent
- Remove _transferAmount from shared SolutionComponent. Left over var from previous commit not being used anymore.
2020-01-29 02:07:02 +01:00
Pieter-Jan Briers
883c465a14 Fix crash on human deletion.
Fixes #568
2020-01-26 19:52:09 +01:00
ShadowCommander
b71f39cfb4 Fix PickUp verb showing up for entities in containers (#567) 2020-01-26 14:00:59 +01:00
Pieter-Jan Briers
2ec493e2af Combat mode improvements.
You now need to hold the mouse for 0.15 seconds in combat mode to actually do an attack.

Otherwise it's regular item interaction (for now).
2020-01-26 03:38:51 +01:00