<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sound]]></title><description><![CDATA[<p>Can you add some methods for playing pre-defined game sounds (embedded) and external sound files?  Would like to see some methods for playing a sound for harvesting, upgrading, charging, building, etc.  Maybe even a client side option for enabling a soundtrack loop?</p>
]]></description><link>http://screeps.com/forum/topic/2500/sound</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 12:52:05 GMT</lastBuildDate><atom:link href="http://screeps.com/forum/topic/2500.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 15 Dec 2018 12:29:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sound on Invalid Date]]></title><description><![CDATA[<p>Can you add some methods for playing pre-defined game sounds (embedded) and external sound files?  Would like to see some methods for playing a sound for harvesting, upgrading, charging, building, etc.  Maybe even a client side option for enabling a soundtrack loop?</p>
]]></description><link>http://screeps.com/forum/post/12420</link><guid isPermaLink="true">http://screeps.com/forum/post/12420</guid><dc:creator><![CDATA[klugemonkey]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Sound on Invalid Date]]></title><description><![CDATA[<p>Sounds interesting.</p>
]]></description><link>http://screeps.com/forum/post/12433</link><guid isPermaLink="true">http://screeps.com/forum/post/12433</guid><dc:creator><![CDATA[Donatzor]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Sound on Invalid Date]]></title><description><![CDATA[<p>In any &quot;running&quot; room wouldn't there be so many sounds playing over each other that it wouldn't give any info? I know I have 2 harvesting, 1-3 upgrading and a few builders per tick.  That said towers pew pewing could may be useful, though I'd have to be watching the room.</p>
]]></description><link>http://screeps.com/forum/post/12441</link><guid isPermaLink="true">http://screeps.com/forum/post/12441</guid><dc:creator><![CDATA[QGazQ]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Sound on Invalid Date]]></title><description><![CDATA[<p>Loooong time ago I copy pasted this from someone.
It worked about a year ago, but haven't checked this for a looong time.
Maybe someone want to try?</p>
<p>// The function below was developed late last year by <a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/15">@stybbe</a>, published in
//  Screeps Slack's #share-thy-code channel. No license was applied; all<br />
//  rights remain with the author. Minor fixes were made by <a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/77">@SemperRabbit</a>
//  to get it working again.</p>
<p>// NOTE: that this code works in chrome and firefox (albiet quietly
//  in firefox) but not the steam client.</p>
<p>global.defaultVoice = &quot;Deutsch Female&quot;; // can be changed
// see <a href="https://responsivevoice.org/text-to-speech-languages/" rel="nofollow">https://responsivevoice.org/text-to-speech-languages/</a>
// for options
global.voiceConsole = function voiceConsole(text) {
console.log(`<span style="color:green; font-style: italic;">${text}</span>
<script>
if (!window.speakText){
window.speakText = function(gameTime, text) {
var id = gameTime + &quot;-&quot; + text;
if(!window.voiceHash){
window.voiceHash={};
}</p>
<pre><code>                        if (!window.voiceHash[id]){
                            window.voiceHash[id]=true;
                        responsiveVoice.setDefaultVoice(&quot;${defaultVoice}&quot;);
                            responsiveVoice.speak(text);
                        }
                    }
                }
             
                if (document.getElementById(&quot;responsiveVoice&quot;)){
                    window.speakText(&quot;${Game.time}&quot;, &quot;${text}&quot;);
                }else{
                    var script = document.createElement(&quot;script&quot;);
                    script.type = &quot;text/javascript&quot;;
                    script.id = &quot;responsiveVoice&quot;;
                    script.onload = function() {
                        responsiveVoice.setDefaultVoice(&quot;${defaultVoice}&quot;);
                        console.log(&quot;responsiveVoice has initialized&quot;);
                        window.speakText(&quot;${Game.time}&quot;, &quot;${text}&quot;);
                    };
                    script.src = &quot;https://code.responsivevoice.org/responsivevoice.js&quot;;
                    document.getElementsByTagName(&quot;head&quot;)[0].appendChild(script);
                    setTimeout(&quot;responsiveVoice.init()&quot;, 1000);
                }
            &lt;/script&gt;`
  .replace(/(\r\n|\n|\r)\t+|(\r\n|\n|\r) +|(\r\n|\n|\r)/gm, &quot;&quot;));
</code></pre>
<p>}</p>
<p>}</p>
]]></description><link>http://screeps.com/forum/post/12443</link><guid isPermaLink="true">http://screeps.com/forum/post/12443</guid><dc:creator><![CDATA[utiuti]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to Sound on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://screeps.com/forum/uid/2300">@qgazq</a>
Somehow I'm not able to paste the complete code here.
So we try gist: <a href="https://gist.github.com/utiuti/4a422e884b651e4c7fcbce26eba34b07" rel="nofollow">Link to Gist</a></p>
]]></description><link>http://screeps.com/forum/post/12444</link><guid isPermaLink="true">http://screeps.com/forum/post/12444</guid><dc:creator><![CDATA[utiuti]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>