Exemple #1
0
        public void Attack(int attackerId)
        {
            var messageCode = (byte)MessageCodes.Attacked;
            var message     = new AttackedMessage()
            {
                AttackerId = attackerId
            };

            messageSender.SendMessage(messageCode, message);
        }
Exemple #2
0
        public AbstractMessage Parse(string input)
        {
            Regex regex = new Regex(pattern);

            if (regex.IsMatch(input))
            {
                AttackedMessage abstractMessage = new AttackedMessage();
                var             match           = regex.Match(input);
                abstractMessage.AttackerName    = match.Groups["attackerName"].Value;
                abstractMessage.AttackerUserID  = match.Groups["attackerUserId"].Value;
                abstractMessage.AttackerSteamID = match.Groups["attackerSteamId"].Value;
                abstractMessage.AttackerTeam    = match.Groups["attackerTeam"].Value;
                Int32.TryParse(match.Groups["attackerPosX"].Value, out int attackerPosX);
                abstractMessage.AttackerPosX = attackerPosX;
                Int32.TryParse(match.Groups["attackerPosY"].Value, out int attackerPosY);
                abstractMessage.AttackerPosY = attackerPosY;
                Int32.TryParse(match.Groups["attackerPosZ"].Value, out int attackerPosZ);
                abstractMessage.AttackerPosZ  = attackerPosZ;
                abstractMessage.VictimName    = match.Groups["victimName"].Value;
                abstractMessage.VictimUserID  = match.Groups["victimUserId"].Value;
                abstractMessage.VictimSteamID = match.Groups["victimSteamId"].Value;
                abstractMessage.VictimTeam    = match.Groups["victimTeam"].Value;
                Int32.TryParse(match.Groups["victimPosX"].Value, out int victimPosX);
                abstractMessage.VictimPosX = victimPosX;
                Int32.TryParse(match.Groups["victimPosY"].Value, out int victimPosY);
                abstractMessage.VictimPosY = victimPosY;
                Int32.TryParse(match.Groups["victimPosZ"].Value, out int victimPosZ);
                abstractMessage.VictimPosZ     = victimPosZ;
                abstractMessage.AttackerWeapon = match.Groups["attackerWeapon"].Value;
                Int32.TryParse(match.Groups["attackerDamage"].Value, out int attackerDamage);
                abstractMessage.AttackerDamage = attackerDamage;
                Int32.TryParse(match.Groups["attackerDamageArmor"].Value, out int attackerDamageArmor);
                abstractMessage.AttackerDamageArmor = attackerDamageArmor;
                Int32.TryParse(match.Groups["victimHealth"].Value, out int victimHealth);
                abstractMessage.VictimHealth = victimHealth;
                Int32.TryParse(match.Groups["victimArmor"].Value, out int victimArmor);
                abstractMessage.VictimArmor      = victimArmor;
                abstractMessage.AttackerHitGroup = match.Groups["attackerHitGroup"].Value;

                return(abstractMessage);
            }
            return(null);
        }
Exemple #3
0
        private void OnPlayerAttacked(AttackedMessage message)
        {
            var entity =
                EntityContainer.GetInstance().GetLocalEntity();
            var spawnedCharacter =
                entity?.GameObject.GetComponent <ISpawnedCharacter>();
            var character =
                spawnedCharacter?.GetCharacter();

            if (character != null)
            {
                var normalized =
                    (character.transform.position - transform.position).normalized;
                var direction = new Vector2(
                    x: (normalized.x > 0 ? 1 : -1) * hitAmount.x,
                    y: hitAmount.y);

                var attackPlayer = character.GetComponent <IAttackPlayer>();
                attackPlayer?.OnPlayerAttacked(direction);
            }
        }