public static PlayErrors.Marshaled_SourceEntityInfo ConvertFromSourceEntityInfo(PlayErrors.SourceEntityInfo sourceInfo) { return(new PlayErrors.Marshaled_SourceEntityInfo { requirementsMap = sourceInfo.requirementsMap, id = sourceInfo.id, cost = sourceInfo.cost, attack = sourceInfo.attack, minAttackRequirement = sourceInfo.minAttackRequirement, maxAttackRequirement = sourceInfo.maxAttackRequirement, raceRequirement = sourceInfo.raceRequirement, numMinionSlotsRequirement = sourceInfo.numMinionSlotsRequirement, numMinionSlotsWithTargetRequirement = sourceInfo.numMinionSlotsWithTargetRequirement, minTotalMinionsRequirement = sourceInfo.minTotalMinionsRequirement, minFriendlyMinionsRequirement = sourceInfo.minFriendlyMinionsRequirement, minEnemyMinionsRequirement = sourceInfo.minEnemyMinionsRequirement, numTurnsInPlay = sourceInfo.numTurnsInPlay, numAttacksThisTurn = sourceInfo.numAttacksThisTurn, numWindfury = sourceInfo.numWindfury, cardType = sourceInfo.cardType, zone = sourceInfo.zone, isSecret = sourceInfo.isSecret, isDuplicateSecret = sourceInfo.isDuplicateSecret, isExhausted = sourceInfo.isExhausted, isMasterPower = sourceInfo.isMasterPower, isActionPower = sourceInfo.isActionPower, isActivatePower = sourceInfo.isActivatePower, isAttackPower = sourceInfo.isAttackPower, isFrozen = sourceInfo.isFrozen, hasBattlecry = sourceInfo.hasBattlecry, canAttack = sourceInfo.canAttack, entireEntourageInPlay = sourceInfo.entireEntourageInPlay, hasCharge = sourceInfo.hasCharge, isChoiceMinion = sourceInfo.isChoiceMinion, cannotAttackHeroes = sourceInfo.cannotAttackHeroes }); }
public PlayErrors.SourceEntityInfo ConvertToSourceInfo(PlayErrors.PlayRequirementInfo playRequirementInfo, Entity parent) { List <string> entourageCardIDs = this.GetEntityDef().GetEntourageCardIDs(); List <string> list2 = new List <string>(); int num = 0; ZoneMgr mgr = ZoneMgr.Get(); if (mgr != null) { ZonePlay play = mgr.FindZoneOfType <ZonePlay>(Player.Side.FRIENDLY); if (play != null) { foreach (Card card in play.GetCards()) { Entity entity = card.GetEntity(); if (entity != null) { list2.Add(entity.GetCardId()); } } } ZonePlay play2 = mgr.FindZoneOfType <ZonePlay>(Player.Side.OPPOSING); if (play2 != null) { foreach (Card card2 in play2.GetCards()) { Entity entity2 = card2.GetEntity(); if ((entity2 != null) && entity2.IsMinion()) { num++; } } } } PlayErrors.SourceEntityInfo info = new PlayErrors.SourceEntityInfo { requirementsMap = playRequirementInfo.requirementsMap, id = base.GetEntityId(), cost = base.GetCost(), attack = base.GetATK(), minAttackRequirement = playRequirementInfo.paramMinAtk, maxAttackRequirement = playRequirementInfo.paramMaxAtk, raceRequirement = playRequirementInfo.paramRace, numMinionSlotsRequirement = playRequirementInfo.paramNumMinionSlots, numMinionSlotsWithTargetRequirement = playRequirementInfo.paramNumMinionSlotsWithTarget, minTotalMinionsRequirement = playRequirementInfo.paramMinNumTotalMinions, minFriendlyMinionsRequirement = playRequirementInfo.paramMinNumFriendlyMinions, minEnemyMinionsRequirement = playRequirementInfo.paramMinNumEnemyMinions, numTurnsInPlay = base.GetNumTurnsInPlay(), numAttacksThisTurn = base.GetNumAttacksThisTurn(), numWindfury = base.GetWindfury(), cardType = base.GetCardType(), zone = base.GetZone(), isSecret = base.IsSecret(), isDuplicateSecret = false }; if (info.isSecret) { Player player = GameState.Get().GetPlayer(base.GetControllerId()); if (player != null) { foreach (string str in player.GetSecretDefinitions()) { if (this.GetCardId().Equals(str, StringComparison.OrdinalIgnoreCase)) { info.isDuplicateSecret = true; break; } } } } info.isExhausted = base.IsExhausted(); info.isMasterPower = (base.GetZone() == TAG_ZONE.HAND) || base.IsHeroPower(); info.isActionPower = TAG_ZONE.HAND == base.GetZone(); info.isActivatePower = (base.GetZone() == TAG_ZONE.PLAY) || base.IsHeroPower(); info.isAttackPower = base.IsHero() || (!base.IsHeroPower() && (TAG_ZONE.PLAY == base.GetZone())); info.isFrozen = base.IsFrozen(); info.hasBattlecry = base.HasBattlecry(); info.canAttack = base.CanAttack(); info.entireEntourageInPlay = false; if (entourageCardIDs.Count > 0) { info.entireEntourageInPlay = list2.Count > 0;
public Marshaled_PlayErrorsParams(PlayErrors.SourceEntityInfo sourceInfo, PlayErrors.PlayerInfo playerInfo, PlayErrors.GameStateInfo gameInfo) { this.source = PlayErrors.Marshaled_SourceEntityInfo.ConvertFromSourceEntityInfo(sourceInfo); this.player = PlayErrors.Marshaled_PlayerInfo.ConvertFromPlayerInfo(playerInfo); this.game = PlayErrors.Marshaled_GameStateInfo.ConvertFromGameStateInfo(gameInfo); }