Skip to content
This repository was archived by the owner on Aug 9, 2023. It is now read-only.

Commit 02ff65a

Browse files
authored
Merge pull request #88 from SynapseSL/development
Development
2 parents 221dc51 + 1dbd0a6 commit 02ff65a

20 files changed

+241
-691
lines changed

Synapse.zip

-3.59 MB
Binary file not shown.

Synapse/Api/Enum/DamageType.cs

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
namespace Synapse.Api.Enum
2+
{
3+
public enum DamageType
4+
{
5+
Recontained,
6+
Warhead,
7+
Scp049,
8+
Unknown,
9+
Asphyxiated,
10+
Bleeding,
11+
Falldown,
12+
PocketDecay,
13+
Decontamination,
14+
Poisoned,
15+
Scp207,
16+
SeveredHands,
17+
MicroHID,
18+
Tesla,
19+
Explosion,
20+
Scp096,
21+
Scp173,
22+
Scp939,
23+
Zombie,
24+
BulletWounds,
25+
Crushed,
26+
UsedAs106Bait,
27+
FriendlyFireDetector,
28+
Hypothermia,
29+
30+
Universal,
31+
CustomReason,
32+
Disruptor,
33+
Firearm,
34+
MicroHid,
35+
Recontainment,
36+
Scp018,
37+
Scp,
38+
}
39+
}

Synapse/Api/Enum/WeaponType.cs

-12
This file was deleted.

Synapse/Api/Events/EventHandler.cs

+1-8
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,15 @@ internal EventHandler()
1414
Server.UpdateEvent += OnUpdate;
1515
#if DEBUG
1616
Player.PlayerKeyPressEvent += KeyPress;
17-
Player.PlayerShootEvent += Shoot;
1817
#endif
1918
}
2019

21-
private void Shoot(SynapseEventArguments.PlayerShootEventArgs ev)
22-
{
23-
Logger.Get.Warn(ev.TargetPosition);
24-
}
25-
2620
private void KeyPress(SynapseEventArguments.PlayerKeyPressEventArgs ev)
2721
{
2822
switch (ev.KeyCode)
2923
{
3024
case KeyCode.Alpha1:
31-
foreach (var station in Api.Map.Get.WorkStations)
32-
Logger.Get.Warn(station.GameObject.name);
25+
3326
break;
3427
}
3528
}

Synapse/Api/Events/PlayerEvents.cs

+9-7
Original file line numberDiff line numberDiff line change
@@ -118,31 +118,33 @@ internal void InvokePlayerSpeakEvent(DissonanceUserSetup userSetup, ref bool int
118118
allow = ev.Allow;
119119
}
120120

121-
internal void InvokePlayerDeathEvent(Player victim, Player killer, ItemType Weapon)
121+
internal void InvokePlayerDeathEvent(Player victim, Player killer, DamageType type, out bool allow)
122122
{
123123
var ev = new PlayerDeathEventArgs
124124
{
125125
Killer = killer,
126126
Victim = victim,
127-
Weapon = Weapon
127+
DamageType = type,
128128
};
129129
PlayerDeathEvent?.Invoke(ev);
130+
131+
allow = ev.Allow;
130132
}
131133

132-
internal void InvokePlayerDamageEvent(Player victim, Player killer, ref float Damage, ItemType Weapon, out bool Allow)
134+
internal void InvokePlayerDamageEvent(Player victim, Player killer, ref float damage, DamageType type, out bool allow)
133135
{
134136
var ev = new PlayerDamageEventArgs
135137
{
136138
Killer = killer,
137139
Victim = victim,
138-
Damage = Damage,
139-
Weapon = Weapon
140+
Damage = damage,
141+
DamageType = type,
140142
};
141143

142144
PlayerDamageEvent?.Invoke(ev);
143145

144-
Damage = ev.Damage;
145-
Allow = ev.Allow;
146+
damage = ev.Damage;
147+
allow = ev.Allow;
146148
}
147149

148150
internal void InvokeLoadComponentsEvent(GameObject gameObject)

Synapse/Api/Events/SynapseEventArguments/PlayerEventArgs.cs

+5-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using PlayerStatsSystem;
99
using Synapse.Api;
1010

11-
// ReSharper disable UnusedAutoPropertyAccessor.Global
1211
namespace Synapse.Api.Events.SynapseEventArguments
1312
{
1413
public class PlayerJoinEventArgs: EventHandler.ISynapseEventArgs
@@ -68,9 +67,9 @@ public class PlayerDeathEventArgs : EventHandler.ISynapseEventArgs
6867

6968
public Player Killer { get; internal set; }
7069

71-
public float Damage { get; set; }
72-
73-
public ItemType Weapon { get; internal set; }
70+
public DamageType DamageType { get; internal set; }
71+
72+
public bool Allow { get; set; } = true;
7473
}
7574

