Commit Graph

98 Commits

Author SHA1 Message Date
Acruid
32103979ed CollidableComponent and ICollideableComponent namespace was changed in the engine.
Minor code cleanup.
2020-01-11 14:12:20 -08:00
Acruid
f73824adcb Prevents the MoverSystem from overwriting the MoverComponent on an entity.
Adds the new ShuttleControllerComponent, a custom IMoverComponent that moves the parent grid when controlled by a mind.
2020-01-08 15:17:00 -08:00
Pieter-Jan Briers
7f188b0f44 Disable sprinting.
Now you always sprint.
2019-12-07 17:16:56 +01:00
L.E.D
fac91af34d new layers (#483) 2019-12-01 15:20:50 +01:00
Acruid
d549c44f95 Shared IMap/Map class removal (#467)
* Fully removed the Map and IMap class.

* Submodule update to sibling engine commit.
2019-11-26 23:16:36 +01:00
Víctor Aguilera Puerto
fedc0ad71c Adds playable instruments, IDropped, IHandSelected and IHandDese… (#368)
* Instrument test.

* Midi stuff

* Some more work

* This actually works now!

* update

* Midi Audio works!

* Lots of stuff, and cool interfaces for items

* Update

* Fix a few things

* It just works

* Move textures to another folder, remove placeholder description from instruments

* Fix warning

* Use renderer enum

* Instruments now use DisposeRenderer method, and send MidiEvents as they receive them. Deletes InstrumentSystem whoo.

* Fix incorrect sprite paths

* Instruments take midi file size check into account when enabling/disabling midi playback buttons

* Fix crash when pressing drop on empty hand.

* Use new renderer return values for midi/input

* Xylophones are no longer handheld instruments, fix their sprites.

* Use new API

* Remove nfluidsynth from solution

* Timing information

* Use IGameTiming.CurTime for timestamps instead
2019-11-25 00:11:47 +01:00
Remie Richards
0cf34d2d26 Server-side GlobalVerbs now work when used (#455) 2019-11-23 20:11:50 +01:00
metalgearsloth
58709d2d26 Add power cell and weapon chargers (#430)
* Add power cell and weapon chargers

Functionality's similar to SS13. The cell charger won't show the discrete charging levels because effort to not make it spam appearance updates over the network.
There's some stuff I wasn't sure on:
1. Updating power? Particularly around fixing rounding
2. Duplicating the full and empty sprites as I couldn't figure out a way to not have AppearanceVisualizer throw if the state isn't found
3. I made a BaseCharger abstract class under the assumption that when a mech / borg charger is added it would also inherit from it.
4. GetText currently isn't localized

* Address PJB's feedback

Updated the BaseCharger
* Change nullref exception to invalidoperation
* If the user doesn't have hands it will just return instead
2019-11-21 23:48:56 +01:00
metalgearsloth
480d3b26c4 Make nutrition less harsh (#439)
* Make nutrition less harsh

Also fix the accumulator because why did I put that in the loop.
Decay rates decreased and made drink thirst levels same as hunger for now.

* Also fix stomach frametime accumulation
2019-11-17 02:26:31 +01:00
ZelteHonor
b2e2aef78d Rider static analysis (#433)
* Non-accessed local variable

* Merge cast and type checks.

* StringComparison.Ordinal added for better culture support

* Supposed code improvement in launcher. Remove unused code.

* Update ExplosionHelper.cs

Unintentional change.

* Optimized Import

* Add Robust.Shared.Utility import where it was deleted

* Other random suggestion

* Improve my comment
2019-11-13 23:37:46 +01:00
metalgearsloth
de148fc98f Add hunger and thirst (#363)
* Add hunger and thirst

Based on the SS13 systems.
Food (Nutriment) / Drink -> Stomach -> Hunger / Thirst

* Cleanup rebase

* Cleanup stuff that was prototyped

* Address feedback

Still need to add a statuseffects system in a separate branch

* More cleanup on nutrition

Fix Remie's feedback and also damage tick.

* Re-implement nutrition with master

* Updated to use the StatusEffectsUI update
* Removed all clientside components as they only receive the UI updates now
* Implemented PR feedback
* Had to make a slight adjustment to the chemistry SolutionComponent given it doesn't have an Owner, same with Solution

Still TODO:
* Metabolisation effects
* Change drink contents to alcohol / wine etc.
* Add items to the dispensers
* For transparent containers use RecalculateColor

Could probably genericise DrinkFoodContainer as well to be a temporary item dispenser

* Fix broken bottle parent
2019-11-11 22:20:03 +01:00
Víctor Aguilera Puerto
7d307832a0 Adds /me command. (#414)
* Adds /me command.

* Update Content.Server/Chat/ChatManager.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2019-10-30 21:49:07 +01:00
moneyl
6497cdf8ff Add global verbs (#400)
* Add support for global verbs

These are verbs that are visible for all entities, regardless of their components. This works by adding a new class `GlobalVerb` and a new attribute `GlobalVerbAttribute`. It works in the same way as current verbs, except you can put the verbs class definition anywhere instead of inside a component. Also moved VerbUtility into it's own file since it now has functions for both verbs and global verbs.

* Add view variables verb as an example of global verbs

* Implement suggested changes

Implemented some suggested changes from code review:
- Remove unneeded attribute from `GlobalVerb`
- Added some useful attributes to `GlobalVerbAttribute`
- Moved constants used by both `Verb` and `GlobalVerb` into `VerbUtility`

* Reduce duplicate code in VerbSystem (client & server)

Greatly reduced the amount of duplicate code for handling component verbs and global verbs separately.

* Update engine submodule

Need this so client side permissions checks are available.
2019-10-30 16:31:35 +01:00
Pieter-Jan Briers
02d509fc5f Shitty combat mode & animations. (#367)
* Combat mode UI & targeting zones.

* Fix inventory hud positioning.

* Crappy attack animations.

* Import TG combat sounds

* More work on arcs.

* Implement hit sounds.

* Lunging, hit effects, some more stuff.
2019-09-26 22:32:32 +02:00
moneyl
31487c1cf1 Disable speaking while unconscious/dead (#362)
* Disable speaking while unconscious/dead

Fixes #359

* Add CanSpeak ActionBlocker

Matches the existing technique for other actions like CanUse() and CanThrow().
2019-09-24 09:55:38 +02:00
moneyl
0090af6b3b Disable footstep sounds for ghosts (#343)
* Disable footstep sounds for ghosts

Adds a check before playing footstep sounds to check if the mover is a ghost. Doesn't play footstep sounds if they are a ghost.

* Add FootstepSoundComponent

Adds FootstepSoundComponent. If a mob has this component, it will make footstep sounds. Otherwise they will not. As of this commit humans have this component and ghosts do not.
2019-09-20 19:42:45 +02:00
DamianX
364279e0f7 Added medical scanner (#338)
* Added medical scanner

* RegisterIgnore
2019-09-18 20:24:55 +02:00
Acruid
fc5d7835c0 Updates various systems to the new InputCommandHandler delegate signature, implementing the new handled return value.
Modifies the construction system to use the newer InputHandler system, instead of the older ClickComponent system.
Updates the engine submodule.
2019-09-17 16:10:59 -07:00
Acruid
6ca9e16670 Changes the interaction system so that if a client sends a UseItemInHand input command while not having a valid attached entity, the handler method will block the command. Previously, the handler method would throw a NullRefException if this occurred. 2019-09-06 10:13:48 -07:00
Víctor Aguilera Puerto
ba8b495ec0 Adds Research, unlockable technologies, Protolathes... (#264)
* Work on Research so far
More work on UI...
Fix ResearchClient and Protolathe UI stuff.
Fix infinite select -> request state -> select -> ... loop
Add UI to ResearchClient, etc.
Technology Database states, and a bit of work on the research console ui
A bit of work on Research Console UI
Protolathe sync
Stuff that actually does things
Protolathe databases yay
Alright got my motivation back
Yeah, no. It's almost 3 AM already
Fix serialization bug again
More work on stuff
Stuff
Adds files for most new components/systems.

* Protolathes actually work now

* Research. Just Research.

* Adds icons from Eris.

* Address reviews

* Change LatheMenu resize behaviour

* Update Content.Client/GameObjects/Components/Research/ResearchConsoleBoundUserInterface.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Update Content.Client/Research/ResearchConsoleMenu.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Move IoC Resolve out of for loop

* Address review

* Localize stuff
2019-09-03 22:51:19 +02:00
Acruid
9353a060f2 Physics Shapes (#306)
* Removed BoundingBoxComponent.

* Updated prototypes to use refactored CollidableComponent.

* Renamed ICollidable to IPhysBody.
Moved ICollidable to the Shared/Physics namespace.

* Migrated more yaml files to use PhysShapes.

* Updated YAML to use the new list-of-bodies system.

* Updated the new prototypes.

* Update submodule

* Update submodule again, whoops
2019-09-03 22:14:04 +02:00
Acruid
7a55c07e22 The entity spawned when an item is thrown from a stack now properly sets its stack size to 1. This resolves https://github.com/space-wizards/space-station-14/issues/312. 2019-09-01 16:23:30 -07:00
Acruid
9ffbb51fd1 Items are now dropped at the pointer location if the pointer is withing the interaction range. Previously the dropped item was always placed at the player entity location.
Resolves https://github.com/space-wizards/space-station-14/issues/235.
2019-09-01 16:01:57 -07:00
ShadowCommander
66c5affa65 Merge branch 'master' of https://github.com/space-wizards/space-station-14 2019-08-20 18:27:12 -07:00
DamianX
be4197351a Fixed examine things (#308) 2019-08-19 22:27:25 +02:00
DamianX
4dcbf28714 IoC'd random (#302)
* Implemented RobustRandom

* update submodule

* update submodule

* Fix benchmark
2019-08-17 12:09:09 -07:00
ShadowCommander
1c81f6097f Merge branch 'master' of https://github.com/space-wizards/space-station-14 2019-08-16 15:46:06 -07:00
DamianX
88920696f3 Vending Machines (#296)
* Vending Machines

* addressed review
2019-08-14 10:49:28 +02:00
Pieter-Jan Briers
72ba0d9458 Don't let bullets fly forever. Give them 10 seconds until deleted. 2019-08-13 23:43:44 +02:00
ShadowCommander
b59c1a2b0f Merge remote-tracking branch 'upstream/master' 2019-08-10 15:46:57 -07:00
Acruid
8b593d28c6 AI Wander & Barker (#286)
* Retrofit the AI system with new IoC features.
Fixed bug with turret rotation.

* Added new AI WanderProcessor, and it works.

* RNG walking directions are a bit more random now.

* Wander now actually uses the MoverSystem to move.
Wander now talks when he reaches his destination.

* Adds a new Static Barker AI for vending machines, so that they periodically advertise their brand.

* Barker now says some generic slogans.
Misc bug cleanup.

* Removed useless UsedImplicitly attribute from AI dependencies, suppressed unused variable warnings instead.
2019-08-10 14:19:52 +02:00
metalgearsloth
4b30c7e710 Add more tiles and walls (#289) 2019-08-10 14:17:49 +02:00
ShadowCommander
7422d9148a Refactored input system 2019-08-04 16:03:51 -07:00
Acruid
232e4951b0 Fixes InteractionSystem so that a player can pick up an item from a grid that isn't at the world origin. 2019-07-24 10:59:19 -07:00
Pieter-Jan Briers
1a92d08399 Improves examine code
Examining now has larger range. Ghosts have no range limit.
Fixed some messy code and some bad netcode.
2019-07-19 10:45:55 +02:00
metalgearsloth
1f320eccd7 Add basic teleportation and portals (#269)
* Add basic teleportation and portals

* Address PJB's feedback and minor cleanup
2019-07-19 10:09:33 +02:00
Víctor Aguilera Puerto
d9077bde74 Adds IThrown, ILand interfaces. Adds dice. (#273)
* Dice, IThrown, ILand

* Adds sounds to the dice using a sound collection.

* Seed random instance better.

* Missed a ")", should compile now
2019-07-18 23:33:02 +02:00
Pieter-Jan Briers
558f6ab8a5 Removal of TrySpawn* methods, update submodule. 2019-07-07 22:24:44 +02:00
Pieter-Jan Briers
c4523a956d Stupidly shoddy combat mode system.
Doesn't even work for guns, oh well.
2019-06-30 00:01:41 +02:00
Injazz
10801af2f7 Explosions and Grenades, Triggers, OnDestroy, OnExAct, Fueltanks and destructible tables (#247)
* initial explosiveComponent

* remove garbagee

* assets

* tile mass deletion baby

* grenades

* tweaks

* Update Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Ex_act based on damage, fixes and tweaks

* One finishing touch

Done the most cringe way

* ex_act explosions, tables are destructible now

also adds fuel tanks

* adds ex_act to mobs
2019-06-07 13:15:20 +02:00
Injazz
c156af34c4 Adds security and clown outfits, and SoundEmitters (#253)
* ports clown and sec outfits

* bikehorn and soundemitters

* very smol bike horn

* working fine sounds

* Oh wow i can do it through github

Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* fixes for review

* fixes prototype

* fixing entrypoint
2019-06-03 20:16:47 +02:00
Pieter-Jan Briers
7e703760c8 Merge pull request #233 from Acruid/19-05-16_ExamineImprovements
Examine Improvements
2019-05-24 21:56:40 +02:00
Acruid
e40f9b20e3 Added a range check for examining entities. Now you can't examine things across the map.
Made the examine window a little transparent so that you can see things behind it. This prevents the examine popup from occluding gameplay.
Moved the ExamineEntity bind from Human to Common context so that it will always be available to clients. Ghosts can now examine things.
2019-05-22 12:59:30 -07:00
Acruid
d52e5ccbfb Verbs can now set themselves as invisible. 2019-05-22 08:53:50 -07:00
Pieter-Jan Briers
c197278c6f Interaction rework.
IActivate is now more used. IAttackHand falls back to IActivate.
2019-05-16 15:51:32 +02:00
Pieter-Jan Briers
b7d30f0870 Remove manual container ejection checking code.
This fixes map load when something is in a storage component.
2019-05-05 13:09:21 +02:00
Pieter-Jan Briers
02e35502a1 Changed some function names on IMapGrid. (#212)
UnitTesting project is now filtered out of the code coverage.
2019-04-29 12:52:47 +02:00
Acruid
25b50ebb27 Changed some function names on IMapGrid.
UnitTesting project is now filtered out of the code coverage.
2019-04-28 22:08:27 -07:00
Víctor Aguilera Puerto
fe0414eda7 Lathes (#207)
* Recipe stuff.

* Lathe GUI and stuff

* god dammit

* Lathe menu works, yay.

* EventArgs henk

* Some work

* SS14 -> Robust

* More SS14 -> Robust

* Lathe materials

* Lathe works, Lathe GUI, Queue GUI, etc

too many changes to name them here

* Remove materials button, add ViewVariables and update lathe on connect

* Add Autolathe RSI

* Adds new recipes, fixes a few bugs.

* Remove unused ScrollContainers

* Use same delegate for spawn.

* Removes client-side LatheComponent in favor of BoundUserInterface

* Remove GetMaterial and TryGetMaterial

* Use auto-properties in a few places.

* Adds LatheDatabase, and a bunch of other changes

* Remove useless log.

* Remove lathetype from prototypes.

* Turns Storage, Lathe and Database into autoproperties

* Remove Hacked property from LatheRecipePrototype

* Remove unneeded dependency injection from components

* Refactors LatheDatabaseComponent to use ComponentState

* Refactors MaterialStorageComponent to use ComponentState

* Oopsie

* Another oopsie

* Last oopsie, I hope

* Fix missing Close call.
2019-04-26 15:51:05 +02:00
DamianX
b16768fd0b Moved dropping items over PlaceableSurfaces from AfterAttack to AttackBy (#209)
Added ClickLocation variable to AttackByEventArgs
2019-04-25 23:22:51 +02:00