public void Move()
            {
                const float WALL_RIGHT = -3.1f;
                const float WALL_LEFT  = 3.1f;
                const float WALL_UP    = 2.3f;
                const float WALL_DOWN  = -2.0f;

                //Hit horizontal walls or move
                if (this.X <= WALL_RIGHT && this._State != BubbleState.Bouncing)
                {
                    this._State = BubbleState.HitWallRight;
                }
                else if (this.X >= WALL_LEFT && this._State != BubbleState.Bouncing)
                {
                    this._State = BubbleState.HitWallLeft;
                }
                else
                {
                    this.X += this.NextX;
                }

                //Hit vertical walls or move
                if (this.Y <= WALL_DOWN && this._State != BubbleState.Bouncing)
                {
                    this._State = BubbleState.HitWallDown;
                }
                else if (this.Y >= WALL_UP && this._State != BubbleState.Bouncing)
                {
                    this._State = BubbleState.HitWallUp;
                }
                else
                {
                    this.Y += this.NextY;
                }
            }
Exemplo n.º 2
0
    public void Init(int power, BubbleState bubbleState)
    {
        rb.bodyType = RigidbodyType2D.Kinematic;

        Power = power;
        SetState(bubbleState);
    }
Exemplo n.º 3
0
        private void onPromptButtonPressed(DPrompt.ButtonFlags pressed)
        {
            if (pressed != DPrompt.ButtonFlags.YES)
            {
                return;
            }
            LocomotionController currentController = LocomotionHelper.GetCurrentController(base.gameObject);

            if (currentController is SitController)
            {
                LocomotionHelper.SetCurrentController <SwimController>(base.gameObject);
            }
            bubbleState = BubbleState.TransitionToHidden;
            playAudioEvent(mutableData.AirCriticalAudioEvent, EventAction.StopSound);
            GameObject gameObject = GameObject.FindWithTag(UIConstants.Tags.UI_Tray_Root);

            if (gameObject != null)
            {
                StateMachineContext component = gameObject.GetComponent <StateMachineContext>();
                if (component != null)
                {
                    component.SendEvent(new ExternalEvent("Root", "noUI"));
                }
            }
            Invoke("startBubbleScreenWipe", 0.7f);
            swimController.ResurfaceAccepted();
            dispatcher.DispatchEvent(default(DivingEvents.PlayerResurfaced));
        }
Exemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        switch (state)
        {
        case BubbleState.BS_HIDE:
        {
            transform.localScale = new Vector3(scale, scale, 1);
        }
        break;

        case BubbleState.BS_BUBBLE:
        {
            ScaleVal.Update();
            BubbleVal.Update();
            scale = ScaleVal.val;
            transform.localScale = new Vector3(ScaleVal.val, ScaleVal.val, 1);
            transform.rotation   = Quaternion.Euler(0, 0, BubbleVal.val);
            if (ScaleVal.IsFinish() && BubbleVal.IsFinish())
            {
                setButton(true);
                state = BubbleState.BS_FIX;
            }
        }
        break;

        case BubbleState.BS_FIX:
        {
            transform.localScale = new Vector3(scale, scale, 1);
        }
        break;
        }
    }
Exemplo n.º 5
0
        public Bubble(float xPos, float yPos, Dictionary<BubbleState,Texture2D> textureList, BubbleType bubbleType )
        {
            currentState = BubbleState.APPEARING;
            this.textureList = textureList;

            this.pos = new Vector2(xPos, yPos);
            this.xPos = xPos;
            this.yPos = yPos;
            this.maxScale = 0.50f;
            this.bubbleType = bubbleType;

            //time required for the joint to stay in this bubble so that it will pop
            this.popTime = GameConfig.BUBBLE_POP_TIME;

            //alpha value, 1.0f is default
            this.alpha = 0.80f;

            //collision radius
            this.radius = 25;
            this.collisionBox = new Rectangle((int)xPos - radius, (int)yPos - radius, radius*2, radius*2);

            //the duration this bubble remains n screen
            //when duration is over, it will go to the disappearing state
            this.stayingDuration = GameConfig.BUBBLE_SOLO_DURATION;
            this.stayingDurationCtr = stayingDuration;
        }
            private void Initialize(Direct3D.Device NewParentDevice, float NewX, float NewY, float NewZ)
            {
                //recreate the master sprites if they dont exist
                if (BubbleAccess.MasterBubbleSprite == null)
                {
                    BubbleAccess.MasterBubbleSprite = new SpriteAccess(NewParentDevice, GameConfig.Files.Bubbles, 0, 0, 0, 32, 32, 64, 64, Color.FromArgb(0xFF, 0x00, 0x00, 0xFF), 0, 0);
                }

                if (BubbleAccess.MasterItemSprite == null)
                {
                    BubbleAccess.MasterItemSprite = new SpriteAccess(NewParentDevice, GameConfig.Files.Items, 0, 0, 0, 32, 32, 128, 128, Color.FromArgb(0xFF, 0x00, 0x00, 0xFF), 0, 0);
                }

                this.X = NewX;
                this.Y = NewY;
                this.Z = NewZ;

                //have this bubble sprites refer to the master sprites
                this.BubbleSprite = new SpriteAccess(BubbleAccess.MasterBubbleSprite, this.X, this.Y, this.Z);
                this.ItemSprite   = new SpriteAccess(BubbleAccess.MasterItemSprite, this.X, this.Y, this.Z);

                this._State = BubbleState.NeedsFreshAngle;

                this._Item            = (ItemType)(int)((1.0f + (float)ItemType.Warp) * SpaceAndTime.RandomPercent);
                this.ItemSprite.Frame = (int)this._Item;
            }