7675
public class PlayerDamageEventArgs : EventHandler.ISynapseEventArgs
@@ -80,8 +79,8 @@ public class PlayerDamageEventArgs : EventHandler.ISynapseEventArgs
8079
public Player Victim { get; internal set; }
8180

8281
public float Damage { get; set; }
83-
84-
public ItemType Weapon { get; internal set; }
82+
83+
public DamageType DamageType { get; internal set; }
8584

8685
public bool Allow { get; set; } = true;
8786
}

Synapse/Api/Items/ItemManager.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
using System.Collections.Generic;
1+
using Synapse.Api.Exceptions;
2+
using System.Collections.Generic;
23
using System.Linq;
3-
using Synapse.Api.Exceptions;
44

55
namespace Synapse.Api.Items
66
{

Synapse/Api/Player.cs

+27-16
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
1-
using System;
2-
using System.Linq;
3-
using System.Reflection;
4-
using Hints;
1+
using Hints;
52
using InventorySystem;
63
using InventorySystem.Disarming;
74
using InventorySystem.Items;
8-
using InventorySystem.Items.Firearms;
95
using InventorySystem.Items.Firearms.Attachments;
106
using InventorySystem.Searching;
117
using MapGeneration;
@@ -20,6 +16,9 @@
2016
using Synapse.Database;
2117
using Synapse.Patches.EventsPatches.PlayerPatches;
2218
using Synapse.Permission;
19+
using System;
20+
using System.Linq;
21+
using System.Reflection;
2322
using UnityEngine;
2423

2524
namespace Synapse.Api
@@ -76,12 +75,6 @@ public void ChangeRoleAtPosition(RoleType role)
7675
RoleChangeClassIdPatch.ForceLite = false;
7776
}
7877

