Commit Graph

53 Commits

Author SHA1 Message Date
Joonas Rikkonen d00b52882f Added UpdateUseItem method from d253863 2018-07-18 12:14:09 +03:00
Joonas Rikkonen 91d6c7b91f Fixed explosives being directly usable by characters, causing them to explode when left clicking while holding them due to 9dd9425c. See #385 2018-04-24 18:00:36 +03:00
Joonas Rikkonen eed7b72b4e Fixed player-controlled creatures being able to do damage to themselves and RepairTools causing damage to the user regardless of the user's skills. 2018-04-18 15:04:18 +03:00
Joonas Rikkonen b9287beed2 Characters carry two-handed throwables in both hands. (See #303) 2018-03-07 11:33:06 +02:00
Joonas Rikkonen 6ddcd65f18 RepairTools can do damage to characters by hitting the collider. Closes #299 2018-03-05 12:34:21 +02:00
Joonas Rikkonen 4e048b7895 Items removed due to the "DeleteOnUse" property are removed using EntitySpawner, removing an item removes it from the selected items of all characters. Closes #306 2018-03-05 12:13:52 +02:00
Joonas Rikkonen c803e23c50 Added checks for character removal to a bunch of places. Some of these may not necessary, but at least MeleeWeapon, Projectile and Controller still accessed the user after the user had been removed. 2018-02-28 17:37:20 +02:00
Joonas Rikkonen f5277ce661 Fixed clients being unable to crowbar doors due to OnPicked only being called on local players. Closes #297 2018-02-28 15:24:42 +02:00
Joonas Rikkonen 74ef5c6ea6 Fixed items attached mid-round by other clients or the host being impossible to interact with and occasionally being attached to an incorrect position. Closes #296 2018-02-28 14:01:38 +02:00
Joonas Rikkonen 77940fa992 Added some debug logging, Character.Revive removes the existing AITarget from the character before creating a new one 2018-02-26 18:05:03 +02:00
Joonas Rikkonen 064750d99f Fixed missing RepairTool HitStructure particles & missing ancient weapon beam (+ added hit particles to ancient weapon). Closes #285 2018-02-25 22:43:06 +02:00
Joonas Rikkonen f2f37b020e Applied fire extinguisher changes from the command-improvement branch: the repair tool steps through the ray that's used to find firesources in range and collects all firesources along the way instead of just checking the start and end positions of the ray (-> fires are much easier to extinguish now). Closes #274 2018-02-24 17:28:52 +02:00
Joonas Rikkonen 43d6ee5e06 Spark & smoke particle effects when welding or cutting something. Closes #155. 2018-02-12 11:20:25 +02:00
Alex Noir 32a2b38112 Removed DamageSoundType and replaced it with a string "tag" instead to allow mod creators to create custom damage sounds
Fixed damagemodifier sounds being completely ignored due to a variable misname
Added structure damage possibility for melee weapons so you can break down windows with a crowbar in spectacular fashion (it's clearly a very inferior method to plasma cutters though)
Clown hitsounds are in now which is awesome. Beat up some clowns!
2017-12-30 13:46:59 +03:00
Joonas Rikkonen 7c37ba0955 Characters can only have one picking timer active at a time. Closes #179 2017-12-21 22:31:48 +02:00
Joonas Rikkonen 604fc65154 Human AI improvements & fixes:
- Replaced item name comparisons with Prefab.NameMatches (-> item names can be changed without breaking the AIs).
- Having an AIObjective set as the current order of the character doesn't automatically cause it to have a high priority. For example, the order to fix leaks has a low priority if there are no leaks to fix.
- AIObjectiveFixLeaks makes sure the character is wearing a diving suit before going to fix a leak. The characters used to run in and out of flooded rooms because the AIObjectiveFindSafety objective would become active as soon as the character entered the room, causing the character to run out, and then immediately run back because they are no longer in immediate danger of drowning, making the FixLeaks objective the most high-priority one.
- Characters attempt to find a room with no water in AIObjectiveIdle even if the character is wearing a diving suit.
- AIObjectiveFindSafety considers flooded rooms dangerous even if the character is wearing a diving suit (-> the character attempts to go into a more dry room instead of happily idling in the flooded one).
- Distance to a hull doesn't decrease its desirability nearly as much in AIObjectiveFindSafety (-> fixes characters not bothering to move into a non-flooded room if it's far away).
- AIObjectiveOperateItem makes sure the item is equipped before using it (-> characters can't weld leaks with the welder in their inventory).
2017-12-21 19:49:26 +02:00
Joonas Rikkonen 62bb5119ab Merge branch 'master' into coolthings 2017-12-17 21:11:42 +02:00
Joonas Rikkonen a5d6da31a4 Holdable items can be held in any limb slot, not just hands. + Characters can hold a flashlight in their mouth. 2017-12-17 20:42:31 +02:00
Alex Noir 0eacbce313 Tweaked crowbar to be a powerful two-handed weapon instead 2017-12-17 16:32:25 +03:00
Alex Noir a620b06831 Play a loud sound when the door is crowbarred open so everyone is alerted! (Security should know when someonoe is breaking into places without ID card)
TODO: use bump.ogg when wrenching/crowbarring is initiated
2017-12-17 15:49:16 +03:00
Alex Noir bdeb3a19fd Updated server logs so admins can see disguised persons
clientist should also display stuff
TODO: Log inventory interactions like putting item in slots (e.g. oxy mask equipped in Head slot or equipped in Any slot, etc.) so you can tell the exact moment someone decided to disguise themselves.
2017-12-16 20:24:24 +03:00
Alex Noir 18d75c620f Adds crowbar function to force-open doors...
***except the Door component ignores the damn requireditem and allows bare fukken hands to open it goddamnit***
2017-12-15 16:47:10 +03:00
Alex Noir 55dd58579f I DID IT HOLY SHIT I GONE AND DONE IT
OnSecondaryUse is what throwing uses for doing things SPECIFICALLY on throw. This way, you can theoretically have grenades on which you'll have to pull the pin before throwing.
This also lets flares be used without the need to throw them.
did i mention my brain hurts
2017-12-10 15:56:34 +03:00
Alex Noir 231a38f71d roll back name change from "Aim" to "SecondaryUse"
Expand SecondaryUse to have similar properties to normal Use so it can apply SecondaryUse-related status effects
Make Throwable great again
2017-12-10 15:00:52 +03:00
Alex Noir 00653c5aa4 Renames "OnSecondaryUse" to "OnAim" for more sense
adds new "OnHudUse" to separate normal and self use
2017-12-10 13:39:00 +03:00
juanjp600 d34c783c30 Removed collision from wall gaps 2017-12-06 13:33:54 -03:00
Joonas Rikkonen 63493d2b9d Added a Character.AddDamage override method that does damage to a specific limb instead of the limb closest to the source of the damage. Projectiles and melee weapons now always do damage to the limb they hit, even if the center point of some other limb happens to be closer.
Also refactored the IDamageable interface to make more sense; now the attacker has to be a character instead of an IDamageable and damageable classes don't need to have an AiTarget.

Closes #69
2017-12-05 18:03:00 +02:00
juanjp600 a0782e5d8d Blowing up the reactor sets karma to 0, all jobs except assistant require a certain karma level 2017-12-04 17:05:22 -03:00
juanjp600 6841bb154b Added Karma, harming players reduces it 2017-12-03 21:51:12 -03:00
Joonas Rikkonen 2fea48287c Item pickup sounds are only played when the controlled character picks up an item
Closes #51
2017-12-01 22:11:14 +02:00
Joonas Rikkonen 765587efd7 Renamed screens (EditMapScreen -> SubEditorScreen, EditCharacterScreen -> CharacterEditorScreen) 2017-11-18 15:13:03 +02:00
Joonas Rikkonen 04e3710a65 Renaming fields for consistency 2017-11-14 22:45:22 +02:00
Joonas Rikkonen 8e556f1c76 - Renamed a bunch of ObjectProperty-related stuff (ObjectProperty -> SerializableProperty, IPropertyObject -> ISerializableEntity, the "SerializableProperty" attribute -> Serialize).
- Rectangle serialization.
- Option to restrict numeric properties to a range of values.
- WIP generic ISerializableEntity editor.
2017-11-08 21:15:03 +02:00
Joonas Rikkonen a0d606ef5f Working on improving the serialization system and ObjectProperty/IPropertyObject (TODO: come up with better names). The plan is to:
- Add support for some of the most common types (vectors, colors, rects) so there's no need to parse the values in the setters of the serializable properties (see Holdable.HoldPos for example).
- Make a generic version of the item editing HUD that can be used on any IPropertyObject. Should make it easier to implement things like the character editor, editing structure properties, particle editor, etc.
- Improve the interface of the editing HUD. Instead of having to type in a string value into a textbox, there should be number input fields for numeric properties, sliders for properties that only accept a range of values, a color picker, etc. And tooltips.
2017-11-03 19:41:21 +02:00
Joonas Rikkonen 6bfca5f7fe - Hitscan projectiles, projectiles can be set to disappear after hitting something.
- Option to adjust ranged weapon spread (separate values for "normal spread" and when being used by an unskilled character).
- Option to disable explosion flashes.
2017-10-18 23:48:25 +03:00
Joonas Rikkonen 142920d704 - Added sprites for damaged doors.
- Fixed destroyed doors being impossible to repair because the repair tool raycasts wouldn't hit the disabled body of the door.
- Destroyed doors don't cast shadows and the body isn't re-enabled until the door is restored to 50% health.
2017-10-12 19:45:49 +03:00
Joonas Rikkonen f46dc5da28 Water flow logic tweaking:
- Less fluctuation, water doesn't constantly flow back and forth through gaps.
- Flowing water pushes characters around much more heavily, and the force is applied to the collider in addition to the limbs.
- Vertical gaps don't push characters up/down unless the character is roughly above/below the gap.

+ Renamed some fields in the hull and gap classes (Volume -> WaterVolume, FullVolume -> Volume, public fields start with a capital letter)
2017-10-10 21:07:45 +03:00
Joonas Rikkonen 1ff2054ca8 Converted the GetAttribute methods in the ToolBox class to extension methods 2017-10-04 18:38:40 +03:00
Joonas Rikkonen 736de25e6c Fixed RangedWeapon launching projectiles in an incorrect rotation 2017-08-27 18:45:14 +03:00
Joonas Rikkonen 7186a8010a Fixed item pickup sounds playing during loading 2017-08-24 19:52:04 +03:00
Joonas Rikkonen f40d244deb Moved inventory UI update logic to the client project, sound effects for picking up and dropping items 2017-08-10 20:30:29 +03:00
Joonas Rikkonen 264015346d Clients ignore messages about attaching an item to a wall if the item is not attachable, and don't drop the the items before attaching (because it disconnects all connected wires). The spamevents debug command didn't work correctly because of this, and I'd imagine that the latter could have caused wires to drop from some attached items when joining mid-round. 2017-08-03 19:29:27 +03:00
Joonas Rikkonen d5e2b202d1 Repair tools can be used on bodies with the CollisionLevel collision category (-> ruins can be cut again) 2017-07-31 18:00:36 +03:00
Joonas Rikkonen 2090bbf04e Platforms or stairs don't obstruct RepairTool raycasts (-> improperly placed platforms/stairs don't prevent fixing walls) 2017-07-27 20:15:58 +03:00
Joonas Rikkonen 431e5bb9b8 Attachable items are always attached by default when adding them in the sub editor 2017-07-25 21:53:57 +03:00
Joonas Rikkonen 56e04823f1 Logging when players attach items on walls or detach them, null exception fix in Throwable (picker is set to null in Item.Drop) 2017-07-17 23:28:46 +03:00
Joonas Rikkonen 575b643c62 Added "user" parameter to Inventory.PutItem and Inventory.TryPutItem. + More descriptive wiring logging: the logs don't list all the wires in a connectionpanel but only the changes a player does to the wiring. Disconnecting wires by picking them up and wiring done by the host are also logged now. 2017-07-17 23:27:31 +03:00
Joonas Rikkonen 045a48cc33 Logging item throwing and which items are contained in items characters use on themselves (e.g. which meds are inside a syringe) 2017-07-09 21:52:13 +03:00
Joonas Rikkonen e0c10860ba Fixes to holdable items again: items can be attached outside hulls in the sub editor, but not in-game 2017-07-09 20:23:14 +03:00
Joonas Rikkonen 2598bb1bd3 Fixed attachable items becoming detachable without any tools after they've been detached once 2017-07-08 18:32:21 +03:00