Ejemplo n.º 1
0
        public override void Spawn()
        {
            // check if spawning event already triggered
            if (_fsm.ActiveStateName.Equals("Spawning Ship"))
            {
                return;
            }

            // 1) block spawnings until network event did actually spawn the ship
            _fsm.SendEvent("Spawn");

            // 2) broadcast spawn event
            var json = PackageFactory.CreateSpawnMessage(
                new[] { new JObject
                        {
                            { "island_uid", Island.Uid },
                            { "uid", UidGenerator.GetNewUid() }
                        } });

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

            // 3 schedule event
            Spawn(json);
        }