public void Attack(int attackerId) { var messageCode = (byte)MessageCodes.Attacked; var message = new AttackedMessage() { AttackerId = attackerId }; messageSender.SendMessage(messageCode, message); }
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); }
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); } }