public void Upgrade() { if (RestDice.Count <= 0) { return; } model.CopySelf(); DiceCardXmlInfo xml = model.XmlData; xml.DiceBehaviourList.Add(RestDice.Dequeue()); typeof(BattleDiceCardModel).GetField("_xmlData", AccessTools.all).SetValue(model, xml); }
public override void OnWaveStart() { base.OnWaveStart(); RestDice = new Queue <DiceBehaviour>(); DiceCardXmlInfo xml = ItemXmlDataList.instance.GetCardItem(18000021).Copy(true); foreach (DiceBehaviour dice in xml.DiceBehaviourList) { RestDice.Enqueue(dice); } xml.DiceBehaviourList.Clear(); xml.DiceBehaviourList.Add(RestDice.Dequeue()); model = BattleDiceCardModel.CreatePlayingCard(xml); this.owner.allyCardDetail.AddCardToHand(model); count = 0; }
public override void OnRoundStart() { if (this.phase != ApocalypsePhase.Small || this._owner.allyCardDetail.GetAllDeck().Count <= 0) { return; } foreach (BattleDiceCardModel card in this._owner.allyCardDetail.GetAllDeck()) { card.CopySelf(); DiceCardXmlInfo xmlInfo = card.XmlData.Copy(true); DiceCardSpec Spec = xmlInfo.Spec.Copy(); Spec.Ranged = CardRange.FarArea; Spec.affection = CardAffection.Team; xmlInfo.Spec = Spec; DiceBehaviour dice = new DiceBehaviour() { Min = 0, Dice = 0, Type = BehaviourType.Atk, Detail = RandomUtil.SelectOne <BehaviourDetail>(new List <BehaviourDetail>() { BehaviourDetail.Slash, BehaviourDetail.Hit, BehaviourDetail.Penetrate }), MotionDetail = MotionDetail.J, EffectRes = "", Script = "", ActionScript = "Final_ApcBird_PutDownArea", Desc = "" }; foreach (DiceBehaviour behaviour in xmlInfo.DiceBehaviourList) { dice.Min += behaviour.Min; dice.Dice += behaviour.Dice; } xmlInfo.DiceBehaviourList = new List <DiceBehaviour>() { dice }; typeof(BattleDiceCardModel).GetField("_xmlData", AccessTools.all).SetValue(card, xmlInfo); EmotionCardAbility_bossbird4.Summation.Add(card); } }
public override void OnDrawCard() { base.OnDrawCard(); for (int i = 1; i < this.bless + 1; i++) { DiceCardXmlInfo bless = ItemXmlDataList.instance.GetCardItem(1108401).Copy(true); bless.Script = "BlessingPlague"; if (SearchEmotion(this._owner, "WhiteNight_Red_Enemy") != null) { bless.Script = "BlessingPlagueUpGraded"; } int num = EmotionCardAbility_plaguedoctor1.WhiteNightClock[this._owner.UnitData] + i; bless.DiceBehaviourList[0].Dice = num; bless.DiceBehaviourList[0].Min = num; BattleDiceCardModel card = BattleDiceCardModel.CreatePlayingCard(bless); card.temporary = true; List <BattleDiceCardModel> hand = typeof(BattleAllyCardDetail).GetField("_cardInHand", AccessTools.all).GetValue(this._owner.allyCardDetail) as List <BattleDiceCardModel>; hand.Add(card); } }
public override void OnStartBattle() { cnt = 0; if (this._owner.faction != Faction.Enemy) { return; } DiceCardXmlInfo cardItem = ItemXmlDataList.instance.GetCardItem(1106201); List <BattleDiceBehavior> behaviourList = new List <BattleDiceBehavior>(); int num = 0; foreach (DiceBehaviour diceBehaviour2 in cardItem.DiceBehaviourList) { BattleDiceBehavior battleDiceBehavior = new BattleDiceBehavior { behaviourInCard = diceBehaviour2 }; battleDiceBehavior.SetIndex(num++); behaviourList.Add(battleDiceBehavior); } this._owner.cardSlotDetail.keepCard.AddBehaviours(BattleDiceCardModel.CreatePlayingCard(cardItem), behaviourList); }
public override void OnEndParrying(BattlePlayingCardDataInUnitModel curCard) { base.OnEndParrying(curCard); if (this._owner.faction != Faction.Player) { return; } if (this._owner.cardSlotDetail.keepCard.cardBehaviorQueue.Count <= 0) { DiceCardXmlInfo cardItem = ItemXmlDataList.instance.GetCardItem(1107401); List <BattleDiceBehavior> behaviourList = new List <BattleDiceBehavior>(); int num = 0; foreach (DiceBehaviour diceBehaviour1 in cardItem.DiceBehaviourList) { BattleDiceBehavior battleDiceBehavior = new BattleDiceBehavior { behaviourInCard = diceBehaviour1 }; battleDiceBehavior.SetIndex(num++); behaviourList.Add(battleDiceBehavior); } this._owner.cardSlotDetail.keepCard.AddBehaviours(BattleDiceCardModel.CreatePlayingCard(cardItem), behaviourList); } }
public override void OnSelectEmotion() { base.OnSelectEmotion(); BattleEmotionCardModel Long = SearchEmotion(this._owner, "ApocalypseBird_LongArm_Enemy"); BattleEmotionCardModel Big = SearchEmotion(this._owner, "ApocalypseBird_BigEye_Enemy"); BattleEmotionCardModel Small = SearchEmotion(this._owner, "ApocalypseBird_SmallPeak_Enemy"); if (Long != null) { foreach (EmotionCardAbilityBase ability in Long.GetAbilityList()) { MethodInfo destroy = ability.GetType().GetMethod("Destroy"); if (destroy != null) { try { destroy.Invoke(ability, new object[] { }); } catch (Exception ex) { Debug.Error(ability.GetType().Name + "Destroy", ex); } } } this._owner.emotionDetail.PassiveList.Remove(Long); string name = RandomUtil.SelectOne <EmotionCardXmlInfo>(Harmony_Patch.emotion1).Name + "_Enemy"; EmotionCardXmlInfo emotion = Harmony_Patch.enermy.Find((Predicate <EmotionCardXmlInfo>)(x => x.Name == name)); this._owner.emotionDetail.ApplyEmotionCard(emotion); } if (Big != null) { foreach (EmotionCardAbilityBase ability in Big.GetAbilityList()) { MethodInfo destroy = ability.GetType().GetMethod("Destroy"); if (destroy != null) { try { destroy.Invoke(ability, new object[] { }); } catch (Exception ex) { Debug.Error(ability.GetType().Name + "Destroy", ex); } } } this._owner.emotionDetail.PassiveList.Remove(Big); string name = RandomUtil.SelectOne <EmotionCardXmlInfo>(Harmony_Patch.emotion2).Name + "_Enemy"; EmotionCardXmlInfo emotion = Harmony_Patch.enermy.Find((Predicate <EmotionCardXmlInfo>)(x => x.Name == name)); this._owner.emotionDetail.ApplyEmotionCard(emotion); } if (Small != null) { foreach (EmotionCardAbilityBase ability in Small.GetAbilityList()) { MethodInfo destroy = ability.GetType().GetMethod("Destroy"); if (destroy != null) { try { destroy.Invoke(ability, new object[] { }); } catch (Exception ex) { Debug.Error(ability.GetType().Name + "Destroy", ex); } } } this._owner.emotionDetail.PassiveList.Remove(Small); string name = RandomUtil.SelectOne <EmotionCardXmlInfo>(Harmony_Patch.emotion2).Name + "_Enemy"; EmotionCardXmlInfo emotion = Harmony_Patch.enermy.Find((Predicate <EmotionCardXmlInfo>)(x => x.Name == name)); this._owner.emotionDetail.ApplyEmotionCard(emotion); } SingletonBehavior <SoundEffectManager> .Instance.PlayClip("Creature/BossBird_Birth", false, 4f); this._aura = SingletonBehavior <DiceEffectManager> .Instance.CreateNewFXCreatureEffect("8_B/FX_IllusionCard_8_B_MonsterAura", 1f, _owner.view, _owner.view); this._owner.bufListDetail.AddBuf(new EmotionCardAbility_bossbird1.Longbird_Enemy()); this._owner.bufListDetail.AddBuf(new EmotionCardAbility_bossbird2.Bigbird_Enemy()); this._owner.bufListDetail.AddBuf(new EmotionCardAbility_bossbird3.Smallbird_Enemy()); DiceCardXmlInfo bigbirdxml = ItemXmlDataList.instance.GetCardItem(910041).Copy(true); bigbirdxml.optionList.Clear(); DiceCardSpec bigbirdspec = bigbirdxml.Spec.Copy(); bigbirdspec.Cost = 0; bigbirdxml.Spec = bigbirdspec; bigbirdxml.Priority = 100; bigbirdxml.Keywords.Clear(); BattleDiceCardModel BigBirdEgo = BattleDiceCardModel.CreatePlayingCard(bigbirdxml); Ego.Add(BigBirdEgo); DiceCardXmlInfo smallbirdxml = ItemXmlDataList.instance.GetCardItem(910043).Copy(true); smallbirdxml.optionList.Clear(); DiceCardSpec smallbirdspec = smallbirdxml.Spec.Copy(); smallbirdspec.Cost = 0; smallbirdxml.Spec = smallbirdspec; smallbirdxml.Priority = 100; smallbirdxml.Keywords.Clear(); BattleDiceCardModel SmallBirdEgo = BattleDiceCardModel.CreatePlayingCard(smallbirdxml); Ego.Add(SmallBirdEgo); DiceCardXmlInfo longbirdxml = ItemXmlDataList.instance.GetCardItem(910042).Copy(true); longbirdxml.optionList.Clear(); DiceCardSpec longbirdspec = longbirdxml.Spec.Copy(); longbirdspec.Cost = 0; longbirdxml.Spec = longbirdspec; longbirdxml.Priority = 100; longbirdxml.Keywords.Clear(); BattleDiceCardModel LongBirdEgo = BattleDiceCardModel.CreatePlayingCard(bigbirdxml); Ego.Add(LongBirdEgo); this._owner.allyCardDetail.AddCardToDeck(Ego); this._owner.allyCardDetail.Shuffle(); }
public override void OnStartBattle() { base.OnStartBattle(); if (phase != ApocalypsePhase.Big || this._owner.allyCardDetail.GetAllDeck().Count <= 0) { return; } DiceCardXmlInfo xmldata = RandomUtil.SelectOne <BattleDiceCardModel>(this._owner.allyCardDetail.GetAllDeck()).XmlData.Copy(true); foreach (DiceBehaviour dice in xmldata.DiceBehaviourList) { dice.ActionScript = "Final_ApcBird_LaserArea"; if (dice.Detail == BehaviourDetail.Evasion || dice.Detail == BehaviourDetail.Guard) { dice.Detail = RandomUtil.SelectOne <BehaviourDetail>(new List <BehaviourDetail>() { BehaviourDetail.Slash, BehaviourDetail.Hit, BehaviourDetail.Penetrate }); } } BattleDiceCardModel EyeAtk = BattleDiceCardModel.CreatePlayingCard(ItemXmlDataList.instance.GetCardItem(1107501)); DiceCardXmlInfo xmlinfo = typeof(BattleDiceCardModel).GetField("_xmlData", AccessTools.all).GetValue(EyeAtk) as DiceCardXmlInfo; xmlinfo.DiceBehaviourList = xmldata.DiceBehaviourList; typeof(BattleDiceCardModel).GetField("_xmlData", AccessTools.all).SetValue(EyeAtk, xmlinfo); BattleUnitModel target = RandomUtil.SelectOne <BattleUnitModel>(BattleObjectManager.instance.GetAliveList(Faction.Enemy)); BattlePlayingCardDataInUnitModel EyeAoe = new BattlePlayingCardDataInUnitModel() { owner = this._owner, card = EyeAtk, cardAbility = EyeAtk.CreateDiceCardSelfAbilityScript(), target = target, targetSlotOrder = RandomUtil.Range(0, target.cardSlotDetail.cardAry.Count - 1), slotOrder = RandomUtil.Range(0, this._owner.cardSlotDetail.cardAry.Count - 1) }; List <BattleUnitModel> battleUnitModelList = BattleObjectManager.instance.GetAliveList(Faction.Enemy); battleUnitModelList.Remove(target); EyeAoe.subTargets = new List <BattlePlayingCardDataInUnitModel.SubTarget>(); foreach (BattleUnitModel battleUnitModel in battleUnitModelList) { if (battleUnitModel != target && battleUnitModel.IsTargetable(this._owner)) { BattlePlayingCardSlotDetail cardSlotDetail = battleUnitModel.cardSlotDetail; int num1; if (cardSlotDetail == null) { num1 = 0; } else { int?count = cardSlotDetail.cardAry?.Count; int num2 = 0; num1 = count.GetValueOrDefault() > num2 & count.HasValue ? 1 : 0; } if (num1 != 0) { EyeAoe.subTargets.Add(new BattlePlayingCardDataInUnitModel.SubTarget() { target = battleUnitModel, targetSlotOrder = UnityEngine.Random.Range(0, battleUnitModel.speedDiceResult.Count) }); } } } EyeAoe.ResetExcludedDices(); EyeAoe.ResetCardQueueWithoutStandby(); List <BattlePlayingCardDataInUnitModel> cardlist = typeof(StageController).GetField("_allCardList", AccessTools.all).GetValue(Singleton <StageController> .Instance) as List <BattlePlayingCardDataInUnitModel>; cardlist.Add(EyeAoe); }