Exemplo n.º 7
0
 public void BubbleMissed(BubbleState state)
 {
     if (++missedBubbles >= MaxBubblesMissed)
     {
         LevelState = ELevelState.Failed;
     }
 }
Exemplo n.º 8
0
    public void popup()
    {
        BubbleVal.morphBubble(0, 0, 20, 60, Delay);
        ScaleVal.morphEasein(0, fixScale, 15, Delay);

        state = BubbleState.BS_BUBBLE;
        setButton(false);
    }
Exemplo n.º 9
0
        private void InitSpeechBubble()
        {
            if (_initialized)
            {
                initAgain = false;
                if (!style.IsNone)
                {
                    bubbleStyle = _skin.GetStyle(style.Value + "_" + System.Enum.GetName(typeof(CornerEnum), corner).ToLower());
                    if (bubbleStyle == null)
                    {
                        bubbleStyle = _skin.GetStyle(style.Value);
                    }
                }
                else
                {
                    bubbleStyle = _skin.GetStyle(_style + "_" + System.Enum.GetName(typeof(CornerEnum), corner).ToLower());
                    if (bubbleStyle == null)
                    {
                        bubbleStyle = _skin.GetStyle(_style);
                    }
                }
#if UNITY_IPHONE
                if (bubbleStyle != null)
                {
                    bubbleStyle.fontSize  = 0;
                    bubbleStyle.fontStyle = FontStyle.Normal;
                }
#endif
                if (!offset.IsNone)
                {
                    bubbleOffset = offset.Value;
                }
                else
                {
                    bubbleOffset = _offset;
                }
                bubbleOffsetVector = _offsetVector;
                if (!id.IsNone)
                {
                    rawText = Lang.GetText(
                        dictionary.IsNone ? "" : dictionary.Value,
                        id.Value,
                        text.IsNone ? "" : text.Value.Trim()
                        );
                    lastLanguage = Lang.selectedLanguage;
                }
                else
                {
                    rawText = text.IsNone ? "" : text.Value.Trim();
                }
                Say(rawText);
                bubbleState = SpeechBubble.BubbleState.effectin;
            }
            else
            {
                initAgain = true;
            }
        }
 public void InstantiateOpponentBubble(BubbleState bubbleState)
 {
     //for opponnent bubbles - right part of screen
     bubbleState.StartPosition = new Vector2(bubbleState.StartPosition.x + OpponentLevelBounds.x - PlayerLevelBounds.x
         , bubbleState.StartPosition.y);
     var bubbleObject = InstanatiateBubble(bubbleState);
     bubbleObject.generatedtTexture = TextureFactory.Instance.GetTexture(bubbleState.Size / level.BubblesSizeRange.y, true);
     opponentBubbles.Add(bubbleState.ID, bubbleObject);
 }
Exemplo n.º 11
0
    //更改内容
    IEnumerator ChangeDialog()
    {
        state = BubbleState.waiting;
        yield return(new WaitForSeconds(Random.Range(minDialogInterval, maxDialogInterval)));

        targetString = data.contents[Random.Range(0, data.contents.Count)].dialogText;
        state        = BubbleState.typing;
        OnShow?.Invoke();
    }
Exemplo n.º 12
0
    void FixedUpdate()
    {
        float completed = 0f;

        switch (state)
        {
        case BubbleState.NOTHING:
            break;

        case BubbleState.DESTROYING:
            currenttime += Time.deltaTime;
            completed    = 1f - currenttime / 0.2f;

            setAlpha(completed);
            setScale(completed);

            if (completed <= 0)
            {
                GameObject.Destroy(this.gameObject);
            }
            break;

        case BubbleState.SHOWING:
            Vector3 destination;
            if (finalPosition == null)
            {
                destination = Vector3.zero;
            }
            else
            {
                destination = finalPosition;
            }

            destination   = Vector3.Lerp(this.bubblePos.anchoredPosition, destination, easing);
            destination.z = camZ;


            completed = 1f - (Vector2.Distance(destination, finalPosition) / distance);

            if (float.IsNaN(completed))
            {
                completed = 1f;
            }

            setAlpha(completed);
            setScale(completed);

            this.bubblePos.anchoredPosition = destination;

            if (completed >= 1f)
            {
                this.state = BubbleState.NOTHING;
            }
            break;
        }
    }
Exemplo n.º 13
0
 private void handleEnteringFreeAirZone(Collider zoneCollider)
 {
     if (!targetColor.Equals(PLENTIFUL_AIR_BUBBLE_COLOR))
     {
         turnPlentifulAreaTriggerLightsOn(zoneCollider.gameObject.GetComponent <FreeAirZone>(), isOn: true);
         bubbleState = BubbleState.TransitionToPlentifulAir;
         updateBubbleState();
         State = DivingState.PlentifulAir;
     }
 }
