Commit Graph

75 Commits

Author SHA1 Message Date
Joonas Rikkonen ceaba2f5ca Fixed some entities occasionally not being removed at the end of a round. CargoMission removed the cargo items at the end of a round without checking if the items have already been removed, which could cause another entity to be removed from the entity dictionary if it's taken the ID of the cargo item. This prevented the new entity from being removed in Entity.RemoveAll, causing errors during the next round. Closes #278 2018-04-23 13:55:08 +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 df746db421 Ladders can be climbed by holding up/down while standing next to them without having to select them first. 2018-03-08 11:01:17 +02:00
Joonas Rikkonen 07d3d69040 Equipped items can be swapped by double-clicking, fixed inventories getting messed up when swapping multi-slot items fails (e.g. drag a jumpsuit on an equipped diving suit). 2018-03-02 15:24:54 +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 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 7f740c2f67 Attempt to diagnose issues #278, #284 and #291. It appears that the game attempts to access the Limbs-field of a ragdoll after it's been set to null (which should only happen when the ragdoll is removed). 2018-02-26 15:06:00 +02:00
Joonas Rikkonen 24cb7a3659 Husk infection state can be decreased after the infection reaches the active state (causing the husk appendage to be removed). Calyxanide still has a conditional preventing the decrease, but now it's possible for modders to revert huskification without code modifications. Closes #258 2018-02-21 11:12:49 +02:00
Joonas Rikkonen d414e8e103 Fixed StatusEffects not being able to decrease stun timer. Closes #255 2018-02-20 22:44:32 +02:00
Joonas Rikkonen e6e132aa1e More gib particles when characters get crushed by pressure 2018-01-25 13:56:39 +02:00
Joonas Rikkonen 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +02:00
Joonas Rikkonen bcd2582cf9 - More gore particles when severing limbs!
- Explosions can sever limbs even if the target character is dead. Now explosive projectiles can explode creatures into pieces even if the creature dies of the initial projectile impact and not the explosion.
- Disabled blood particles on carriers and fractal guardians.
2017-12-29 21:06:11 +02:00
Alex Noir ed98a6bc0b well jeez who'da thunk it's my sorry ass forgetting to remove the second updateoxygen
Reverted OxygenAvailable values for diving gear + oxygen mask back to -100
Keeping sufforin OxygenAvailable at -10000 tho, that seems like the way to completely cut off any and all oxygen suppliers from acting
2017-12-28 19:28:45 +03:00
Joonas Rikkonen d074d3d443 Crew AI fixes:
- Characters can use oxygenite shards (or any other item with an "oxygensource" tag) in diving suits/masks.
- AIObjectiveFindDivingGear doesn't count as being completed if the character has diving gear in their inventory unless the character has equipped the gear.
- AIObjectiveGetItem doesn't count as being completed if equipping the target item is required and the character hasn't equipped it yet.
2017-12-28 12:53:23 +02:00
Alex Noir b3eaa6bd17 Merge remote-tracking branch 'origin/master' into moStuff
# Conflicts:
#	Barotrauma/BarotraumaShared/BarotraumaShared.projitems
#	Barotrauma/BarotraumaShared/Data/clientpermissions.xml
2017-12-23 17:33:24 +03:00
juanjp600 47b5ccd7c6 Merge branch 'master' of https://github.com/Regalis11/Barotrauma 2017-12-21 20:31:24 -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
Alex Noir 9610444e67 Merge branch 'master' into moStuff
# Conflicts:
#	Barotrauma/BarotraumaShared/Source/Characters/Character.cs
2017-12-21 23:17:56 +03:00
juanjp600 c593fdb7c6 Minor networking fixes
- Don't spam the shit out of status updates (TODO: send update
immediately on drastic changes)
- Fixed some potential message misreading
- Readded homoglyph name comparison
2017-12-21 16:00:04 -03:00
Alex Noir 9251dbf83a Overhaul DelayedEffect to support application to multiple targets
Fix DelayedEffect being unusable by monsters due to monsters calling Single Target Apply in their Attack, which DelayedEffect doesn't override, by making Apply (single target) call Apply (multiple targets) which THEN calls the protected Apply function.
Nerf Amanitin to require two injections to be lethal. First injection only stops oxygen from regenerating and slightly saps HP.
Add Cause of Death to Health HUD
2017-12-21 21:40:54 +03:00
Joonas Rikkonen dde320b387 Merge pull request #101 from Crystalwarrior/moRags
Body shoulder-grab, better CPR anims, CPR and Crit overhaul!
2017-12-20 19:37:38 +02:00
Alex Noir e56f5c4946 what started as a fix of https://github.com/Regalis11/Barotrauma/issues/103 ended up being a huge CPR overhaul. oops.
CPR:
There's now a difference between CPR on bleeding, CPR on hurting and CPR on oxygen deprivation.
If you try to CPR bleeding people, it will make bloody sounds and particles while hurting them. So don't.
If you CPR people with less than 0 health, it will do RNG based on your skill level to bring them back to life with 2 HP.
Otherwise if you CPR their oxygen back, chest pumps will simply prevent oxygen deprivation and mouth-to-mouth will bring back their oxygen while taking yours based on the skill level.

