コード例 #1
0
ファイル: BigDiceAnimation.cs プロジェクト: SNUGDC/BeerWorld
    IEnumerator ShowRandomDice()
    {
        anim.SetTrigger("stopRoll");
        MultiAudioClip multiAudioClip = GetComponent <MultiAudioClip>();

        for (int j = 1; j < 4; j++)
        {
            for (int i = 0; i < 2; i++)
            {
                multiAudioClip.audioSources[0].loop = false;
                multiAudioClip.audioSources[0].Play();
                int num = (int)(Random.value * 6) + 1;
                setNumber(num);
                yield return(new WaitForSeconds(0.1f * j));
            }
        }
        multiAudioClip.audioSources[1].playOnAwake = false;
        multiAudioClip.audioSources [1].Play();
        resultNum = (int)(Random.value * 6) + 1;
        setNumber(resultNum);
        if (diceGetter.Method != null)
        {
            diceGetter(resultNum);
        }
    }
コード例 #2
0
    private void ReceiveBuff(NetworkViewID playerId, Vector3 tilePosition, int rollResult)
    {
        var character = GameManager.GetCharacterManager(playerId).GetCharacterInstance();

        character.SetBuffOrDeBuff(rollResult);
        MultiAudioClip multiAudioClip = character.GetComponent <MultiAudioClip>();

        multiAudioClip.audioSources[0].Play();
        BattleUIManager.Get().ShowBuffStartAnimation(playerId, tilePosition);
    }
コード例 #3
0
ファイル: BigDiceAnimation.cs プロジェクト: SNUGDC/BeerWorld
    void OnMouseDown()
    {
        MultiAudioClip multiAudioClip = GetComponent <MultiAudioClip>();

        multiAudioClip.audioSources[0].playOnAwake = false;
        multiAudioClip.audioSources[0].loop        = true;
        multiAudioClip.audioSources[0].Play();
        TimeLimitPassed = false;
        mouseIsUp       = false;
        Invoke("enableRoll", 0.5f);
    }
コード例 #4
0
    // Called from all users.
    public void BattleLose()
    {
        characterInstance.Die();
        characterInstance.gameObject.SendMessage("setReturn", true);
        var move = Run.Coroutine(Move(characterInstance.GetSpawnTile()));

        Debug.LogWarning(moveState.ToString());
        MultiAudioClip multiAudioClip = characterInstance.GetComponent <MultiAudioClip>();

        multiAudioClip.audioSources[4].Play();

        move.ExecuteWhenDone(() => {
            characterInstance.gameObject.SendMessage("setReturn", false);
            if (moveState == MoveState.Battle && GameManager.gameManagerInstance.isMyCharacterManager(this))
            {
                NetworkManager.SendTurnEndMessage();
            }
            moveState = MoveState.Inactive;
        });
    }
コード例 #5
0
    Run InteractionWithTile()
    {
        int  tileKey = GetCurrentTileKey();
        Tile tile    = TileManager.GetExistTile(tileKey);

        Tile.TileType tileType = tile.tileType;

        var            returnRun      = Run.WaitSeconds(0);
        MultiAudioClip multiAudioClip = characterInstance.GetComponent <MultiAudioClip>();

        if (moveState == MoveState.CheckingSaveTile)
        {
            if (tileType == Tile.TileType.Save)
            {
                characterInstance.CheckSaveTile(characterMover.GetCurrentTileKey());
                multiAudioClip.audioSources[3].Play();
            }
        }
        else
        {
            if (tileType == Tile.TileType.Buff)
            {
                NetworkManager.Buff(NetworkManager.Get().Id, tile.transform.position);
            }
            else if (tileType == Tile.TileType.Item)
            {
                if (characterInstance.GetNumberOfItems() < Character.MaxInventorySize)
                {
                    multiAudioClip.audioSources[1].Play();
                    Character.Item newItem = SelectRandomItem();
                    returnRun = returnRun.Then(() => {
                        return(EffectManager.Get().ShowItemAcquisitionEffect(tile.transform.position, newItem));
                    })
                                .ExecuteWhenDone(() => {
                        characterInstance.AddItem(newItem);
                        Debug.Log("Get Item!");
                    });
                }
                else
                {
                    Debug.Log("Inventory is full...");
                }
            }
            else if (tileType == Tile.TileType.Jail)
            {
                returnRun = returnRun.Then(() => {
                    return(EffectManager.Get().ShowJailEffect(tile.transform.position));
                })
                            .ExecuteWhenDone(() => {
                    characterInstance.InJail();
                });
                multiAudioClip.audioSources[2].Play();
            }
            else if (tileType == Tile.TileType.Warp)
            {
                //FIXME : Add warp code!
                //warp tiles are NOT used.
                Debug.Log("This Tile is Portal!");
            }
            else
            {
//                Debug.Log("Default Tile.");
            }
        }

        return(returnRun);
    }
