// sends a message // method is used from other instances to tell that an audio event has occured public void SendEnemyMessageForDispatch(string message) { EnemyMessage msg = new EnemyMessage(); // creates a new spanwer message msg.message = message; // the message enemiesMessages.Enqueue(msg); // add this message to queue for dispatch }
/// <summary> /// Метод, описывающий получение урона. /// </summary> /// <param name="damage">Количество жизней, которые следует отнять у объекта</param> public void GetDamage(int damage) { System.Media.SystemSounds.Asterisk.Play(); Health -= damage; EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид поврежден.", damage, MessageEventArgs.EventTypeEnum.GotDamage)); if (Health <= 0) { Die(); } }
private void ClientReceiveMessageEnemy(NetworkMessage message) { EnemyMessage msg = message.ReadMessage <EnemyMessage>(); //Debug.log(msg.position); GameObject shot = GameObject.Find(msg.name); GameCo gc = shot.GetComponent <GameCo>(); gc.spawns = msg.position; gc.spawnwave(); }
public override async Task Reset() { LureCaps = 0; await base.Reset(); _ = EnemyMessage.AddReactionsAsync(new IEmote[] { Emote.Parse("<:Bronze:537214232203100190>"), Emote.Parse("<:Silver:537214282891395072>"), Emote.Parse("<:Gold:537214319591555073>") }); }
public override async Task Reset() { enumerator = Dungeon.Matchups.GetEnumerator(); matchup = enumerator.Current; await base.Reset(); var e = new EmbedBuilder(); e.WithThumbnailUrl(Dungeon.Image); e.WithDescription(EnemyMessage.Content); await EnemyMessage.ModifyAsync(m => { m.Content = ""; m.Embed = e.Build(); }); }
public void RandomSendMessage() { EnemyMessage message = GetRandomMesssage(); if (message != null) { if (lastMessage != null) { while (lastMessage == message) { message = GetRandomMesssage(); } } lastMessage = message; DisplayFloatingText(message.message); } }
/// <summary> /// Метод обновления параметров объекта. /// </summary> public override void Update() { //Движение объекта вдоль координат X и Y Pos.X = Pos.X + Dir.X; Pos.Y = Pos.Y + Dir.Y; if (Pos.X < -Size.Width || Pos.Y < -Size.Height || Pos.Y > ScreenSize.Height + Size.Height) { //Если объект доходит до края экрана, то генерируется событие EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид не был уничтожен, и теперь направляется в сторону планеты.", -2, MessageEventArgs.EventTypeEnum.OutOfScreen)); } //Поворот объекта на заданный угол Angle += DAngle; if (Angle >= 360) //Если угол больше или равен 360 градусов, то он выставляется в 0 { Angle = 0; } }
// Update is called once per frame void Update() { // if messages queue has message(s) for dispatch while (enemiesMessages.Count != 0) { // take the first message added to the queue EnemyMessage msg = enemiesMessages.Dequeue(); try { // send the message to the handlers that are interested foreach (EnemyMessageHandler messageHandler in enemiesMessageHandlers) { //Debug.Log(msg.message); messageHandler(msg.message); } } catch { enemiesMessages.Enqueue(msg); } } }
/// <summary> /// Метод, описывающий смерть объекта. /// </summary> public void Die() { System.Media.SystemSounds.Exclamation.Play(); EnemyMessage?.Invoke(this, new MessageEventArgs("Астероид уничтожен!", Points, MessageEventArgs.EventTypeEnum.Killed)); }
private void ServerReceiveMessageEnemy(NetworkMessage message) { EnemyMessage msg = message.ReadMessage <EnemyMessage>(); NetworkServer.SendToAll(MsgType.Command, msg); }