79-
public void Kill(DamageHandlerBase damageType = default)
80-
{
81-
damageType ??= new UniversalDamageHandler(10000, DeathTranslations.Unknown);
82-
PlayerStats.KillPlayer(damageType);
83-
}
84-
8578
public void GiveTextHint(string message, float duration = 5f)
8679
{
8780
Hub.hints.Show(new TextHint(message, new HintParameter[]
@@ -127,12 +120,19 @@ public void RaLogout()
127120

128121
public void Heal(float hp) => Health += hp;
129122

130-
public void Hurt(int amount, DamageHandlerBase damageType = default)
123+
public bool Hurt(float damage, DamageType type = DamageType.Unknown)
131124
{
132-
damageType ??= new UniversalDamageHandler(amount, DeathTranslations.Unknown);
133-
PlayerStats.DealDamage(damageType);
125+
var handler = type.GetUniversalDamageHandler();
126+
handler.Damage = damage;
127+
return PlayerStats.DealDamage(handler);
134128
}
135129

130+
public bool Hurt(DamageHandlerBase handlerbase) => PlayerStats.DealDamage(handlerbase);
131+
132+
public void Kill() => Kill("Unknown Reason");
133+
134+
public bool Kill(string reason, string cassie = "") => PlayerStats.DealDamage(new CustomReasonDamageHandler(reason, 9999999999f, cassie));
135+
136136
public void OpenReportWindow(string text) => GameConsoleTransmission.SendToClient(Connection, "[REPORTING] " + text, "white");
137137

138138
public void RemoveDisplayInfo(PlayerInfoArea playerInfo) => NicknameSync.Network_playerInfoToShow &= ~playerInfo;
@@ -550,15 +550,26 @@ public float Health
550550
set => Hub.playerStats.GetModule<HealthStat>().CurValue = value;
551551
}
552552

553-
public float MaxHealth => Hub.playerStats.GetModule<HealthStat>().MaxValue;
553+
public float MaxHealth { get; set; } = 100f;
554554

555555
public float ArtificialHealth
556556
{
557557
get => Hub.playerStats.GetModule<AhpStat>().CurValue;
558558
set => Hub.playerStats.GetModule<AhpStat>().CurValue = value;
559559
}
560560

561-
public int MaxArtificialHealth => (int) Hub.playerStats.GetModule<AhpStat>().MaxValue;
561+
private int maxahp = 75;
562+
563+
public int MaxArtificialHealth
564+
{
565+
get => maxahp;
566+
set
567+
{
568+
maxahp = value;
569+
foreach (var process in PlayerStats.GetModule<AhpStat>()._activeProcesses)
570+
process.Limit = value;
571+
}
572+
}
562573

563574
public float Stamina
564575
{

Synapse/Api/Ragdoll.cs

+15-38
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,39 @@
11
using Mirror;
2-
using UnityEngine;
3-
using System.Linq;
42
using PlayerStatsSystem;
3+
using Synapse.Api.Enum;
4+
using UnityEngine;
55

66
namespace Synapse.Api
77
{
88
public class Ragdoll
99
{
1010
internal Ragdoll(global::Ragdoll rag) => ragdoll = rag;
1111

12-
/*public Ragdoll(RoleType roletype, Vector3 pos, Quaternion rot, Vector3 velocity, PlayerStats.HitInfo info, bool allowRecall, string owner)
13-
{
14-
var role = Server.Get.Host.ClassManager.Classes.SafeGet((int)roletype);
15-
var gameobject = UnityEngine.Object.Instantiate(role.model_ragdoll, pos + role.ragdoll_offset.position, Quaternion.Euler(rot.eulerAngles + role.ragdoll_offset.rotation));
16-
NetworkServer.Spawn(gameobject);
17-
ragdoll = gameobject.GetComponent<global::Ragdoll>();
18-
ragdoll.Networkowner = new global::Ragdoll.Info("", owner, info, role, 0);
19-
ragdoll.NetworkallowRecall = allowRecall;
20-
ragdoll.NetworkPlayerVelo = velocity;
21-
Map.Get.Ragdolls.Add(this);
22-
}*/
12+
public Ragdoll(RoleType roleType, string name, Vector3 pos, Quaternion rot, DamageType type)
13+
: this(roleType, name, pos, rot, type.GetUniversalDamageHandler()) { }
2314

24-
public Ragdoll(RoleType roleType, Vector3 pos, Quaternion rot, DamageHandlerBase handler, Player owner)
15+
public Ragdoll(RoleType roleType, string name, Vector3 pos, Quaternion rot, DamageHandlerBase handler)
2516
{
26-
GameObject gameObject = Server.Get.Host.ClassManager.Classes.SafeGet((int) roleType).model_ragdoll;
27-
//GameObject gameObject = Object.Instantiate(role.model_ragdoll, pos + role.model_offset.position,
28-
// Quaternion.Euler(rot.eulerAngles + role.model_offset.rotation));
17+
var gameObject = Server.Get.Host.ClassManager.Classes.SafeGet((int) roleType).model_ragdoll;
18+
2919
if (gameObject == null || !Object.Instantiate(gameObject).TryGetComponent(out ragdoll))
30-
{
3120
return;
32-
}
33-
ragdoll = gameObject.GetComponent<global::Ragdoll>();
34-
ragdoll.NetworkInfo = new RagdollInfo(owner.Hub, handler, pos, rot);
35-
NetworkServer.Spawn(gameObject);
21+
22+
ragdoll.NetworkInfo = new RagdollInfo(Server.Get.Host.Hub, handler, roleType, pos, rot, name, NetworkTime.time);
23+
NetworkServer.Spawn(GameObject);
24+
25+
Map.Get.Ragdolls.Add(this);
3626
}
3727

38-
private readonly global::Ragdoll ragdoll;
28+
public readonly global::Ragdoll ragdoll;
3929

4030
public GameObject GameObject => ragdoll.gameObject;
4131

42-
public string Name => ragdoll.name;
43-
4432
public RoleType RoleType
4533
{
4634
get => ragdoll.Info.RoleType;
4735
}
4836

49-
public Vector3 Position
50-
{
51-
get => ragdoll.transform.position;
52-
set
53-
{
54-
NetworkServer.UnSpawn(GameObject);
55-
ragdoll.transform.position = value;
56-
NetworkServer.Spawn(GameObject);
57-
}
58-
}
59-
6037
public Vector3 Scale
6138
{
6239
get => ragdoll.transform.localScale;
@@ -79,7 +56,7 @@ public void Destroy()
7956
Map.Get.Ragdolls.Remove(this);
8057
}
8158

82-
public static Ragdoll CreateRagdoll(RoleType roletype, Vector3 pos, Quaternion rot, DamageHandlerBase handler, Player owner)
83-
=> new Ragdoll(roletype, pos, rot, handler, owner);
59+
public static Ragdoll CreateRagdoll(RoleType roletype,string name, Vector3 pos, Quaternion rot, DamageType type)
60+
=> new Ragdoll(roletype,name, pos, rot, type);
8461
}
8562
}

Synapse/Command/Handlers.cs

+2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ internal void GenerateCommandCompletion()
8181
Usage = command.Arguments
8282
});
8383

84+
if (command.Aliases == null) continue;
85+
8486
foreach (var ali in command.Aliases)
8587
list.Add(new RemoteAdmin.QueryProcessor.CommandData
8688
{

0 commit comments

Comments
 (0)