/// <summary> /// 倒置 /// </summary> public void Reverse() { PublicInfo TempPublic = AllRole.MyPublicInfo; PrivateInfo TempPrivate = AllRole.MyPrivateInfo; AllRole.MyPublicInfo = AllRole.YourPublicInfo; AllRole.MyPrivateInfo = AllRole.YourPrivateInfo; AllRole.YourPublicInfo = TempPublic; AllRole.YourPrivateInfo = TempPrivate; //关于方向的设置,还有战场位置 AllRole.MyPublicInfo.Hero.战场位置.本方对方标识 = true; AllRole.YourPublicInfo.Hero.战场位置.本方对方标识 = false; foreach (var minion in AllRole.MyPublicInfo.BattleField.BattleMinions) { if (minion != null) { minion.战场位置.本方对方标识 = true; } } foreach (var minion in AllRole.YourPublicInfo.BattleField.BattleMinions) { if (minion != null) { minion.战场位置.本方对方标识 = false; } } }
public static string[] GrabClientData(string IP) { string[] t = new string[10]; //might add more data later var url = "http://api.ipstack.com/" + IP + "?access_key=" + PrivateInfo.getRandomKey(GetRandomInt()); var request = WebRequest.Create(url); using (var w = new WebClient()) { var json_data = string.Empty; try { json_data = w.DownloadString(url); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); var result = jsSerializer.DeserializeObject(json_data); Dictionary <string, object> obj2 = new Dictionary <string, object>(); obj2 = (Dictionary <string, object>)(result); //Sometimes ipstack would be unable to determine some values, so try/catch is needed try { t[0] = obj2["country_name"].ToString(); } catch { t[0] = "Null Value"; } try { t[1] = obj2["region_code"].ToString(); } catch { t[1] = "Null Value"; } try { t[2] = obj2["city"].ToString(); } catch { t[2] = "Null Value"; } } catch { } } return(t); }
/// <summary> /// 获得一个动作 /// </summary> /// <param name="gameStatus"></param> /// <returns></returns> public static void GetAction(ActionStatus gameStatus) { String Action = String.Empty; PublicInfo PlayInfo = gameStatus.AllRole.MyPublicInfo; PrivateInfo PlaySelfInfo = gameStatus.AllRole.MyPrivateInfo; List <String> Result = new List <string>(); //优先使用技能 if (PlayInfo.IsHeroSkillEnable(true)) { //召唤 if (PlayInfo.Hero.HeroSkill.FirstAbilityDefine.MainAbilityDefine.TrueAtomicEffect.AtomicEffectType == Effect.AtomicEffectDefine.AtomicEffectEnum.召唤 && PlayInfo.BattleField.MinionCount != SystemManager.MaxMinionCount) { gameStatus.Interrupt.ActionCard = new MinimizeBattleInfo.HandCardInfo(); gameStatus.Interrupt.ActionCard.Init(PlayInfo.Hero.HeroSkill); gameStatus.ActionName = "USEHEROSKILL"; gameStatus.Interrupt.Step = 1; gameStatus.Interrupt.ActionName = "SPELL"; PlayInfo.crystal.CurrentRemainPoint -= PlayInfo.Hero.HeroSkill.使用成本; PlayInfo.Hero.IsUsedHeroAbility = true; RunAction.StartActionCS(gameStatus, PlayInfo.Hero.HeroSkill.序列号, new string[] { }); gameStatus.Interrupt.ActionName = "SPELL"; return; } } //能上场的随从都上场 int HandCardIndex = HasBattleMinion(gameStatus); if (HandCardIndex != -1) { int newPos = PlayInfo.BattleField.MinionCount + 1; var card = PlaySelfInfo.handCards[HandCardIndex]; RunAction.StartActionCS(gameStatus, card.序列号, new string[] { newPos.ToString() }); PlayInfo.crystal.CurrentRemainPoint -= card.使用成本; PlaySelfInfo.RemoveUsedCard(card.序列号); PlayInfo.HandCardCount = PlaySelfInfo.handCards.Count; gameStatus.Interrupt.ActionCard = new MinimizeBattleInfo.HandCardInfo(); gameStatus.Interrupt.ActionCard.Init(card); gameStatus.Interrupt.ActionName = "MINION"; return; } //能攻击的随从都攻击,优先攻击英雄 int AttackPos = HasAttackMinion(gameStatus); if (AttackPos != -1) { int BeAttackedPos = GetAttackTarget(gameStatus); RunAction.Fight(gameStatus, AttackPos, BeAttackedPos, true); gameStatus.Interrupt.ActionName = "FIGHT"; gameStatus.Interrupt.ExternalInfo = AttackPos.ToString() + BeAttackedPos.ToString(); return; } gameStatus.Interrupt.ActionName = ActionCode.strEndTurn; }
public ApiSimulatorController(IOptions <MyRequest> myRequest, IOptions <PrivateInfo> privateInfo) { _myRequest = myRequest.Value; _privateInfo = privateInfo.Value; //格式化Json _myRequest.ApiRequests.ToList().ForEach(s => { if (s.Methord == "POST") { s.ApiDatas = s.ApiDatas.ToJsonString(); } }); }
/// <summary> /// 能上场的随从 /// </summary> /// <returns></returns> private static int HasBattleMinion(ActionStatus gameStatus) { PrivateInfo PlaySelfInfo = gameStatus.AllRole.MyPrivateInfo; PublicInfo PlayInfo = gameStatus.AllRole.MyPublicInfo; if (PlayInfo.BattleField.MinionCount == SystemManager.MaxMinionCount) { return(-1); } for (int i = 0; i < PlaySelfInfo.handCards.Count; i++) { var card = PlaySelfInfo.handCards[i]; if (card.卡牌种类 == Card.CardBasicInfo.资源类型枚举.随从) { if (card.使用成本 <= PlayInfo.crystal.CurrentRemainPoint) { return(i); } } } return(-1); }
public ApiSimulatorController(IOptions <MyRequest> myRequest, IOptions <PrivateInfo> privateInfo) { _myRequest = myRequest.Value; _privateInfo = privateInfo.Value; }
public SiteAnalyticsController(IOptions <MyRequest> myRequest, IOptions <PrivateInfo> privateInfo) { _requests = myRequest.Value.ApiRequests; _privateInfo = privateInfo.Value; }