コード例 #6
0
ファイル: BattleManager.cs プロジェクト: SNUGDC/BeerWorld
    IEnumerator AnimateDamage(int totalPlayerDice, int totalEnemyDice)
    {
        damage = CalculateDamage(totalPlayerDice, totalEnemyDice);
        target = CompareDamageAndSelectTarget(totalPlayerDice, totalEnemyDice);

        Debug.Log("PlayerDice : " + totalPlayerDice + ", EnemyDice : " + totalEnemyDice);
        //show animation with calculation result.
        //apply damage.
        MultiAudioClip multiAudioClip = GetComponent <MultiAudioClip>();

        yield return(new WaitForSeconds(DelayManager.Get().battleDiceResultToAttackDelay));

        if (target != null)
        {
//----------Dodge item.
            if (useItemsInBattle.Contains(Character.Item.Dodge))
            {
                Run dodgeEffect = Dodge();
                yield return(dodgeEffect.WaitFor);

                useItemsInBattle.Remove(Character.Item.Dodge);
                UpdateBuffUI();
            }

            if (damage > target.GetHp())
            {
                damage = target.GetHp();
            }

            for (int i = 1; i <= damage; i++)
            {
                target.ApplyDamage(1);
                UpdateRemainHP();
                if (target.ui == leftPlayerUI)
                {
                    rightPlayerUI.unitRenderer.transform.parent.gameObject.SendMessage("Attack");
                }
                else if (target.ui == rightPlayerUI)
                {
                    leftPlayerUI.unitRenderer.transform.parent.gameObject.SendMessage("Attack");
                }
                target.ui.unitRenderer.transform.parent.gameObject.SendMessage("Hit");
                multiAudioClip.audioSources[0].Play();
                yield return(new WaitForSeconds(DelayManager.Get().battleHpMinusDelay));
            }
        }
        else
        {
            multiAudioClip.audioSources[1].Play();
            if (useItemsInBattle.Contains(Character.Item.Dodge))
            {
                Run dodgeEffect = Dodge();
                yield return(dodgeEffect.WaitFor);

                useItemsInBattle.Remove(Character.Item.Dodge);
            }
            else
            {
                player.ApplyDamage(1);
                player.ui.unitRenderer.transform.parent.gameObject.SendMessage("Hit");
            }
            enemy.ApplyDamage(1);
            UpdateRemainHP();
            enemy.ui.unitRenderer.transform.parent.gameObject.SendMessage("Hit");
            yield return(new WaitForSeconds(DelayManager.Get().battleHpMinusDelay));

            Debug.Log("Each player is Damaged 1");
        }

        if (target == enemy)
        {
            Debug.Log("Enemy is Damaged " + damage);
        }
        else if (target == player)
        {
            Debug.Log("Player is Damaged " + damage);
        }

        if (enemy.IsDie())
        {
            enemy.ui.unitRenderer.transform.parent.gameObject.SendMessage("Fade");
            yield return(new WaitForSeconds(DelayManager.Get().batttleLoseShowDelay));

            state = State.BattleEnd;
        }
        else if (player.IsDie())
        {
            player.ui.unitRenderer.transform.parent.gameObject.SendMessage("Fade");
            yield return(new WaitForSeconds(DelayManager.Get().batttleLoseShowDelay));

            state = State.BattleEnd;
        }
        else
        {
            var changeAnimation = ChangeAttackOrDefense();
            changeAnimation.ExecuteWhenDone(() => {
                state = State.WaitingRoll;
                Debug.Log(
                    "PlayerHP : " + player.GetHp() + "/" + player.maxHp +
                    " EnemyHP : " + enemy.GetHp() + "/" + enemy.maxHp
                    );
            });
        }
    }