Exemplo n.º 14
0
 public BubbleState GetBubble(Vector4 LevelBounds)
 {
     var bubble = new BubbleState();
     bubble.Size = UnityEngine.Random.Range(BubblesSizeRange.x, BubblesSizeRange.y);
     var posX = UnityEngine.Random.Range(LevelBounds.x + bubble.Size / 2f,  bubble.Size / 2f);
     var posY = LevelBounds.w - bubble.Size / 2f;
     bubble.StartPosition = new Vector2(posX, posY);
     bubble.Speed = LevelNumber * LevelSpeed + Mathf.Lerp(BubblesSpeedRange.y, BubblesSpeedRange.x, bubble.Size / BubblesSizeRange.y);
     return bubble;
 }
Exemplo n.º 15
0
    //Coroutime to make Gregg walk off-camera
    public IEnumerator greggDisappearHelper()
    {
        _bubbleState = BubbleState.APPEARING;
        yield return(new WaitForSeconds(4));

        _bubbleState = BubbleState.DISAPPEARING;
        yield return(new WaitForSeconds(3));

        _greggState = GreggState.DISAPPEARING;
    }
Exemplo n.º 16
0
    void Awake()
    {
        bubbleState = BubbleState.Waiting;

        verticalValues = new List <float>(); // Vertical values contains every possible position that bubble can be stay.
        for (int i = 0; i < 17; i++)
        {
            verticalValues.Add(minimunVerticalValue + (verticalOffset * i));
        }
    }
Exemplo n.º 17
0
 public SlotInfo(Vector2Int v, SlotType sType, BubbleType type, BubbleState state, GameObject bubble, Vector3 loc, GameObject entity)
 {
     Pos               = v;
     slotType          = sType;
     InsideBubbleType  = type;
     InsideBubbleState = state;
     ConnectedBubble   = bubble;
     Location          = loc;
     Entity            = entity;
 }
Exemplo n.º 18
0
        private IEnumerator InitializeBubbleCoroutine(string path, GameObject prefab)
        {
            bubble = UnityEngine.Object.Instantiate(prefab);
            bubble.SetActive(value: false);
            Transform jnt = null;

            while (jnt == null)
            {
                jnt = base.transform.Find("hips_jnt/backbone_jnt/chest_jnt/neck_jnt");
                yield return(new WaitForEndOfFrame());
            }
            CameraFacingController cameraFacingController = bubble.GetComponent <CameraFacingController>();

            if (cameraFacingController != null)
            {
                cameraFacingController.AttachPoint = jnt;
                bubble.transform.SetParent(base.gameObject.transform, worldPositionStays: false);
            }
            else
            {
                bubble.transform.SetParent(jnt.transform, worldPositionStays: false);
                bubble.transform.position = jnt.transform.position;
            }
            bubble.SetActive(value: true);
            swimController = GetComponent <SwimController>();
            bubbleMaterial = bubble.GetComponentInChildren <MeshRenderer>().material;
            float totalAirQuantity = 10f - AirThreshold;

            warningThreshold = AirThreshold + totalAirQuantity * 0.4f;
            dangerThreshold  = AirThreshold + totalAirQuantity * 0.2f;
            bubbleState      = getStartingBubbleState(AirSupply);
            updateBubbleState();
            if (isLocalPlayer)
            {
                CoroutineRunner.Start(UpdateLocalPlayerBubbleCoRoutine(), this, "UpdateLocalPlayerBubbleCoRoutine");
                CoroutineRunner.Start(SyncAirSupplyNetwork(), this, "SyncAirSupplyNetwork");
                yield break;
            }
            DataEntityHandle handle = GetComponent <AvatarDataHandle>().Handle;

            if (!handle.IsNull)
            {
                AirBubbleData component = dataEntityCollection.GetComponent <AirBubbleData>(handle);
                if (component != null)
                {
                    dataEntityCollection.GetComponent <AirBubbleData>(handle).AirBubbleChanged += OnRemotePlayerAirBubbleChanged;
                }
                else
                {
                    Log.LogError(this, "Failed to get the air bubble data for the remote player");
                }
            }
        }
Exemplo n.º 19
0
 void Start()
 {
     buttonObjList        = GetComponents <ButtonObject> ();
     BubbleVal            = new MorphObject();
     ScaleVal             = new MorphObject();
     state                = BubbleState.BS_HIDE;
     scale                = 0;
     fixScale             = transform.localScale.x;
     transform.localScale = new Vector3(scale, scale, 1);
     popup();
     //Debug.Log ("BubbleScale = " + fixScale);
 }