Crit:
Changed it so you always lose oxygen when critical. Your heart stopped either way!
2017-12-19 22:11:45 +03:00
Alex Noir 3b65802a95 Fix issue #97 by allowing stunned people to sustain bleed + oxygen damage as well as handling crit health effects differently 2017-12-19 15:25:01 +03:00
Joonas Rikkonen 26503a975c Fixed sub->sub and outside->sub visibility checks when determining name tag visibility. 2017-12-17 22:34:24 +02:00
Alex Noir e5c49d929d Fixed ragdolling and grab-type switching in singleplayer 2017-12-17 23:13:50 +03:00
Alex Noir 9e307d8302 Merge branch 'master' into moRags 2017-12-17 22:58:16 +03:00
Joonas Rikkonen 6127bb473d - Moved character nametag visibility culling to the update method (doesn't make sense for the update rate to be tied to rendering framerate).
- Name tags on characters that are outside the camera view are automatically hidden to avoid the costly visibility checks.
- If the controlled character or the target has no head, the visibility check is done based on the position of the torso.
- Fixed sub->outside visibility checks.
- Fixed invalid attributes in the flashlight config.
2017-12-17 21:47:03 +02:00
Alex Noir 1e5b25bd1a Merge branch 'master' into moRags 2017-12-17 22:41:45 +03:00
Joonas Rikkonen 62bb5119ab Merge branch 'master' into coolthings 2017-12-17 21:11:42 +02: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 bd646fb23e Implements identity system! If your mask hides your face (e.g. oxygen mask, clown mask and diving suit), the game will either use the name of the ID card owner in your ID card slot or will give you a "?" name.
This only affects "DisplayName". The reason why I can't completely override the .Name for the client from server is due to how crew manifest and CharacterInfo classes are handled - it would require a major rework of many Character-related systems and interactions to truly make this "hack-proof".
Server hosts will have to stay on their toes I guess.
2017-12-16 19:52:25 +03:00
Joonas Rikkonen 8a7af2affd Players can't use other items when a railgun controller is selected. Prevents accidentally firing weapons or hitting people with something while using the railguns.
Closes #94
2017-12-15 00:25:46 +02:00
Alex Noir 760452170e Implement ID card slot and ID card description that states the owner and his job in preparation for identity system 2017-12-14 22:57:42 +03:00
Alex Noir 07aeac4fdc Traitor Count/Coefficient and Ragdoll and Karma server settings buttons!!! oh my GOD!!! 2017-12-09 19:09:10 +03:00
Alex Noir e050404278 Carrying stunned/unconscious/dead people up ladders woot!!!
Properly orient grabbed player on climbing and shoulder grab
Allow interaction with buttons, ladders, etc. when grabbing someone
2017-12-08 22:30:47 +03:00
Alex Noir de7489db8b Change int to UInt32 for grabLimb networking
Fixed IsRagdolled state networking
2017-12-08 20:55:46 +03:00
Joonas Rikkonen db7d5539e0 Fixed modified clients being able to disconnect locked wires 2017-12-07 20:20:05 +02:00
juanjp600 26216a0d99 Fixed fish being selectable
Closes #91
2017-12-07 00:01:48 -03:00
juanjp600 a272d22de8 Players can now pick up corpses to eat them 2017-12-06 17:57:58 -03:00
juanjp600 1e81a5acf1 Removed "RAGDOLL" console spam 2017-12-06 14:49:37 -03:00
juanjp600 0d8d0d62ec Fixed ragdolling in multiplayer 2017-12-06 14:48:47 -03:00
Alex Noir 4a8e411a70 Fixed carrying stunned people being a severe case of a major ass pain by carrying over the "stairs" from the carrier.
Added "CarriedBy" property, publicized CarriedCharacter and CarriedBy, synced CarriedCharacter and CarriedBy for cool points
Publicized Stairs property
2017-12-06 18:58:18 +03:00
Alex Noir ee8c4dfb3a Adds ragdoll button. Because why not.
Also adds admin ragdoll command to force people into ragdoll mode.
The networking/syncing wasn't yet tested for this but hopefully everything should work.
Updates config.xml to add default keybinds for radio chat and ragdoll
2017-12-05 20:50:24 +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 2347f2937e Improved revolver hitreg, shooting structures affects karma, fixed 5th server being blocked in server list
Closes #70
2017-12-04 12:39:27 -03:00
juanjp600 6841bb154b Added Karma, harming players reduces it 2017-12-03 21:51:12 -03:00
Joonas Rikkonen 765587efd7 Renamed screens (EditMapScreen -> SubEditorScreen, EditCharacterScreen -> CharacterEditorScreen) 2017-11-18 15:13:03 +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 c444186426 Updated client project (ShiftSummary -> RoundSummary), removed unused drowningtime variable 2017-10-05 21:35:57 +03:00