public void OnEventUpdateBossHeadUI(BattleHeadUILogic.HeadUIParam param) { float value = (float)param.min / (float)param.max; if (value > 0.67f) { view.slider_BossHPBar1.value = (value - 0.67f) / 0.33f; } else if (value > 0.34f) { view.slider_BossHPBar1.value = 0.0f; view.slider_BossHPBar2.value = (value - 0.33f) / 0.33f; view.image_BossHPNum2.gameObject.SetActive(true); view.image_BossHPNum3.gameObject.SetActive(false); } else if (value > 0.0f) { view.slider_BossHPBar1.value = 0.0f; view.slider_BossHPBar2.value = 0.0f; view.slider_BossHPBar3.value = value / 0.33f; view.image_BossHPNum1.gameObject.SetActive(true); view.image_BossHPNum2.gameObject.SetActive(false); view.image_BossHPNum3.gameObject.SetActive(false); } }
public void OnEventAppendRescueHintUI(BattleHeadUILogic.HeadUIParam param, int cardID) { HeadUI headUI = new HeadUI(); headUI.showTime = 0; if (Main.SettingManager.GameLanguage == 0) { headUI.uiGo = GameObject.Instantiate(view.panel_RescueHint.gameObject) as GameObject; } else { headUI.uiGo = GameObject.Instantiate(view.panel_RescueHint_En.gameObject) as GameObject; } headUI.uiGo.transform.SetParent(view.ui_Parent.transform); headUI.uiGo.gameObject.SetActive(true); Vector2 pos; headUI.image = headUI.uiGo.GetComponent <Image>(); Canvas canvas = headUI.image.canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { headUI.rt = headUI.uiGo.GetComponent <RectTransform>(); headUI.rt.anchoredPosition = pos; } //headUI.rt.anchoredPosition = view.rescuePosList[cardID - 1].rectTransform.anchoredPosition; hintUIDict.Add(param.id, headUI); }
protected void OnUpdateRescueHintUI() { if ((MonsterType)dataPO.MonsterType == MonsterType.NPC && dataPO.DisplayBar == 1 && !IsSafety()) { BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; param.damage = 0; EventDispatcher.TriggerEvent(GameEventDef.EVNET_UPDATE_RESCUE_HINT_UI, param, CarId); } }
public void OnEventUpdateHeadUI(BattleHeadUILogic.HeadUIParam param) { if (param.type != Monster.MonsterType.Boss) { OnEventUpdateMonsterHeadUI(param); } else { OnEventUpdateBossHeadUI(param); } HeadUIParam.Store(param); }
public void OnEventAppendBossHeadUI(BattleHeadUILogic.HeadUIParam param) { view.panel_BossHPBar.gameObject.SetActive(true); view.slider_BossHPBar1.value = 1.0f; view.slider_BossHPBar2.value = 1.0f; view.slider_BossHPBar3.value = 1.0f; view.image_BossHPNum1.gameObject.SetActive(false); view.image_BossHPNum2.gameObject.SetActive(false); view.image_BossHPNum3.gameObject.SetActive(true); HeadUI headUI = new HeadUI(); headUIDict.Add(param.id, headUI); }
protected void AppendWeaponUI() { if ((MonsterType)dataPO.MonsterType != MonsterType.Weapon) { return; } BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; param.damage = 0; EventDispatcher.TriggerEvent(GameEventDef.EVNET_APPEND_WEAPON_UI, param); }
public void OnEventUpdateMonsterHeadUI(BattleHeadUILogic.HeadUIParam param) { if (headUIDict.ContainsKey(param.id)) { HeadUI headUI = headUIDict[param.id]; if (!headUI.uiGo.gameObject.activeSelf && param.damage == 0) { return; } Vector2 pos; Canvas canvas = headUI.image.canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { headUI.rt.anchoredPosition = pos; } headUI.bar.value = (float)param.min / (float)param.max; if (param.damage > 0) { switch (param.type) { case Monster.MonsterType.Senior: case Monster.MonsterType.Normal: { headUI.showTime += GameConfig.GAME_CONFIG_SHOW_HEAD_UI_TIME_1; break; } case Monster.MonsterType.NPC: { headUI.showTime += GameConfig.GAME_CONFIG_SHOW_HEAD_UI_TIME_2; break; } } } headUI.showTime -= Main.NonStopTime.deltaTime; if (headUI.showTime <= 0.0f) { headUI.showTime = 0.0f; headUI.uiGo.gameObject.SetActive(false); } else { headUI.uiGo.gameObject.SetActive(true); } } }
protected void PlayFloatUI(int value, int index) { if (value <= 0) { return; } BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; param.damage = value; param.min = index; EventDispatcher.TriggerEvent(GameEventDef.EVNET_APPEND_FLOAT_ART_NUMBER, param); }
protected void OnUpdateWeaponUI(int damage) { if ((MonsterType)dataPO.MonsterType != MonsterType.Weapon) { return; } BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; param.damage = damage; param.max = dataPO.SaveDegree; param.min = mp; EventDispatcher.TriggerEvent(GameEventDef.EVNET_UPDATE_WEAPON_UI, param); }
public void OnEventUpdateWeaponUI(BattleHeadUILogic.HeadUIParam param) { if (weaponUIDict.ContainsKey(param.id)) { HeadUI headUI = weaponUIDict[param.id]; if (!headUI.uiGo.gameObject.activeSelf) { return; } Vector2 pos; Canvas canvas = headUI.image.canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { headUI.rt.anchoredPosition = pos; } if (param.damage > 0) { headUI.showTime += GameConfig.GAME_CONFIG_SHOW_HEAD_UI_TIME_1; GameObject goFX = GameObject.Instantiate(view.panel_HitBoss.gameObject) as GameObject; goFX.transform.SetParent(view.ui_Parent.transform); goFX.gameObject.SetActive(true); goFX.GetComponent <RectTransform>().anchoredPosition = pos; goFX.GetComponent <RectTransform>().localScale = Vector3.one; StartCoroutine(OnCreateHitBossFX(goFX)); } headUI.showTime -= Main.NonStopTime.deltaTime; if (headUI.showTime <= 0.0f) { headUI.showTime = 0.0f; Slider hpBar = headUI.uiGo.transform.Find("Panel_Bar/Image_HPBar").GetComponent <Slider>(); headUI.uiGo.transform.Find("Panel_Bar").gameObject.SetActive(false); } else { Slider hpBar = headUI.uiGo.transform.Find("Panel_Bar/Image_HPBar").GetComponent <Slider>(); headUI.uiGo.transform.Find("Panel_Bar").gameObject.SetActive(true); hpBar.value = (float)param.min / (float)param.max; } } }
public void OnEventUpdateRescueHintUI(BattleHeadUILogic.HeadUIParam param, int cardID) { if (hintUIDict.ContainsKey(param.id)) { HeadUI headUI = hintUIDict[param.id]; if (!headUI.uiGo.gameObject.activeSelf) { return; } //Vector2 pos; //Canvas canvas = headUI.image.canvas; //pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); //if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) //{ // headUI.rt.anchoredPosition = pos; //} headUI.rt.anchoredPosition = view.rescuePosList[cardID - 1].rectTransform.anchoredPosition; } }
public void OnEventAppendMonsterHeadUI(BattleHeadUILogic.HeadUIParam param) { HeadUI headUI = new HeadUI(); headUI.showTime = 0; switch (param.type) { case Monster.MonsterType.Senior: case Monster.MonsterType.Normal: { headUI.uiGo = GameObject.Instantiate(view.panel_RedHPBar.gameObject) as GameObject; break; } case Monster.MonsterType.NPC: { headUI.uiGo = GameObject.Instantiate(view.panel_GreenHPBar.gameObject) as GameObject; break; } } headUI.uiGo.transform.SetParent(view.ui_Parent.transform); //headUI.uiGo.gameObject.SetActive(true); Vector2 pos; headUI.image = headUI.uiGo.GetComponent <Image>(); Canvas canvas = headUI.image.canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { headUI.rt = headUI.uiGo.GetComponent <RectTransform>(); headUI.rt.anchoredPosition = pos; } headUI.bar = headUI.uiGo.transform.Find("Image_HPBar").GetComponent <Slider>(); headUI.bar.value = (float)param.min / (float)param.max; headUIDict.Add(param.id, headUI); }
protected void AppendHeadUI() { if (dataPO.DisplayBlood == 1) { BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; if ((MonsterType)dataPO.MonsterType != MonsterType.NPC) { param.max = dataPO.Hp; param.min = hp; } else { param.max = dataPO.SaveDegree; param.min = mp; } EventDispatcher.TriggerEvent(GameEventDef.EVNET_APPEND_HEAD_UI, param); } }
protected void OnUpdateHeadUI(int damage) { if (dataPO.DisplayBlood == 1) { BattleHeadUILogic.HeadUIParam param = BattleHeadUILogic.HeadUIParam.New(); param.goHead = goHead; param.id = id; param.type = (Monster.MonsterType)dataPO.MonsterType; if ((MonsterType)dataPO.MonsterType != MonsterType.NPC) { param.max = dataPO.Hp; param.min = hp; } else { param.max = dataPO.SaveDegree; param.min = mp; } param.damage = damage; EventDispatcher.TriggerEvent(GameEventDef.EVNET_UPDATE_HEAD_UI, param); } }
public void OnEventAppendWeaponUI(BattleHeadUILogic.HeadUIParam param) { HeadUI headUI = new HeadUI(); headUI.showTime = 0; headUI.uiGo = GameObject.Instantiate(view.panel_Weapon.gameObject) as GameObject; headUI.uiGo.transform.SetParent(view.ui_Parent.transform); headUI.uiGo.gameObject.SetActive(true); Vector2 pos; headUI.image = headUI.uiGo.GetComponent <Image>(); Canvas canvas = headUI.image.canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { headUI.rt = headUI.uiGo.GetComponent <RectTransform>(); headUI.rt.anchoredPosition = pos; headUI.rt.localScale = Vector3.one; } weaponUIDict.Add(param.id, headUI); }
public void OnEventAppendFloatArtNumber(BattleHeadUILogic.HeadUIParam param) { int score = param.damage; string text = score.ToString(); // 计算每个位置的数值 int[] value = new int[4]; int level = 100; int count = 1; bool sign = false; for (int index = 1; index < 4; ++index) { int number = (score / level) % 10; if (number > 0 && sign == false) { sign = true; } if (sign) { value[count++] = number; } level /= 10; } // 临时数据保存 FloatUI floatUI = new FloatUI(); floatUI.uiGo = GameObject.Instantiate(view.panel_FloatArtNumber.gameObject) as GameObject; floatUI.uiGo.transform.SetParent(view.ui_Parent.transform); floatUI.uiGo.transform.localScale = Vector3.one; // 获得Image组件 Image[] artNumberSprite = new Image[4]; for (int i = 0; i < 4; i++) { int number = i + 1; artNumberSprite[i] = floatUI.uiGo.transform.FindChild("Image_Number" + number.ToString()).GetComponent <Image>(); artNumberSprite[i].gameObject.SetActive(false); } // 根据要显示的文字进行位置显示 SetSpritePositionByLength(score.ToString().Length + 1, artNumberSprite); // 设置颜色 Color color; if (param.type == Monster.MonsterType.NPC) { color = Color.green; } else { color = Color.red; } // 设置图片并显示 Vector2 size = new Vector2(21, 29); for (int i = 0; i < text.Length; i++) { int num = 0; bool result = int.TryParse(text.Substring(i, 1), out num); if (i == 0) { artNumberSprite[0].gameObject.SetActive(true); artNumberSprite[0].color = color; } artNumberSprite[i + 1].sprite = view.image_Numbers[value[i + 1]].sprite; artNumberSprite[i + 1].gameObject.SetActive(true); artNumberSprite[i + 1].rectTransform.sizeDelta = size; artNumberSprite[i + 1].color = color; } // 映射头顶位置进行显示 Vector2 pos; Canvas canvas = floatUI.uiGo.GetComponent <Image>().canvas; pos = Camera.main.WorldToScreenPoint(param.goHead.transform.position); if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, pos, null, out pos)) { floatUI.uiGo.GetComponent <RectTransform>().anchoredPosition = pos; } floatUI.uiGo.SetActive(true); // 动画表现 RectTransform rectTransform = floatUI.uiGo.GetComponent <RectTransform>(); Sequence sequence = DOTween.Sequence(); pos.y += 50; sequence.Append(rectTransform.DOAnchorPos(pos, 1.0f)); if (param.min == 0) { pos.Set(-554f, -409); sequence.Append(rectTransform.DOAnchorPos(pos, 0.75f)); } else if (param.min == 1) { pos.Set(72f, -409); sequence.Append(rectTransform.DOAnchorPos(pos, 0.75f)); } else if (param.min == 2) { pos.Set(711f, -409); sequence.Append(rectTransform.DOAnchorPos(pos, 0.75f)); } sequence.OnComplete(OnFloatUIDisappearEnd); floatUI.index = param.min; floatUI.damage = score; floatUIList.Add(floatUI); HeadUIParam.Store(param); // 1: -554 -409 // 2: 72 -409 // 3: 711 -409 }