Exemplo n.º 20
0
    // Update is called once per frame
    void Update()
    {
        if (preset == true)
        {
            preset = false;

            bubbleState = BubbleState.Stopped;



            Destroy(currentBody);
            //Play Bounce off marshmellow sound
            FindObjectOfType <AudioManager>().Play("Bounce");

            transform.localRotation = Quaternion.identity;
            Vector3 thePosition = transform.localPosition;

            thePosition.x = Mathf.Round(thePosition.x);
            thePosition.y = Mathf.Floor(thePosition.y);

            //Debug.Log("[OnCollisionEnter] Before Round:" + thePosition);
            if (thePosition.y % 2 >= 1)
            {
                if (thePosition.x + horizontalOffset >= maximunHorizontalValue)
                {
                    thePosition.x = maximunHorizontalValue;
                }
                else
                {
                    thePosition.x += horizontalOffset;
                }
            }
            else
            {
                if (thePosition.x + horizontalOffset >= maximunHorizontalValue)
                {
                    thePosition.x = maximunHorizontalValue - horizontalOffset;
                }
            }



            Debug.Log("[OnCollisionEnter]Position: " + Mathf.FloorToInt(thePosition.y) + " - " + 1 + " = " + (Mathf.FloorToInt(thePosition.y) - 1));
            thePosition.y = verticalValues[(Mathf.FloorToInt(thePosition.y) - 1)];
            Debug.Log("[OnCollisionEnter] After Round:" + thePosition);
            transform.localPosition = Vector3.one * 100;
            //The offset will be set in the returnCorrectPosition after check where bubble can be place.
            transform.localPosition = returnCorretPosition(thePosition);
        }
    }
Exemplo n.º 21
0
        // Use this for initialization
        void Start()
        {
            //resize ();
            text = this.transform.Find("Text");
            text.GetComponent <Text>().text = data.Line;
            rectTransform = this.GetComponent <RectTransform>();

            /*float guiscale = Screen.height/600f;
             *
             * text.GetComponent<Text>().fontSize = Mathf.RoundToInt(guiscale * 20);*/

            this.rectTransform.anchoredPosition = data.origin;
            this.moveTo(data.destiny);
            this.state = BubbleState.SHOWING;
        }
Exemplo n.º 22
0
 private void updateAirSupplyLocalPlayer()
 {
     lerpAirSupply(0.01f);
     if (AirSupply < AirThreshold && !swimController.TriggerResurface && bubbleState != BubbleState.Hidden)
     {
         swimController.TriggerResurface = true;
         bubbleState = BubbleState.TransitionToHidden;
         if (swimController.CurState != SwimController.State.Resurfacing)
         {
             playAudioEvent(mutableData.AirCriticalAudioEvent, EventAction.StopSound);
             Invoke("startBubbleScreenWipe", 2f);
         }
     }
     dispatcher.DispatchEvent(new DivingEvents.AirSupplyUpdated(AirSupply));
 }
Exemplo n.º 23
0
        /// <summary>
        /// Initialization method.
        /// Set up the image, text and audio of the bubble.
        /// </summary>
        protected void Start()
        {
            currentVelocity     = Vector3.zero;
            canvasRectTransform = transform.parent.GetComponent <RectTransform>();
            // Image set up
            if (Data.Image)
            {
                image.texture = Data.Image;

                // In case of a LayoutElement is present in the image, we set up its sizes
                var layoutElement = image.GetComponent <LayoutElement>();
                if (layoutElement)
                {
                    // The height and width of the element will be fixed to the height, but the image has to adjust
                    // its width based on the image ratio
                    var ratio  = Data.Image.width / (float)Data.Image.height;
                    var height = Mathf.Min(Height, Mathf.Min(Height, Data.Image.width) / ratio);
                    var width  = height * ratio;
                    layoutElement.preferredHeight = height;
                    layoutElement.preferredWidth  = width;
                }
            }

            // Audio set up
            if (Data.Audio)
            {
                audioSource.clip = Data.Audio;
                audioSource.Play();
            }

            // Text set up
            if (!string.IsNullOrEmpty(Data.Line))
            {
                SetTextProgress(0);
            }

            // We set up the screen position (anchored position) using the origin screen position to make the bubble
            // pop up from the character of specified location
            this.rectTransform.anchoredPosition = Data.origin;
            this.MoveTo(Data.destiny);

            // Make sure the state is showing when started unless it's being destroyed (due to fast clicking for example)
            if (this.state != BubbleState.DESTROYING)
            {
                this.state = BubbleState.FADING;
                completed  = 0;
            }
        }
            public bool CheckPlayerCollisions(PlayableCharacterAccess Player)
            {
                bool RetVal = false;

                //Dont bother checking with bubbles that are popped
                if (this._State != BubbleState.Popped && this._State != BubbleState.Popping)
                {
                    if (this.BubbleSprite.CollisionRects.CheckObjectRectAgainst(Player, this.BubbleSprite.Frame, this.X, this.Y) != CollisionRectAccess.HitSide.None)
                    {
                        this._State = BubbleState.Popping;
                        RetVal      = true;
                    }
                }

                return(RetVal);
            }
 private void ActionPop()
 {
     // Pop 0 to 3
     if (this.BubbleSprite.Frame < 0 || this.BubbleSprite.Frame > 3)
     {
         this.BubbleSprite.Frame = 0;
     }
     else if (this.BubbleSprite.Frame == 3)
     {
         this._State = BubbleState.Popped;
     }
     else
     {
         this.BubbleSprite.Frame++;
     }
 }
