// Use this for initialization void Start () { PlayerPrefs.SetInt("ArenaRound", PlayerPrefs.GetInt("ArenaRound")+1); if (mTargetPlayer == null) { mTargetPlayer = FindObjectOfType<ArenaPlayer>(); } if (bullSpawner == null) { bullSpawner = FindObjectOfType<ArenaBullSpawner>(); } enemyAmount = Mathf.Round(mTargetPlayer.GetComponent<ArenaPlayer>().tomatoCount * (percent / 100))+PlayerPrefs.GetInt("ArenaRound"); for (int i = 0; i < enemyAmount; i++) { GameObject spawnGate = null; if (bullSpawner.mBullExits.Count > 0) { spawnGate = bullSpawner.mBullExits[Mathf.FloorToInt(Random.Range(0, bullSpawner.mBullExits.Count))].gameObject; } if (spawnGate != null) { Instantiate(enemy, spawnGate.transform.position, Quaternion.identity); } } // foreach() }
void UsePotion(InventoryItem item) { ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); player.ChooseEnemiesInit(); player.CurrentStatEffect = StatEffect.Effects[item.Token]; }
public override void UpdateEnd() { Units.RemoveAll(o => o.Destroyed); /* * if (Input.KeyboardCheckPress(Microsoft.Xna.Framework.Input.Keys.W)) * { * // TODO: Remove! * _win = true; * } * * if (Input.KeyboardCheckPress(Microsoft.Xna.Framework.Input.Keys.L)) * { * // TODO: Remove! * _lose = true; * }*/ if (_win) { UnitTurnOrderList[CurrentUnit].Initiative = false; if (_winDialogue == null) { SoundController.CurrentSong.Stop(); WinSound = SoundController.PlaySound(SoundController.Win); _winDialogue = new Dialogue(new string[] { "" }, new string[] { Strings.BattleWin }); _winDialogue.Locked = true; } else { if (!WinSound.IsPlaying) { Objects.Destroy(_winDialogue); Objects.Destroy(this); } } } ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); if (_lose) { _blackscreenActivated = true; SoundController.CurrentSong.Volume = 1 - Math.Max(0, Math.Min(1, _blackscreenAlpha)); if (_loseDialogue == null) { _loseDialogue = new Dialogue(new string[] { "" }, new string[] { Strings.BattleDefeat }); } else { if (_loseDialogue.Destroyed) { Objects.Destroy(this); GameplayController.LoadGame(); } } } }
bool RestoreHealth(int health) { if (Objects.ObjExists <Arena>()) { ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); if (player.Health == player.MaxHealth) { return(false); } player.Health += health; if (player.Health > player.MaxHealth) { player.Health = player.MaxHealth; } } else { if (Health == MaxHealth) { return(false); } Health += health; if (Health > MaxHealth) { Health = MaxHealth; } } return(true); }
public void takeDamage(ArenaPlayer damaged, int damage) { if (p1 == damaged && p1_invincible == 0) { if (damage > 0 || p1HP - damage < 100) { p1HP -= damage; } if (p1HP < 1) { p1HP = 0; win(2); } p1_invincible = 10; } else if (p2 == damaged && p2_invincible == 0) { if (damage > 0 || p2HP - damage < 100) { p2HP -= damage; } if (p2HP < 1) { p2HP = 0; win(1); } p2_invincible = 30; } //print("damage"); }
public void checkDamage(ArenaPlayer creator, ArenaPlayer possiblyHit, int damage) { if (creator != possiblyHit) { takeDamage(possiblyHit, damage); } }
// Use this for initialization void Start () { myAnim = Instantiate(animStuff, transform.position, new Quaternion(0, 0, 0, 0)) as GameObject; if(mTargetPlayer == null) { mTargetPlayer = FindObjectOfType<ArenaPlayer>(); } //mTargetPlayer.GetComponent<ArenaPlayer>().gameStarted = true; mLookTarget = mTargetPlayer.gameObject; SetMoveTarget(); mTomatoStands = FindObjectOfType<StandManager>().mTomatoStands; mAttackTimer = mDefaultAttackTime * (Random.value + 0.5f); mMoveTimer = mDefaultMoveTime * (Random.value + 0.5f); //Scale for number of times the Arena has been entered in this play through ~Adam mAmmoRemaining = 3+PlayerPrefs.GetInt("ArenaRound"); mDefaultAttackTime-=(PlayerPrefs.GetInt("ArenaRound")*0.1f); if(mDefaultAttackTime<=0.15f) { mDefaultAttackTime = 0.15f; } }//END of Start()
public void onDeath(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID murderer) { if (Instance.Configuration.Instance.Points) { ArenaPlayer aplayer = new ArenaPlayer(player.SteamPlayer()); if (LevelManager.arenaPlayers.Contains(aplayer)) { if (LevelManager.arenaPlayers.Count == 5) { //fifth place UnturnedChat.Say("Tourney>> " + player + "[5th] +" + Instance.Configuration.Instance.fifthPoint.ToString(), Color.cyan); UpdatePoints(player, Instance.Configuration.Instance.fifthPoint); } else if (LevelManager.arenaPlayers.Count == 4) { UnturnedChat.Say("Tourney>> " + player + "[4th] +" + Instance.Configuration.Instance.fourthpoint.ToString(), Color.cyan); UpdatePoints(player, Instance.Configuration.Instance.fourthpoint); } else if (LevelManager.arenaPlayers.Count == 3) { UnturnedChat.Say("Tourney>> " + player + "[3rd] +" + Instance.Configuration.Instance.thirdpoint.ToString(), Color.cyan); UpdatePoints(player, Instance.Configuration.Instance.thirdpoint); } else if (LevelManager.arenaPlayers.Count == 2) { UnturnedChat.Say("Tourney>> " + player + "[2nd] +" + Instance.Configuration.Instance.secondpoint.ToString(), Color.cyan); UpdatePoints(player, Instance.Configuration.Instance.secondpoint); } } } }
private async Task <ArenaPlayer> GetWarzonePlayer(WarzonePlayerStat playerStat, MatchEvents matchEvents) { ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat); await SetCompetetivePlayer(playerStat, player, matchEvents); return(player); }
private async Task <ArenaPlayer> GetCustomPlayer(CustomMatchPlayerStat playerStat) { ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat); await SetPlayer(playerStat, player); return(player); }
public void initPrefs(ArenaPlayer c, ArenaManager m, int t = 30, int h = 5) { creator = c; manager = m; time = t; heal = h; }
private async Task <ArenaPlayer> GetCampaignPlayer(CampaignMatchPlayerStat playerStat) { ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat); await SetBasePlayer(playerStat, player); return(player); }
void PassDialogue(Dialogue dialogue) { ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); if (player != null) { player.WaitForDialogue(dialogue); } }
// Use this for initialization void Start () { if(mTargetPlayer == null) { mTargetPlayer = FindObjectOfType<ArenaPlayer>(); } mLookTarget = mTargetPlayer.gameObject; LookAtTarget(); }
//bounces till it hits max or hits a player public void initPrefs(ArenaPlayer c, ArenaManager m, int damage = 5, int mB = 2) { creator = c; manager = m; bounces = 0; maxBounces = mB; gameObject.GetComponent <Rigidbody2D>().velocity = transform.up * velocity; }
private async Task SetCompetetivePlayer(ICompetetivePlayer playerStat, ArenaPlayer player, MatchEvents matchEvents = null) { await SetPlayer(playerStat, player, matchEvents); player.XpInfo.XpEarned = player.XpInfo.TotalXp - player.XpInfo.PrevTotalXp; player.XpInfo.CurrentRankXp = player.XpInfo.TotalXp - playerStat.CurrentSpartanRank.StartXp; var previousRankXp = player.XpInfo.PrevTotalXp - playerStat.CurrentSpartanRank.StartXp; player.XpInfo.XpToNextRank = playerStat.NextSpartanRank.StartXp - playerStat.CurrentSpartanRank.StartXp; player.XpInfo.PreviousPercent = previousRankXp.Percent(player.XpInfo.XpToNextRank); player.XpInfo.CurrentPercent = player.XpInfo.CurrentRankXp.Percent(player.XpInfo.XpToNextRank); }
public void initPref(ArenaPlayer c, ArenaManager manager, int d = 20, int t = 30, float r = 2.0f) { creator = c; gm = manager; stage = 0; damage = d; timer = t; radius = r; stage = 0; GetComponentInParent <BoxCollider2D>().enabled = false; transform.localScale = new Vector3(radius, radius, 1); }
public void Execute(IRocketPlayer caller, string[] command) { UnturnedPlayer player = (UnturnedPlayer)caller; ArenaPlayer aPlayer = LevelManager.arenaPlayers.Find((ply) => ply.steamPlayer.playerID.steamID == player.CSteamID); if (aPlayer == null || aPlayer.hasDied) { UnturnedChat.Say(player, Main.Instance.Translate("cant"), Main.Instance._configColour); } UnturnedChat.Say(player, Main.Instance.Translate("unstuck"), Main.Instance._configColour); Main.Instance.Unstuck(player); }
public void LoadArena(string arenaFile) { XmlDocument xml = new XmlDocument(); xml.Load(arenaFile); XmlNodeList nodes = xml.DocumentElement.ChildNodes; foreach (XmlNode node in nodes.Item(0).SelectNodes("object")) { Vector2 pos = new Vector2(Int32.Parse(node.Attributes["x"].Value), Int32.Parse(node.Attributes["y"].Value)); } Units = new List <ArenaObj>(); foreach (XmlNode node in nodes.Item(1).SelectNodes("enemy")) { ArenaObj enemy = (ArenaObj)Activator.CreateInstance(EnemyTypes[node.Attributes["type"].Value]); Units.Add(enemy); } int[,] formation = CreateFormation(Units.Count); FormationSize = new Vector2(formation.GetLength(0), formation.GetLength(1)) * (UnitSpacing + Vector2.One) - UnitSpacing; int enemyId = 0; _formationAlignY = formation.GetLength(1) * ((int)UnitSpacing.Y + 1) / 2 - 1; for (var x = 0; x < formation.GetLength(0); x += 1) { for (var y = 0; y < formation.GetLength(1); y += 1) { if (formation[x, y] == 1) { Units[enemyId].Pos = FormationPos + new Vector2(x, y) * (UnitSpacing + Vector2.One) - new Vector2(0, _formationAlignY); enemyId += 1; } } } ArenaPlayer player = new ArenaPlayer(); player.Pos = _playerPos; Units.Add(player); }
private async Task SetPlayer(IPlayer playerStat, ArenaPlayer player, MatchEvents matchEvents = null) { await SetBasePlayer(playerStat, player, matchEvents); var killed = playerStat.KilledOpponentDetails.Select(p => p.GamerTag); var killedBy = playerStat.KilledByOpponentDetails.Select(p => p.GamerTag); var temp = killed.Union(killedBy); foreach (var tag in temp) { Enemy enemy = new Enemy { Name = tag, Kills = playerStat.KilledOpponentDetails?.FirstOrDefault(p => p.GamerTag == tag)?.TotalKills ?? 0, Deaths = playerStat.KilledByOpponentDetails?.FirstOrDefault(p => p.GamerTag == tag)?.TotalKills ?? 0, IsPlayer = true }; enemy.Spread = enemy.Kills - enemy.Deaths; player.Enemies.Add(enemy); } var maxSpread = player.Enemies.Max(e => e.Spread); var minSpread = Math.Abs(player.Enemies.Min(e => e.Spread)); int minKills = player.Enemies.Min(p => p.Kills); int maxKills = player.Enemies.Max(p => p.Kills) - minKills; int minDeaths = player.Enemies.Min(p => p.Deaths); int maxDeaths = player.Enemies.Max(p => p.Deaths) - minDeaths; foreach (var enemy in player.Enemies) { if (enemy.Spread > 0) { enemy.SpreadSign = "+"; enemy.SpreadPercent = enemy.Spread.Percent(maxSpread); } else if (enemy.Spread < 0) { enemy.SpreadSign = "-"; enemy.Spread = Math.Abs(enemy.Spread); enemy.SpreadPercent = enemy.Spread.Percent(minSpread); } enemy.KillPercent = enemy.Kills.Percent(minKills, maxKills); enemy.DeathPercent = enemy.Deaths.Percent(minDeaths, maxDeaths); } player.Enemies = player.Enemies.OrderByDescending(e => e.Kills).ThenBy(e => e.Deaths).ToList(); }
public void ConvertToPlayers() { var botFiles = TestWarriors.GetBotFiles("warriors-best"); foreach (var botFilename in botFiles) { var botName = Path.GetFileNameWithoutExtension(botFilename); var player = new ArenaPlayer { Name = botName, Password = Guid.NewGuid().ToString(), Authors = "Corewar community", Program = File.ReadAllText(botFilename), Timestamp = DateTime.UtcNow, }; var playerFilename = Path.Combine(playersDir, botName + ".json"); File.WriteAllText(playerFilename, JsonConvert.SerializeObject(new[] { player }, Formatting.Indented)); } }
IEnumerator uheuhf() { if (mTargetPlayer == null) { mTargetPlayer = FindObjectOfType<ArenaPlayer>(); } if (bullSpawner == null) { bullSpawner = FindObjectOfType<ArenaBullSpawner>(); } yield return new WaitForSeconds(2.0f); //enemyAmount = Mathf.Round(mTargetPlayer.GetComponent<ArenaPlayer>().tomatoCount * (percent / 100)) + PlayerPrefs.GetInt("ArenaRound"); enemyAmount = Mathf.Round(mTargetPlayer.GetComponent<ArenaPlayer>().tomatoCount * .7f); if(enemyAmount > 0) { SpawnAtGate(); enemyAmount--; } // for (int i = 0; i < enemyAmount; i++) // { // GameObject spawnGate = null; // if (bullSpawner.mBullExits.Count > 0) // { // spawnGate = bullSpawner.mBullExits[Mathf.FloorToInt(Random.Range(0, bullSpawner.mBullExits.Count))].gameObject; // } // // if (spawnGate != null) // { // Instantiate(enemy, spawnGate.transform.position, Quaternion.identity); // } // } //print("Ok"); }
public ReqBtlColoReq(string questID, string fuid, ArenaPlayer ap, int partyIndex) { this.name = "btl/colo/req"; StringBuilder stringBuilder = WebAPI.GetStringBuilder(); if (partyIndex >= 0) { stringBuilder.Append("\"partyid\":"); stringBuilder.Append(partyIndex); stringBuilder.Append(","); } stringBuilder.Append("\"btlparam\":{},"); stringBuilder.Append("\"fuid\":\""); stringBuilder.Append(fuid); stringBuilder.Append("\""); stringBuilder.Append(","); stringBuilder.Append("\"opp_rank\":"); stringBuilder.Append(ap.ArenaRank); this.body = WebAPI.GetRequestString(stringBuilder.ToString()); }
public override void DrawEnd() { ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); if (player != null) { GameConsole.ForegroundColor = GameConsole.BaseForegroundColor; GameConsole.BackgroundColor = GameConsole.BaseBackgroundColor; GameConsole.DrawText("HP: " + player.Health.ToString().PadLeft(3) + "/" + player.MaxHealth, Dialogue.Pos - Vector2.UnitY * 1); GameConsole.ForegroundColor = GameConsole.HealthForegroundColor; GameConsole.BackgroundColor = GameConsole.HealthBackgroundColor; GameConsole.DrawRectangle((int)Dialogue.Pos.X + 12, (int)Dialogue.Pos.Y - 1, 16, 1); GameConsole.DrawProgressBar((int)Dialogue.Pos.X + 12, (int)Dialogue.Pos.Y - 1, 16, ((float)player.Health) / ((float)player.MaxHealth)); } GameConsole.BackgroundColor = new Color(GameConsole.BaseBackgroundColor, _blackscreenAlpha); GameConsole.DrawRectangle(0, 0, GameConsole.W, GameConsole.H); }
// Use this for initialization void Start () { if(mTargetPlayer == null) { mTargetPlayer = FindObjectOfType<ArenaPlayer>(); } mLookTarget = mTargetPlayer.gameObject; SetMoveTarget(); mTomatoStands = FindObjectOfType<StandManager>().mTomatoStands; mAttackTimer = mDefaultAttackTime * (Random.value + 0.5f); mMoveTimer = mDefaultMoveTime * (Random.value + 0.5f); //Scale for number of times the Arena has been entered in this play through ~Adam mAmmoRemaining = 3+PlayerPrefs.GetInt("ArenaRound"); mDefaultAttackTime-=(PlayerPrefs.GetInt("ArenaRound")*0.1f); if(mDefaultAttackTime<=0.15f) { mDefaultAttackTime = 0.15f; } }//END of Start()
private PlayerInfo CreatePlayerInfo([NotNull] ArenaPlayer arenaPlayer, [NotNull] TournamentRanking ranking, [NotNull] BotVersionInfo[] botVersionInfos, bool deepNavigationEnabled) { var rankingEntry = ranking.Places.FirstOrDefault(r => r.Name == arenaPlayer.Name && r.Version == arenaPlayer.Version) ?? new RankingEntry { Name = arenaPlayer.Name, Version = arenaPlayer.Version, }; var games = arenaState.GamesRepo.LoadGames(ranking.TournamentId); var gamesByEnemy = GetFinishedGamesWithEnemies(games, arenaPlayer.Name, arenaPlayer.Version, deepNavigationEnabled); var playerInfo = new PlayerInfo { RankingEntry = rankingEntry, Authors = arenaPlayer.Authors, SubmitTimestamp = arenaPlayer.Timestamp, GamesByEnemy = gamesByEnemy, BotVersionInfos = botVersionInfos, DeepNavigationEnabled = deepNavigationEnabled, Program = deepNavigationEnabled ? arenaPlayer.Program : null, }; return(playerInfo); }
public void GiveInitiative() { UnitTurnOrderList[CurrentUnit].Initiative = false; if (Units.Count == 1 && Units[0] is ArenaPlayer) { _win = true; return; } ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0); if (player.Health <= 0) { _lose = true; return; } do { CurrentUnit += 1; }while(CurrentUnit < UnitTurnOrderList.Count && UnitTurnOrderList[CurrentUnit].Destroyed); if (CurrentUnit >= UnitTurnOrderList.Count) { // New turn. CurrentUnit = 0; UpdateUnitSpeedList(); foreach (ArenaObj obj in Units) { foreach (StatEffect effect in obj.Effects) { effect.Infect(); } } // New turn. } UnitTurnOrderList[CurrentUnit].ReceiveInitiative(); }
void InitPlayer() { CreateMainHero(); player.pm.isAutoMode = true; player.CharData.state = Modestatus.NpcPlayer; //player.OnDead += (CharacterState cs) => InvokeChangeCamera(); RecordDamage(player, player, 0); player.AddHpBar(); ArenaPlayer playerAr = new ArenaPlayer(); playerAr.groupIndx = 1; playerAr.playerData = (HeroData)player.CharData; playerAr.playerIcon = SceneUIManager.instance.arenaPanel.mIcon[0]; playerAr.playerIcon.AssignedInfo(player); player.OnHit += playerAr.playerIcon.RefreshHPBar; damageHeroList.Add(playerAr); //for (int i = 0; i < player.CharData.buff_Propers.Length; i++) //{ // float rato = player.CharData.battleInitAttrs[i] * 0.05f; // player.CharData.buff_Propers[i] += Globe.ArenaIsWin == 1 ? rato : -rato; //} //player.CharData.buff_Propers[3] *= 5f; //player.Hp(0); }
private ArenaPlayer ConfigureArenaPlayer(bool human, GameObject spawn) { var indicator = ""; var model = ""; if (human) { indicator = "IndicatorJ"; model = "Player"; } else { indicator += "IndicatorC"; model = "AIPlayer"; } var scale = Vector2.one; if (spawn.transform.position.x != 0) { scale.x = -(spawn.transform.position.x / Mathf.Abs(spawn.transform.position.x)); } var player = new ArenaPlayer { human = human, score = 0, playerObject = (GameObject)GameObject.Instantiate(Resources.Load(model), spawn.transform.position, spawn.transform.rotation), }; player.playerObject.transform.localScale = scale; player.indicator = (GameObject)GameObject.Instantiate(Resources.Load(indicator), Camera.main.WorldToScreenPoint(player.playerObject.transform.position), player.playerObject.transform.rotation); player.indicator.transform.SetParent(GameObject.Find("Canvas").transform); player.indicator.GetComponent<Animator>().SetBool("Active", true); return player; }
private async Task <ArenaPlayer> GetArenaPlayer(ArenaMatchPlayerStat playerStat) { ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat); await SetCompetetivePlayer(playerStat, player); player.CurrentCsr = new CompetitiveSkillRanking { Name = playerStat.CurrentCsr?.Designation?.Name, BannerImageUrl = playerStat.CurrentCsr?.Designation?.BannerImageUrl, Tier = playerStat.CurrentCsr?.Tier, IconImageUrl = playerStat.CurrentCsr?.CurrentTier?.IconImageUrl, PercentToNextTier = playerStat.CurrentCsr?.PercentToNextTier, Rank = playerStat.CurrentCsr?.Rank, DesignationId = (int?)playerStat.CurrentCsr?.DesignationId ?? 0 }; player.PreviousCsr = new CompetitiveSkillRanking { Name = playerStat.PreviousCsr?.Designation?.Name, BannerImageUrl = playerStat.PreviousCsr?.Designation?.BannerImageUrl, Tier = playerStat.PreviousCsr?.Tier, IconImageUrl = playerStat.PreviousCsr?.CurrentTier?.IconImageUrl, PercentToNextTier = playerStat.PreviousCsr?.PercentToNextTier, Rank = playerStat.PreviousCsr?.Rank, DesignationId = (int?)playerStat.PreviousCsr?.DesignationId ?? 0 }; player.CurrentCsr.Increased = (player.CurrentCsr.DesignationId > player.PreviousCsr.DesignationId) || (player.CurrentCsr.DesignationId == player.PreviousCsr.DesignationId && player.CurrentCsr.Tier > player.PreviousCsr.Tier) || (player.CurrentCsr.DesignationId == player.PreviousCsr.DesignationId && player.CurrentCsr.Tier == player.PreviousCsr.Tier && player.CurrentCsr.PercentToNextTier > player.PreviousCsr.PercentToNextTier); if (player.CurrentCsr.Increased && (player.CurrentCsr.DesignationId > player.PreviousCsr.DesignationId || player.CurrentCsr.Tier > player.PreviousCsr.Tier)) { player.PreviousCsr.PercentToNextTier = 0; } if (!player.CurrentCsr.Increased && (player.CurrentCsr.DesignationId < player.PreviousCsr.DesignationId || player.CurrentCsr.Tier < player.PreviousCsr.Tier)) { player.PreviousCsr.PercentToNextTier = 100; } return(player); //player.XpInfo.XpEarned = player.XpInfo.TotalXp - player.XpInfo.PrevTotalXp; //player.XpInfo.CurrentRankXp = player.XpInfo.TotalXp - playerStat.CurrentSpartanRank.StartXp; //var previousRankXp = player.XpInfo.PrevTotalXp - playerStat.CurrentSpartanRank.StartXp; //player.XpInfo.XpToNextRank = playerStat.NextSpartanRank.StartXp - playerStat.CurrentSpartanRank.StartXp; //player.XpInfo.PreviousPercent = previousRankXp.Percent(player.XpInfo.XpToNextRank); //player.XpInfo.CurrentPercent = player.XpInfo.CurrentRankXp.Percent(player.XpInfo.XpToNextRank); //var killed = playerStat.KilledOpponentDetails.Select(p => p.GamerTag); //var killedBy = playerStat.KilledByOpponentDetails.Select(p => p.GamerTag); //var temp = killed.Union(killedBy); //foreach (var tag in temp) //{ // Enemy enemy = new Enemy // { // Name = tag, // Kills = playerStat.KilledOpponentDetails?.FirstOrDefault(p => p.GamerTag == tag)?.TotalKills ?? 0, // Deaths = playerStat.KilledByOpponentDetails?.FirstOrDefault(p => p.GamerTag == tag)?.TotalKills ?? 0, // IsPlayer = true // }; // enemy.Spread = enemy.Kills - enemy.Deaths; // player.Enemies.Add(enemy); //} //var maxSpread = player.Enemies.Max(e => e.Spread); //var minSpread = Math.Abs(player.Enemies.Min(e => e.Spread)); //int minKills = player.Enemies.Min(p => p.Kills); //int maxKills = player.Enemies.Max(p => p.Kills) - minKills; //int minDeaths = player.Enemies.Min(p => p.Deaths); //int maxDeaths = player.Enemies.Max(p => p.Deaths) - minDeaths; //foreach (var enemy in player.Enemies) //{ // if (enemy.Spread > 0) // { // enemy.SpreadSign = "+"; // enemy.SpreadPercent = enemy.Spread.Percent(maxSpread); // } // else if (enemy.Spread < 0) // { // enemy.SpreadSign = "-"; // enemy.Spread = Math.Abs(enemy.Spread); // enemy.SpreadPercent = enemy.Spread.Percent(minSpread); // } // enemy.KillPercent = enemy.Kills.Percent(minKills, maxKills); // enemy.DeathPercent = enemy.Deaths.Percent(minDeaths, maxDeaths); //} //player.Enemies = player.Enemies.OrderByDescending(e => e.Kills).ThenBy(e => e.Deaths).ToList(); //player.Weapons = playerStat.WeaponStats.Where(w => w.Weapon != null).OrderByDescending(w => w.TotalKills).Select(Mapper.Map<WeaponStat>).ToList(); //minKills = player.Weapons.Min(w => w.TotalKills); //maxKills = player.Weapons.Max(w => w.TotalKills) - minKills; //var minHeadShots = player.Weapons.Min(w => w.TotalHeadshots); //var maxHeadShots = player.Weapons.Max(w => w.TotalHeadshots) - minHeadShots; //var minTotalDamage = player.Weapons.Min(w => w.TotalDamageDealt); //var maxTotalDamage = player.Weapons.Max(w => w.TotalDamageDealt) - minTotalDamage; //var minShotsFired = player.Weapons.Min(w => w.TotalShotsFired); //var maxShotsFired = player.Weapons.Max(w => w.TotalShotsFired) - minShotsFired; //var minShotsLanded = player.Weapons.Min(w => w.TotalShotsLanded); //var maxShotsLanded = player.Weapons.Max(w => w.TotalShotsLanded) - minShotsLanded; //var minAccuraccy = player.Weapons.Min(w => w.Accuracy); //var maxAccuraccy = player.Weapons.Max(w => w.Accuracy) - minAccuraccy; //foreach (var weaponStat in player.Weapons) //{ // weaponStat.KillPercent = weaponStat.TotalKills.Percent(minKills, maxKills); // weaponStat.HeadShotPercent = weaponStat.TotalHeadshots.Percent(minHeadShots, maxHeadShots); // weaponStat.TotalDamagePercent = weaponStat.TotalDamageDealt.Percent(minTotalDamage, maxTotalDamage); // weaponStat.ShotsFiredPercent = weaponStat.TotalShotsFired.Percent(minShotsFired, maxShotsFired); // weaponStat.ShotsLandedPercent = weaponStat.TotalShotsLanded.Percent(minShotsLanded, maxShotsLanded); // weaponStat.AccuracyPercent = weaponStat.Accuracy.Percent(minAccuraccy, maxAccuraccy); //} //player.Medals = playerStat.MedalAwards.GroupBy(m => m.Medal.Classification).Select(m => // new MedalClassification // { // Classification = m.Key, // MedalAwards = Mapper.Map<List<MedalAward>>(m) // }).ToList(); //return player; }
private async Task SetBasePlayer(IBasePlayerStat playerStat, ArenaPlayer player, MatchEvents matchEvents = null) { player.Weapons = playerStat.WeaponStats.Where(w => w.Weapon != null && (w.TotalDamageDealt > 0 || w.TotalShotsFired > 0)).OrderByDescending(w => w.TotalKills).Select(Mapper.Map <WeaponStat>).ToList(); var minKills = player.Weapons.Min(w => w.TotalKills); var maxKills = player.Weapons.Max(w => w.TotalKills) - minKills; var minHeadShots = player.Weapons.Min(w => w.TotalHeadshots); var maxHeadShots = player.Weapons.Max(w => w.TotalHeadshots) - minHeadShots; var minTotalDamage = player.Weapons.Min(w => w.TotalDamageDealt); var maxTotalDamage = player.Weapons.Max(w => w.TotalDamageDealt) - minTotalDamage; var minShotsFired = player.Weapons.Min(w => w.TotalShotsFired); var maxShotsFired = player.Weapons.Max(w => w.TotalShotsFired) - minShotsFired; var minShotsLanded = player.Weapons.Min(w => w.TotalShotsLanded); var maxShotsLanded = player.Weapons.Max(w => w.TotalShotsLanded) - minShotsLanded; var minAccuraccy = player.Weapons.Min(w => w.Accuracy); var maxAccuraccy = player.Weapons.Max(w => w.Accuracy) - minAccuraccy; foreach (var weaponStat in player.Weapons) { weaponStat.KillPercent = weaponStat.TotalKills.Percent(minKills, maxKills); weaponStat.HeadShotPercent = weaponStat.TotalHeadshots.Percent(minHeadShots, maxHeadShots); weaponStat.TotalDamagePercent = weaponStat.TotalDamageDealt.Percent(minTotalDamage, maxTotalDamage); weaponStat.ShotsFiredPercent = weaponStat.TotalShotsFired.Percent(minShotsFired, maxShotsFired); weaponStat.ShotsLandedPercent = weaponStat.TotalShotsLanded.Percent(minShotsLanded, maxShotsLanded); weaponStat.AccuracyPercent = weaponStat.Accuracy.Percent(minAccuraccy, maxAccuraccy); } player.Medals = playerStat.MedalAwards.GroupBy(m => m.Medal.Classification).Select(m => new MedalClassification { Classification = m.Key, MedalAwards = Mapper.Map <List <MedalAward> >(m) }).ToList(); List <GameEvent> killers = new List <GameEvent>(); if (matchEvents != null) { killers = matchEvents.GameEvents.Where(e => e.VictimAgent == Enumeration.Agent.Player && e.Victim.Gamertag == player.GamerTag && e.KillerAgent == Enumeration.Agent.AI && !e.IsWeapon && e.EventName == Enumeration.EventType.Death).ToList(); } foreach (var baseGroup in playerStat.EnemyKills.GroupBy(k => k.Enemy.BaseId)) { var enemyKill = baseGroup.First(); Enemy enemy = new Enemy { Name = enemyKill.Enemy.EnemyObject.Name, Kills = baseGroup.Sum(k => k.TotalKills), Description = enemyKill.Enemy.EnemyObject.Description, ImageUrl = enemyKill.Enemy.EnemyObject.SmallIconImageUrl, Deaths = killers.Count(k => k.KillerWeaponStockId == enemyKill.Enemy.BaseId), IsPlayer = false }; enemy.Spread = enemy.Kills - enemy.Deaths; player.Enemies.Add(enemy); } foreach (var baseGroup in playerStat.DestroyedEnemyVehicles.GroupBy(k => k.Enemy.BaseId)) { var enemyKill = baseGroup.First(); Enemy enemy = new Enemy { Name = enemyKill.Enemy.Vehicle.Name, Kills = baseGroup.Sum(k => k.TotalKills), Description = enemyKill.Enemy.Vehicle.Description, ImageUrl = enemyKill.Enemy.Vehicle.SmallIconImageUrl, Deaths = killers.Count(k => k.KillerWeaponStockId == enemyKill.Enemy.BaseId), IsPlayer = false }; enemy.Spread = enemy.Kills - enemy.Deaths; player.Enemies.Add(enemy); } var ids = playerStat.EnemyKills.Select(k => k.Enemy.BaseId) .Union(playerStat.DestroyedEnemyVehicles.Select(v => v.Enemy.BaseId)) .ToList(); killers.RemoveAll(k => ids.Contains(k.KillerWeaponStockId)); foreach (var killer in killers.GroupBy(k => k.KillerWeaponStockId)) { var enemyKill = await _metadataRepository.GetEnemyOrVehicl(killer.Key); if (enemyKill != null) { Enemy enemy = new Enemy { Name = enemyKill.Name, Kills = 0, Description = enemyKill.Description, ImageUrl = enemyKill.SmallIconImageUrl, Deaths = killer.Count(), IsPlayer = false }; enemy.Spread = enemy.Kills - enemy.Deaths; player.Enemies.Add(enemy); } } }
public void Deflect(ArenaPlayer deflector) { creator = deflector; }
/// <summary> /// Init Battle Arena /// </summary> /// <param name="playerCartDeck"></param> /// <param name="playerTrateDeck"></param> public void Init(CartDeck playerCartDeck, TrateDeck playerTrateDeck) { Player = new ArenaPlayer(playerCartDeck, playerTrateDeck); Opponent = new ArenaPlayer(playerCartDeck, playerTrateDeck); }
/// <summary> /// Init active player /// </summary> /// <param name="arenaPlayer"></param> public void InitActivePlayer(ArenaPlayer arenaPlayer) { ActiveArenaPlayer = arenaPlayer; }
public void CreateTeam() { int index = 0; for (int i = 0; i < 5; i++) { index = i;// == 0 ? 0 : i + 3; if (null == Globe.challengeTeam[index] || Globe.challengeTeam[index].id == 0) { continue; } ArenaPlayer partner = new ArenaPlayer(); partner.groupIndx = 1; partner.playerData = Globe.challengeTeam[index]; partner.playerTrans = partnerPos[i]; partner.playerIcon = SceneUIManager.instance.arenaPanel.mIcon[i]; npcList.Add(partner); damageHeroList.Add(partner); } int enemyCount = 0; for (int i = 0; i < 5; i++) { if (null == Globe.ArenaEnemy[i] || Globe.ArenaEnemy[i].id == 0) { continue; } enemyCount++; ArenaPlayer enemy = new ArenaPlayer(); enemy.groupIndx = 0; enemy.playerData = Globe.ArenaEnemy[i]; enemy.playerTrans = partnerPos[i + 5]; enemy.playerIcon = SceneUIManager.instance.arenaPanel.dIcon[i]; npcList.Add(enemy); damageHeroList.Add(enemy); } List <CharacterState> csList = new List <CharacterState>(); for (int i = 0; i < npcList.Count; i++) { if (null == npcList[i].playerData || npcList[i].playerData.id == 0) { continue; } npcList[i].playerData.state = Modestatus.NpcPlayer; npcList[i].playerData.groupIndex = npcList[i].groupIndx; CharacterState cs = CreateBattleHero(npcList[i].playerData, npcList[i].playerTrans.gameObject); heroIcon.Add(cs, npcList[i].playerIcon); cs.pm.isAutoMode = true; cs.AddHpBar(); cs.OnHit += npcList[i].playerIcon.RefreshHPBar; cs.OnAttackDmg += RecordDamage; RecordDamage(cs, cs, 0); cs.OnDead += (CharacterState csm) => { heroIcon[csm].RefreshHPBar(csm); }; heroCsList.Add(cs); npcList[i].playerIcon.AssignedInfo(cs); AddHeroAIBySceneType(cs); cs.transform.GetComponent <BasePlayerAI>().enabled = false; Formula.SetAttrTo(ref cs.CharData.buffAttrs, AttrType.hp, cs.currentHp * 0.5f); csList.Add(cs); // Debug.LogError(cs.CharData.id + " max: " + cs.maxHp + " server: " + cs.CharData.serverAttrs[3] + " rate: " + cs.maxHp / cs.CharData.serverAttrs[3]); //if (cs.CharData.groupIndex == 0) //{ // for (int j = 0; j < cs.CharData.serverAttrs.Length; j++) // { // cs.CharData.serverAttrs[j] = csList[0].CharData.serverAttrs[j]; // } //} //else //{ // csList.Add(cs); //} //if (GameLibrary.isNetworkVersion) //{ //for (int j = 0; j < cs.CharData.buff_Propers.Length; j++) //{ // float rato = cs.CharData.battleInitAttrs[j] * 0.1f; // if (Globe.ArenaIsWin == 1) // cs.CharData.buff_Propers[j] += cs.CharData.groupIndex == 0 ? -rato : rato; // else // cs.CharData.buff_Propers[j] += cs.CharData.groupIndex == 0 ? rato : -rato; //} //if (cs.CharData.groupIndex == 1 && Globe.ArenaIsWin == 1) //{ // cs.CharData.buff_Propers[3] += cs.currentHp * 1.5f; //} //if (Globe.ArenaIsWin == 1) //{ // cs.CharData.buff_Propers[3] += cs.currentHp * (cs.CharData.groupIndex == 1 ? 1.5f : 1.0f); //} //else //{ // cs.CharData.buff_Propers[3] += cs.currentHp * (cs.CharData.groupIndex == 0 ? 1.5f : 1.0f); //} //} cs.Hp(0); } //PreLoadCharEffects(csList); //for (int i = 0; i < npcList.Count; i++) //{ // Debug.LogError (npcList [i].playerData.id + "-" + npcList [i].playerData.node.name); // for (int j = 0; j < npcList[i].playerData.battleInitAttrs.Length; j++) // { // Debug.Log((AttrType)j +"-"+npcList[i].playerData.battleInitAttrs[j]); // } //} }
// Use this for initialization void Start () { player = GameObject.FindObjectOfType<ArenaPlayer>(); }
public static UnitData GetInstanceData(this GameParameter.UnitInstanceTypes InstanceType, GameObject gameObject) { UnitData unitData = (UnitData)null; switch (InstanceType) { case GameParameter.UnitInstanceTypes.Any: unitData = DataSource.FindDataOfClass <UnitData>(gameObject, (UnitData)null); if (unitData == null) { Unit dataOfClass = DataSource.FindDataOfClass <Unit>(gameObject, (Unit)null); if (dataOfClass != null) { unitData = dataOfClass.UnitData; break; } break; } break; case GameParameter.UnitInstanceTypes.CurrentTurn: if (Object.op_Inequality((Object)SceneBattle.Instance, (Object)null) && SceneBattle.Instance.Battle.CurrentUnit != null) { return(SceneBattle.Instance.Battle.CurrentUnit.UnitData); } break; case GameParameter.UnitInstanceTypes.ArenaPlayerUnit0: case GameParameter.UnitInstanceTypes.ArenaPlayerUnit1: case GameParameter.UnitInstanceTypes.ArenaPlayerUnit2: ArenaPlayer dataOfClass1 = DataSource.FindDataOfClass <ArenaPlayer>(gameObject, (ArenaPlayer)null); if (dataOfClass1 != null) { int index = (int)(InstanceType - 4); unitData = dataOfClass1.Unit[index]; break; } break; case GameParameter.UnitInstanceTypes.EnemyArenaPlayerUnit0: case GameParameter.UnitInstanceTypes.EnemyArenaPlayerUnit1: case GameParameter.UnitInstanceTypes.EnemyArenaPlayerUnit2: ArenaPlayer selectedArenaPlayer = (ArenaPlayer)GlobalVars.SelectedArenaPlayer; if (selectedArenaPlayer != null) { int index = (int)(InstanceType - 7); unitData = selectedArenaPlayer.Unit[index]; break; } break; case GameParameter.UnitInstanceTypes.PartyUnit0: case GameParameter.UnitInstanceTypes.PartyUnit1: case GameParameter.UnitInstanceTypes.PartyUnit2: PlayerData player1 = MonoSingleton <GameManager> .Instance.Player; int index1 = (int)(InstanceType - 10); long unitUniqueId1 = player1.Partys[(int)GlobalVars.SelectedPartyIndex].GetUnitUniqueID(index1); unitData = player1.FindUnitDataByUniqueID(unitUniqueId1); break; case GameParameter.UnitInstanceTypes.VersusUnit: PlayerData player2 = MonoSingleton <GameManager> .Instance.Player; long unitUniqueId2 = player2.Partys[7].GetUnitUniqueID(0); unitData = player2.FindUnitDataByUniqueID(unitUniqueId2); break; } return(unitData); }