Add some combat to the shellmap; unfail init slightly

This commit is contained in:
Paul Chote
2010-05-26 19:06:13 +12:00
parent 92ba40da1a
commit b286a71487
3 changed files with 18 additions and 15 deletions

View File

@@ -385,10 +385,6 @@ namespace OpenRA
LoadMap(map); LoadMap(map);
world.Queries = new World.AllQueries(world); world.Queries = new World.AllQueries(world);
foreach (var p in world.players.Values)
foreach (var q in world.players.Values)
p.Stances[q] = ChooseInitialStance(p, q);
foreach (var gs in world.WorldActor.traits.WithInterface<IGameStarted>()) foreach (var gs in world.WorldActor.traits.WithInterface<IGameStarted>())
gs.GameStarted(world); gs.GameStarted(world);
orderManager.StartGame(); orderManager.StartGame();
@@ -400,15 +396,6 @@ namespace OpenRA
if (orderManager.GameStarted) return; if (orderManager.GameStarted) return;
chat.Reset(); chat.Reset();
world.SetLocalPlayer(orderManager.Connection.LocalClientId);
foreach (var c in LobbyInfo.Clients)
world.AddPlayer(new Player(world, c));
foreach (var p in world.players.Values)
foreach (var q in world.players.Values)
p.Stances[q] = ChooseInitialStance(p, q);
world.Queries = new World.AllQueries(world); world.Queries = new World.AllQueries(world);
foreach (var gs in world.WorldActor.traits.WithInterface<IGameStarted>()) foreach (var gs in world.WorldActor.traits.WithInterface<IGameStarted>())
@@ -418,7 +405,7 @@ namespace OpenRA
orderManager.StartGame(); orderManager.StartGame();
} }
static Stance ChooseInitialStance(Player p, Player q) public static Stance ChooseInitialStance(Player p, Player q)
{ {
if (p == q) return Stance.Ally; if (p == q) return Stance.Ally;

View File

@@ -100,6 +100,16 @@ namespace OpenRA
if (kv.Value.OwnsWorld) if (kv.Value.OwnsWorld)
WorldActor.Owner = player; WorldActor.Owner = player;
} }
// Add real players
SetLocalPlayer(Game.orderManager.Connection.LocalClientId);
foreach (var c in Game.LobbyInfo.Clients)
AddPlayer(new Player(this, c));
foreach (var p in players.Values)
foreach (var q in players.Values)
p.Stances[q] = Game.ChooseInitialStance(p, q);
Timer.Time( "worldActor: {0}" ); Timer.Time( "worldActor: {0}" );

View File

@@ -21,6 +21,7 @@
using OpenRA.Mods.RA.Effects; using OpenRA.Mods.RA.Effects;
using OpenRA.Traits; using OpenRA.Traits;
using OpenRA; using OpenRA;
using System.Linq;
namespace OpenRA.Mods.RA namespace OpenRA.Mods.RA
{ {
@@ -34,7 +35,12 @@ namespace OpenRA.Mods.RA
public void WorldLoaded(World w) public void WorldLoaded(World w)
{ {
Game.MoveViewport((.5f * (w.Map.TopLeft + w.Map.BottomRight).ToFloat2()).ToInt2()); Game.MoveViewport((.5f * (w.Map.TopLeft + w.Map.BottomRight).ToFloat2()).ToInt2());
Sound.PlayMusic("hell226m.aud"); // Sound.PlayMusic("hell226m.aud");
var goodguy = w.players.Values.Where(x => x.InternalName == "GoodGuy").FirstOrDefault();
var greece = w.players.Values.Where(x => x.InternalName == "Greece").FirstOrDefault();
goodguy.Stances[greece] = Stance.Enemy;
greece.Stances[goodguy] = Stance.Enemy;
} }
} }
} }