public override bool AddPowerTargets() { foreach (PowerTask task in base.m_taskList.GetTaskList()) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.FULL_ENTITY) { Network.HistFullEntity entity = power as Network.HistFullEntity; int iD = entity.Entity.ID; Entity entity2 = GameState.Get().GetEntity(iD); if (entity2 == null) { UnityEngine.Debug.LogWarning(string.Format("{0}.AddPowerTargets() - WARNING encountered HistFullEntity where entity id={1} but there is no entity with that id", this, iD)); return(false); } if (!entity2.IsHero()) { UnityEngine.Debug.LogWarning(string.Format("{0}.AddPowerTargets() - WARNING HistFullEntity where entity id={1} is not a hero", this, iD)); return(false); } this.AddTarget(entity2.GetCard().gameObject); return(true); } } return(false); }
protected bool CompleteMetaDataTasks(int metaDataIndex, PowerTaskList.CompleteCallback completeCallback, object callbackData) { List <PowerTask> taskList = this.m_taskList.GetTaskList(); int count = 1; for (int i = metaDataIndex + 1; i < taskList.Count; i++) { Network.PowerHistory power = taskList[i].GetPower(); if (power.Type == Network.PowerType.META_DATA) { Network.HistMetaData data = (Network.HistMetaData)power; if (data.MetaType == HistoryMeta.Type.TARGET) { break; } } count++; } if (count == 0) { UnityEngine.Debug.LogError(string.Format("{0}.CompleteMetaDataTasks() - there are no tasks to complete for meta data {1}", this, metaDataIndex)); return(false); } this.m_taskList.DoTasks(metaDataIndex, count, completeCallback, callbackData); return(true); }
protected override bool AddPowerSourceAndTargets(PowerTaskList taskList) { if (!this.HasSourceCard(taskList)) { return(false); } this.m_fatigueTagChange = null; List <PowerTask> list = base.m_taskList.GetTaskList(); for (int i = 0; i < list.Count; i++) { Network.PowerHistory power = list[i].GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = (Network.HistTagChange)power; if (change.Tag == 0x16) { this.m_fatigueTagChange = change; } } } if (this.m_fatigueTagChange == null) { return(false); } Card card = taskList.GetSourceEntity().GetCard(); base.SetSource(card); return(true); }
public PowerTask CreateTask(Network.PowerHistory netPower) { PowerTask item = new PowerTask(); item.SetPower(netPower); this.m_tasks.Add(item); return(item); }
private AttackInfo BuildAttackInfo() { GameState state = GameState.Get(); AttackInfo info = new AttackInfo(); bool flag = false; foreach (PowerTask task in this.GetTaskList()) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = power as Network.HistTagChange; if (change.Tag == 0x24) { info.m_defenderTagValue = new int?(change.Value); if (change.Value == 1) { info.m_defender = state.GetEntity(change.Entity); } flag = true; } else if (change.Tag == 0x26) { info.m_attackerTagValue = new int?(change.Value); if (change.Value == 1) { info.m_attacker = state.GetEntity(change.Entity); } flag = true; } else if (change.Tag == 0x27) { info.m_proposedAttackerTagValue = new int?(change.Value); if (change.Value != 0) { info.m_proposedAttacker = state.GetEntity(change.Value); } flag = true; } else if (change.Tag == 0x25) { info.m_proposedDefenderTagValue = new int?(change.Value); if (change.Value != 0) { info.m_proposedDefender = state.GetEntity(change.Value); } flag = true; } } } if (flag) { return(info); } return(null); }
private void FindOldAndNewCards() { int num = -1; List <PowerTask> taskList = base.m_taskList.GetTaskList(); for (int i = 0; i < taskList.Count; i++) { Network.PowerHistory power = taskList[i].GetPower(); switch (power.Type) { case Network.PowerType.FULL_ENTITY: { Network.HistFullEntity entity = (Network.HistFullEntity)power; Entity entity2 = GameState.Get().GetEntity(entity.Entity.ID); if (entity2 != null) { Card card = entity2.GetCard(); if (card != null) { this.m_newCard = card; } } break; } case Network.PowerType.SHOW_ENTITY: { Network.HistShowEntity entity3 = (Network.HistShowEntity)power; Entity entity4 = GameState.Get().GetEntity(entity3.Entity.ID); if (entity4 != null) { Card card2 = entity4.GetCard(); if ((card2 != null) && (entity4.GetZone() == TAG_ZONE.DECK)) { if (< > f__am$cache5 == null) { < > f__am$cache5 = delegate(Network.Entity.Tag tag) { if (tag.Name != 0x31) { return(false); } if (tag.Value != 3) { return(false); } return(true); }; } if (entity3.Entity.Tags.Find(< > f__am$cache5) != null) { this.m_oldCard = card2; num = i; } }
public override bool AddPowerTargets() { this.m_oldHeroCard = null; this.m_newHeroCard = null; foreach (PowerTask task in base.m_taskList.GetTaskList()) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.FULL_ENTITY) { Network.HistFullEntity entity = (Network.HistFullEntity)power; int iD = entity.Entity.ID; Entity entity2 = GameState.Get().GetEntity(iD); if (entity2 == null) { UnityEngine.Debug.LogWarning(string.Format("{0}.AddPowerTargets() - WARNING encountered HistFullEntity where entity id={1} but there is no entity with that id", this, iD)); return(false); } if (entity2.IsHero()) { this.m_newHeroCard = entity2.GetCard(); } } else if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = (Network.HistTagChange)power; if ((change.Tag == 0x31) && (change.Value == 6)) { int id = change.Entity; Entity entity3 = GameState.Get().GetEntity(id); if (entity3 == null) { UnityEngine.Debug.LogWarning(string.Format("{0}.AddPowerTargets() - WARNING encountered HistTagChange where entity id={1} but there is no entity with that id", this, id)); return(false); } if (entity3.IsHero()) { this.m_oldHeroCard = entity3.GetCard(); } } } } if (this.m_oldHeroCard == null) { this.m_newHeroCard = null; return(false); } if (this.m_newHeroCard == null) { this.m_oldHeroCard = null; return(false); } return(true); }
public bool HasFriendlyConcede() { for (int i = 0; i < this.m_tasks.Count; i++) { Network.PowerHistory power = this.m_tasks[i].GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange tagChange = (Network.HistTagChange)power; if (GameUtils.IsFriendlyConcede(tagChange)) { return(true); } } } return(false); }
public bool IsTaskPartOfMetaData(int taskIndex, HistoryMeta.Type metaType) { for (int i = taskIndex; i >= 0; i--) { Network.PowerHistory power = this.m_tasks[i].GetPower(); if (power.Type == Network.PowerType.META_DATA) { Network.HistMetaData data = (Network.HistMetaData)power; if (data.MetaType == metaType) { return(true); } } } return(false); }
public bool HasGameOver() { for (int i = 0; i < this.m_tasks.Count; i++) { Network.PowerHistory power = this.m_tasks[i].GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = (Network.HistTagChange)power; if (GameUtils.IsGameOverTag(change.Entity, change.Tag, change.Value)) { return(true); } } } return(false); }
public static void ApplyPower(Entity entity, Network.PowerHistory power) { switch (power.Type) { case Network.PowerType.SHOW_ENTITY: ApplyShowEntity(entity, (Network.HistShowEntity)power); break; case Network.PowerType.HIDE_ENTITY: ApplyHideEntity(entity, (Network.HistHideEntity)power); break; case Network.PowerType.TAG_CHANGE: ApplyTagChange(entity, (Network.HistTagChange)power); break; } }
protected virtual Card GetTargetCardFromPowerTask(int index, PowerTask task) { Network.PowerHistory power = task.GetPower(); if (power.Type != Network.PowerType.TAG_CHANGE) { return(null); } Network.HistTagChange change = power as Network.HistTagChange; Entity entity = GameState.Get().GetEntity(change.Entity); if (entity == null) { UnityEngine.Debug.LogWarning(string.Format("{0}.GetTargetCardFromPowerTask() - WARNING trying to target entity with id {1} but there is no entity with that id", this, change.Entity)); return(null); } return(entity.GetCard()); }
protected override Card GetTargetCardFromPowerTask(int index, PowerTask task) { Network.PowerHistory power = task.GetPower(); if (power.Type != Network.PowerType.FULL_ENTITY) { return(null); } Network.HistFullEntity entity = (Network.HistFullEntity)power; Network.Entity entity2 = entity.Entity; Entity entity3 = GameState.Get().GetEntity(entity2.ID); if (entity3 == null) { Debug.LogWarning(string.Format("{0}.GetTargetCardFromPowerTask() - WARNING trying to target entity with id {1} but there is no entity with that id", this, entity2.ID)); return(null); } return(entity3.GetCard()); }
private void BuildTaskList(List <Network.PowerHistory> powerList, ref int index, PowerTaskList taskList) { while (index < powerList.Count) { Network.PowerHistory netPower = powerList[index]; Network.PowerType type = netPower.Type; if (type == Network.PowerType.ACTION_START) { if (!taskList.IsEmpty()) { this.EnqueueTaskList(taskList); } PowerTaskList item = new PowerTaskList(); item.SetSourceAction((Network.HistActionStart)netPower); PowerTaskList origin = taskList.GetOrigin(); if (origin.IsSourceActionOrigin()) { item.SetParent(origin); } this.m_previousStack.Push(item); index++; this.BuildTaskList(powerList, ref index, item); return; } if (type == Network.PowerType.ACTION_END) { taskList.SetEndAction((Network.HistActionEnd)netPower); if (this.m_previousStack.Count > 0) { this.m_previousStack.Pop(); this.EnqueueTaskList(taskList); return; } break; } taskList.CreateTask(netPower).DoRealTimeTask(powerList, index); index++; } if (!taskList.IsEmpty()) { this.EnqueueTaskList(taskList); } }
public static void DoDamageTasks(PowerTaskList powerTaskList, Card sourceCard, Card targetCard) { List <PowerTask> taskList = powerTaskList.GetTaskList(); if ((taskList != null) && (taskList.Count != 0)) { int entityId = sourceCard.GetEntity().GetEntityId(); int num2 = targetCard.GetEntity().GetEntityId(); foreach (PowerTask task in taskList) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.META_DATA) { Network.HistMetaData data = (Network.HistMetaData)power; if ((data.MetaType == HistoryMeta.Type.DAMAGE) || (data.MetaType == HistoryMeta.Type.HEALING)) { foreach (int num3 in data.Info) { if ((num3 == entityId) || (num3 == num2)) { task.DoTask(); } } } } else if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = (Network.HistTagChange)power; if ((change.Entity == entityId) || (change.Entity == num2)) { switch (((GAME_TAG)change.Tag)) { case GAME_TAG.DAMAGE: case GAME_TAG.EXHAUSTED: task.DoTask(); break; } } } } } }
public void DebugDump(Logger logger) { if (logger.CanPrint()) { GameState state = GameState.Get(); string indentation = string.Empty; int num = (this.m_parent != null) ? this.m_parent.GetId() : 0; int num2 = (this.m_previous != null) ? this.m_previous.GetId() : 0; object[] args = new object[] { this.m_id, num, num2, this.m_tasks.Count }; logger.Print("PowerTaskList.DebugDump() - ID={0} ParentID={1} PreviousID={2} TaskCount={3}", args); if (this.m_sourceAction == null) { object[] objArray2 = new object[] { indentation }; logger.Print("PowerTaskList.DebugDump() - {0}Source Action=(null)", objArray2); indentation = indentation + " "; } else { state.DebugPrintPower(logger, "PowerTaskList", this.m_sourceAction, ref indentation); } for (int i = 0; i < this.m_tasks.Count; i++) { Network.PowerHistory power = this.m_tasks[i].GetPower(); state.DebugPrintPower(logger, "PowerTaskList", power, ref indentation); } if (this.m_endAction == null) { if (indentation.Length >= " ".Length) { indentation = indentation.Remove(indentation.Length - " ".Length); } object[] objArray3 = new object[] { indentation }; logger.Print("PowerTaskList.DebugDump() - {0}End Action=(null)", objArray3); } else { state.DebugPrintPower(logger, "PowerTaskList", this.m_endAction, ref indentation); } } }
private void AddDeadCardsToTargetList(PowerTaskList taskList) { List <PowerTask> list = base.m_taskList.GetTaskList(); for (int i = 0; i < list.Count; i++) { Network.PowerHistory power = list[i].GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange tagChange = power as Network.HistTagChange; if (GameUtils.IsCharacterDeathTagChange(tagChange)) { Entity entity = GameState.Get().GetEntity(tagChange.Entity); Card card = entity.GetCard(); if (this.CanAddTarget(entity, card)) { base.AddTarget(card); } } } } }
protected bool AddSinglePowerTarget_FromMetaData(List <PowerTask> tasks) { GameState state = GameState.Get(); for (int i = 0; i < tasks.Count; i++) { Network.PowerHistory power = tasks[i].GetPower(); if (power.Type == Network.PowerType.META_DATA) { Network.HistMetaData data = (Network.HistMetaData)power; if (data.MetaType == HistoryMeta.Type.TARGET) { if ((data.Info == null) || (data.Info.Count == 0)) { UnityEngine.Debug.LogError(string.Format("{0}.AddSinglePowerTarget_FromMetaData() - META_DATA at index {1} has no Info", this, i)); } else { for (int j = 0; j < data.Info.Count; j++) { Entity entity = state.GetEntity(data.Info[j]); if (entity == null) { UnityEngine.Debug.LogError(string.Format("{0}.AddSinglePowerTarget_FromMetaData() - Entity is null for META_DATA at index {1} Info index {2}", this, i, j)); } else { Card targetCard = entity.GetCard(); this.AddTargetFromMetaData(i, targetCard); return(true); } } } } } } return(false); }
public DamageInfo GetDamageInfo(Entity entity) { if (entity != null) { int entityId = entity.GetEntityId(); foreach (PowerTask task in this.m_tasks) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange change = power as Network.HistTagChange; if ((change.Tag == 0x2c) && (change.Entity == entityId)) { DamageInfo info; return(new DamageInfo { m_entity = GameState.Get().GetEntity(change.Entity), m_damage = change.Value - info.m_entity.GetDamage() }); } } } } return(null); }
public void SetPower(Network.PowerHistory power) { this.m_power = power; }
public void SetPower(Network.PowerHistory power) { object[] objArray1 = new object[] { power }; base.method_8("SetPower", objArray1); }
public void PredictZoneFromPower(TempZone tempZone, Network.PowerHistory power) { object[] objArray1 = new object[] { tempZone, power }; base.method_8("PredictZoneFromPower", objArray1); }
public void DebugPrintPower(Logger logger, string callerName, Network.PowerHistory power) { object[] objArray1 = new object[] { logger, callerName, power }; base.method_9("DebugPrintPower", new Class272.Enum20[] { Class272.Enum20.Class }, objArray1); }
public PowerTask CreateTask(Network.PowerHistory netPower) { object[] objArray1 = new object[] { netPower }; return(base.method_14 <PowerTask>("CreateTask", objArray1)); }
public void NotifyHistoryOfAdditionalTargets() { List <int> list = new List <int>(); bool flag = true; foreach (PowerTask task in this.GetTaskList()) { Network.PowerHistory power = task.GetPower(); if (power.Type == Network.PowerType.META_DATA) { Network.HistMetaData data = power as Network.HistMetaData; if (data.MetaType == HistoryMeta.Type.TARGET) { if ((data.Info != null) && (data.Info.Count > 0)) { for (int i = 0; i < data.Info.Count; i++) { HistoryManager.Get().NotifyAboutAdditionalTarget(data.Info[i]); } } } else if ((data.MetaType == HistoryMeta.Type.DAMAGE) || (data.MetaType == HistoryMeta.Type.HEALING)) { flag = false; } continue; } if (power.Type == Network.PowerType.SHOW_ENTITY) { Network.HistShowEntity entity = power as Network.HistShowEntity; bool flag2 = false; bool flag3 = false; foreach (Network.Entity.Tag tag in entity.Entity.Tags) { if ((tag.Name == 0xca) && (tag.Value == 6)) { flag2 = true; break; } if ((tag.Name == 0x31) && (tag.Value == 4)) { flag3 = true; } } if (!flag2) { if (flag3) { HistoryManager.Get().NotifyAboutCardDeath(GameState.Get().GetEntity(entity.Entity.ID)); } else { HistoryManager.Get().NotifyAboutAdditionalTarget(entity.Entity.ID); } } continue; } Entity sourceEntity = this.GetSourceEntity(); int num2 = (sourceEntity != null) ? sourceEntity.GetEntityId() : 0; if (power.Type == Network.PowerType.FULL_ENTITY) { Network.HistFullEntity entity3 = power as Network.HistFullEntity; bool flag4 = false; bool flag5 = false; bool flag6 = false; foreach (Network.Entity.Tag tag2 in entity3.Entity.Tags) { if ((tag2.Name == 0xca) && (tag2.Value == 6)) { flag4 = true; break; } if ((tag2.Name == 0x31) && ((tag2.Value == 1) || (tag2.Value == 7))) { flag5 = true; } if ((tag2.Name == 0x181) && (tag2.Value == num2)) { flag6 = true; } } if (!flag4 && (flag5 || flag6)) { HistoryManager.Get().NotifyAboutAdditionalTarget(entity3.Entity.ID); } continue; } if (power.Type == Network.PowerType.TAG_CHANGE) { Network.HistTagChange tagChange = power as Network.HistTagChange; Entity entity4 = GameState.Get().GetEntity(tagChange.Entity); if (tagChange.Tag == 0x2c) { if (!list.Contains(tagChange.Entity) && !flag) { HistoryManager.Get().NotifyAboutDamageChanged(entity4, tagChange.Value); flag = true; } } else if (tagChange.Tag == 0x124) { if (!list.Contains(tagChange.Entity)) { HistoryManager.Get().NotifyAboutArmorChanged(entity4, tagChange.Value); } } else if (tagChange.Tag == 0x13e) { HistoryManager.Get().NotifyAboutPreDamage(entity4); } else if ((tagChange.Tag == 0x181) && (tagChange.Value == num2)) { HistoryManager.Get().NotifyAboutAdditionalTarget(tagChange.Entity); } else if (tagChange.Tag == 0x106) { HistoryManager.Get().NotifyAboutAdditionalTarget(tagChange.Entity); } if (GameUtils.IsHistoryDeathTagChange(tagChange)) { HistoryManager.Get().NotifyAboutCardDeath(entity4); list.Add(tagChange.Entity); } } } }
public static bool IsHandledPower(Network.PowerHistory power) { object[] objArray1 = new object[] { power }; return(MonoClass.smethod_14 <bool>(TritonHs.MainAssemblyPath, "", "ZoneMgr", "IsHandledPower", objArray1)); }
public static void ApplyPower(Triton.Game.Mapping.Entity entity, Network.PowerHistory power) { object[] objArray1 = new object[] { entity, power }; MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "GameUtils", "ApplyPower", objArray1); }