public override void Arrive()
        {
            // 1) send event
            var json = PackageFactory.CreateArrivalMessage(GetComponent <ShipData>().uid);

            SocketHandler.EmitNow("unit-arrival", json);

            // 2) schedule event
            ((GameMp)Game.Shared).ScheduleAt("unit-arrival", json["scheduleId"].ToObject <long>(), json["packageId"].ToObject <int>(), () =>
            {
                var uid = json["uid"].ToObject <int>();
                Registry.Ships[uid].GetComponent <PlayMakerFSM>().SendEvent("Arrive");
            });
        }