public override void Init(BasePlayer player, Vector2 spawnPos) { Player = player; Position = spawnPos; IsAlive = true; Health = 0; Armor = 0; EmoteStopTick = -1; Emote = Emote.Normal; Core = Kernel.Get <BaseCharacterCore>(); SendCore = Kernel.Get <BaseCharacterCore>(); ReckoningCore = Kernel.Get <BaseCharacterCore>(); ReckoningCore.IsPredicted = true; Core.Reset(); Core.Init(GameWorld.WorldCore, GameContext.MapCollision); Core.Position = Position; var worldCore = new WorldCore( GameWorld.WorldCore.CharacterCores.Length, Kernel.Get <BaseTuningParams>()); ReckoningCore.Init(worldCore, GameContext.MapCollision); GameContext.CreatePlayerSpawn(spawnPos); GameWorld.WorldCore.CharacterCores[player.ClientId] = Core; Input = new SnapshotPlayerInput(); LatestPrevInput = new SnapshotPlayerInput(); LatestInput = new SnapshotPlayerInput(); LastAction = -1; HitObjects = new List <Entity>(); NinjaStat = new NinjaStat(); ActiveWeapon = Weapon.Hammer; LastWeapon = Weapon.Gun; QueuedWeapon = (Weapon)(-1); Weapons = new WeaponStat[(int)Weapon.NumWeapons]; Weapons[(int)Weapon.Hammer].Got = true; Weapons[(int)Weapon.Hammer].Ammo = -1; Destroyed += OnDestroyed; Reseted += OnReseted; }