public void addEffectByConfig(string _effect_name, effectConfig effect_config) { if (!m_is_init) { init(); } if (effect_config == null) { Debug.unityLogger.Log("effectsManager", "Effect was not found: " + _effect_name); return; } if (!isEffectRun(_effect_name)) { effect_config.m_is_loop = false; cRunEffect root_effect = generateEffectFrom(effect_config); effect_config.IsMainEffect = true; if (root_effect != null) { //effect_config.m_final_action += _action; addEffect(effect_config.m_root_name, root_effect); } } }
public void doAction(effectConfig _config) { if (!m_effect_manager.isExistRunEffect()) { m_final_panel.SetActive(true); } }
public bool addEffectToStorage(string _name, effectConfig _config) { if (!m_storage.ContainsKey(_name)) { m_storage[_name] = _config; return(true); } return(false); }
public bool behaviour_type_fill_rect(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; Image img = _config.m_control_object.GetComponent <Image>(); if (_config.IsBegin) { _config.IsBegin = false; _config.m_control_object.SetActive(true); } if (_config.m_current_time >= _config.m_max_time) { _config.m_current_time = _config.m_max_time; _config.IsEnd = true; if (img != null) { img.fillAmount = 1; } } else { float delta_time = _config.m_current_time; float percents = delta_time / _config.m_max_time; /*if (m_internal_tween_algorithm != null) * { * percents = (float)m_internal_tween_algorithm(percents); * }*/ if (img != null) { img.fillAmount = percents; } } return(true); }
public cRunEffect(effectConfig _config) { m_config = _config; m_parts = new List <cRunEffect>(); if (_config.m_tween_algorithm_type == tweenAlgorithmFactory.eTweensAlgorithms.ParabolaWithParameters) { m_internal_tween_algorithm = (_1) => { return(tweenAlgorithmFactory.parabolaWithParameters(_1, m_config.m_arc_settings.m_parabala_params.x, m_config.m_arc_settings.m_parabala_params.y, m_config.m_arc_settings.m_parabala_params.z)); }; } else { m_internal_tween_algorithm = tweenAlgorithmFactory.getAlgorithm(_config.m_tween_algorithm_type); } }
public bool behaviour_type_counter(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; if (_config.IsBegin) { _config.IsBegin = false; _config.m_control_object.SetActive(true); } if (_config.m_current_time >= _config.m_max_time) { _config.m_current_time = _config.m_max_time; _config.IsEnd = true; _config.CurrentCounter = _config.m_finish_counter; } else { float delta_time = _config.m_current_time; float percents = delta_time / _config.m_max_time; if (m_internal_tween_algorithm != null) { percents = (float)m_internal_tween_algorithm(percents); } int delta_size = (int)((_config.m_finish_counter - _config.m_start_counter) * percents); _config.CurrentCounter = _config.m_start_counter + delta_size; } return(true); }
public bool behaviour_type_hide(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; _config.m_control_object.SetActive(false); _config.IsBegin = false; _config.IsEnd = true; return(true); }
public bool behaviour_type_rotate(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; if (_config.IsBegin) { _config.IsBegin = false; _config.m_control_object.SetActive(true); } if (_config.m_current_time >= _config.m_max_time) { _config.m_current_time = _config.m_max_time; _config.IsEnd = true; _config.CurrentRotateZ = _config.m_finish_rotate_z; } else { float delta_time = _config.m_current_time; float percents = delta_time / _config.m_max_time; if (m_internal_tween_algorithm != null) { percents = (float)m_internal_tween_algorithm(percents); } var delta_size = (_config.m_finish_rotate_z - _config.m_start_rotate_z) * percents; _config.CurrentRotateZ = _config.m_start_rotate_z + delta_size * _config.m_rotate_speed; } return(true); }
public bool behaviour_type_animation(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; if (_config.IsBegin) { _config.IsBegin = false; _config.m_control_object.SetActive(true); Animator anim_control = _config.m_control_object.GetComponent <Animator>(); if (anim_control != null && _config.m_animate_begin_name_state != "") { anim_control.SetInteger(_config.m_animate_begin_name_state, _config.m_animate_begin_state_value); } } if (_config.m_current_time >= _config.m_max_time) { _config.m_current_time = _config.m_max_time; _config.IsEnd = true; Animator anim_control = _config.m_control_object.GetComponent <Animator>(); if (anim_control != null && _config.m_animate_end_name_state != "") { anim_control.SetInteger(_config.m_animate_end_name_state, _config.m_animate_end_state_value); } } return(true); }
public bool behaviour_type_change_sprite(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; _config.IsBegin = false; _config.IsEnd = true; Image img = _config.m_control_object.GetComponent <Image>(); if (img != null) { img.sprite = _config.m_new_sprite; } return(true); }
public void restartLoopEffect(effectConfig _effect_config) { if (_effect_config == null) { Debug.unityLogger.Log("effectsManager", "Loop effect is null"); return; } if (_effect_config.IsMainEffect) { _effect_config.m_delay_value = _effect_config.m_delta_time_loop; cRunEffect run = generateEffectFrom(_effect_config); if (run != null) { //_effect_config.m_final_action += _action; replaceEffect(_effect_config.m_root_name, run); } } else { Debug.unityLogger.Log("effectsManager", "Loop effect is not main"); } }
public cRunEffect generateEffectFrom(effectConfig _root_config) { _root_config.IsReadyForRemove = false; _root_config.Delay = _root_config.m_delay_value; if (_root_config.m_type != eEffectType.COMPOUND_TYPE) { if (_root_config.m_control_object == null) { Debug.unityLogger.Log("effectsManager", "Not Compound Effect must have control object: " + _root_config.m_root_name + "/" + _root_config.m_type.ToString()); return(null); } _root_config.IsVisibleState = _root_config.m_control_object.activeSelf; } if (_root_config.m_type == eEffectType.TERMINAL_MOVE_LINE_LOCAL_POS || _root_config.m_type == eEffectType.TERMINAL_MOVE_ARC_LOCAL_POS) { if (_root_config.m_obj_finish_pos != null) { _root_config.m_finish_pos = new Vector2(_root_config.m_obj_finish_pos.transform.localPosition.x, _root_config.m_obj_finish_pos.transform.localPosition.y); } if (!_root_config.m_is_use_external_start_position) { _root_config.m_start_pos = _root_config.m_control_object.transform.localPosition; } } else if (_root_config.m_type == eEffectType.TERMINAL_MOVE_LINE_GLOBAL_POS || _root_config.m_type == eEffectType.TERMINAL_MOVE_ARC_GLOBAL_POS) { if (_root_config.m_obj_finish_pos != null) { _root_config.m_finish_pos = new Vector2(_root_config.m_obj_finish_pos.transform.position.x, _root_config.m_obj_finish_pos.transform.position.y); } if (!_root_config.m_is_use_external_start_position) { _root_config.m_start_pos = _root_config.m_control_object.transform.position; } } else if (_root_config.m_type == eEffectType.TERMINAL_CHANGE_SPRITE) { if (_root_config.m_control_object) { Image img = _root_config.m_control_object.GetComponent <Image>(); if (img != null) { _root_config.OldSprite = img.sprite; } } } else if (_root_config.m_type == eEffectType.TERMINAL_FILL_RECT) { if (_root_config.m_control_object) { } } else if (_root_config.m_type == eEffectType.TERMINAL_ANIMATION) { } cRunEffect root_effect = null; if (!_root_config.m_is_switch_off) { root_effect = cRunEffect.create(_root_config, this); foreach (Transform child in _root_config.gameObject.transform) { effectConfig child_config = child.GetComponent <effectConfig>(); if (child_config != null && !child_config.m_is_switch_off) { cRunEffect child_effect = generateEffectFrom(child_config); if (child_effect != null) { //Debug.unityLogger.Log("Ariman", "generateEffectFrom: add: " + child_config.m_root_name); root_effect.add(child_effect); } } } } return(root_effect); }
public bool behaviour_type1(effectConfig _config) { return(false); }
public static cRunEffect create(effectConfig _config, effectsManager _manager) { cRunEffect effect = null; effect = new cRunEffect(_config); effect.setManager(_manager); if (_config.m_type == eEffectType.COMPOUND_TYPE) { } else if (_config.m_type == eEffectType.TERMINAL_ROTATE) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_rotate; } else if (_config.m_type == eEffectType.TERMINAL_MOVE_LINE_GLOBAL_POS || _config.m_type == eEffectType.TERMINAL_MOVE_LINE_LOCAL_POS) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_move_along_line; effect.m_trail_system = Utilities.getTrailSystem(); effect.m_trail_id = effect.m_trail_system.addTrail(); } else if (_config.m_type == eEffectType.TERMINAL_MOVE_ARC_GLOBAL_POS || _config.m_type == eEffectType.TERMINAL_MOVE_ARC_LOCAL_POS) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_move_along_arc; effect.m_trail_system = Utilities.getTrailSystem(); effect.m_trail_id = effect.m_trail_system.addTrail(); } else if (_config.m_type == eEffectType.TERMINAL_SCALE) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_scale; } else if (_config.m_type == eEffectType.TERMINAL_ARRIVE) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_arrive; if (effect.m_config.m_is_state_normalize) { effect.m_config.m_control_object.SetActive(false); } } else if (_config.m_type == eEffectType.TERMINAL_HIDE) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_hide; if (effect.m_config.m_is_state_normalize) { effect.m_config.m_control_object.SetActive(true); } } else if (_config.m_type == eEffectType.TERMINAL_CHANGE_SPRITE) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_change_sprite; } else if (_config.m_type == eEffectType.TERMINAL_FILL_RECT) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_fill_rect; if (effect.m_config.m_is_state_normalize) { var img = effect.m_config.m_control_object.GetComponent <Image>(); if (img != null) { img.fillAmount = 0; } } } else if (_config.m_type == eEffectType.TERMINAL_ANIMATION) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_animation; if (effect.m_config.m_is_state_normalize) { var img = effect.m_config.m_control_object.GetComponent <Image>(); if (img != null) { img.fillAmount = 0; } } } else if (_config.m_type == eEffectType.TERMINAL_CHANGE_COLOR) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_change_color; } else if (_config.m_type == eEffectType.TERMINAL_TEXT_COUNTER) { effect.m_config.m_mode = eEffectMode.TERMINAL_MODE; effect.m_behaviour = effect.behaviour_type_counter; } return(effect); }
public static void effectFinalAction(effectConfig _config) { var main_logic = GameObject.Find("AppLogic").GetComponent <scriptAppLogic>(); main_logic.doAction(_config); }
public bool behaviour_move_along_arc(effectConfig _config) { var dt = Time.deltaTime; if (_config.Delay > 0) { _config.Delay -= dt; if (_config.Delay > 0) { return(false); } } _config.m_current_time += dt; if (_config.IsBegin) { _config.IsBegin = false; _config.m_control_object.SetActive(true); if (_config.m_is_link_to_last_position) { if (_config.m_type == eEffectType.TERMINAL_MOVE_ARC_LOCAL_POS) { _config.m_start_pos = _config.m_control_object.transform.localPosition; _config.CurrentPos = _config.m_control_object.transform.localPosition; } else if (_config.m_type == eEffectType.TERMINAL_MOVE_ARC_GLOBAL_POS) { _config.m_start_pos = _config.m_control_object.transform.position; _config.CurrentPos = _config.m_control_object.transform.position; } } else { _config.CurrentPos = _config.m_start_pos; } } if (_config.m_current_time >= _config.m_max_time) { _config.m_current_time = _config.m_max_time; _config.IsEnd = true; _config.CurrentPos = _config.m_finish_pos; } else { float delta_time = _config.m_current_time; double percents = delta_time / _config.m_max_time; var main_move = (_config.m_finish_pos - _config.m_start_pos); double diff_progress_1 = percents - _config.LastProgress; _config.LastProgress = percents; if (m_internal_tween_algorithm != null) { percents = m_internal_tween_algorithm(percents); } Vector2 delta_pos = main_move * (float)diff_progress_1; _config.CurrentPos += delta_pos; percents = Math.Sin(percents * Math.PI); double diff_progress2 = percents - _config.m_arc_settings.m_last_progress; _config.m_arc_settings.m_last_progress = percents; _config.CurrentPos = _config.CurrentPos + _config.m_arc_settings.m_arc_shift * (float)diff_progress2; } return(true); }
public static void resetConfig(effectConfig _config) { if (_config == null) { return; } if (_config.m_type == eEffectType.TERMINAL_ROTATE) { if (_config.m_is_child_node_reset_sign) { var temp = _config.m_control_object.transform.eulerAngles; temp.z = _config.m_start_rotate_z; _config.m_control_object.transform.eulerAngles = temp; _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_MOVE_LINE_LOCAL_POS || _config.m_type == eEffectType.TERMINAL_MOVE_ARC_LOCAL_POS) { if (_config.m_is_child_node_reset_sign) { //_root_config.m_control_object.transform.localPosition = _root_config.m_start_pos; Vector3 temp = _config.m_start_pos; temp.z = _config.m_control_object.transform.localPosition.z; _config.m_control_object.transform.localPosition = temp; _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_MOVE_LINE_GLOBAL_POS || _config.m_type == eEffectType.TERMINAL_MOVE_ARC_GLOBAL_POS) { if (_config.m_is_child_node_reset_sign) { //_root_config.m_control_object.transform.position = _root_config.m_start_pos; Vector3 temp = _config.m_start_pos; temp.z = _config.m_control_object.transform.position.z; _config.m_control_object.transform.position = temp; _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_SCALE) { if (_config.m_is_child_node_reset_sign) { _config.m_control_object.transform.localScale = _config.m_start_scale; _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_ARRIVE) { if (_config.m_is_child_node_reset_sign) { _config.m_control_object.SetActive(false); } } else if (_config.m_type == eEffectType.TERMINAL_HIDE) { if (_config.m_is_child_node_reset_sign) { _config.m_control_object.SetActive(true); } } else if (_config.m_type == eEffectType.TERMINAL_CHANGE_SPRITE) { if (_config.m_is_child_node_reset_sign) { var img = _config.m_control_object.GetComponent <Image>(); if (img != null && _config.OldSprite != null) { img.sprite = _config.OldSprite; } _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_FILL_RECT) { if (_config.m_is_child_node_reset_sign) { var img = _config.m_control_object.GetComponent <Image>(); if (img != null) { img.fillAmount = 0; } _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_ANIMATION) { /*if (_root_config.m_is_child_node_reset_sign) * { * var img = _root_config.m_control_object.GetComponent<Image>(); * if (img != null) * { * img.fillAmount = 0; * } * _root_config.m_control_object.SetActive(_root_config.Is_visible_state); * }*/ } else if (_config.m_type == eEffectType.TERMINAL_CHANGE_COLOR) { if (_config.m_is_child_node_reset_sign) { var img = _config.m_control_object.GetComponent <Image>(); if (img != null) { img.color = _config.m_start_color; } _config.m_control_object.SetActive(_config.IsVisibleState); } } else if (_config.m_type == eEffectType.TERMINAL_TEXT_COUNTER) { if (_config.m_is_child_node_reset_sign) { string pattern = _config.m_counter_pattern; string temp = String.Format(pattern, _config.m_start_counter); Text control = _config.m_control_object.GetComponent <Text>(); if (control != null) { control.text = temp; } _config.m_control_object.SetActive(_config.IsVisibleState); } } _config.clearConfig(); foreach (Transform child in _config.gameObject.transform) { effectConfig child_config = child.GetComponent <effectConfig>(); if (child_config != null && !child_config.m_is_switch_off) { resetConfig(child_config); } } }