Example #1
0
 public void Add(CharacterBlock block)
 {
     InnerList.Add(block);
     if (linkedBlock.Count < InnerList.Count)
     {
         linkedBlock.Count = InnerList.Count;
     }
 }
Example #2
0
    IEnumerator activate_block(float time, CharacterBlock block)
    {
        yield return(new WaitForSeconds(time));

        block.gameObject.SetActive(true);
        block.Start();
        float probability = Random.Range(0f, 1f);

        for (int j = 0; j < characters.Count; j++)
        {
            probability -= characters[j].probability;
            if (probability <= 0)
            {
                block.text_mesh.text = characters[j].ansi;
                break;
            }
        }
    }
Example #3
0
    private void Start()
    {
        lifesystem = new CharLifeSystem(life, life)
                     .ADD_EVENT_OnGainLife(OnGainLife)
                     .ADD_EVENT_OnLoseLife(OnLoseLife)
                     .ADD_EVENT_Death(OnDeath)
                     .ADD_EVENT_OnChangeValue(OnChangeLife);

        charanim  = new CharacterAnimator(anim_base);
        customCam = FindObjectOfType <CustomCamera>();

        move = new CharacterMovement(GetComponent <Rigidbody>(), rot, charanim)
               .SetSpeed(speed)
               .SetTimerDash(dashTiming).SetDashSpeed(dashSpeed)
               .SetDashCD(dashCD)
               .SetRollDeceleration(dashDeceleration);

        InDash           += move.IsDash;
        ChildrensUpdates += move.OnUpdate;
        move.SetCallbacks(OnBeginRoll, OnEndRoll);

        charBlock           = new CharacterBlock(_timerOfParry, blockAngle, _timeOfBlock, maxBlockCharges, timeToRecuperateCharges, chargesUI, charanim, GetSM, inParryParticles);
        charBlock.OnParry  += () => charanim.Parry(true);
        charBlock.EndBlock += EVENT_UpBlocking;
        ChildrensUpdates   += charBlock.OnUpdate;

        dmg        = dmg_normal;
        charAttack = new CharacterAttack(attackRange, attackAngle, timeToHeavyAttack, charanim, rot, ReleaseInNormal, ReleaseInHeavy, feedbackHeavy, dmg, slash);
        charAttack.FirstAttackReady(true);

        charAnimEvent.Add_Callback("CheckAttackType", CheckAttackType);
        charAnimEvent.Add_Callback("DealAttack", DealAttack);
        charAnimEvent.Add_Callback("EndAttack", EndAttack);
        charAnimEvent.Add_Callback("RompeCoco", RompeCoco);
        charAnimEvent.Add_Callback("BeginBlock", charBlock.OnBlockSuccessful);
        charAnimEvent.Add_Callback("Dash", move.RollForAnim);

        SetStates();

        rb = GetComponent <Rigidbody>();

        StartDebug();
    }
Example #4
0
    void Spawn()
    {
        bSpawn = true;
        GameBlock prefab = null;

        switch (spawnList[0])
        {
        case GameBlockType.Bit:
            prefab = PoolManager.Instance.GetPool(PoolType.CharacterBlock).gameObject.GetComponent <GameBlock>();
            break;

        case GameBlockType.Color:
            Transform tr = PoolManager.Instance.GetPool(PoolType.ColorBlock);
            if (tr != null)
            {
                prefab = tr.gameObject.GetComponent <GameBlock>();
            }
            else
            {
                Debug.Log("pool is empty");
                return;
            }
            break;

        case GameBlockType.Item:

            prefab = Instantiate(Resources.Load <GameObject>("Prefabs/ItemBlock")).GetComponent <GameBlock>();
            prefab.GetComponent <ItemBlock>().itemType = ItemType.Bomb;
            prefab.GetComponent <ItemBlock>().Initialize();
            break;

        case GameBlockType.Gray:
            prefab = Instantiate(Resources.Load <GameObject>("Prefabs/GrayBlock")).GetComponent <GameBlock>();
            break;
        }

        prefab.transform.SetParent(transform);
        prefab.transform.localPosition = Vector3.zero;
        prefab.transform.localScale    = Vector3.one;
        switch (spawnList[0])
        {
        case GameBlockType.Bit:
            CharacterBlock chBlock = prefab.GetComponent <CharacterBlock>();
            if (chBlock != null)
            {
                chBlock.target = MissionManager.Instance.bit;
            }
            break;

        case GameBlockType.Color:
            ColorBlock colorBlock = prefab.GetComponent <ColorBlock>();

            if (colorBlock != null)
            {
                colorBlock.GetComponent <RectTransform>().anchoredPosition3D = Vector3.zero;
                colorBlock.GetComponent <RectTransform>().localScale         = Vector3.one;
                colorBlock.Initialize();
                colorBlock.bMove        = true;
                colorBlock.bBounce      = false;
                colorBlock.bByItemBlock = false;
                if (Mathf.Abs(time - checkTime) > intervalTime)    //나오는거 아래꺼 하나만 바운스할때
                {
                    checkTime = time;
                }
            }
            break;

        case GameBlockType.Item:
            break;

        case GameBlockType.Gray:
            break;
        }
        prefab.gameObject.SetActive(true);
        spawnList.RemoveAt(0);
        //Debug.Log("Respawn : " + colorBlock.pos);
    }
