public void Add(CharacterBlock block) { InnerList.Add(block); if (linkedBlock.Count < InnerList.Count) { linkedBlock.Count = InnerList.Count; } }
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; } } }
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(); }
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); }
public CharacterStates SetBlock(CharacterBlock block) { charBlock = block; return(this); }
// 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++; } } } }
public CharacterBlockEventArgs(CharacterBlock cb, string index) { this.character_block = cb; this.index = index; }