Exemplo n.º 26
0
        void CheckMouseExit()
        {
            RaycastHit hitInfo = ActionHelpers.MousePick(rayDistance, ActionHelpers.LayerArrayToLayerMask(layerMask, invertMask));
            bool       didPick = hitInfo.collider != null;

            if (didPick == false)
            {
                mouseExit   = true;
                bubbleState = SpeechBubble.BubbleState.effectout;
            }
            else
            {
                if (go.name != hitInfo.collider.gameObject.name)
                {
                    mouseExit   = true;
                    bubbleState = SpeechBubble.BubbleState.effectout;
                }
            }
        }
Exemplo n.º 27
0
    //打字
    void UpdateContentString()
    {
        timerValue += Time.deltaTime * typingSpeed;
        int timer = Mathf.Min(Mathf.FloorToInt(timerValue), targetString.Length);

        if (timer != lastTimerValue)
        {
            lastTimerValue = timer;
            var tempString = targetString.Substring(0, timer);
            OnTyping?.Invoke(tempString);
        }

        if (timer == targetString.Length)
        {
            state      = BubbleState.show;
            timerValue = 0;
            return;
        }
    }
 public void ChangeState()
 {
     if (this._State == BubbleState.NeedsFreshAngle)
     {
         this.ActionGetFirstAngle();
     }
     else if (this._State == BubbleState.Popping)
     {
         this.ActionPop();
     }
     else if (this._State == BubbleState.Bouncing)
     {
         this._State = BubbleState.Floating;
     }
     else if (this._State >= BubbleState.HitWallUp && this._State <= BubbleState.HitWallLeft)
     {
         this.ActionBounceOffWall();
     }
 }
Exemplo n.º 29
0
    public void SetState(BubbleState newState, float?customTransitionDuration = null)
    {
        Color targetColor;
        bool  targetTrailTurnedOn = false;

        switch (newState)
        {
        case BubbleState.GUN:
            SetInteractible(false);
            targetColor         = bubblesConfig.bubbleGunColor;
            targetTrailTurnedOn = true;
            break;

        case BubbleState.GUN_ALT:
            SetInteractible(true);
            targetColor         = bubblesConfig.bubbleGunAltColor;
            targetTrailTurnedOn = false;
            break;

        case BubbleState.GRID:
            SetInteractible(true);
            targetColor         = bubblesConfig.bubbleGridColor;
            targetTrailTurnedOn = false;
            break;

        case BubbleState.DYING:
            SetInteractible(false);
            targetColor         = bubblesConfig.bubbleGridColor;
            targetTrailTurnedOn = false;
            break;

        default:
            Debug.LogWarning($"Unknown state {newState}");
            targetColor = Color.white;
            break;
        }

        renderer.DOKill(true);
        float transitionDuration = customTransitionDuration.HasValue ? customTransitionDuration.Value : animationCfg.bubbleChangeColorDuration;

        renderer.DOColor(targetColor, transitionDuration).SetEase(animationCfg.bubbleChangeColorEase)
        .OnComplete(() => trail.gameObject.SetActive(targetTrailTurnedOn));
    }
Exemplo n.º 30
0
 public override void Update(GameTime gameTime)
 {
     base.Update(gameTime);
     if (Age > MaxAge - 2)
     {
         _frameTimer += gameTime.ElapsedGameTime.TotalMilliseconds;
         if (_frameTimer > FrameTime)
         {
             _frameTimer = 0;
             if (_state == BubbleState.Explode1)
             {
                 _state = BubbleState.Explode2;
             }
             else
             {
                 _state = BubbleState.Explode1;
             }
         }
     }
 }
Exemplo n.º 31
0
 public override void Update(GameTime gameTime)
 {
     base.Update(gameTime);
     if (Age > MaxAge - 2)
     {
         _frameTimer += gameTime.ElapsedGameTime.TotalMilliseconds;
         if (_frameTimer > FrameTime)
         {
             _frameTimer = 0;
             if (_state == BubbleState.Explode1)
             {
                 _state = BubbleState.Explode2;
             }
             else
             {
                 _state = BubbleState.Explode1;
             }
         }
     }
 }
            private void ActionBounceOffWall()
            {
                if (this._State == BubbleState.HitWallDown)
                {
                    this.NextY = -this.NextY;
                }
                else if (this._State == BubbleState.HitWallUp)
                {
                    this.NextY = -this.NextY;
                }
                else if (this._State == BubbleState.HitWallRight)
                {
                    this.NextX = -this.NextX;
                }
                else if (this._State == BubbleState.HitWallLeft)
                {
                    this.NextX = -this.NextX;
                }

                this._State = BubbleState.Bouncing;
            }
Exemplo n.º 33
0
 // Update is called once per frame
 void Update()
 {
     if (state == BubbleState.off)
     {
         StartCoroutine(ChangeDialog());
     }
     if (state == BubbleState.typing)
     {
         UpdateContentString();
     }
     if (state == BubbleState.show)
     {
         dialogTimer += Time.deltaTime;
         if (dialogTimer >= dialogTime)
         {
             dialogTimer = 0;
             state       = BubbleState.off;
             OnOff?.Invoke();
         }
     }
 }
