Beispiel #1
0
    // 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
    }
Beispiel #2
0
 /// <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();
     }
 }
Beispiel #3
0
    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();
    }
Beispiel #4
0
        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>")
            });
        }
Beispiel #5
0
        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();
            });
        }
Beispiel #6
0
    public void RandomSendMessage()
    {
        EnemyMessage message = GetRandomMesssage();

        if (message != null)
        {
            if (lastMessage != null)
            {
                while (lastMessage == message)
                {
                    message = GetRandomMesssage();
                }
            }

            lastMessage = message;
            DisplayFloatingText(message.message);
        }
    }
Beispiel #7
0
        /// <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;
            }
        }
Beispiel #8
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);
         }
     }
 }
Beispiel #9
0
 /// <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);
    }