11using Mirror ;
2- using UnityEngine ;
3- using System . Linq ;
42using PlayerStatsSystem ;
3+ using Synapse . Api . Enum ;
4+ using UnityEngine ;
55
66namespace 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}
0 commit comments