Exemplo n.º 34
0
        // Use this for initialization
        void Start()
        {
            //Image
            if (data.Image)
            {
                image = this.transform.Find("RawImage");
                image.GetComponent <RawImage>().texture = data.Image;
                var layoutElement = image.GetComponent <LayoutElement>();

                var ratio = data.Image.width / (float)data.Image.height;

                var height = Mathf.Min(240f, Mathf.Min(240f, data.Image.width) / ratio);
                var width  = height * ratio;

                layoutElement.preferredHeight = height;
                layoutElement.preferredWidth  = width;
            }
            //Audio
            if (data.Audio)
            {
                var audioSource = GetComponent <AudioSource>();
                audioSource.clip = data.Audio;
                audioSource.Play();
            }
            //resize ();
            text = this.transform.Find("Text");
            text.GetComponent <Text>().text = data.Line;
            rectTransform = this.GetComponent <RectTransform>();

            /*float guiscale = Screen.height/600f;
             *
             * text.GetComponent<Text>().fontSize = Mathf.RoundToInt(guiscale * 20);*/

            this.rectTransform.anchoredPosition = data.origin;
            this.moveTo(data.destiny);
            if (this.state != BubbleState.DESTROYING)
            {
                this.state = BubbleState.SHOWING;
            }
        }
Exemplo n.º 35
0
        public override void OnEnter()
        {
            go = gameObject.OwnerOption == OwnerDefaultOption.UseOwner ? Owner : gameObject.GameObject.Value;
            if (go == null)
            {
                Finish();
                return;
            }

            delayTmp           = delay.IsNone ? 0f : delay.Value;
            timeTmp            = time.IsNone ? 0f : time.Value;
            depthTmp           = depth.IsNone ? _guiDepth : depth.Value;
            waitForAudioFinish = false;
            alpha         = 0f;
            bubbleState   = SpeechBubble.BubbleState.none;
            audioFinished = false;
            if (!id.IsNone)
            {
                lastId = id.Value;
            }
            if (!audioGameObject.IsNone)
            {
                goaudio = audioGameObject.Value;
            }
            if (goaudio == null)
            {
                goaudio = go;
            }
            if (goaudio)
            {
                if (goaudio.audio)
                {
                    audioSourceVolume = goaudio.audio.volume;
                }
            }
            audioStarted  = false;
            audioDelaySet = false;
            InitSpeechBubble();
        }
Exemplo n.º 36
0
		public override void OnUpdate(){
			if(everyFrame) ReInitSayText();
				
			if(bubbleState != SpeechBubble.BubbleState.finishing){
				if(delayTmp >= 0f) {
					delayTmp -= Time.deltaTime;	
				} else {
					if(mouseExit) CheckMouseExit();
					if((lastLanguage != Lang.selectedLanguage) || (!id.IsNone && lastId != id.Value)){
					 	lastLanguage = Lang.selectedLanguage;
						if(!id.IsNone) {
						lastId = id.Value;
						rawText = Lang.GetText(
		                                      dictionary.IsNone ? "" : (dictionary.Value + (_appendLanguage ? "_" + Lang.selectedLanguage.ToString() : "")),
		                                       id.Value,
											   text.IsNone ? "" : text.Value.Trim()
		                                       );
						} else {
							rawText = text.IsNone ? "" : text.Value.Trim();
						}
						Say(rawText);
					}
					if(_initialized && delayTmp < 0f ){	
						if(!audioDelaySet){
							audioDelayTmp = audioDelay.IsNone ? _audioDelay : audioDelay.Value;
							audioDelaySet = true;
						}
						if(!audioStarted) {
							if(audioDelayTmp > 0f){
								audioDelayTmp -= Time.deltaTime;	
							} else {
							   PlayAudio();
							   audioStarted = true;
							}
						}
						if(bubbleState == SpeechBubble.BubbleState.effectin && alpha <= 1f) {
							alpha += (1f/(fadeIn.IsNone ? _fadeIn : fadeIn.Value))*Time.deltaTime;
							if(alpha > 1f) {
								alpha = 1f;
								bubbleState = SpeechBubble.BubbleState.bubble;
							}
							if(fadeAudioIn) if(goaudio && goaudio.audio) {
								goaudio.audio.volume = audioSourceVolume + (((volume.IsNone? _volume : volume.Value) - audioSourceVolume) * alpha);
							}
							
						}
						if(bubbleState == SpeechBubble.BubbleState.effectout && alpha >= 0f) {
							alpha -= (1f/(fadeOut.IsNone ? _fadeOut : fadeOut.Value))*Time.deltaTime;
							if(alpha < 0f) {
								alpha = 0f;
								bubbleState = SpeechBubble.BubbleState.finishing;
								Finish();
								if(audioFinished) {
									if(audioFinishedEvent != null) Fsm.Event(audioFinishedEvent);
								} else {
									if(finishedEvent != null) Fsm.Event(finishedEvent);
								}
							}
							if(fadeAudioOut) if(goaudio && goaudio.audio) goaudio.audio.volume = (volume.IsNone? _volume : volume.Value) * alpha;
							return;
						}
					}
					if(!time.IsNone && bubbleState != SpeechBubble.BubbleState.effectout) {
						if(timeTmp > 0f) {
							timeTmp -= Time.deltaTime;
						} else {
							bubbleState = SpeechBubble.BubbleState.effectout;
						}
					}
				}
				if(!greaterThanFinish.IsNone && goaudio != null){
					if(goaudio.audio != null && goaudio.audio.clip != null){
						if(goaudio.audio.isPlaying && goaudio.audio.time > greaterThanFinish.Value - (fadeOut.IsNone ? _fadeOut : fadeOut.Value)) {
							audioFinished = true;
							bubbleState = SpeechBubble.BubbleState.effectout;	
						}
					}
				}
				
				if(waitForAudioFinish && bubbleState != SpeechBubble.BubbleState.effectout) {
					if(audio.isPlaying && audio.time > audio.clip.length - (fadeOut.IsNone ? _fadeOut : fadeOut.Value)) {
						audioFinished = true;
						bubbleState = SpeechBubble.BubbleState.effectout;	
					}
				}
			}
		}
