Merge pull request #12465 from pchote/shellmap-overhaul
Rework shellmap UX.
This commit is contained in:
@@ -533,38 +533,32 @@ namespace OpenRA
|
|||||||
if (world == null)
|
if (world == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Don't tick when the shellmap is disabled
|
var isNetTick = LocalTick % NetTickScale == 0;
|
||||||
if (world.ShouldTick)
|
|
||||||
|
if (!isNetTick || orderManager.IsReadyForNextFrame)
|
||||||
{
|
{
|
||||||
var isNetTick = LocalTick % NetTickScale == 0;
|
++orderManager.LocalFrameNumber;
|
||||||
|
|
||||||
if (!isNetTick || orderManager.IsReadyForNextFrame)
|
Log.Write("debug", "--Tick: {0} ({1})", LocalTick, isNetTick ? "net" : "local");
|
||||||
|
|
||||||
|
if (BenchmarkMode)
|
||||||
|
Log.Write("cpu", "{0};{1}".F(LocalTick, PerfHistory.Items["tick_time"].LastValue));
|
||||||
|
|
||||||
|
if (isNetTick)
|
||||||
|
orderManager.Tick();
|
||||||
|
|
||||||
|
Sync.CheckSyncUnchanged(world, () =>
|
||||||
{
|
{
|
||||||
++orderManager.LocalFrameNumber;
|
world.OrderGenerator.Tick(world);
|
||||||
|
world.Selection.Tick(world);
|
||||||
|
});
|
||||||
|
|
||||||
Log.Write("debug", "--Tick: {0} ({1})", LocalTick, isNetTick ? "net" : "local");
|
world.Tick();
|
||||||
|
|
||||||
if (BenchmarkMode)
|
|
||||||
Log.Write("cpu", "{0};{1}".F(LocalTick, PerfHistory.Items["tick_time"].LastValue));
|
|
||||||
|
|
||||||
if (isNetTick)
|
|
||||||
orderManager.Tick();
|
|
||||||
|
|
||||||
Sync.CheckSyncUnchanged(world, () =>
|
|
||||||
{
|
|
||||||
world.OrderGenerator.Tick(world);
|
|
||||||
world.Selection.Tick(world);
|
|
||||||
});
|
|
||||||
|
|
||||||
world.Tick();
|
|
||||||
|
|
||||||
PerfHistory.Tick();
|
|
||||||
}
|
|
||||||
else if (orderManager.NetFrameNumber == 0)
|
|
||||||
orderManager.LastTickTime = RunTime;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
PerfHistory.Tick();
|
PerfHistory.Tick();
|
||||||
|
}
|
||||||
|
else if (orderManager.NetFrameNumber == 0)
|
||||||
|
orderManager.LastTickTime = RunTime;
|
||||||
|
|
||||||
// Wait until we have done our first world Tick before TickRendering
|
// Wait until we have done our first world Tick before TickRendering
|
||||||
if (orderManager.LocalFrameNumber > 0)
|
if (orderManager.LocalFrameNumber > 0)
|
||||||
|
|||||||
@@ -132,9 +132,6 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
RefreshPalette();
|
RefreshPalette();
|
||||||
|
|
||||||
if (World.Type == WorldType.Shellmap && !Game.Settings.Game.ShowShellmap)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var renderables = GenerateRenderables();
|
var renderables = GenerateRenderables();
|
||||||
var bounds = Viewport.GetScissorBounds(World.Type != WorldType.Editor);
|
var bounds = Viewport.GetScissorBounds(World.Type != WorldType.Editor);
|
||||||
Game.Renderer.EnableScissor(bounds);
|
Game.Renderer.EnableScissor(bounds);
|
||||||
|
|||||||
@@ -158,8 +158,6 @@ namespace OpenRA
|
|||||||
|
|
||||||
public string Platform = "Default";
|
public string Platform = "Default";
|
||||||
|
|
||||||
public bool ShowShellmap = true;
|
|
||||||
|
|
||||||
public bool ViewportEdgeScroll = true;
|
public bool ViewportEdgeScroll = true;
|
||||||
public bool LockMouseWindow = false;
|
public bool LockMouseWindow = false;
|
||||||
public MouseScrollType MiddleMouseScroll = MouseScrollType.Standard;
|
public MouseScrollType MiddleMouseScroll = MouseScrollType.Standard;
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ namespace OpenRA
|
|||||||
Stream GetPCMInputStream();
|
Stream GetPCMInputStream();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum SoundType { World, UI }
|
||||||
|
|
||||||
public sealed class Sound : IDisposable
|
public sealed class Sound : IDisposable
|
||||||
{
|
{
|
||||||
readonly ISoundEngine soundEngine;
|
readonly ISoundEngine soundEngine;
|
||||||
@@ -92,10 +94,11 @@ namespace OpenRA
|
|||||||
soundEngine.SetListenerPosition(position);
|
soundEngine.SetListenerPosition(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISound Play(Player player, string name, bool headRelative, WPos pos, float volumeModifier = 1f, bool loop = false)
|
ISound Play(SoundType type, Player player, string name, bool headRelative, WPos pos, float volumeModifier = 1f, bool loop = false)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(name))
|
if (string.IsNullOrEmpty(name) || (DisableWorldSounds && type == SoundType.World))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (player != null && player != player.World.LocalPlayer)
|
if (player != null && player != player.World.LocalPlayer)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -119,14 +122,15 @@ namespace OpenRA
|
|||||||
soundEngine.Volume = 1f;
|
soundEngine.Volume = 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ISound Play(string name) { return Play(null, name, true, WPos.Zero, 1f); }
|
public bool DisableWorldSounds { get; set; }
|
||||||
public ISound Play(string name, WPos pos) { return Play(null, name, false, pos, 1f); }
|
public ISound Play(SoundType type, string name) { return Play(type, null, name, true, WPos.Zero, 1f); }
|
||||||
public ISound Play(string name, float volumeModifier) { return Play(null, name, true, WPos.Zero, volumeModifier); }
|
public ISound Play(SoundType type, string name, WPos pos) { return Play(type, null, name, false, pos, 1f); }
|
||||||
public ISound Play(string name, WPos pos, float volumeModifier) { return Play(null, name, false, pos, volumeModifier); }
|
public ISound Play(SoundType type, string name, float volumeModifier) { return Play(type, null, name, true, WPos.Zero, volumeModifier); }
|
||||||
public ISound PlayToPlayer(Player player, string name) { return Play(player, name, true, WPos.Zero, 1f); }
|
public ISound Play(SoundType type, string name, WPos pos, float volumeModifier) { return Play(type, null, name, false, pos, volumeModifier); }
|
||||||
public ISound PlayToPlayer(Player player, string name, WPos pos) { return Play(player, name, false, pos, 1f); }
|
public ISound PlayToPlayer(SoundType type, Player player, string name) { return Play(type, player, name, true, WPos.Zero, 1f); }
|
||||||
public ISound PlayLooped(string name) { return PlayLooped(name, WPos.Zero); }
|
public ISound PlayToPlayer(SoundType type, Player player, string name, WPos pos) { return Play(type, player, name, false, pos, 1f); }
|
||||||
public ISound PlayLooped(string name, WPos pos) { return Play(null, name, true, pos, 1f, true); }
|
public ISound PlayLooped(SoundType type, string name) { return PlayLooped(type, name, WPos.Zero); }
|
||||||
|
public ISound PlayLooped(SoundType type, string name, WPos pos) { return Play(type, null, name, true, pos, 1f, true); }
|
||||||
|
|
||||||
public void PlayVideo(byte[] raw, int channels, int sampleBits, int sampleRate)
|
public void PlayVideo(byte[] raw, int channels, int sampleBits, int sampleRate)
|
||||||
{
|
{
|
||||||
@@ -300,13 +304,13 @@ namespace OpenRA
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if played successfully
|
// Returns true if played successfully
|
||||||
public bool PlayPredefined(Ruleset ruleset, Player p, Actor voicedActor, string type, string definition, string variant,
|
public bool PlayPredefined(SoundType soundType, Ruleset ruleset, Player p, Actor voicedActor, string type, string definition, string variant,
|
||||||
bool relative, WPos pos, float volumeModifier, bool attenuateVolume)
|
bool relative, WPos pos, float volumeModifier, bool attenuateVolume)
|
||||||
{
|
{
|
||||||
if (ruleset == null)
|
if (ruleset == null)
|
||||||
throw new ArgumentNullException("ruleset");
|
throw new ArgumentNullException("ruleset");
|
||||||
|
|
||||||
if (definition == null)
|
if (definition == null || (DisableWorldSounds && soundType == SoundType.World))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (ruleset.Voices == null || ruleset.Notifications == null)
|
if (ruleset.Voices == null || ruleset.Notifications == null)
|
||||||
@@ -375,7 +379,7 @@ namespace OpenRA
|
|||||||
if (type == null || notification == null)
|
if (type == null || notification == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return PlayPredefined(rules, player, null, type.ToLowerInvariant(), notification, variant, true, WPos.Zero, 1f, false);
|
return PlayPredefined(SoundType.UI, rules, player, null, type.ToLowerInvariant(), notification, variant, true, WPos.Zero, 1f, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|||||||
@@ -307,7 +307,6 @@ namespace OpenRA
|
|||||||
public event Action<Actor> ActorAdded = _ => { };
|
public event Action<Actor> ActorAdded = _ => { };
|
||||||
public event Action<Actor> ActorRemoved = _ => { };
|
public event Action<Actor> ActorRemoved = _ => { };
|
||||||
|
|
||||||
public bool ShouldTick { get { return Type != WorldType.Shellmap || Game.Settings.Game.ShowShellmap; } }
|
|
||||||
public bool Paused { get; internal set; }
|
public bool Paused { get; internal set; }
|
||||||
public bool PredictedPaused { get; internal set; }
|
public bool PredictedPaused { get; internal set; }
|
||||||
public bool PauseStateLocked { get; set; }
|
public bool PauseStateLocked { get; set; }
|
||||||
|
|||||||
@@ -72,7 +72,6 @@
|
|||||||
<Compile Include="Traits\Render\WithReloadingSpriteTurret.cs" />
|
<Compile Include="Traits\Render\WithReloadingSpriteTurret.cs" />
|
||||||
<Compile Include="Traits\Render\WithRoof.cs" />
|
<Compile Include="Traits\Render\WithRoof.cs" />
|
||||||
<Compile Include="Traits\SupportPowers\IonCannonPower.cs" />
|
<Compile Include="Traits\SupportPowers\IonCannonPower.cs" />
|
||||||
<Compile Include="Widgets\Logic\CncMainMenuLogic.cs" />
|
|
||||||
<Compile Include="Widgets\Logic\ProductionTabsLogic.cs" />
|
<Compile Include="Widgets\Logic\ProductionTabsLogic.cs" />
|
||||||
<Compile Include="ImportTiberianDawnLegacyMapCommand.cs" />
|
<Compile Include="ImportTiberianDawnLegacyMapCommand.cs" />
|
||||||
<Compile Include="Projectiles\IonCannon.cs" />
|
<Compile Include="Projectiles\IonCannon.cs" />
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace OpenRA.Mods.Cnc.Effects
|
|||||||
anim.PlayThen(sequence, () => Finish(world));
|
anim.PlayThen(sequence, () => Finish(world));
|
||||||
|
|
||||||
if (weapon.Report != null && weapon.Report.Any())
|
if (weapon.Report != null && weapon.Report.Any())
|
||||||
Game.Sound.Play(weapon.Report.Random(firedBy.World.SharedRandom), launchPos);
|
Game.Sound.Play(SoundType.World, weapon.Report.Random(firedBy.World.SharedRandom), launchPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Tick(World world)
|
public void Tick(World world)
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
self.World.AddFrameEndTask(w =>
|
self.World.AddFrameEndTask(w =>
|
||||||
{
|
{
|
||||||
PlayLaunchSounds();
|
PlayLaunchSounds();
|
||||||
Game.Sound.Play(info.OnFireSound, self.World.Map.CenterOfCell(order.TargetLocation));
|
Game.Sound.Play(SoundType.World, info.OnFireSound, self.World.Map.CenterOfCell(order.TargetLocation));
|
||||||
w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, self.CenterPosition, order.TargetLocation,
|
w.Add(new IonCannon(self.Owner, info.WeaponInfo, w, self.CenterPosition, order.TargetLocation,
|
||||||
info.Effect, info.EffectSequence, info.EffectPalette, info.WeaponDelay));
|
info.Effect, info.EffectSequence, info.EffectPalette, info.WeaponDelay));
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation, either version 3 of
|
|
||||||
* the License, or (at your option) any later version. For more
|
|
||||||
* information, see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using OpenRA.Mods.Common.Widgets;
|
|
||||||
using OpenRA.Mods.Common.Widgets.Logic;
|
|
||||||
using OpenRA.Widgets;
|
|
||||||
|
|
||||||
namespace OpenRA.Mods.Cnc.Widgets.Logic
|
|
||||||
{
|
|
||||||
public class CncMainMenuLogic : MainMenuLogic
|
|
||||||
{
|
|
||||||
[ObjectCreator.UseCtor]
|
|
||||||
public CncMainMenuLogic(Widget widget, World world, ModData modData)
|
|
||||||
: base(widget, world, modData)
|
|
||||||
{
|
|
||||||
var shellmapDecorations = widget.Get("SHELLMAP_DECORATIONS");
|
|
||||||
shellmapDecorations.IsVisible = () => menuType != MenuType.None && Game.Settings.Game.ShowShellmap;
|
|
||||||
shellmapDecorations.Get<ImageWidget>("RECBLOCK").IsVisible = () => world.WorldTick / 25 % 2 == 0;
|
|
||||||
|
|
||||||
var shellmapDisabledDecorations = widget.Get("SHELLMAP_DISABLED_DECORATIONS");
|
|
||||||
shellmapDisabledDecorations.IsVisible = () => !Game.Settings.Game.ShowShellmap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -59,7 +59,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
if (!playedSound && helicopter.Info.TakeoffSound != null && self.IsAtGroundLevel())
|
if (!playedSound && helicopter.Info.TakeoffSound != null && self.IsAtGroundLevel())
|
||||||
{
|
{
|
||||||
Game.Sound.Play(helicopter.Info.TakeoffSound);
|
Game.Sound.Play(SoundType.World, helicopter.Info.TakeoffSound);
|
||||||
playedSound = true;
|
playedSound = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
if (!playedSound && helicopter.Info.LandingSound != null && !self.IsAtGroundLevel())
|
if (!playedSound && helicopter.Info.LandingSound != null && !self.IsAtGroundLevel())
|
||||||
{
|
{
|
||||||
Game.Sound.Play(helicopter.Info.LandingSound);
|
Game.Sound.Play(SoundType.World, helicopter.Info.LandingSound);
|
||||||
playedSound = true;
|
playedSound = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
var sound = pool.Info.RearmSound;
|
var sound = pool.Info.RearmSound;
|
||||||
if (sound != null)
|
if (sound != null)
|
||||||
Game.Sound.PlayToPlayer(self.Owner, sound, self.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, sound, self.CenterPosition);
|
||||||
|
|
||||||
ammoPoolsReloadTimes[pool] = pool.Info.ReloadDelay;
|
ammoPoolsReloadTimes[pool] = pool.Info.ReloadDelay;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Activities
|
|||||||
|
|
||||||
self.Dispose();
|
self.Dispose();
|
||||||
foreach (var s in Sounds)
|
foreach (var s in Sounds)
|
||||||
Game.Sound.PlayToPlayer(self.Owner, s, self.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, s, self.CenterPosition);
|
||||||
|
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Notification, self.Owner.Faction.InternalName);
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Notification, self.Owner.Faction.InternalName);
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
|
|
||||||
pos = launchPos;
|
pos = launchPos;
|
||||||
if (weapon.Report != null && weapon.Report.Any())
|
if (weapon.Report != null && weapon.Report.Any())
|
||||||
Game.Sound.Play(weapon.Report.Random(firedBy.World.SharedRandom), pos);
|
Game.Sound.Play(SoundType.World, weapon.Report.Random(firedBy.World.SharedRandom), pos);
|
||||||
|
|
||||||
if (skipAscent)
|
if (skipAscent)
|
||||||
ticks = turn;
|
ticks = turn;
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ namespace OpenRA.Mods.Common.Scripting
|
|||||||
[Desc("Play a sound file")]
|
[Desc("Play a sound file")]
|
||||||
public void PlaySound(string file)
|
public void PlaySound(string file)
|
||||||
{
|
{
|
||||||
Game.Sound.Play(file);
|
// TODO: Investigate how scripts use this function, and think about exposing the UI vs World distinction if needed
|
||||||
|
Game.Sound.Play(SoundType.World, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Desc("Play track defined in music.yaml or map.yaml, or keep track empty for playing a random song.")]
|
[Desc("Play track defined in music.yaml or map.yaml, or keep track empty for playing a random song.")]
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
self.World.Add(projectile);
|
self.World.Add(projectile);
|
||||||
|
|
||||||
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
||||||
Game.Sound.Play(args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
||||||
|
|
||||||
foreach (var na in self.TraitsImplementing<INotifyAttack>())
|
foreach (var na in self.TraitsImplementing<INotifyAttack>())
|
||||||
na.Attacking(self, target, this, barrel);
|
na.Attacking(self, target, this, barrel);
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
notify.Charging(self, target);
|
notify.Charging(self, target);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(attack.info.ChargeAudio))
|
if (!string.IsNullOrEmpty(attack.info.ChargeAudio))
|
||||||
Game.Sound.Play(attack.info.ChargeAudio, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, attack.info.ChargeAudio, self.CenterPosition);
|
||||||
|
|
||||||
return ActivityUtils.SequenceActivities(new Wait(attack.info.InitialChargeDelay), new ChargeFire(attack, target), this);
|
return ActivityUtils.SequenceActivities(new Wait(attack.info.InitialChargeDelay), new ChargeFire(attack, target), this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
RemoveSmudges();
|
RemoveSmudges();
|
||||||
|
|
||||||
foreach (var s in Info.UndeploySounds)
|
foreach (var s in Info.UndeploySounds)
|
||||||
Game.Sound.PlayToPlayer(self.Owner, s, self.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, s, self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyTransform.OnTransform(Actor self) { }
|
void INotifyTransform.OnTransform(Actor self) { }
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
// Gate was fully open
|
// Gate was fully open
|
||||||
if (Position == OpenPosition)
|
if (Position == OpenPosition)
|
||||||
{
|
{
|
||||||
Game.Sound.Play(info.ClosingSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.ClosingSound, self.CenterPosition);
|
||||||
self.World.ActorMap.AddInfluence(self, this);
|
self.World.ActorMap.AddInfluence(self, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
// Gate was fully closed
|
// Gate was fully closed
|
||||||
if (Position == 0)
|
if (Position == 0)
|
||||||
Game.Sound.Play(info.OpeningSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.OpeningSound, self.CenterPosition);
|
||||||
|
|
||||||
Position++;
|
Position++;
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
cloakedToken = upgradeManager.GrantCondition(self, Info.CloakedCondition);
|
cloakedToken = upgradeManager.GrantCondition(self, Info.CloakedCondition);
|
||||||
|
|
||||||
if (!self.TraitsImplementing<Cloak>().Any(a => a != this && a.Cloaked))
|
if (!self.TraitsImplementing<Cloak>().Any(a => a != this && a.Cloaked))
|
||||||
Game.Sound.Play(Info.CloakSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, Info.CloakSound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
else if (!isCloaked && wasCloaked)
|
else if (!isCloaked && wasCloaked)
|
||||||
{
|
{
|
||||||
@@ -156,7 +156,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
cloakedToken = upgradeManager.RevokeCondition(self, cloakedToken);
|
cloakedToken = upgradeManager.RevokeCondition(self, cloakedToken);
|
||||||
|
|
||||||
if (!self.TraitsImplementing<Cloak>().Any(a => a != this && a.Cloaked))
|
if (!self.TraitsImplementing<Cloak>().Any(a => a != this && a.Cloaked))
|
||||||
Game.Sound.Play(Info.UncloakSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, Info.UncloakSound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
wasCloaked = isCloaked;
|
wasCloaked = isCloaked;
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public virtual void Activate(Actor collector)
|
public virtual void Activate(Actor collector)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(collector.Owner, info.Notification);
|
Game.Sound.PlayToPlayer(SoundType.World, collector.Owner, info.Notification);
|
||||||
|
|
||||||
if (info.Effect != null)
|
if (info.Effect != null)
|
||||||
collector.World.AddFrameEndTask(w => w.Add(new CrateEffect(collector, info.Effect, info.Palette)));
|
collector.World.AddFrameEndTask(w => w.Add(new CrateEffect(collector, info.Effect, info.Palette)));
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (!CrushableInner(crushClasses, crusher.Owner))
|
if (!CrushableInner(crushClasses, crusher.Owner))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Game.Sound.Play(info.CrushSound, crusher.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.CrushSound, crusher.CenterPosition);
|
||||||
|
|
||||||
self.Kill(crusher);
|
self.Kill(crusher);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
w.Add(pilot);
|
w.Add(pilot);
|
||||||
pilot.QueueActivity(new Parachute(pilot, cp));
|
pilot.QueueActivity(new Parachute(pilot, cp));
|
||||||
});
|
});
|
||||||
Game.Sound.Play(info.ChuteSound, cp);
|
Game.Sound.Play(SoundType.World, info.ChuteSound, cp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (weapon.Report != null && weapon.Report.Any())
|
if (weapon.Report != null && weapon.Report.Any())
|
||||||
Game.Sound.Play(weapon.Report.Random(e.Attacker.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, weapon.Report.Random(e.Attacker.World.SharedRandom), self.CenterPosition);
|
||||||
|
|
||||||
if (info.Type == ExplosionType.Footprint && buildingInfo != null)
|
if (info.Type == ExplosionType.Footprint && buildingInfo != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
w.Add(a);
|
w.Add(a);
|
||||||
a.QueueActivity(new Parachute(a, self.CenterPosition));
|
a.QueueActivity(new Parachute(a, self.CenterPosition));
|
||||||
});
|
});
|
||||||
Game.Sound.Play(info.ChuteSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.ChuteSound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool IsSuitableCell(Actor actorToDrop, CPos p)
|
static bool IsSuitableCell(Actor actorToDrop, CPos p)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
var onWater = info.WaterTerrainTypes.Contains(self.World.Map.GetTerrainInfo(cell).Type);
|
var onWater = info.WaterTerrainTypes.Contains(self.World.Map.GetTerrainInfo(cell).Type);
|
||||||
|
|
||||||
var sound = onWater ? info.WaterImpactSound : info.GroundImpactSound;
|
var sound = onWater ? info.WaterImpactSound : info.GroundImpactSound;
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
|
|
||||||
var sequence = onWater ? info.WaterCorpseSequence : info.GroundCorpseSequence;
|
var sequence = onWater ? info.WaterCorpseSequence : info.GroundCorpseSequence;
|
||||||
var palette = onWater ? info.WaterCorpsePalette : info.GroundCorpsePalette;
|
var palette = onWater ? info.WaterCorpsePalette : info.GroundCorpsePalette;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
if (playSounds)
|
if (playSounds)
|
||||||
foreach (var s in buildingInfo.BuildSounds)
|
foreach (var s in buildingInfo.BuildSounds)
|
||||||
Game.Sound.PlayToPlayer(order.Player, s, building.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, order.Player, s, building.CenterPosition);
|
||||||
|
|
||||||
playSounds = false;
|
playSounds = false;
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
pluggable.EnablePlug(host, plugInfo.Type);
|
pluggable.EnablePlug(host, plugInfo.Type);
|
||||||
foreach (var s in buildingInfo.BuildSounds)
|
foreach (var s in buildingInfo.BuildSounds)
|
||||||
Game.Sound.PlayToPlayer(order.Player, s, host.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, order.Player, s, host.CenterPosition);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -126,7 +126,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
});
|
});
|
||||||
|
|
||||||
foreach (var s in buildingInfo.BuildSounds)
|
foreach (var s in buildingInfo.BuildSounds)
|
||||||
Game.Sound.PlayToPlayer(order.Player, s, building.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.World, order.Player, s, building.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (producer.Actor != null)
|
if (producer.Actor != null)
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
cargo.Delivered(self);
|
cargo.Delivered(self);
|
||||||
|
|
||||||
self.World.AddFrameEndTask(ww => DoProduction(self, producee, exit, factionVariant));
|
self.World.AddFrameEndTask(ww => DoProduction(self, producee, exit, factionVariant));
|
||||||
Game.Sound.Play(info.ChuteSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.ChuteSound, self.CenterPosition);
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", info.ReadyAudio, self.Owner.Faction.InternalName);
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", info.ReadyAudio, self.Owner.Faction.InternalName);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
|
|
||||||
foreach (var s in info.SellSounds)
|
foreach (var s in info.SellSounds)
|
||||||
Game.Sound.PlayToPlayer(self.Owner, s, self.CenterPosition);
|
Game.Sound.PlayToPlayer(SoundType.UI, self.Owner, s, self.CenterPosition);
|
||||||
|
|
||||||
foreach (var ns in self.TraitsImplementing<INotifySold>())
|
foreach (var ns in self.TraitsImplementing<INotifySold>())
|
||||||
ns.Selling(self);
|
ns.Selling(self);
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
|||||||
if (wasDisabled && Info.Interval <= 0)
|
if (wasDisabled && Info.Interval <= 0)
|
||||||
{
|
{
|
||||||
if (self.OccupiesSpace != null)
|
if (self.OccupiesSpace != null)
|
||||||
currentSound = Game.Sound.PlayLooped(Info.SoundFile, self.CenterPosition);
|
currentSound = Game.Sound.PlayLooped(SoundType.World, Info.SoundFile, self.CenterPosition);
|
||||||
else
|
else
|
||||||
currentSound = Game.Sound.PlayLooped(Info.SoundFile);
|
currentSound = Game.Sound.PlayLooped(SoundType.World, Info.SoundFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
wasDisabled = false;
|
wasDisabled = false;
|
||||||
@@ -66,9 +66,9 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
|||||||
interval = Info.Interval;
|
interval = Info.Interval;
|
||||||
|
|
||||||
if (self.OccupiesSpace != null)
|
if (self.OccupiesSpace != null)
|
||||||
Game.Sound.Play(Info.SoundFile, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, Info.SoundFile, self.CenterPosition);
|
||||||
else
|
else
|
||||||
Game.Sound.Play(Info.SoundFile);
|
Game.Sound.Play(SoundType.World, Info.SoundFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
|||||||
void PlaySound(Actor self)
|
void PlaySound(Actor self)
|
||||||
{
|
{
|
||||||
if (info.Sounds.Any())
|
if (info.Sounds.Any())
|
||||||
Game.Sound.Play(info.Sounds.Random(self.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.Sounds.Random(self.World.SharedRandom), self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyAttack.Attacking(Actor self, Target target, Armament a, Barrel barrel)
|
void INotifyAttack.Attacking(Actor self, Target target, Armament a, Barrel barrel)
|
||||||
|
|||||||
@@ -40,12 +40,12 @@ namespace OpenRA.Mods.Common.Traits.Sound
|
|||||||
if (e.DamageState == DamageState.Dead)
|
if (e.DamageState == DamageState.Dead)
|
||||||
{
|
{
|
||||||
var sound = info.DestroyedSounds.RandomOrDefault(rand);
|
var sound = info.DestroyedSounds.RandomOrDefault(rand);
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
else if (e.DamageState >= DamageState.Heavy && e.PreviousDamageState < DamageState.Heavy)
|
else if (e.DamageState >= DamageState.Heavy && e.PreviousDamageState < DamageState.Heavy)
|
||||||
{
|
{
|
||||||
var sound = info.DamagedSounds.RandomOrDefault(rand);
|
var sound = info.DamagedSounds.RandomOrDefault(rand);
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(SoundType.World, manager.Self.Owner, Info.SelectTargetSound);
|
||||||
self.World.OrderGenerator = new SelectUpgradeTarget(Self.World, order, manager, this);
|
self.World.OrderGenerator = new SelectUpgradeTarget(Self.World, order, manager, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (wsb != null && wsb.DefaultAnimation.HasSequence(info.Sequence))
|
if (wsb != null && wsb.DefaultAnimation.HasSequence(info.Sequence))
|
||||||
wsb.PlayCustomAnimation(self, info.Sequence, () => wsb.CancelCustomAnimation(self));
|
wsb.PlayCustomAnimation(self, info.Sequence, () => wsb.CancelCustomAnimation(self));
|
||||||
|
|
||||||
Game.Sound.Play(info.OnFireSound, self.World.Map.CenterOfCell(order.TargetLocation));
|
Game.Sound.Play(SoundType.World, info.OnFireSound, self.World.Map.CenterOfCell(order.TargetLocation));
|
||||||
|
|
||||||
foreach (var a in UnitsInRange(order.TargetLocation))
|
foreach (var a in UnitsInRange(order.TargetLocation))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
var location = self.World.Map.CenterOfCell(order.TargetLocation);
|
var location = self.World.Map.CenterOfCell(order.TargetLocation);
|
||||||
|
|
||||||
Game.Sound.Play(info.DeploySound, location);
|
Game.Sound.Play(SoundType.World, info.DeploySound, location);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(info.EffectSequence) && !string.IsNullOrEmpty(info.EffectPalette))
|
if (!string.IsNullOrEmpty(info.EffectSequence) && !string.IsNullOrEmpty(info.EffectPalette))
|
||||||
w.Add(new SpriteEffect(location, w, info.EffectImage, info.EffectSequence, info.EffectPalette));
|
w.Add(new SpriteEffect(location, w, info.EffectImage, info.EffectSequence, info.EffectPalette));
|
||||||
|
|||||||
@@ -89,21 +89,21 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public virtual void Charging(Actor self, string key)
|
public virtual void Charging(Actor self, string key)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(self.Owner, Info.BeginChargeSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, self.Owner, Info.BeginChargeSound);
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
||||||
Info.BeginChargeSpeechNotification, self.Owner.Faction.InternalName);
|
Info.BeginChargeSpeechNotification, self.Owner.Faction.InternalName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Charged(Actor self, string key)
|
public virtual void Charged(Actor self, string key)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(self.Owner, Info.EndChargeSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, self.Owner, Info.EndChargeSound);
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
||||||
Info.EndChargeSpeechNotification, self.Owner.Faction.InternalName);
|
Info.EndChargeSpeechNotification, self.Owner.Faction.InternalName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
public virtual void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, manager.Self.Owner, Info.SelectTargetSound);
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
||||||
Info.SelectTargetSpeechNotification, self.Owner.Faction.InternalName);
|
Info.SelectTargetSpeechNotification, self.Owner.Faction.InternalName);
|
||||||
self.World.OrderGenerator = new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left);
|
self.World.OrderGenerator = new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left);
|
||||||
@@ -125,7 +125,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
var renderPlayer = Self.World.RenderPlayer;
|
var renderPlayer = Self.World.RenderPlayer;
|
||||||
var isAllied = Self.Owner.IsAlliedWith(renderPlayer);
|
var isAllied = Self.Owner.IsAlliedWith(renderPlayer);
|
||||||
Game.Sound.Play(isAllied ? Info.LaunchSound : Info.IncomingSound);
|
Game.Sound.Play(SoundType.UI, isAllied ? Info.LaunchSound : Info.IncomingSound);
|
||||||
|
|
||||||
// IsAlliedWith returns true if renderPlayer is null, so we are safe here.
|
// IsAlliedWith returns true if renderPlayer is null, so we are safe here.
|
||||||
var toPlayer = isAllied ? renderPlayer ?? Self.Owner : renderPlayer;
|
var toPlayer = isAllied ? renderPlayer ?? Self.Owner : renderPlayer;
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
self.World.Add(projectile);
|
self.World.Add(projectile);
|
||||||
|
|
||||||
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
||||||
Game.Sound.Play(args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
// Only play the "Cannot deploy here" audio
|
// Only play the "Cannot deploy here" audio
|
||||||
// for non-queued orders
|
// for non-queued orders
|
||||||
foreach (var s in info.NoTransformSounds)
|
foreach (var s in info.NoTransformSounds)
|
||||||
Game.Sound.PlayToPlayer(self.Owner, s);
|
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, s);
|
||||||
|
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", info.NoTransformNotification, self.Owner.Faction.InternalName);
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", info.NoTransformNotification, self.Owner.Faction.InternalName);
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
conditionToken = manager.GrantCondition(self, info.Condition);
|
conditionToken = manager.GrantCondition(self, info.Condition);
|
||||||
|
|
||||||
var sound = info.EnabledSounds.RandomOrDefault(Game.CosmeticRandom);
|
var sound = info.EnabledSounds.RandomOrDefault(Game.CosmeticRandom);
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
|
void INotifyDamageStateChanged.DamageStateChanged(Actor self, AttackInfo e)
|
||||||
@@ -80,7 +80,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
conditionToken = manager.RevokeCondition(self, conditionToken);
|
conditionToken = manager.RevokeCondition(self, conditionToken);
|
||||||
|
|
||||||
var sound = info.DisabledSounds.RandomOrDefault(Game.CosmeticRandom);
|
var sound = info.DisabledSounds.RandomOrDefault(Game.CosmeticRandom);
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(info.DeploySound))
|
if (!string.IsNullOrEmpty(info.DeploySound))
|
||||||
Game.Sound.Play(info.DeploySound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.DeploySound, self.CenterPosition);
|
||||||
|
|
||||||
// Revoke upgrades that are used while undeployed.
|
// Revoke upgrades that are used while undeployed.
|
||||||
if (!init)
|
if (!init)
|
||||||
@@ -227,7 +227,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(info.UndeploySound))
|
if (!string.IsNullOrEmpty(info.UndeploySound))
|
||||||
Game.Sound.Play(info.UndeploySound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, info.UndeploySound, self.CenterPosition);
|
||||||
|
|
||||||
if (!init)
|
if (!init)
|
||||||
OnUndeployStarted();
|
OnUndeployStarted();
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
if (cachedDisabled != disabled)
|
if (cachedDisabled != disabled)
|
||||||
{
|
{
|
||||||
Game.Sound.Play(disabled ? info.DisableSound : info.EnableSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, disabled ? info.DisableSound : info.EnableSound, self.CenterPosition);
|
||||||
desiredRange = disabled ? WDist.Zero : info.Range;
|
desiredRange = disabled ? WDist.Zero : info.Range;
|
||||||
desiredVRange = disabled ? WDist.Zero : info.MaximumVerticalOffset;
|
desiredVRange = disabled ? WDist.Zero : info.MaximumVerticalOffset;
|
||||||
cachedDisabled = disabled;
|
cachedDisabled = disabled;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
var type = Info.VoiceSet.ToLowerInvariant();
|
var type = Info.VoiceSet.ToLowerInvariant();
|
||||||
var volume = Info.Volume;
|
var volume = Info.Volume;
|
||||||
return Game.Sound.PlayPredefined(self.World.Map.Rules, null, self, type, phrase, variant, true, WPos.Zero, volume, true);
|
return Game.Sound.PlayPredefined(SoundType.World, self.World.Map.Rules, null, self, type, phrase, variant, true, WPos.Zero, volume, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PlayVoiceLocal(Actor self, string phrase, string variant, float volume)
|
public bool PlayVoiceLocal(Actor self, string phrase, string variant, float volume)
|
||||||
@@ -59,7 +59,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
var type = Info.VoiceSet.ToLowerInvariant();
|
var type = Info.VoiceSet.ToLowerInvariant();
|
||||||
return Game.Sound.PlayPredefined(self.World.Map.Rules, null, self, type, phrase, variant, false, self.CenterPosition, volume, true);
|
return Game.Sound.PlayPredefined(SoundType.World, self.World.Map.Rules, null, self, type, phrase, variant, false, self.CenterPosition, volume, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HasVoice(Actor self, string voice)
|
public bool HasVoice(Actor self, string voice)
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
"It cannot be paused, but can be overridden by selecting a new track.")]
|
"It cannot be paused, but can be overridden by selecting a new track.")]
|
||||||
public readonly string BackgroundMusic = null;
|
public readonly string BackgroundMusic = null;
|
||||||
|
|
||||||
|
[Desc("Disable all world sounds (combat etc).")]
|
||||||
|
public readonly bool DisableWorldSounds = false;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new MusicPlaylist(init.World, this); }
|
public object Create(ActorInitializer init) { return new MusicPlaylist(init.World, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +58,9 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
this.world = world;
|
this.world = world;
|
||||||
|
|
||||||
|
if (info.DisableWorldSounds)
|
||||||
|
Game.Sound.DisableWorldSounds = true;
|
||||||
|
|
||||||
IsMusicInstalled = world.Map.Rules.InstalledMusic.Any();
|
IsMusicInstalled = world.Map.Rules.InstalledMusic.Any();
|
||||||
if (!IsMusicInstalled)
|
if (!IsMusicInstalled)
|
||||||
return;
|
return;
|
||||||
@@ -220,6 +226,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
if (currentSong != null)
|
if (currentSong != null)
|
||||||
Game.Sound.StopMusic();
|
Game.Sound.StopMusic();
|
||||||
|
|
||||||
|
Game.Sound.DisableWorldSounds = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ namespace OpenRA.Mods.Common.Warheads
|
|||||||
|
|
||||||
var impactSound = ImpactSounds.RandomOrDefault(Game.CosmeticRandom);
|
var impactSound = ImpactSounds.RandomOrDefault(Game.CosmeticRandom);
|
||||||
if (impactSound != null)
|
if (impactSound != null)
|
||||||
Game.Sound.Play(impactSound, pos);
|
Game.Sound.Play(SoundType.World, impactSound, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsValidImpact(WPos pos, Actor firedBy)
|
public bool IsValidImpact(WPos pos, Actor firedBy)
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
recentLines.Add(new ChatLine(from, text, Game.LocalTick + RemoveTime, c));
|
recentLines.Add(new ChatLine(from, text, Game.LocalTick + RemoveTime, c));
|
||||||
|
|
||||||
if (Notification != null)
|
if (Notification != null)
|
||||||
Game.Sound.Play(Notification);
|
Game.Sound.Play(SoundType.UI, Notification);
|
||||||
|
|
||||||
while (recentLines.Count > LogLength)
|
while (recentLines.Count > LogLength)
|
||||||
recentLines.RemoveAt(0);
|
recentLines.RemoveAt(0);
|
||||||
|
|||||||
@@ -105,12 +105,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
if (button.Pause && world.LobbyInfo.IsSinglePlayer)
|
if (button.Pause && world.LobbyInfo.IsSinglePlayer)
|
||||||
world.SetPauseState(true);
|
world.SetPauseState(true);
|
||||||
|
|
||||||
|
var cachedDisableWorldSounds = Game.Sound.DisableWorldSounds;
|
||||||
|
if (button.DisableWorldSounds)
|
||||||
|
Game.Sound.DisableWorldSounds = true;
|
||||||
|
|
||||||
widgetArgs = widgetArgs ?? new WidgetArgs();
|
widgetArgs = widgetArgs ?? new WidgetArgs();
|
||||||
widgetArgs.Add("onExit", () =>
|
widgetArgs.Add("onExit", () =>
|
||||||
{
|
{
|
||||||
if (button.HideIngameUI)
|
if (button.HideIngameUI)
|
||||||
worldRoot.IsVisible = () => true;
|
worldRoot.IsVisible = () => true;
|
||||||
|
|
||||||
|
if (button.DisableWorldSounds)
|
||||||
|
Game.Sound.DisableWorldSounds = cachedDisableWorldSounds;
|
||||||
|
|
||||||
if (button.Pause && world.LobbyInfo.IsSinglePlayer)
|
if (button.Pause && world.LobbyInfo.IsSinglePlayer)
|
||||||
world.SetPauseState(cachedPause);
|
world.SetPauseState(cachedPause);
|
||||||
|
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
BindCheckboxPref(panel, "PIXELDOUBLE_CHECKBOX", ds, "PixelDouble");
|
BindCheckboxPref(panel, "PIXELDOUBLE_CHECKBOX", ds, "PixelDouble");
|
||||||
BindCheckboxPref(panel, "CURSORDOUBLE_CHECKBOX", ds, "CursorDouble");
|
BindCheckboxPref(panel, "CURSORDOUBLE_CHECKBOX", ds, "CursorDouble");
|
||||||
BindCheckboxPref(panel, "FRAME_LIMIT_CHECKBOX", ds, "CapFramerate");
|
BindCheckboxPref(panel, "FRAME_LIMIT_CHECKBOX", ds, "CapFramerate");
|
||||||
BindCheckboxPref(panel, "SHOW_SHELLMAP", gs, "ShowShellmap");
|
|
||||||
BindCheckboxPref(panel, "DISPLAY_TARGET_LINES_CHECKBOX", gs, "DrawTargetLine");
|
BindCheckboxPref(panel, "DISPLAY_TARGET_LINES_CHECKBOX", gs, "DrawTargetLine");
|
||||||
BindCheckboxPref(panel, "PLAYER_STANCE_COLORS_CHECKBOX", gs, "UsePlayerStanceColors");
|
BindCheckboxPref(panel, "PLAYER_STANCE_COLORS_CHECKBOX", gs, "UsePlayerStanceColors");
|
||||||
|
|
||||||
@@ -278,15 +277,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
Action ResetDisplayPanel(Widget panel)
|
Action ResetDisplayPanel(Widget panel)
|
||||||
{
|
{
|
||||||
var ds = Game.Settings.Graphics;
|
var ds = Game.Settings.Graphics;
|
||||||
var gs = Game.Settings.Game;
|
|
||||||
var ps = Game.Settings.Player;
|
var ps = Game.Settings.Player;
|
||||||
var dds = new GraphicSettings();
|
var dds = new GraphicSettings();
|
||||||
var dgs = new GameSettings();
|
|
||||||
var dps = new PlayerSettings();
|
var dps = new PlayerSettings();
|
||||||
return () =>
|
return () =>
|
||||||
{
|
{
|
||||||
gs.ShowShellmap = dgs.ShowShellmap;
|
|
||||||
|
|
||||||
ds.CapFramerate = dds.CapFramerate;
|
ds.CapFramerate = dds.CapFramerate;
|
||||||
ds.MaxFramerate = dds.MaxFramerate;
|
ds.MaxFramerate = dds.MaxFramerate;
|
||||||
ds.Language = dds.Language;
|
ds.Language = dds.Language;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
public readonly string MenuContainer = "INGAME_MENU";
|
public readonly string MenuContainer = "INGAME_MENU";
|
||||||
public readonly bool Pause = true;
|
public readonly bool Pause = true;
|
||||||
public readonly bool HideIngameUI = true;
|
public readonly bool HideIngameUI = true;
|
||||||
|
public readonly bool DisableWorldSounds = false;
|
||||||
|
|
||||||
[ObjectCreator.UseCtor]
|
[ObjectCreator.UseCtor]
|
||||||
public MenuButtonWidget(ModData modData)
|
public MenuButtonWidget(ModData modData)
|
||||||
|
|||||||
@@ -218,14 +218,14 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
{
|
{
|
||||||
if (PickUpCompletedBuildingIcon(icon, item))
|
if (PickUpCompletedBuildingIcon(icon, item))
|
||||||
{
|
{
|
||||||
Game.Sound.Play(TabClick);
|
Game.Sound.Play(SoundType.UI, TabClick);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item != null && item.Paused)
|
if (item != null && item.Paused)
|
||||||
{
|
{
|
||||||
// Resume a paused item
|
// Resume a paused item
|
||||||
Game.Sound.Play(TabClick);
|
Game.Sound.Play(SoundType.UI, TabClick);
|
||||||
World.IssueOrder(Order.PauseProduction(CurrentQueue.Actor, icon.Name, false));
|
World.IssueOrder(Order.PauseProduction(CurrentQueue.Actor, icon.Name, false));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -233,7 +233,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
if (CurrentQueue.BuildableItems().Any(a => a.Name == icon.Name))
|
if (CurrentQueue.BuildableItems().Any(a => a.Name == icon.Name))
|
||||||
{
|
{
|
||||||
// Queue a new item
|
// Queue a new item
|
||||||
Game.Sound.Play(TabClick);
|
Game.Sound.Play(SoundType.UI, TabClick);
|
||||||
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Speech", CurrentQueue.Info.QueuedAudio, World.LocalPlayer.Faction.InternalName);
|
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Speech", CurrentQueue.Info.QueuedAudio, World.LocalPlayer.Faction.InternalName);
|
||||||
World.IssueOrder(Order.StartProduction(CurrentQueue.Actor, icon.Name, handleCount));
|
World.IssueOrder(Order.StartProduction(CurrentQueue.Actor, icon.Name, handleCount));
|
||||||
return true;
|
return true;
|
||||||
@@ -247,7 +247,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
if (item == null)
|
if (item == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Game.Sound.Play(TabClick);
|
Game.Sound.Play(SoundType.UI, TabClick);
|
||||||
|
|
||||||
if (item.Paused || item.Done || item.TotalCost == item.RemainingCost)
|
if (item.Paused || item.Done || item.TotalCost == item.RemainingCost)
|
||||||
{
|
{
|
||||||
@@ -271,7 +271,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Directly cancel, skipping "on-hold"
|
// Directly cancel, skipping "on-hold"
|
||||||
Game.Sound.Play(TabClick);
|
Game.Sound.Play(SoundType.UI, TabClick);
|
||||||
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Speech", CurrentQueue.Info.CancelledAudio, World.LocalPlayer.Faction.InternalName);
|
Game.Sound.PlayNotification(World.Map.Rules, World.LocalPlayer, "Speech", CurrentQueue.Info.CancelledAudio, World.LocalPlayer.Faction.InternalName);
|
||||||
World.IssueOrder(Order.CancelProduction(CurrentQueue.Actor, icon.Name, handleCount));
|
World.IssueOrder(Order.CancelProduction(CurrentQueue.Actor, icon.Name, handleCount));
|
||||||
|
|
||||||
@@ -289,7 +289,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
: false;
|
: false;
|
||||||
|
|
||||||
if (!handled)
|
if (!handled)
|
||||||
Game.Sound.Play(DisabledTabClick);
|
Game.Sound.Play(SoundType.UI, DisabledTabClick);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
// Enable/Disable the radar
|
// Enable/Disable the radar
|
||||||
var enabled = IsEnabled();
|
var enabled = IsEnabled();
|
||||||
if (enabled != cachedEnabled)
|
if (enabled != cachedEnabled)
|
||||||
Game.Sound.Play(enabled ? RadarOnlineSound : RadarOfflineSound);
|
Game.Sound.Play(SoundType.UI, enabled ? RadarOnlineSound : RadarOfflineSound);
|
||||||
cachedEnabled = enabled;
|
cachedEnabled = enabled;
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
{
|
{
|
||||||
if (!clicked.Power.Active)
|
if (!clicked.Power.Active)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(spm.Self.Owner, clicked.Power.Info.InsufficientPowerSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, spm.Self.Owner, clicked.Power.Info.InsufficientPowerSound);
|
||||||
Game.Sound.PlayNotification(spm.Self.World.Map.Rules, spm.Self.Owner, "Speech",
|
Game.Sound.PlayNotification(spm.Self.World.Map.Rules, spm.Self.Owner, "Speech",
|
||||||
clicked.Power.Info.InsufficientPowerSpeechNotification, spm.Self.Owner.Faction.InternalName);
|
clicked.Power.Info.InsufficientPowerSpeechNotification, spm.Self.Owner.Faction.InternalName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.D2k.Activities
|
|||||||
|
|
||||||
var attackPosition = self.CenterPosition;
|
var attackPosition = self.CenterPosition;
|
||||||
var affectedPlayers = targets.Select(x => x.Owner).Distinct().ToList();
|
var affectedPlayers = targets.Select(x => x.Owner).Distinct().ToList();
|
||||||
Game.Sound.Play(swallow.Info.WormAttackSound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, swallow.Info.WormAttackSound, self.CenterPosition);
|
||||||
|
|
||||||
Game.RunAfterDelay(1000, () =>
|
Game.RunAfterDelay(1000, () =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
self.World.Add(projectile);
|
self.World.Add(projectile);
|
||||||
|
|
||||||
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
if (args.Weapon.Report != null && args.Weapon.Report.Any())
|
||||||
Game.Sound.Play(args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, args.Weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
self.Trait<WithInfantryBody>().Attacking(self, Target.FromActor(target), a);
|
self.Trait<WithInfantryBody>().Attacking(self, Target.FromActor(target), a);
|
||||||
|
|
||||||
if (weapon.Report != null && weapon.Report.Any())
|
if (weapon.Report != null && weapon.Report.Any())
|
||||||
Game.Sound.Play(weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
Game.Sound.Play(SoundType.World, weapon.Report.Random(self.World.SharedRandom), self.CenterPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Activity Tick(Actor self)
|
public override Activity Tick(Actor self)
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
|
|
||||||
destination = bestCell.Value;
|
destination = bestCell.Value;
|
||||||
|
|
||||||
Game.Sound.Play(sound, self.CenterPosition);
|
Game.Sound.Play(SoundType.World, sound, self.CenterPosition);
|
||||||
Game.Sound.Play(sound, self.World.Map.CenterOfCell(destination));
|
Game.Sound.Play(SoundType.World, sound, self.World.Map.CenterOfCell(destination));
|
||||||
|
|
||||||
self.Trait<IPositionable>().SetPosition(self, destination);
|
self.Trait<IPositionable>().SetPosition(self, destination);
|
||||||
self.Generation++;
|
self.Generation++;
|
||||||
|
|||||||
@@ -159,9 +159,9 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
wfsb.PlayCustomAnimationRepeating(self, info.ThumpSequence);
|
wfsb.PlayCustomAnimationRepeating(self, info.ThumpSequence);
|
||||||
deployed = true;
|
deployed = true;
|
||||||
self.QueueActivity(new Wait(info.ChargeDelay, false));
|
self.QueueActivity(new Wait(info.ChargeDelay, false));
|
||||||
self.QueueActivity(new CallFunc(() => Game.Sound.Play(info.ChargeSound, self.CenterPosition)));
|
self.QueueActivity(new CallFunc(() => Game.Sound.Play(SoundType.World, info.ChargeSound, self.CenterPosition)));
|
||||||
self.QueueActivity(new Wait(info.DetonationDelay, false));
|
self.QueueActivity(new Wait(info.DetonationDelay, false));
|
||||||
self.QueueActivity(new CallFunc(() => Game.Sound.Play(info.DetonationSound, self.CenterPosition)));
|
self.QueueActivity(new CallFunc(() => Game.Sound.Play(SoundType.World, info.DetonationSound, self.CenterPosition)));
|
||||||
self.QueueActivity(new CallFunc(Detonate));
|
self.QueueActivity(new CallFunc(Detonate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
|
|
||||||
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, manager.Self.Owner, Info.SelectTargetSound);
|
||||||
self.World.OrderGenerator = new SelectChronoshiftTarget(Self.World, order, manager, this);
|
self.World.OrderGenerator = new SelectChronoshiftTarget(Self.World, order, manager, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ namespace OpenRA.Mods.RA.Traits
|
|||||||
|
|
||||||
self.World.AddFrameEndTask(w =>
|
self.World.AddFrameEndTask(w =>
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(self.Owner, Info.LaunchSound);
|
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, Info.LaunchSound);
|
||||||
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech",
|
||||||
Info.LaunchSpeechNotification, self.Owner.Faction.InternalName);
|
Info.LaunchSpeechNotification, self.Owner.Faction.InternalName);
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.TS.Traits
|
|||||||
|
|
||||||
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
public override void SelectTarget(Actor self, string order, SupportPowerManager manager)
|
||||||
{
|
{
|
||||||
Game.Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound);
|
Game.Sound.PlayToPlayer(SoundType.UI, manager.Self.Owner, Info.SelectTargetSound);
|
||||||
self.World.OrderGenerator = new SelectAttackPowerTarget(self, order, manager, info.Cursor, MouseButton.Left, attack);
|
self.World.OrderGenerator = new SelectAttackPowerTarget(self, order, manager, info.Cursor, MouseButton.Left, attack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ Container@OBSERVER_WIDGETS:
|
|||||||
Height: 25
|
Height: 25
|
||||||
TooltipText: Menu
|
TooltipText: Menu
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
Children:
|
Children:
|
||||||
Image:
|
Image:
|
||||||
X: 7
|
X: 7
|
||||||
@@ -275,6 +276,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Font: Bold
|
Font: Bold
|
||||||
TooltipText: Menu
|
TooltipText: Menu
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
X: 7
|
X: 7
|
||||||
|
|||||||
@@ -1,35 +1,13 @@
|
|||||||
Container@MENU_BACKGROUND:
|
Container@MENU_BACKGROUND:
|
||||||
Width: WINDOW_RIGHT
|
Width: WINDOW_RIGHT
|
||||||
Height: WINDOW_BOTTOM
|
Height: WINDOW_BOTTOM
|
||||||
Logic: CncMainMenuLogic
|
Logic: MainMenuLogic
|
||||||
Children:
|
Children:
|
||||||
Container@MUSICBUTTONS:
|
Container@MUSICBUTTONS:
|
||||||
Logic: MusicControllerLogic
|
Logic: MusicControllerLogic
|
||||||
Children:
|
Children:
|
||||||
LogicKeyListener@MUSICCONTROLLER_KEYHANDLER:
|
LogicKeyListener@MUSICCONTROLLER_KEYHANDLER:
|
||||||
Container@SHELLMAP_DECORATIONS:
|
Container@SHELLMAP_DECORATIONS:
|
||||||
Children:
|
|
||||||
Image@RETICLE:
|
|
||||||
X: (WINDOW_RIGHT-WIDTH)/2
|
|
||||||
Y: (WINDOW_BOTTOM-HEIGHT)/2
|
|
||||||
Width: 512
|
|
||||||
Height: 512
|
|
||||||
ImageCollection: shellmap
|
|
||||||
ImageName: reticle
|
|
||||||
Label@REC:
|
|
||||||
X: (WINDOW_RIGHT-512)/2+10
|
|
||||||
Y: (WINDOW_BOTTOM+512)/2-28
|
|
||||||
Height: 18
|
|
||||||
Font: Bold
|
|
||||||
Text: REC
|
|
||||||
Image@RECBLOCK:
|
|
||||||
X: (WINDOW_RIGHT-512)/2+40
|
|
||||||
Y: (WINDOW_BOTTOM+512)/2-25
|
|
||||||
Width: 16
|
|
||||||
Height: 16
|
|
||||||
ImageCollection: shellmapbits
|
|
||||||
ImageName: record
|
|
||||||
Container@SHELLMAP_DISABLED_DECORATIONS:
|
|
||||||
Children:
|
Children:
|
||||||
Image@NOD:
|
Image@NOD:
|
||||||
X: WINDOW_RIGHT/2-384
|
X: WINDOW_RIGHT/2-384
|
||||||
|
|||||||
@@ -152,28 +152,21 @@ Container@SETTINGS_PANEL:
|
|||||||
Height: 20
|
Height: 20
|
||||||
Font: Regular
|
Font: Regular
|
||||||
Text: Player Stance Colors
|
Text: Player Stance Colors
|
||||||
Checkbox@SHOW_SHELLMAP:
|
|
||||||
X: 15
|
|
||||||
Y: 185
|
|
||||||
Width: 200
|
|
||||||
Height: 20
|
|
||||||
Font: Regular
|
|
||||||
Text: Show Shellmap
|
|
||||||
Label@PLAYER:
|
Label@PLAYER:
|
||||||
Text: Player:
|
Text: Player:
|
||||||
X: 15
|
X: 15
|
||||||
Y: 225
|
Y: 195
|
||||||
TextField@PLAYERNAME:
|
TextField@PLAYERNAME:
|
||||||
Text: Name
|
Text: Name
|
||||||
X: 65
|
X: 65
|
||||||
Y: 215
|
Y: 185
|
||||||
Width: 145
|
Width: 145
|
||||||
Height: 25
|
Height: 25
|
||||||
MaxLength: 16
|
MaxLength: 16
|
||||||
ColorPreviewManager@COLOR_MANAGER:
|
ColorPreviewManager@COLOR_MANAGER:
|
||||||
DropDownButton@PLAYERCOLOR:
|
DropDownButton@PLAYERCOLOR:
|
||||||
X: 215
|
X: 215
|
||||||
Y: 215
|
Y: 185
|
||||||
Width: 70
|
Width: 70
|
||||||
Height: 25
|
Height: 25
|
||||||
IgnoreChildMouseOver: true
|
IgnoreChildMouseOver: true
|
||||||
|
|||||||
BIN
mods/cnc/maps/blank-shellmap/map.bin
Normal file
BIN
mods/cnc/maps/blank-shellmap/map.bin
Normal file
Binary file not shown.
BIN
mods/cnc/maps/blank-shellmap/map.png
Normal file
BIN
mods/cnc/maps/blank-shellmap/map.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 147 B |
35
mods/cnc/maps/blank-shellmap/map.yaml
Normal file
35
mods/cnc/maps/blank-shellmap/map.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
MapFormat: 11
|
||||||
|
|
||||||
|
RequiresMod: cnc
|
||||||
|
|
||||||
|
Title: Blank Shellmap
|
||||||
|
|
||||||
|
Author: Paul Chote
|
||||||
|
|
||||||
|
Tileset: DESERT
|
||||||
|
|
||||||
|
MapSize: 5,5
|
||||||
|
|
||||||
|
Bounds: 1,1,1,1
|
||||||
|
|
||||||
|
Visibility: Shellmap
|
||||||
|
|
||||||
|
Categories: Shellmap
|
||||||
|
|
||||||
|
Players:
|
||||||
|
PlayerReference@Neutral:
|
||||||
|
Name: Neutral
|
||||||
|
OwnsWorld: True
|
||||||
|
NonCombatant: True
|
||||||
|
Faction: Random
|
||||||
|
|
||||||
|
Actors:
|
||||||
|
|
||||||
|
Rules:
|
||||||
|
World:
|
||||||
|
-SpawnMPUnits:
|
||||||
|
-MPStartLocations:
|
||||||
|
-CrateSpawner:
|
||||||
|
MusicPlaylist:
|
||||||
|
BackgroundMusic: map1
|
||||||
|
DisableWorldSounds: true
|
||||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 1018 B |
@@ -1,961 +0,0 @@
|
|||||||
MapFormat: 11
|
|
||||||
|
|
||||||
RequiresMod: cnc
|
|
||||||
|
|
||||||
Title: shellmap
|
|
||||||
|
|
||||||
Author: Chris Forbes
|
|
||||||
|
|
||||||
Tileset: WINTER
|
|
||||||
|
|
||||||
MapSize: 96,48
|
|
||||||
|
|
||||||
Bounds: 8,1,80,45
|
|
||||||
|
|
||||||
Visibility: Shellmap
|
|
||||||
|
|
||||||
Categories: Shellmap
|
|
||||||
|
|
||||||
Players:
|
|
||||||
PlayerReference@Nod:
|
|
||||||
Name: Nod
|
|
||||||
Faction: nod
|
|
||||||
Color: FE1100
|
|
||||||
Allies: Nod
|
|
||||||
Enemies: GDI, Creeps
|
|
||||||
PlayerReference@GDI:
|
|
||||||
Name: GDI
|
|
||||||
Faction: gdi
|
|
||||||
Color: F5D378
|
|
||||||
Allies: GDI
|
|
||||||
Enemies: Nod, Creeps
|
|
||||||
PlayerReference@Neutral:
|
|
||||||
Name: Neutral
|
|
||||||
OwnsWorld: True
|
|
||||||
NonCombatant: True
|
|
||||||
Faction: gdi
|
|
||||||
PlayerReference@Creeps:
|
|
||||||
Name: Creeps
|
|
||||||
NonCombatant: True
|
|
||||||
Faction: Random
|
|
||||||
Enemies: Nod, GDI
|
|
||||||
|
|
||||||
Actors:
|
|
||||||
Actor4: fix
|
|
||||||
Location: 59,44
|
|
||||||
Owner: GDI
|
|
||||||
Actor5: tran
|
|
||||||
Location: 60,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor6: cycl
|
|
||||||
Location: 64,44
|
|
||||||
Owner: GDI
|
|
||||||
Actor7: cycl
|
|
||||||
Location: 64,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor8: cycl
|
|
||||||
Location: 63,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor9: cycl
|
|
||||||
Location: 62,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor10: cycl
|
|
||||||
Location: 61,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor11: cycl
|
|
||||||
Location: 60,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor12: cycl
|
|
||||||
Location: 59,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor13: cycl
|
|
||||||
Location: 58,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor14: cycl
|
|
||||||
Location: 57,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor15: cycl
|
|
||||||
Location: 56,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor16: cycl
|
|
||||||
Location: 56,44
|
|
||||||
Owner: GDI
|
|
||||||
Actor17: atwr
|
|
||||||
Location: 55,42
|
|
||||||
Owner: GDI
|
|
||||||
Actor18: nuke
|
|
||||||
Location: 70,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor19: nuke
|
|
||||||
Location: 72,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor20: hq
|
|
||||||
Location: 54,42
|
|
||||||
Owner: GDI
|
|
||||||
Actor21: t07
|
|
||||||
Location: 53,42
|
|
||||||
Owner: GDI
|
|
||||||
Actor22: tc01
|
|
||||||
Location: 53,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor23: e1
|
|
||||||
Location: 57,44
|
|
||||||
Owner: GDI
|
|
||||||
Actor24: e2
|
|
||||||
Location: 65,44
|
|
||||||
Owner: GDI
|
|
||||||
Actor25: e2
|
|
||||||
Location: 64,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor26: atwr
|
|
||||||
Location: 66,42
|
|
||||||
Owner: GDI
|
|
||||||
Actor27: tc02
|
|
||||||
Location: 65,42
|
|
||||||
Owner: GDI
|
|
||||||
Actor28: fact
|
|
||||||
Location: 11,3
|
|
||||||
Owner: Nod
|
|
||||||
Actor29: nuke
|
|
||||||
Location: 14,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor30: nuke
|
|
||||||
Location: 16,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor31: silo
|
|
||||||
Location: 19,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor32: silo
|
|
||||||
Location: 19,2
|
|
||||||
Owner: Nod
|
|
||||||
Actor33: proc
|
|
||||||
Location: 15,3
|
|
||||||
Owner: Nod
|
|
||||||
Actor34: tc04
|
|
||||||
Location: 11,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor37: tc05
|
|
||||||
Location: 8,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor38: tc02
|
|
||||||
Location: 8,2
|
|
||||||
Owner: Neutral
|
|
||||||
Actor39: tc04
|
|
||||||
Location: 8,3
|
|
||||||
Owner: Neutral
|
|
||||||
Actor40: t06
|
|
||||||
Location: 8,6
|
|
||||||
Owner: Neutral
|
|
||||||
Actor43: afld
|
|
||||||
Location: 9,7
|
|
||||||
Owner: Nod
|
|
||||||
Actor42: hq
|
|
||||||
Location: 10,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor45: sam
|
|
||||||
Location: 25,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor46: sam
|
|
||||||
Location: 29,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor47: sam
|
|
||||||
Location: 53,2
|
|
||||||
Owner: Nod
|
|
||||||
Actor48: sam
|
|
||||||
Location: 79,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor49: hand
|
|
||||||
Location: 15,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor50: cycl
|
|
||||||
Location: 13,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor51: cycl
|
|
||||||
Location: 13,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor52: cycl
|
|
||||||
Location: 12,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor53: cycl
|
|
||||||
Location: 12,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor54: cycl
|
|
||||||
Location: 11,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor55: cycl
|
|
||||||
Location: 10,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor56: cycl
|
|
||||||
Location: 9,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor57: cycl
|
|
||||||
Location: 8,11
|
|
||||||
Owner: Nod
|
|
||||||
Actor58: cycl
|
|
||||||
Location: 8,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor59: cycl
|
|
||||||
Location: 8,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor60: cycl
|
|
||||||
Location: 8,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor61: cycl
|
|
||||||
Location: 8,7
|
|
||||||
Owner: Nod
|
|
||||||
Actor62: brik
|
|
||||||
Location: 15,14
|
|
||||||
Owner: Nod
|
|
||||||
Actor63: brik
|
|
||||||
Location: 14,14
|
|
||||||
Owner: Nod
|
|
||||||
Actor64: brik
|
|
||||||
Location: 14,13
|
|
||||||
Owner: Nod
|
|
||||||
Actor65: brik
|
|
||||||
Location: 15,13
|
|
||||||
Owner: Nod
|
|
||||||
Actor66: brik
|
|
||||||
Location: 13,14
|
|
||||||
Owner: Nod
|
|
||||||
Actor67: brik
|
|
||||||
Location: 12,14
|
|
||||||
Owner: Nod
|
|
||||||
Actor68: brik
|
|
||||||
Location: 12,15
|
|
||||||
Owner: Nod
|
|
||||||
Actor69: brik
|
|
||||||
Location: 11,15
|
|
||||||
Owner: Nod
|
|
||||||
Actor70: brik
|
|
||||||
Location: 10,15
|
|
||||||
Owner: Nod
|
|
||||||
Actor71: brik
|
|
||||||
Location: 9,15
|
|
||||||
Owner: Nod
|
|
||||||
Actor72: brik
|
|
||||||
Location: 8,15
|
|
||||||
Owner: Nod
|
|
||||||
Actor73: brik
|
|
||||||
Location: 19,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor74: brik
|
|
||||||
Location: 19,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor75: brik
|
|
||||||
Location: 18,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor76: brik
|
|
||||||
Location: 18,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor77: brik
|
|
||||||
Location: 19,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor78: brik
|
|
||||||
Location: 19,7
|
|
||||||
Owner: Nod
|
|
||||||
Actor79: brik
|
|
||||||
Location: 20,7
|
|
||||||
Owner: Nod
|
|
||||||
Actor80: brik
|
|
||||||
Location: 20,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor81: brik
|
|
||||||
Location: 20,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor82: brik
|
|
||||||
Location: 21,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor83: brik
|
|
||||||
Location: 22,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor84: brik
|
|
||||||
Location: 23,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor85: brik
|
|
||||||
Location: 24,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor91: brik
|
|
||||||
Location: 27,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor90: brik
|
|
||||||
Location: 28,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor89: brik
|
|
||||||
Location: 29,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor88: brik
|
|
||||||
Location: 30,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor87: brik
|
|
||||||
Location: 31,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor35: gun
|
|
||||||
Location: 20,11
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 160
|
|
||||||
Actor36: gun
|
|
||||||
Location: 16,14
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 184
|
|
||||||
Actor41: brik
|
|
||||||
Location: 32,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor44: brik
|
|
||||||
Location: 32,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor86: brik
|
|
||||||
Location: 31,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor96: gun
|
|
||||||
Location: 33,5
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 144
|
|
||||||
Actor97: gun
|
|
||||||
Location: 39,3
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 128
|
|
||||||
Actor98: nuke
|
|
||||||
Location: 22,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor99: nuke
|
|
||||||
Location: 24,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor100: tc04
|
|
||||||
Location: 26,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor101: tc05
|
|
||||||
Location: 41,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor102: t17
|
|
||||||
Location: 40,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor103: tc01
|
|
||||||
Location: 51,1
|
|
||||||
Owner: Neutral
|
|
||||||
Actor104: tc03
|
|
||||||
Location: 55,1
|
|
||||||
Owner: Neutral
|
|
||||||
Actor105: tc05
|
|
||||||
Location: 60,1
|
|
||||||
Owner: Neutral
|
|
||||||
Actor106: t08
|
|
||||||
Location: 61,4
|
|
||||||
Owner: Neutral
|
|
||||||
Actor107: tc05
|
|
||||||
Location: 67,3
|
|
||||||
Owner: Neutral
|
|
||||||
Actor109: tc04
|
|
||||||
Location: 80,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor110: tc04
|
|
||||||
Location: 83,1
|
|
||||||
Owner: Neutral
|
|
||||||
Actor111: tc05
|
|
||||||
Location: 85,3
|
|
||||||
Owner: Neutral
|
|
||||||
Actor112: tc02
|
|
||||||
Location: 86,6
|
|
||||||
Owner: Neutral
|
|
||||||
Actor92: brik
|
|
||||||
Location: 26,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor93: brik
|
|
||||||
Location: 25,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor94: brik
|
|
||||||
Location: 39,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor95: brik
|
|
||||||
Location: 39,2
|
|
||||||
Owner: Nod
|
|
||||||
Actor113: brik
|
|
||||||
Location: 38,2
|
|
||||||
Owner: Nod
|
|
||||||
Actor114: brik
|
|
||||||
Location: 38,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor115: tc02
|
|
||||||
Location: 36,0
|
|
||||||
Owner: Neutral
|
|
||||||
Actor116: proc
|
|
||||||
Location: 57,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor117: silo
|
|
||||||
Location: 54,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor118: silo
|
|
||||||
Location: 54,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor119: e1
|
|
||||||
Location: 12,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor120: e1
|
|
||||||
Location: 11,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor121: e6
|
|
||||||
Location: 14,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor122: e3
|
|
||||||
Location: 18,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor123: e3
|
|
||||||
Location: 38,3
|
|
||||||
Owner: Nod
|
|
||||||
Actor124: e3
|
|
||||||
Location: 59,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor125: e3
|
|
||||||
Location: 58,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor126: ltnk
|
|
||||||
Location: 21,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor127: ltnk
|
|
||||||
Location: 22,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor128: ltnk
|
|
||||||
Location: 23,4
|
|
||||||
Owner: Nod
|
|
||||||
Actor129: bggy
|
|
||||||
Location: 11,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor130: bggy
|
|
||||||
Location: 10,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor131: gun
|
|
||||||
Location: 13,16
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 160
|
|
||||||
Actor132: gun
|
|
||||||
Location: 12,16
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 160
|
|
||||||
Actor133: brik
|
|
||||||
Location: 9,16
|
|
||||||
Owner: Nod
|
|
||||||
Actor134: brik
|
|
||||||
Location: 8,16
|
|
||||||
Owner: Nod
|
|
||||||
Actor135: tc01
|
|
||||||
Location: 10,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor136: v07
|
|
||||||
Location: 8,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor138: v01
|
|
||||||
Location: 36,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor139: v02
|
|
||||||
Location: 37,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor140: v03
|
|
||||||
Location: 31,18
|
|
||||||
Owner: Neutral
|
|
||||||
Actor141: v11
|
|
||||||
Location: 33,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor142: v04
|
|
||||||
Location: 34,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor143: v06
|
|
||||||
Location: 40,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor144: c1
|
|
||||||
Location: 34,18
|
|
||||||
Owner: Neutral
|
|
||||||
Actor145: c4
|
|
||||||
Location: 37,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor146: c9
|
|
||||||
Location: 40,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor147: c5
|
|
||||||
Location: 39,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor148: cycl
|
|
||||||
Location: 31,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor149: cycl
|
|
||||||
Location: 32,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor150: cycl
|
|
||||||
Location: 33,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor151: cycl
|
|
||||||
Location: 34,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor152: cycl
|
|
||||||
Location: 34,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor153: cycl
|
|
||||||
Location: 34,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor154: cycl
|
|
||||||
Location: 35,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor155: cycl
|
|
||||||
Location: 35,23
|
|
||||||
Owner: Neutral
|
|
||||||
Actor156: gun
|
|
||||||
Location: 34,23
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 96
|
|
||||||
Actor157: sam
|
|
||||||
Location: 32,22
|
|
||||||
Owner: Nod
|
|
||||||
Actor158: e1
|
|
||||||
Location: 32,21
|
|
||||||
Owner: Nod
|
|
||||||
Actor159: e1
|
|
||||||
Location: 33,21
|
|
||||||
Owner: Nod
|
|
||||||
Actor160: e1
|
|
||||||
Location: 40,12
|
|
||||||
Owner: Nod
|
|
||||||
Actor161: e1
|
|
||||||
Location: 39,13
|
|
||||||
Owner: Nod
|
|
||||||
Actor162: cycl
|
|
||||||
Location: 50,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor163: cycl
|
|
||||||
Location: 51,5
|
|
||||||
Owner: Nod
|
|
||||||
Actor167: cycl
|
|
||||||
Location: 51,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor165: cycl
|
|
||||||
Location: 51,6
|
|
||||||
Owner: Nod
|
|
||||||
Actor166: cycl
|
|
||||||
Location: 51,7
|
|
||||||
Owner: Nod
|
|
||||||
Actor168: cycl
|
|
||||||
Location: 51,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor169: cycl
|
|
||||||
Location: 51,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor170: cycl
|
|
||||||
Location: 52,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor171: cycl
|
|
||||||
Location: 52,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor172: tc04
|
|
||||||
Location: 47,4
|
|
||||||
Owner: Neutral
|
|
||||||
Actor173: v02
|
|
||||||
Location: 49,6
|
|
||||||
Owner: Neutral
|
|
||||||
Actor174: v04
|
|
||||||
Location: 49,7
|
|
||||||
Owner: Neutral
|
|
||||||
Actor175: v10
|
|
||||||
Location: 47,7
|
|
||||||
Owner: Neutral
|
|
||||||
Actor176: v08
|
|
||||||
Location: 47,10
|
|
||||||
Owner: Neutral
|
|
||||||
Actor177: c3
|
|
||||||
Location: 48,9
|
|
||||||
Owner: Neutral
|
|
||||||
Actor178: c4
|
|
||||||
Location: 44,12
|
|
||||||
Owner: Neutral
|
|
||||||
Actor179: v09
|
|
||||||
Location: 44,10
|
|
||||||
Owner: Neutral
|
|
||||||
Actor180: wood
|
|
||||||
Location: 71,12
|
|
||||||
Owner: Neutral
|
|
||||||
Actor181: wood
|
|
||||||
Location: 71,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor182: wood
|
|
||||||
Location: 71,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor183: wood
|
|
||||||
Location: 71,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor184: wood
|
|
||||||
Location: 71,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor185: wood
|
|
||||||
Location: 71,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor186: wood
|
|
||||||
Location: 71,18
|
|
||||||
Owner: Neutral
|
|
||||||
Actor187: wood
|
|
||||||
Location: 71,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor188: wood
|
|
||||||
Location: 47,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor189: wood
|
|
||||||
Location: 48,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor190: wood
|
|
||||||
Location: 49,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor191: wood
|
|
||||||
Location: 50,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor192: wood
|
|
||||||
Location: 51,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor193: wood
|
|
||||||
Location: 52,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor194: wood
|
|
||||||
Location: 52,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor195: wood
|
|
||||||
Location: 52,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor196: wood
|
|
||||||
Location: 52,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor197: v18
|
|
||||||
Location: 51,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor198: v18
|
|
||||||
Location: 51,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor199: v18
|
|
||||||
Location: 50,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor200: v18
|
|
||||||
Location: 50,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor201: v16
|
|
||||||
Location: 49,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor202: v16
|
|
||||||
Location: 49,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor203: v16
|
|
||||||
Location: 48,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor204: v16
|
|
||||||
Location: 48,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor205: v16
|
|
||||||
Location: 47,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor206: v16
|
|
||||||
Location: 47,15
|
|
||||||
Owner: Neutral
|
|
||||||
Actor207: v14
|
|
||||||
Location: 50,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor208: v14
|
|
||||||
Location: 51,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor212: v06
|
|
||||||
Location: 48,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor213: v07
|
|
||||||
Location: 41,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor211: v15
|
|
||||||
Location: 47,13
|
|
||||||
Owner: Neutral
|
|
||||||
Actor215: c1
|
|
||||||
Location: 42,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor216: c7
|
|
||||||
Location: 43,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor217: c10
|
|
||||||
Location: 45,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor218: c9
|
|
||||||
Location: 44,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor219: e1
|
|
||||||
Location: 45,27
|
|
||||||
Owner: Nod
|
|
||||||
Actor220: e1
|
|
||||||
Location: 46,28
|
|
||||||
Owner: Nod
|
|
||||||
Actor222: v01
|
|
||||||
Location: 69,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor223: t03
|
|
||||||
Location: 72,18
|
|
||||||
Owner: Neutral
|
|
||||||
Actor224: tc05
|
|
||||||
Location: 61,10
|
|
||||||
Owner: Neutral
|
|
||||||
Actor225: tc04
|
|
||||||
Location: 60,12
|
|
||||||
Owner: Neutral
|
|
||||||
Actor226: tc01
|
|
||||||
Location: 59,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor227: tc03
|
|
||||||
Location: 57,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor228: tc04
|
|
||||||
Location: 57,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor229: v04
|
|
||||||
Location: 58,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor230: tc04
|
|
||||||
Location: 75,10
|
|
||||||
Owner: Neutral
|
|
||||||
Actor231: tc02
|
|
||||||
Location: 75,16
|
|
||||||
Owner: Neutral
|
|
||||||
Actor232: tc05
|
|
||||||
Location: 79,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor233: tc04
|
|
||||||
Location: 79,12
|
|
||||||
Owner: Neutral
|
|
||||||
Actor234: tc01
|
|
||||||
Location: 83,14
|
|
||||||
Owner: Neutral
|
|
||||||
Actor235: wood
|
|
||||||
Location: 81,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor236: wood
|
|
||||||
Location: 81,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor237: wood
|
|
||||||
Location: 81,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor238: t17
|
|
||||||
Location: 82,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor239: c4
|
|
||||||
Location: 84,17
|
|
||||||
Owner: Neutral
|
|
||||||
Actor240: e1
|
|
||||||
Location: 79,9
|
|
||||||
Owner: Nod
|
|
||||||
Actor241: e1
|
|
||||||
Location: 78,10
|
|
||||||
Owner: Nod
|
|
||||||
Actor242: e3
|
|
||||||
Location: 58,1
|
|
||||||
Owner: Nod
|
|
||||||
Actor243: e3
|
|
||||||
Location: 52,8
|
|
||||||
Owner: Nod
|
|
||||||
Actor244: cycl
|
|
||||||
Location: 52,27
|
|
||||||
Owner: Nod
|
|
||||||
Actor245: cycl
|
|
||||||
Location: 52,26
|
|
||||||
Owner: Nod
|
|
||||||
Actor246: cycl
|
|
||||||
Location: 51,26
|
|
||||||
Owner: Nod
|
|
||||||
Actor247: cycl
|
|
||||||
Location: 51,27
|
|
||||||
Owner: Nod
|
|
||||||
Actor248: cycl
|
|
||||||
Location: 62,26
|
|
||||||
Owner: Nod
|
|
||||||
Actor249: cycl
|
|
||||||
Location: 62,27
|
|
||||||
Owner: Nod
|
|
||||||
Actor250: cycl
|
|
||||||
Location: 63,27
|
|
||||||
Owner: Nod
|
|
||||||
Actor251: cycl
|
|
||||||
Location: 63,26
|
|
||||||
Owner: Nod
|
|
||||||
Actor252: gun
|
|
||||||
Location: 53,27
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 128
|
|
||||||
Actor253: gun
|
|
||||||
Location: 50,27
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 128
|
|
||||||
Actor254: gun
|
|
||||||
Location: 61,27
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 128
|
|
||||||
Actor255: gun
|
|
||||||
Location: 64,27
|
|
||||||
Owner: Nod
|
|
||||||
TurretFacing: 128
|
|
||||||
Actor256: v03
|
|
||||||
Location: 68,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor257: v02
|
|
||||||
Location: 67,19
|
|
||||||
Owner: Neutral
|
|
||||||
Actor258: tc05
|
|
||||||
Location: 70,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor259: v07
|
|
||||||
Location: 69,23
|
|
||||||
Owner: Neutral
|
|
||||||
Actor260: c3
|
|
||||||
Location: 67,21
|
|
||||||
Owner: Neutral
|
|
||||||
Actor262: c9
|
|
||||||
Location: 65,22
|
|
||||||
Owner: Neutral
|
|
||||||
Actor263: c7
|
|
||||||
Location: 66,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor264: e2
|
|
||||||
Location: 70,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor265: e2
|
|
||||||
Location: 71,43
|
|
||||||
Owner: GDI
|
|
||||||
Actor266: tc04
|
|
||||||
Location: 47,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor267: tc05
|
|
||||||
Location: 73,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor268: tc05
|
|
||||||
Location: 44,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor269: tc01
|
|
||||||
Location: 75,44
|
|
||||||
Owner: Neutral
|
|
||||||
Actor270: t11
|
|
||||||
Location: 43,44
|
|
||||||
Owner: Neutral
|
|
||||||
Actor271: t01
|
|
||||||
Location: 41,41
|
|
||||||
Owner: Neutral
|
|
||||||
Actor272: tc04
|
|
||||||
Location: 40,41
|
|
||||||
Owner: Neutral
|
|
||||||
Actor273: tc04
|
|
||||||
Location: 38,43
|
|
||||||
Owner: Neutral
|
|
||||||
Actor274: tc05
|
|
||||||
Location: 35,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor275: tc01
|
|
||||||
Location: 32,44
|
|
||||||
Owner: Neutral
|
|
||||||
Actor276: tc04
|
|
||||||
Location: 30,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor277: tc05
|
|
||||||
Location: 23,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor278: v03
|
|
||||||
Location: 26,44
|
|
||||||
Owner: Neutral
|
|
||||||
Actor279: tc04
|
|
||||||
Location: 17,41
|
|
||||||
Owner: Neutral
|
|
||||||
Actor280: tc01
|
|
||||||
Location: 18,44
|
|
||||||
Owner: Neutral
|
|
||||||
Actor281: tc04
|
|
||||||
Location: 14,43
|
|
||||||
Owner: Neutral
|
|
||||||
Actor282: tc04
|
|
||||||
Location: 12,41
|
|
||||||
Owner: Neutral
|
|
||||||
Actor283: tc04
|
|
||||||
Location: 9,43
|
|
||||||
Owner: Neutral
|
|
||||||
Actor284: tc04
|
|
||||||
Location: 77,41
|
|
||||||
Owner: Neutral
|
|
||||||
Actor285: tc04
|
|
||||||
Location: 79,43
|
|
||||||
Owner: Neutral
|
|
||||||
Actor286: tc01
|
|
||||||
Location: 82,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor287: tc05
|
|
||||||
Location: 82,43
|
|
||||||
Owner: Neutral
|
|
||||||
Actor288: tc05
|
|
||||||
Location: 85,42
|
|
||||||
Owner: Neutral
|
|
||||||
Actor289: wood
|
|
||||||
Location: 72,26
|
|
||||||
Owner: Neutral
|
|
||||||
Actor290: wood
|
|
||||||
Location: 71,26
|
|
||||||
Owner: Neutral
|
|
||||||
Actor291: wood
|
|
||||||
Location: 70,26
|
|
||||||
Owner: Neutral
|
|
||||||
Actor292: wood
|
|
||||||
Location: 69,26
|
|
||||||
Owner: Neutral
|
|
||||||
Actor293: wood
|
|
||||||
Location: 68,26
|
|
||||||
Owner: Neutral
|
|
||||||
Actor294: c4
|
|
||||||
Location: 71,25
|
|
||||||
Owner: Neutral
|
|
||||||
Actor295: v05
|
|
||||||
Location: 72,20
|
|
||||||
Owner: Neutral
|
|
||||||
Actor164: nuke
|
|
||||||
Location: 8,12
|
|
||||||
Owner: Nod
|
|
||||||
Actor209: nuke
|
|
||||||
Location: 10,12
|
|
||||||
Owner: Nod
|
|
||||||
Actor210: nuke
|
|
||||||
Location: 53,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor214: nuke
|
|
||||||
Location: 55,45
|
|
||||||
Owner: GDI
|
|
||||||
Actor221: jeep
|
|
||||||
Location: 57,45
|
|
||||||
Owner: GDI
|
|
||||||
boat1: boat
|
|
||||||
Location: 45,33
|
|
||||||
Owner: GDI
|
|
||||||
boat2: boat
|
|
||||||
Location: 39,37
|
|
||||||
Owner: GDI
|
|
||||||
boat3: boat
|
|
||||||
Location: 70,33
|
|
||||||
Owner: GDI
|
|
||||||
boat4: boat
|
|
||||||
Location: 79,37
|
|
||||||
Owner: GDI
|
|
||||||
lst1: lst
|
|
||||||
Location: 53,35
|
|
||||||
Owner: GDI
|
|
||||||
Facing: 64
|
|
||||||
lst2: lst
|
|
||||||
Location: 58,35
|
|
||||||
Owner: GDI
|
|
||||||
Facing: 64
|
|
||||||
lst3: lst
|
|
||||||
Location: 63,35
|
|
||||||
Owner: GDI
|
|
||||||
Facing: 64
|
|
||||||
ftnk1: ftnk
|
|
||||||
Location: 67,22
|
|
||||||
Owner: Nod
|
|
||||||
Facing: 228
|
|
||||||
ftnk2: ftnk
|
|
||||||
Location: 65,20
|
|
||||||
Owner: Nod
|
|
||||||
Facing: 192
|
|
||||||
Actor300: split3
|
|
||||||
Owner: Neutral
|
|
||||||
Location: 13,21
|
|
||||||
Actor299: split3
|
|
||||||
Owner: Neutral
|
|
||||||
Location: 73,6
|
|
||||||
|
|
||||||
Rules: cnc|rules/campaign-palettes.yaml, rules.yaml
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
World:
|
|
||||||
-SpawnMPUnits:
|
|
||||||
-MPStartLocations:
|
|
||||||
-CrateSpawner:
|
|
||||||
MenuPaletteEffect:
|
|
||||||
Effect: Desaturated
|
|
||||||
LuaScript:
|
|
||||||
Scripts: shellmap.lua
|
|
||||||
MusicPlaylist:
|
|
||||||
BackgroundMusic: map1
|
|
||||||
|
|
||||||
LST:
|
|
||||||
Mobile:
|
|
||||||
Speed: 42
|
|
||||||
|
|
||||||
BOAT:
|
|
||||||
Mobile:
|
|
||||||
Speed: 42
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
|
|
||||||
ticks = 0
|
|
||||||
speed = 5
|
|
||||||
|
|
||||||
Tick = function()
|
|
||||||
ticks = ticks + 1
|
|
||||||
local t = (ticks + 45) % (360 * speed) * (math.pi / 180) / speed;
|
|
||||||
Camera.Position = viewportOrigin + WVec.New(-15360 * math.sin(t), 4096 * math.cos(t), 0)
|
|
||||||
end
|
|
||||||
|
|
||||||
WorldLoaded = function()
|
|
||||||
viewportOrigin = Camera.Position
|
|
||||||
LoadTransport(lst1, "htnk")
|
|
||||||
LoadTransport(lst2, "mcv")
|
|
||||||
LoadTransport(lst3, "htnk")
|
|
||||||
local units = { boat1, boat2, boat3, boat4, lst1, lst2, lst3}
|
|
||||||
for i, unit in ipairs(units) do
|
|
||||||
LoopTrack(unit, CPos.New(8, unit.Location.Y), CPos.New(87, unit.Location.Y))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
LoopTrack = function(actor, left, right)
|
|
||||||
actor.ScriptedMove(left)
|
|
||||||
actor.Teleport(right)
|
|
||||||
actor.CallFunc(function() LoopTrack(actor, left, right) end)
|
|
||||||
end
|
|
||||||
|
|
||||||
LoadTransport = function(transport, passenger)
|
|
||||||
transport.LoadPassenger(Actor.Create(passenger, false, { Owner = transport.Owner, Facing = transport.Facing }))
|
|
||||||
end
|
|
||||||
@@ -7,6 +7,7 @@ Container@OBSERVER_WIDGETS:
|
|||||||
Text: Options (Esc)
|
Text: Options (Esc)
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Key: escape
|
Key: escape
|
||||||
|
DisableWorldSounds: true
|
||||||
MenuButton@OBSERVER_STATS_BUTTON:
|
MenuButton@OBSERVER_STATS_BUTTON:
|
||||||
MenuContainer: INGAME_OBSERVERSTATS_BG
|
MenuContainer: INGAME_OBSERVERSTATS_BG
|
||||||
HideIngameUI: False
|
HideIngameUI: False
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background:
|
Background:
|
||||||
TooltipText: Debug Menu
|
TooltipText: Debug Menu
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
@@ -121,6 +122,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background:
|
Background:
|
||||||
TooltipText: Options
|
TooltipText: Options
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ World:
|
|||||||
Maximum: 3
|
Maximum: 3
|
||||||
MusicPlaylist:
|
MusicPlaylist:
|
||||||
BackgroundMusic: options
|
BackgroundMusic: options
|
||||||
|
DisableWorldSounds: true
|
||||||
LuaScript:
|
LuaScript:
|
||||||
Scripts: d2k-shellmap.lua
|
Scripts: d2k-shellmap.lua
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ Container@OBSERVER_WIDGETS:
|
|||||||
Background: sidebar-button-observer
|
Background: sidebar-button-observer
|
||||||
TooltipText: Options
|
TooltipText: Options
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background: sidebar-button
|
Background: sidebar-button
|
||||||
TooltipText: Debug Menu
|
TooltipText: Debug Menu
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
@@ -127,6 +128,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background: sidebar-button
|
Background: sidebar-button
|
||||||
TooltipText: Options
|
TooltipText: Options
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
|
|||||||
@@ -165,28 +165,21 @@ Background@SETTINGS_PANEL:
|
|||||||
Height: 20
|
Height: 20
|
||||||
Font: Regular
|
Font: Regular
|
||||||
Text: Player Stance Colors
|
Text: Player Stance Colors
|
||||||
Checkbox@SHOW_SHELLMAP:
|
|
||||||
X: 15
|
|
||||||
Y: 195
|
|
||||||
Width: 200
|
|
||||||
Height: 20
|
|
||||||
Font: Regular
|
|
||||||
Text: Show Shellmap
|
|
||||||
Label@PLAYER:
|
Label@PLAYER:
|
||||||
Text: Player:
|
Text: Player:
|
||||||
X: 15
|
X: 15
|
||||||
Y: 240
|
Y: 205
|
||||||
TextField@PLAYERNAME:
|
TextField@PLAYERNAME:
|
||||||
Text: Name
|
Text: Name
|
||||||
X: 65
|
X: 65
|
||||||
Y: 230
|
Y: 195
|
||||||
Width: 145
|
Width: 145
|
||||||
Height: 25
|
Height: 25
|
||||||
MaxLength: 16
|
MaxLength: 16
|
||||||
ColorPreviewManager@COLOR_MANAGER:
|
ColorPreviewManager@COLOR_MANAGER:
|
||||||
DropDownButton@PLAYERCOLOR:
|
DropDownButton@PLAYERCOLOR:
|
||||||
X: 215
|
X: 215
|
||||||
Y: 230
|
Y: 195
|
||||||
Width: 70
|
Width: 70
|
||||||
Height: 25
|
Height: 25
|
||||||
IgnoreChildMouseOver: true
|
IgnoreChildMouseOver: true
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ World:
|
|||||||
-MPStartLocations:
|
-MPStartLocations:
|
||||||
MusicPlaylist:
|
MusicPlaylist:
|
||||||
BackgroundMusic: intro
|
BackgroundMusic: intro
|
||||||
|
DisableWorldSounds: true
|
||||||
ResourceType@ore:
|
ResourceType@ore:
|
||||||
ValuePerUnit: 0
|
ValuePerUnit: 0
|
||||||
LuaScript:
|
LuaScript:
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background: sidebar-button
|
Background: sidebar-button
|
||||||
TooltipText: Debug Menu
|
TooltipText: Debug Menu
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
@@ -130,6 +131,7 @@ Container@PLAYER_WIDGETS:
|
|||||||
Background: sidebar-button
|
Background: sidebar-button
|
||||||
TooltipText: Options
|
TooltipText: Options
|
||||||
TooltipContainer: TOOLTIP_CONTAINER
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
DisableWorldSounds: true
|
||||||
VisualHeight: 0
|
VisualHeight: 0
|
||||||
Children:
|
Children:
|
||||||
Image@ICON:
|
Image@ICON:
|
||||||
|
|||||||
@@ -1433,6 +1433,7 @@ Rules:
|
|||||||
ValuePerUnit: 0
|
ValuePerUnit: 0
|
||||||
MusicPlaylist:
|
MusicPlaylist:
|
||||||
BackgroundMusic: intro
|
BackgroundMusic: intro
|
||||||
|
DisableWorldSounds: true
|
||||||
GlobalLightingPaletteEffect:
|
GlobalLightingPaletteEffect:
|
||||||
Blue: 0.7
|
Blue: 0.7
|
||||||
Ambient: 0.7
|
Ambient: 0.7
|
||||||
|
|||||||
Reference in New Issue
Block a user