private void SetSpecialItem(GameProp item) { switch (item.Type) { case "a4e7": itemCondition.ExtendsRounds += System.Convert.ToInt32(item.Value); break; case "a4e14": itemCondition.KillPromote += item.Value; break; case "a4e16": itemCondition.BloodSucking += item.Value; break; case "a4e12": itemCondition.Revive = item; break; case "a4e13": itemCondition.FullBloodItems.Add(item); break; } }
private void CollectingProp(GameProp prop, GameObject obj) { if (obj == m_PropNode) { BroadPlotTips(1); } }
// Use this for initialization void Start() { int chance = 20; if (GlobalVariable.HasFightScenes.Contains(GlobalVariable.currentScene)) { chance = 0; } if (GlobalVariable.Chance(chance)) { List <GameProp> allBattleItems = new List <GameProp>(); foreach (GameProp item in GlobalVariable.AllGameItems.Values) { if (!item.Type.Equals("a4e17")) { allBattleItems.Add(item); } } int randomIndex = Random.Range(0, allBattleItems.Count); GameProp randomItem = allBattleItems[randomIndex]; GlobalVariable.BattleItems.Add(randomItem); Transform itemImg = transform.Find("itemImg"); itemImg.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("item/" + randomItem.SerialNumber); Transform itemName = transform.Find("itemName"); itemName.GetComponent <TextMesh>().text = randomItem.Name; Transform itemDescription = transform.Find("itemDescription"); string description = randomItem.Description; itemDescription.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{13}", "$0\r\n");; } }
public ItemCondition() { ExtendsRounds = 0; KillPromote = 0; BloodSucking = 0; FullBloodItems = new List <GameProp>(); Revive = null; }
public void SetItem(GameProp t) { info = t; ChangeSprite(); InventoryItem item = GetComponentInChildren <InventoryItem>(); item.Item = t; }
private void GainProp(GameProp prop, GameObject obj) { if (m_NpcProp.gameObject == obj) { m_CollectFightNpcPlayer = m_NpcProp.GetFightNpcPlayer(); ShowNewPlot(m_NewPlotId, PlotCallBack); } }
private void GainProp(GameProp prop, GameObject obj) { if (prop == m_GameProp) { BroadPlotTips(3); EndTask(); } }
private void CollectingProp(GameProp prop, GameObject obj) { int index = m_Props.FindIndex(l => l == obj); if (index >= 0) { BroadPlotTips(2); } }
private void GainProp(GameProp prop, GameObject obj) { if (obj == m_PropNode) { BroadPlotTips(2); //BroadPlotTips(4); m_StartCountDown = true; m_TriggerNode.gameObject.SetActive(true); m_PropEffectNode.SetActive(true); } }
void LoadSkill(GameProp skillProp) { setMonsterHide(); skill = Instantiate(skillPane, transform.position + new Vector3(-1f, 1.5f, 0), Quaternion.identity); skillName = skill.transform.Find("skill-name").GetComponent <TextMesh>(); skillDescription = skill.transform.Find("skill-description").GetComponent <TextMesh>(); skillIcon = skill.transform.Find("skill-icon").GetComponent <SpriteRenderer>(); skillName.text = skillProp.Name; skillDescription.text = Regex.Replace(skillProp.Description, @"\S{8}", "$0\r\n"); skillIcon.sprite = Resources.Load <Sprite>("skill/" + skillProp.SerialNumber); }
private void InitializeItem() { currentPage = 0; for (int i = 0; i < GlobalVariable.BattleItems.Count; ++i) { GameProp itemProp = DeepCopy(GlobalVariable.BattleItems[i]); GameObject item = Instantiate(itemPrefab, itemFirstPosition.position + new Vector3(0.2f * i, 0, 0), Quaternion.identity); itemSpriteReflect.Add(itemProp, item); item.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("item/" + itemProp.SerialNumber); EffectPropertyItem(itemProp); EffectStatusItem(itemProp); SetSpecialItem(itemProp); } }
public void ClickCard() { GameProp card = handCards[CardAction.currentIndex]; if (card.TargetQuantity == 1) { RenderMonster.needClickMonster = true; SetTip("请选择要攻击的目标"); } else { RenderMonster.needClickMonster = false; selectedMonster = null; SetTip("请出牌"); } }
private void EffectStatusItem(GameProp item) { switch (item.Type) { case "a4e3": AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, item.Value, krakenPosition.position); break; case "a4e5": AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, item.Value, Vector3.zero); break; case "a4e11": AddStatus(kraken, item.StatusIcon, item.ConsecutiveRounds, 0.1f, Vector3.zero); break; } }
private void GainProp(GameProp prop, GameObject obj) { if (m_Props.Contains(obj)) { m_Props.Remove(obj); int leftCount = m_TargetPropCount - m_Props.Count; BroadTargetTips(0, leftCount.ToString(), m_TargetPropCount.ToString()); BroadPlotTips(leftCount); if (m_Props.Count == 0) { EndTask(); } else { SetTsf(); } } }
public bool PlayCard() { GameProp card = handCards[CardAction.currentIndex]; if (currentEnergy - card.EnergyConsumption < 0) { SetTip("精力不足"); return(false); } else { currentEnergy -= card.EnergyConsumption; energy.transform.DOMoveY(energy.transform.position.y - card.EnergyConsumption * 0.35f, 1f); KrakenRound(card); RemoveCard(); handCards.Remove(CardAction.currentIndex); return(true); } }
private void EffectPropertyItem(GameProp item) { switch (item.Type) { case "a4e1": kraken.AttactPower += krakenBaseAttact * item.Value; break; case "a4e2": kraken.DefensivePower += krakenBaseDefend * item.Value; break; case "a4e4": krakenMaxHealth += Mathf.RoundToInt(krakenMaxHealth * item.Value); kraken.BloodVolume = krakenMaxHealth; break; case "a4e6": kraken.AttactPower += krakenBaseAttact * item.Value; kraken.DefensivePower -= krakenBaseDefend * item.Value; break; case "a4e9": escape.demarcationline += System.Convert.ToInt32(item.Value * 100); break; case "a4e10": kraken.AttactPower += krakenBaseAttact * item.Value; kraken.DefensivePower += krakenBaseDefend * item.Value; break; case "a4e11": kraken.AttactPower += krakenBaseAttact * item.Value; break; case "a4e15": kraken.DefensivePower += krakenBaseDefend * item.Value; krakenMaxHealth -= Mathf.RoundToInt(krakenMaxHealth * 0.5f); kraken.BloodVolume = krakenMaxHealth; break; } }
public void SetSkill(GameProp prop) { skill = prop; if (skill != null) { transform.Find("skill").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("skill/" + skill.SerialNumber); skillOnGrid.Add(gameObject); foreach (GameProp t in GlobalVariable.FightSkills) { if (t != null && t.SerialNumber.Equals(skill.SerialNumber)) { transform.Find("skill").GetComponent <SpriteRenderer>().material = Resources.Load <Material>("materials/SpriteGray"); } } } else { transform.Find("skill").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Objects/base"); } }
// Use this for initialization void Start() { int count = Random.Range(1, 4); if (GlobalVariable.HasFightScenes.Contains(GlobalVariable.currentScene)) { if (GlobalVariable.Chance(50)) { count = 1; } else { count = 0; } } for (int i = 0; i < count; ++i) { GameObject card = Instantiate(cardPrefab, cardStartPosition.position + new Vector3(i * 4.65f, 0, 0), Quaternion.identity); card.transform.parent = transform; int randomIndex = Random.Range(0, GlobalVariable.AllCards.Keys.Count); List <string> keys = new List <string>(GlobalVariable.AllCards.Keys); GameProp randomCard = GlobalVariable.AllCards[keys[randomIndex]]; Transform skillText = card.transform.Find("skill-text"); string description = randomCard.Description; skillText.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{8}", "$0\r\n"); SpriteRenderer cardStyle = card.transform.Find("card-style").GetComponent <SpriteRenderer>(); Sprite style = Resources.Load <Sprite>("cardStyle/" + randomCard.Type.Substring(0, 2) + randomCard.EnergyConsumption); cardStyle.sprite = style; Transform cardName = card.transform.Find("card-name"); cardName.GetComponent <TextMesh>().text = randomCard.Name; SpriteRenderer cardRawImg = card.transform.Find("card-raw-img").GetComponent <SpriteRenderer>(); Sprite rawImg = Resources.Load <Sprite>("cardRawImg/" + randomCard.SerialNumber); cardRawImg.sprite = rawImg; cardRawImg.sortingOrder = cardStyle.sortingOrder + 1; GlobalVariable.ExistingCards.Add(randomCard); } }
IEnumerator AddOneCard(Vector3 lastCardEndPosition) { GameObject card = Instantiate(cardPrefab, cardStartPosition.position, Quaternion.identity); handCardsSprite.Add(card.GetComponent <CardAction>().index, card); int randomIndex = Random.Range(0, cardGroup.Count); GameProp randomCard = cardGroup[randomIndex]; handCards.Add(card.GetComponent <CardAction>().index, randomCard); cardGroup.Remove(randomCard); Transform skillText = card.transform.Find("skill-text"); string description = randomCard.Description; skillText.GetComponent <TextMesh>().text = Regex.Replace(description, @"\S{8}", "$0\r\n"); SpriteRenderer cardStyle = card.transform.Find("card-style").GetComponent <SpriteRenderer>(); Sprite style = Resources.Load <Sprite>("cardStyle/" + randomCard.Type.Substring(0, 2) + randomCard.EnergyConsumption); cardStyle.sprite = style; Transform cardName = card.transform.Find("card-name"); cardName.GetComponent <TextMesh>().text = randomCard.Name; SpriteRenderer cardRawImg = card.transform.Find("card-raw-img").GetComponent <SpriteRenderer>(); Sprite rawImg = Resources.Load <Sprite>("cardRawImg/" + randomCard.SerialNumber); cardRawImg.sprite = rawImg; cardStyle.sortingOrder = ++orderIndex; cardRawImg.sortingOrder = orderIndex + 1; yield return(new WaitForSeconds(0.3f)); card.transform.DOMove(lastCardEndPosition, 0.5f).OnComplete(() => { isAnimationEnd = true; isDrawCard = false; }); }
public void LoadCard(GameProp temp, int t) { gameProp = new CardProp(temp, t); }
public CardProp(GameProp t, int a) { gameProp = t; index = a; }
IEnumerator MonsterRound() { foreach (Monster monster in monsters) { int randomIndex = Random.Range(0, monster.SkillList.Count); GameProp skill = monster.SkillList[randomIndex]; Status status; int demage; //Debug.Log(skill.Name+" "+skill.Description); switch (skill.Type) { case "a1b1": demage = GetDamageValue(monster.AttactPower * skill.Value, kraken, skill.Attribute); ReduceBlood(kraken, demage); GetGameObjectByMonster(monster).transform.DOShakePosition(1f, 0.07f); if ((status = HaveReboundStatus(kraken.StatusList)) != null) { ReduceBlood(monster, System.Convert.ToInt32(demage * status.Value)); } StartCoroutine(PlayCardAnimation(skill.SerialNumber, krakenPosition)); yield return(new WaitForSeconds(1f)); break; case "a1b2": demage = GetDamageValue(monster.AttactPower * skill.Value, kraken, skill.Attribute); ReduceBlood(kraken, demage); EffectPropertyStatus(kraken, AddStatus(kraken, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value, krakenPosition.position)); GetGameObjectByMonster(monster).transform.DOShakePosition(1f); if ((status = HaveReboundStatus(kraken.StatusList)) != null) { ReduceBlood(monster, System.Convert.ToInt32(demage * status.Value)); } yield return(new WaitForSeconds(1f)); break; case "a1b5": if (skill.TargetQuantity == 0) { int value = System.Convert.ToInt32(skill.Value * GlobalVariable. AllMonsters[monster.SerialNumber].BloodVolume); AddBlood(monster, value); } else if (skill.TargetQuantity == 7) { foreach (Monster m in monsters) { int value = System.Convert.ToInt32(skill.Value * GlobalVariable. AllMonsters[m.SerialNumber].BloodVolume); AddBlood(monster, value); } } break; case "a2c1": EffectPropertyStatus(kraken, AddStatus(kraken, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value, krakenPosition.position)); break; case "a2c2": if (skill.TargetQuantity == 0) { EffectPropertyStatus(monster, AddStatus(monster, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value, GetGameObjectByMonster(monster).transform.position)); } else if (skill.TargetQuantity == 7) { foreach (Monster m in monsters) { EffectPropertyStatus(m, AddStatus(m, skill.StatusIcon, skill.ConsecutiveRounds, skill.Value, GetGameObjectByMonster(m).transform.position)); } } break; } JudegStatus(monster, GetGameObjectByMonster(monster).transform.position); } isMonsterRoundOver = true; }
public void KrakenRound(GameProp card) { Status status; switch (card.Type) { case "a1b1": if (card.TargetQuantity == 1) { int demage = GetDamageValue(kraken.AttactPower * card.Value, selectedMonster, card.Attribute); ReduceBlood(selectedMonster, demage); if ((status = HaveReboundStatus(selectedMonster.StatusList)) != null) { ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value)); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } StartCoroutine(PlayCardAnimation(card.SerialNumber, GetGameObjectByMonster(selectedMonster).transform)); } else if (card.TargetQuantity == 6) { StartCoroutine(PlayCardAnimation(card.SerialNumber, monstersPosition5.transform)); foreach (Monster monster in monsters) { int demage = GetDamageValue(kraken.AttactPower * card.Value, monster, monster.Attribute); ReduceBlood(monster, demage); if ((status = HaveReboundStatus(monster.StatusList)) != null) { ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value)); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } } } else { StartCoroutine(PlayCardAnimation(card.SerialNumber, monstersPosition5.transform)); for (int i = 1; i <= card.TargetQuantity; ++i) { int randomIndex = Random.Range(0, monsters.Count); Monster monster = monsters[randomIndex]; int demage = GetDamageValue(kraken.AttactPower * card.Value, monster, monster.Attribute); ReduceBlood(monster, demage); if ((status = HaveReboundStatus(monster.StatusList)) != null) { ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value)); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } } } break; case "a1b2": if (card.TargetQuantity == 1) { int demage = GetDamageValue(kraken.AttactPower * card.Value, selectedMonster, card.Attribute); EffectPropertyStatus(selectedMonster, AddStatus(selectedMonster, card.StatusIcon, card.ConsecutiveRounds, card.Value, GetGameObjectByMonster(selectedMonster).transform.position)); StartCoroutine(PlayCardAnimation(card.SerialNumber, GetGameObjectByMonster(selectedMonster).transform)); ReduceBlood(selectedMonster, demage); if ((status = HaveReboundStatus(selectedMonster.StatusList)) != null) { ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value)); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } } else if (card.TargetQuantity == 6) { StartCoroutine(PlayCardAnimation(card.SerialNumber, monstersPosition5.transform)); foreach (Monster monster in monsters) { int demage = GetDamageValue(kraken.AttactPower * card.Value, monster, monster.Attribute); EffectPropertyStatus(monster, AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value, GetGameObjectByMonster(monster).transform.position)); ReduceBlood(monster, demage); if ((status = HaveReboundStatus(monster.StatusList)) != null) { ReduceBlood(kraken, demage); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } } } else { StartCoroutine(PlayCardAnimation(card.SerialNumber, monstersPosition5.transform)); for (int i = 1; i <= card.TargetQuantity; ++i) { int randomIndex = Random.Range(0, monsters.Count); Monster monster = monsters[randomIndex]; int demage = GetDamageValue(kraken.AttactPower * card.Value, monster, monster.Attribute); EffectPropertyStatus(monster, AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value, GetGameObjectByMonster(monster).transform.position)); ReduceBlood(monster, demage); if ((status = HaveReboundStatus(monster.StatusList)) != null) { ReduceBlood(kraken, System.Convert.ToInt32(demage * status.Value)); } if (itemCondition.BloodSucking != 0) { AddBlood(kraken, System.Convert.ToInt32(demage * itemCondition.BloodSucking)); } } } break; case "a1b3": isDrawCard = true; StartCoroutine(PlayCardAnimation(card.SerialNumber, krakenPosition)); StartCoroutine(WaitForRemoveCard(1.7f)); break; case "a1b4": StartCoroutine(PlayCardAnimation(card.SerialNumber, krakenPosition)); int energyValue = int.Parse(card.Value.ToString()); if (currentEnergy + energyValue >= maxEnergy) { SetEnergyFull(); } else { currentEnergy += energyValue; energy.transform.DOMoveY(energy.transform.position.y + energyValue * 0.35f, 1f); } break; case "a1b5": StartCoroutine(PlayCardAnimation(card.SerialNumber, krakenPosition)); AddBlood(kraken, System.Convert.ToInt32(card.Value * krakenMaxHealth)); if (kraken.BloodVolume > krakenMaxHealth) { kraken.BloodVolume = krakenMaxHealth; } break; case "a2c1": if (card.TargetQuantity == 1) { StartCoroutine(PlayCardAnimation(card.SerialNumber, GetGameObjectByMonster(selectedMonster).transform)); EffectPropertyStatus(selectedMonster, AddStatus(selectedMonster, card.StatusIcon, card.ConsecutiveRounds, card.Value, GetGameObjectByMonster(selectedMonster).transform.position)); } else { StartCoroutine(PlayCardAnimation(card.SerialNumber, monstersPosition5.transform)); for (int i = 1; i <= card.TargetQuantity; ++i) { int randomIndex = Random.Range(0, monsters.Count); Monster monster = monsters[randomIndex]; EffectPropertyStatus(monster, AddStatus(monster, card.StatusIcon, card.ConsecutiveRounds, card.Value, GetGameObjectByMonster(monster).transform.position)); } } break; case "a2c2": StartCoroutine(PlayCardAnimation(card.SerialNumber, krakenPosition)); EffectPropertyStatus(kraken, AddStatus(kraken, card.StatusIcon, card.ConsecutiveRounds, card.Value, krakenPosition.position)); break; case "a3d1": StartCoroutine(PlayCardAnimation(card.SerialNumber, krakenPosition)); EffectPropertyStatus(kraken, AddStatus(kraken, card.StatusIcon, card.ConsecutiveRounds, card.Value, krakenPosition.position)); break; } }
public ObjectItem(GameProp t, int p) { gameProp = t; num = p; }