Exemplo n.º 37
0
		void CheckMouseExit(){
		 	RaycastHit hitInfo = ActionHelpers.MousePick(rayDistance, ActionHelpers.LayerArrayToLayerMask(layerMask, invertMask));
			bool didPick = hitInfo.collider != null;
			if(didPick == false){
				mouseExit = true;	
				bubbleState = SpeechBubble.BubbleState.effectout;
			} else {
				if(go.name != hitInfo.collider.gameObject.name){
					mouseExit = true;
					bubbleState = SpeechBubble.BubbleState.effectout;
				}
			}
		}
Exemplo n.º 38
0
		private void InitSpeechBubble(){
			if(_initialized){
				initAgain = false;
				if(!style.IsNone) {
					bubbleStyle = _skin.GetStyle(style.Value + "_" + System.Enum.GetName(typeof(CornerEnum), corner).ToLower());
					if(bubbleStyle == null) bubbleStyle = _skin.GetStyle(style.Value);
				} else {
					bubbleStyle = _skin.GetStyle(_style + "_" + System.Enum.GetName(typeof(CornerEnum), corner).ToLower());
					if(bubbleStyle == null) {
						bubbleStyle = _skin.GetStyle(_style);
					}
				}
#if UNITY_IPHONE
				if(bubbleStyle != null) {
					bubbleStyle.fontSize = 0;			
					bubbleStyle.fontStyle = FontStyle.Normal;
				}
#endif
				if(!offset.IsNone) bubbleOffset = offset.Value;
				else bubbleOffset = _offset;
				bubbleOffsetVector = _offsetVector;
				if(!id.IsNone) {
					rawText = Lang.GetText(
	                                      dictionary.IsNone ? "" : dictionary.Value,
	                                       id.Value,
										   text.IsNone ? "" : text.Value.Trim()
	                                       );
					lastLanguage = Lang.selectedLanguage;
				} else {
					rawText = text.IsNone ? "" : text.Value.Trim();
				}
				Say(rawText);
				bubbleState = SpeechBubble.BubbleState.effectin;
			} else {
				initAgain = true;	
			}
		}
Exemplo n.º 39
0
		public override void OnEnter()
		{
			go = gameObject.OwnerOption == OwnerDefaultOption.UseOwner ? Owner : gameObject.GameObject.Value;
			if(go == null) {
				Finish();
				return;
			}
									
			delayTmp = delay.IsNone ? 0f : delay.Value;
			timeTmp = time.IsNone ? 0f : time.Value;
			depthTmp = depth.IsNone ? _guiDepth : depth.Value;
			waitForAudioFinish = false;
			alpha = 0f;
			bubbleState = SpeechBubble.BubbleState.none;
			audioFinished = false;
			if(!id.IsNone) lastId = id.Value;
			if(!audioGameObject.IsNone) goaudio = audioGameObject.Value; 
			if(goaudio == null) goaudio = go;
			if(goaudio) if(goaudio.audio) audioSourceVolume = goaudio.audio.volume;
			audioStarted = false;
			audioDelaySet = false;
			InitSpeechBubble();
		}
Exemplo n.º 40
0
        private void updateCounter()
        {
            stayingDurationCtr--;

            if (stayingDurationCtr <= 0)
            {
                this.currentState = BubbleState.DISAPPEARING;

            }
        }
Exemplo n.º 41
0
 public void setState(BubbleState newState)
 {
     currentState = newState;
 }
Exemplo n.º 42
0
        public void Update()
        {
            updateCounter();

            switch (currentState)
            {
                case BubbleState.NORMAL_STATE:
                    popCounter = 0;
                    break;
                case BubbleState.HIGHLIGHTED_STATE:
                    if (this.bubbleType != BubbleType.INACTIVE_STATIC_HAND)
                    {
                        popCounter += 1;
                        if (popCounter >= popTime)
                        {
                            currentState = BubbleState.POP_STATE;
                        }
                    }
                    break;
                case BubbleState.APPEARING:
                    if (scale < 0.60f){
                       scale += 0.05f;
                    }
                    else if (scale > 0.50f && scale < 0.60f)
                    {
                        scale = maxScale;
                    }
                    else
                    {
                        currentState = BubbleState.NORMAL_STATE;
                    }
                    break;
                case BubbleState.POP_STATE:
                    scale += 0.03f;
                    alpha -= 0.02f;
                    if (alpha <= 0)
                    {
                        currentState = BubbleState.REMOVAL_STATE;
                    }
                    break;
                case BubbleState.DISAPPEARING:
                    scale -= 0.01f;
                    alpha -= 0.02f;
                    if (alpha <= 0)
                    {
                        currentState = BubbleState.REMOVAL_STATE;
                    }
                    break;
                case BubbleState.REMOVAL_STATE:
                    alpha = 0;
                    break;
            }
        }
