public override void processMessage(MessageArrivedEventArgs messageArgs) { Player player; if (Game.clientPlayerMap.TryGetValue(messageArgs.sender, out player) && player.state == Player.PlayerState.InGame && player.arena.state == Arena.ArenaState.Battle) { int skillIndex = messageArgs.message.getInt("skillIndex"); if (player.skills != null && player.skills.Count > skillIndex && player.IsAlive) //dead man cant shoot { Skill skill = player.skills[skillIndex]; Vector3 usePosition = messageArgs.message.GetVector3("usePosition"); if (skill != null && skill.IsActivatable(usePosition)) { skill.ActivateAndNotify(usePosition); } } } }