Example #5
0
 public CharacterStates SetBlock(CharacterBlock block)
 {
     charBlock = block;
     return(this);
 }
Example #6
0
    // Update is called once per frame
    void Update()
    {
        // see if this block was clicked on
        if (!vowel_panel.activeInHierarchy && GetComponent <BoxCollider2D>().bounds.Contains((Vector2)Camera.main.ScreenToWorldPoint(input_handler.GetMousePosition())))
        {
            if (input_handler.GetMouseButtonDown(0))
            {
                if (is_selected || is_reachable)
                {
                    //vowel_panel.transform.position = transform.position + new Vector3(Mathf.Sign(transform.position.x) * -1 * vowel_panel_x_offset, Mathf.Sign(transform.position.y) * -1 * vowel_panel_y_offset, 0f);
                    //vowel_panel.SetActive(true);
                    // modify sorting order


                    CharacterBlock.last_clicked_on_character = this;

                    //board_darkner.gameObject.SetActive(true);


                    //var line = vowel_panel.GetComponentInChildren<LineRenderer>();
                    //line.SetPositions(new Vector3[] { transform.position, transform.position + transform.right * Mathf.Sign(transform.position.x) * -1, vowel_panel.transform.position });
                    //line.sortingOrder = 2;
                }

                // selecting an unselected block
                if (!is_selected && is_reachable)
                {
                    if (CharacterBlock.selected_block_stack.Count > 0)
                    {
                        line_renderer.gameObject.SetActive(true);
                        line_renderer.sortingOrder = 1;
                        line_renderer.SetPositions(new Vector3[2] {
                            line_renderer.transform.position, CharacterBlock.selected_block_stack.Peek().line_renderer.transform.position
                        });
                    }

                    just_selected = true;   // transitioning from unselected to selected state with this click down
                    CharacterBlock.selected_block_stack.Push(this);
                    if (onBlockEvent != null)
                    {
                        onBlockEvent(this, new CharacterBlockEventArgs(this, this.index));
                    }

                    CharacterBlock.last_clicked_on_character = this;
                }
                else // already selected so this is the second click on this block
                {
                    just_selected = false;
                }
            }
            else if (input_handler.GetMouseButtonUp(0))
            {
                if (selected_block_stack.Count > 0 && this.index == selected_block_stack.Peek().index)
                {
                    if (!just_selected)
                    {
                        line_renderer.gameObject.SetActive(false);
                        selected_block_stack.Pop();
                        if (onBlockEvent != null)
                        {
                            onBlockEvent(this, new CharacterBlockEventArgs(this, this.index));
                        }
                    }
                }
            }
        }

        if (input_handler.GetMouseButton(0) && GetComponent <BoxCollider2D>().bounds.Contains((Vector2)Camera.main.ScreenToWorldPoint(input_handler.GetMousePosition())) && is_selected)
        {
            hold_time += Time.deltaTime;
            if (hold_time >= 0.25f)
            {
                if (!vowel_panel.activeInHierarchy)
                {
                    vowel_panel.transform.position = transform.position + new Vector3(Mathf.Sign(transform.position.x) * -1 * vowel_panel_x_offset, Mathf.Sign(transform.position.y) * -1 * vowel_panel_y_offset, 0f);
                    vowel_panel.SetActive(true);

                    text_mesh.GetComponent <Renderer>().sortingOrder = 14;
                    block_sprite.sortingOrder = 13;
                    shadow.sortingOrder       = 12;
                }
            }
        }

        if (input_handler.GetMouseButtonUp(0))
        {
            hold_time = 0f;
            //print("yes");
            //board_darkner.gameObject.SetActive(false);
            if (vowel_panel.activeInHierarchy)
            {
                if (vowel_panel.GetComponent <BoxCollider2D>().bounds.Contains((Vector2)Camera.main.ScreenToWorldPoint(input_handler.GetMousePosition())) || touch_up_count == 1)
                {
                    //vowel_panel.transform.position = transform.position + new Vector3(Mathf.Sign(transform.position.x) * -1 * vowel_panel_x_offset, Mathf.Sign(transform.position.y) * -1 * vowel_panel_y_offset, 0f);
                    vowel_panel.GetComponent <Animator>().SetTrigger("disappear");
                    //vowel_panel.SetActive(false);
                    text_mesh.GetComponent <Renderer>().sortingOrder = 4;
                    block_sprite.sortingOrder = 3;
                    shadow.sortingOrder       = 2;
                    touch_up_count            = 0;
                }
                else
                {
                    touch_up_count++;
                }
            }
        }
    }
Example #7
0
 public CharacterBlockEventArgs(CharacterBlock cb, string index)
 {
     this.character_block = cb;
     this.index           = index;
 }