Exemplo n.º 43
0
 public void destroy()
 {
     this.state = BubbleState.DESTROYING;
 }
Exemplo n.º 44
0
 // Stop on game board.
 private void StopOnBoard(Bubble collidedBubble)
 {
     Rigidbody2D rb = GetComponent<Rigidbody2D> ();
       rb.velocity = Vector2.zero;
       rb.isKinematic = true;
       // Snap this bubble to game board.
       this.GameBoard.SnapBubble (this, collidedBubble);
       // Erase and fall bubbles if possible.
       this.GameBoard.EraseAndFall (this);
       // Set stopping flag.
       this.State = BubbleState.Stopped;
       // Load a new bubble.
       this.BubbleLauncher.LoadBubble ();
 }
Exemplo n.º 45
0
 private BubbleObject InstanatiateBubble(BubbleState bubbleState)
 {
     var bubbleObject = (Instantiate(BubblePrefab) as GameObject).GetComponent<BubbleObject>();
     bubbleObject.BubbleState = bubbleState;
     return bubbleObject;
 }
Exemplo n.º 46
0
 public void BubbleBursted(BubbleState state)
 {
     this.levelScore += (int)(state.Size * 1000); //People love big numbers!
 }
Exemplo n.º 47
0
    // Use this for initialization
    void Start()
    {
        //resize ();
        text = this.transform.FindChild ("Text");
        text.GetComponent<Text> ().text = data.Line;
        bubblePos = this.GetComponent<RectTransform> ();

        /*float guiscale = Screen.height/600f;

        text.GetComponent<Text>().fontSize = Mathf.RoundToInt(guiscale * 20);*/

        this.bubblePos.anchoredPosition = data.origin;
        this.moveTo (data.destiny);
        this.state = BubbleState.SHOWING;
    }
Exemplo n.º 48
0
 void MessageHandler(string msg)
 {
     var blocks = msg.Split(Connection.MESSAGE_SEPARATOR.ToCharArray(), 2);
     var messageType = Helper.StringToEnum<EMessageType>(blocks[0], EMessageType.Unknown);
     switch (messageType)
     {
         case EMessageType.GetName:
             {
                 OtherPlayer.SendMessage(EMessageType.SendName.ToString(), PlayerName);
                 break;
             }
         case EMessageType.SendName:
             {
                 OtherPlayerName = blocks[1];
                 break;
             }
         case EMessageType.Ready:
             {
                 if (GameStatus == EGameStatus.WaitingForAnswer)
                 {
                     gameController.StartLevel();
                     GameStatus = EGameStatus.Playing;
                 }
                 else
                 {
                     GameStatus = EGameStatus.OpponentReady;
                 }
                 break;
             }
         case EMessageType.BubbleCreated:
             {
                 var bubbleState = new BubbleState();
                 bubbleState.DeserializeFromString(blocks[1]);
                 gameController.InstantiateOpponentBubble(bubbleState);
                 break;
             }
         case EMessageType.BubbleBursted:
             {
                 int id = int.Parse(blocks[1]);
                 gameController.OpponetBubbleBursted(id);
                 break;
             }
         case EMessageType.BubbleMissed:
             {
                 int id = int.Parse(blocks[1]);
                 gameController.OpponentBubbleMissed(id);
                 break;
             }
         case EMessageType.GameLost:
             {
                 gameController.StopLevel();
                 GameStatus = EGameStatus.GameFinished;
                 break;
             }
         case EMessageType.ReplayGame:
             {
                 gameController.RestartLevel();
                 GameStatus = EGameStatus.Playing;
                 break;
             }
         case EMessageType.Leave:
             {
                 ResetGame();
                 break;
             }
         default:
             {
                 Logger.LogWarning("Unknown state: " + blocks[0]);
                 break;
             }
     }
 }
Exemplo n.º 49
0
    void FixedUpdate()
    {
        float completed = 0f;
        switch (state) {
        case BubbleState.NOTHING:
            break;
        case BubbleState.DESTROYING:
            currenttime += Time.deltaTime;
            completed = 1f - currenttime / 0.2f;

            setAlpha (completed);
            setScale (completed);

            if (completed <= 0) {
                GameObject.Destroy (this.gameObject);
            }
            break;
        case BubbleState.SHOWING:
            Vector3 destination;
            if (finalPosition == null) {
                destination = Vector3.zero;
            } else {
                destination = finalPosition;
            }

            destination = Vector3.Lerp (this.bubblePos.anchoredPosition, destination, easing);
            destination.z = camZ;

            completed = 1f - (Vector2.Distance (destination, finalPosition) / distance);

            if (float.IsNaN (completed))
                completed = 1f;

            setAlpha (completed);
            setScale (completed);

            this.bubblePos.anchoredPosition = destination;

            if (completed >= 1f) {
                this.state = BubbleState.NOTHING;
            }
            break;
        }
    }