// 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()
    }
Exemple #2
0
        void UsePotion(InventoryItem item)
        {
            ArenaPlayer player = (ArenaPlayer)Objects.ObjFind <ArenaPlayer>(0);

            player.ChooseEnemiesInit();
            player.CurrentStatEffect = StatEffect.Effects[item.Token];
        }
Exemple #3
0
        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();
                    }
                }
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
    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");
    }
Exemple #6
0
 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);
             }
         }
     }
 }
Exemple #9
0
        private async Task <ArenaPlayer> GetWarzonePlayer(WarzonePlayerStat playerStat, MatchEvents matchEvents)
        {
            ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat);

            await SetCompetetivePlayer(playerStat, player, matchEvents);

            return(player);
        }
Exemple #10
0
        private async Task <ArenaPlayer> GetCustomPlayer(CustomMatchPlayerStat playerStat)
        {
            ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat);

            await SetPlayer(playerStat, player);

            return(player);
        }
Exemple #11
0
    public void initPrefs(ArenaPlayer c, ArenaManager m, int t = 30, int h = 5)
    {
        creator = c;
        manager = m;

        time = t;
        heal = h;
    }
Exemple #12
0
        private async Task <ArenaPlayer> GetCampaignPlayer(CampaignMatchPlayerStat playerStat)
        {
            ArenaPlayer player = Mapper.Map <ArenaPlayer>(playerStat);

            await SetBasePlayer(playerStat, player);

            return(player);
        }
Exemple #13
0
        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();
	}
Exemple #15
0
    //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;
    }
Exemple #16
0
        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);
        }
Exemple #17
0
    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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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");
    }
Exemple #23
0
        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());
        }
Exemple #24
0
        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()
Exemple #26
0
        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);
        }
Exemple #27
0
        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();
        }
Exemple #28
0
    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);
    }
Exemple #29
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;
	}
Exemple #30
0
        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;
        }
Exemple #31
0
        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);
                }
            }
        }
Exemple #32
0
 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;
 }
Exemple #35
0
    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);
    }