Exemplo n.º 1
0
    private void Start()
    {
        //neighbor detector
        neighborDetector           = GetComponent <SphereCollider>();
        neighborDetector.isTrigger = true;

        //motor
        motor = GetComponent <ThingMotor>();
        motor.SetAccel(acceleration);
        motor.rb.drag = drag;
        motor.rb.mass = mass;
        motor.FacingTarget(alwaysFacingTarget);

        //Chat Ballon
        chatBalloon   = gameObject.GetComponentInChildren <ChatBalloon>();
        speakCDLength = Random.Range(8f, 13f);

        //Instantiating Particle Object
        explodePS = GetComponentInChildren <ParticleSystem>();

        //Sound
        audioSource = gameObject.GetComponent <AudioSource>();
        audioSource.spatialBlend = 0.9f;
        audioSource.maxDistance  = 35;

        //color
        rend = GetComponent <Renderer>();
        if (rend == null)
        {
            rend = GetComponentInChildren <Renderer>();
        }
        originalColor = rend.material.color;

        TTTStart();
    }
Exemplo n.º 2
0
 protected void Speak(string content, float stayLength)
 {
     if (!speakInCD || !stopTalking)
     {
         TTTEventsManager.main.SomeoneSpoke(gameObject);
         if (chatBalloon == null)
         {
             chatBalloon = gameObject.GetComponentInChildren <ChatBalloon> ();
         }
         chatBalloon.SetTextAndActive(content, stayLength);
         speakInCD = true;
         Invoke("UnlockSpeakCD", speakCDLength);
     }
     ThingConsole.Log(gameObject.name + "is speaking: " + content);
 }
Exemplo n.º 3
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int roomId = request.GetInteger();

            RoomData roomData = RoomRepository.Find(roomId);

            if (roomData == null || !roomData.HasOwnerRights(session.Info))
            {
                return;
            }

            // TODO Filter
            string newName = request.GetString();

            // TODO Magic constant
            if (newName.Length > 2)
            {
                roomData.Name = newName;
            }

            // TODO Filter
            roomData.Description = request.GetString();

            int stateId = request.GetInteger();

            RoomState state;

            if (RoomState.TryFromInt32(stateId, out state))
            {
                roomData.State = state;
            }

            roomData.Password = request.GetString();
            roomData.UsersMax = request.GetInteger();

            int categoryId = request.GetInteger();

            FlatNavigatorCategory category = NavigatorCategoryRepository.Find(categoryId);

            if (category != null && category.MinRank <= session.Info.Rank)
            {
                roomData.Category = category;
            }

            int tagCount = request.GetInteger();

            if (tagCount <= 2)
            {
                roomData.Tags.Clear();

                IRepository <Tag> TagRepository = DependencyFactory.Resolve <IRepository <Tag> > ();
                for (int i = 0; i < tagCount; i++)
                {
                    string tagValue = request.GetString().ToLower();
                    Tag    tag      = TagRepository.Find(tagValue);

                    if (tag == null)
                    {
                        tag = new Tag(tagValue);
                    }

                    roomData.Tags.Add(tag);
                }
            }

            TradingState tradeState;

            if (TradingState.TryFromInt32(request.GetInteger(), out tradeState))
            {
                roomData.TradeState = tradeState;
            }

            roomData.AllowPets        = request.GetBool();
            roomData.AllowPetsEating  = request.GetBool();
            roomData.AllowWalkThrough = request.GetBool();

            bool hideWall       = request.GetBool();
            int  wallThickness  = request.GetInteger();
            int  floorThickness = request.GetInteger();

            if (session.Info.Subscription.HasLevel(ClubLevel.HC))
            {
                roomData.HideWall       = hideWall;
                roomData.WallThickness  = wallThickness;
                roomData.FloorThickness = floorThickness;
            }
            else
            {
                roomData.HideWall       = false;
                roomData.WallThickness  = 0;
                roomData.FloorThickness = 0;
            }

            RoomModerationRight right;

            if (RoomModerationRight.TryFromInt32(request.GetInteger(), out right))
            {
                roomData.ModerationSettings.WhoCanMute = right;
            }

            if (RoomModerationRight.TryFromInt32(request.GetInteger(), out right))
            {
                roomData.ModerationSettings.WhoCanKick = right;
            }

            if (RoomModerationRight.TryFromInt32(request.GetInteger(), out right))
            {
                roomData.ModerationSettings.WhoCanBan = right;
            }

            ChatType chatType;

            if (ChatType.TryFromInt32(request.GetInteger(), out chatType))
            {
                roomData.Chat.Type = chatType;
            }

            ChatBalloon chatBalloon;

            if (ChatBalloon.TryFromInt32(request.GetInteger(), out chatBalloon))
            {
                roomData.Chat.Balloon = chatBalloon;
            }

            ChatSpeed chatSpeed;

            if (ChatSpeed.TryFromInt32(request.GetInteger(), out chatSpeed))
            {
                roomData.Chat.Speed = chatSpeed;
            }

            int maxDistance = request.GetInteger();

            if (roomData.Chat.isValidDistance(maxDistance))
            {
                roomData.Chat.SetMaxDistance(maxDistance);
            }

            FloodProtection floodProtection;

            if (FloodProtection.TryFromInt32(request.GetInteger(), out floodProtection))
            {
                roomData.Chat.FloodProtection = floodProtection;
            }

            request.GetBool(); //TODO allow_dyncats_checkbox

            router.GetComposer <RoomSettingsSavedMessageComposer>().Compose(session, roomData.Id);

            Room room = RoomManager.GetIfLoaded(roomData);

            if (room != null)
            {
                room.EachUser(x =>
                {
                    x.Router.GetComposer <RoomUpdateMessageComposer>().Compose(x, roomData.Id);
                    x.Router.GetComposer <RoomFloorWallLevelsMessageComposer>().Compose(x, roomData);
                    x.Router.GetComposer <RoomChatOptionsMessageComposer>().Compose(x, roomData);
                    x.Router.GetComposer <RoomDataMessageComposer>().Compose(x, roomData, x.Info, true, true);
                });
            }
        }