Exemplo n.º 1
0
        private void MakeAndSendMotd(NetworkConnection connection)
        {
            var message = new Chat.SimpleChatMessage {
                baseToken = "{0}", paramTokens = new[] { GenerateMotDFormatted(connection) }
            };

            SendPrivateMessage(message, connection);
        }
Exemplo n.º 2
0
        private IEnumerator AddHelperMessage(string message, float time)
        {
            yield return(new WaitForSeconds(time));

            var chatMessage = new Chat.SimpleChatMessage {
                baseToken = message
            };

            Chat.SendBroadcastChat(chatMessage);
        }
Exemplo n.º 3
0
            public static void DisplayQuestInChat(ClientMessage clientMessage, ServerMessage serverMessage)
            {
                Chat.SimpleChatMessage message = new Chat.SimpleChatMessage();

                message.baseToken = string.Format("{0} {1} {2}{3} to receive: <color=#{4}>{5}</color>",
                    Core.questDefinitions.types[(int)serverMessage.type],
                    serverMessage.objective,
                    clientMessage.target,
                    serverMessage.type == 0 ? "s" : "",
                    ColorUtility.ToHtmlStringRGBA(serverMessage.drop.baseColor),
                    Language.GetString(ItemCatalog.GetItemDef(serverMessage.drop.itemIndex).nameToken));

                Chat.SendBroadcastChat(message);
            }
Exemplo n.º 4
0
        private void SendCustomMessage(Interactor activator, string tradeInMessage)
        {
            NetworkConnection clientAuthorityOwner = activator.GetComponent <NetworkIdentity>().clientAuthorityOwner;

            Chat.SimpleChatMessage message = new Chat.SimpleChatMessage
            {
                baseToken = tradeInMessage,
            };

            NetworkWriter writer = new NetworkWriter();

            writer.StartMessage((short)59);
            writer.Write(message.GetTypeIndex());
            writer.Write((MessageBase)message);
            writer.FinishMessage();
            clientAuthorityOwner?.SendWriter(writer, QosChannelIndex.chat.intVal);
        }
Exemplo n.º 5
0
        private void Event_ServerDamageDealt(On.RoR2.GlobalEventManager.orig_ServerDamageDealt orig, DamageReport damageReport)
        {
            orig(damageReport);

            DamageReportHandler damageReportHandler = new DamageReportHandler(damageReport);

            Chat.SimpleChatMessage chatMessage = null;
            int hitPointPercentage             = ConfigHpPercentageFilter.Value;

            string teamEntityLabel;
            string enemyEntityLabel;

            if (!damageReportHandler.VictimIsInPlayerTeam() || damageReport.damageInfo.rejected)
            {
                return;
            }

            teamEntityLabel = GetTeamEntityLabel(damageReportHandler.Victim);
            if (teamEntityLabel == null)
            {
                return;
            }

            // Fall Damage
            if (damageReportHandler.CheckIfFallDamageBroadcast(hitPointPercentage) &&
                AtLeastOnePlayerTeamLogEnabled() &&
                LogFallDamage())
            {
                chatMessage = ComposeNewFallDamageMessage(teamEntityLabel, damageReportHandler.Damage);
            }
            // Shrines of Blood
            else if (damageReportHandler.CheckIfShrineBloodDamageBroadcast(hitPointPercentage) &&
                     AtLeastOnePlayerTeamLogEnabled() &&
                     LogShrinesOfBlood())
            {
                chatMessage = ComposeNewShrineOfBloodMessage(teamEntityLabel, damageReportHandler.Damage);
            }
            // DoT Debuffs
            else if (tickDebuffHandler.IsTickDamageEvent(damageReportHandler) &&
                     AtLeastOnePlayerTeamLogEnabled() &&
                     LogDebuffs())
            {
                enemyEntityLabel = tickDebuffHandler.ComposeLabel(damageReportHandler.TickingDebuffIndex);
                if (enemyEntityLabel == null)
                {
                    return;
                }
                chatMessage = ComposeNewDebuffInfoMessage(enemyEntityLabel, teamEntityLabel);
            }
            // Normal Damage
            else if (damageReportHandler.CheckIfDamageBroadcast(hitPointPercentage) &&
                     damageReportHandler.Attacker != null &&
                     AtLeastOnePlayerTeamLogEnabled())
            {
                BuffIndex attackerBuff = GetAttackerEliteBuff(damageReportHandler.Attacker);
                enemyEntityLabel = ComposeEnemyEntitiyLabel(damageReportHandler, attackerBuff);
                if (enemyEntityLabel == null)
                {
                    return;
                }
                chatMessage = ComposeNewHitInfoMessage(enemyEntityLabel, teamEntityLabel, damageReportHandler.Damage);
            }

            if (chatMessage != null)
            {
                Chat.SendBroadcastChat(chatMessage);
            }
        }