First attempt; works, but has regressions in several areas
This commit is contained in:
@@ -420,6 +420,9 @@ namespace OpenRA
|
||||
|
||||
static Stance ChooseInitialStance(Player p, Player q)
|
||||
{
|
||||
// HACK
|
||||
return Stance.Enemy;
|
||||
|
||||
if (p == q) return Stance.Ally;
|
||||
if (p == world.NeutralPlayer || q == world.NeutralPlayer) return Stance.Neutral;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -26,6 +26,9 @@ namespace OpenRA.Traits
|
||||
|
||||
public void Tick( Player owner, Cache<string, List<Actor>> buildings )
|
||||
{
|
||||
// HACK
|
||||
return;
|
||||
|
||||
var effectivePrereq = prerequisites.Where( a => a.Traits.Get<BuildableInfo>().Owner.Contains( owner.Country.Race ) );
|
||||
var nowHasPrerequisites = effectivePrereq.Any() &&
|
||||
effectivePrereq.All( a => buildings[ a.Name ].Any( b => !b.traits.Get<Building>().Disabled ) );
|
||||
|
||||
@@ -91,7 +91,27 @@ namespace OpenRA
|
||||
Timer.Time("renderer: {0}");
|
||||
|
||||
WorldActor = CreateActor("World", new int2(int.MaxValue, int.MaxValue), null);
|
||||
AddPlayer(NeutralPlayer = new Player(this, null)); // add the neutral player
|
||||
|
||||
// Add Map Players
|
||||
int mapPlayerIndex = -1;
|
||||
foreach (var kv in Map.Players)
|
||||
{
|
||||
var player = new Player(this, null);
|
||||
Console.WriteLine("Creating Player {0}", kv.Key);
|
||||
|
||||
// Lets just pretend that i didn't do this.... Will fix later
|
||||
player.GetType().GetField("Index").SetValue( player, mapPlayerIndex-- );
|
||||
player.GetType().GetField("Palette").SetValue( player, kv.Value.Palette );// Todo: set Player.Color as well
|
||||
player.GetType().GetField("PlayerName").SetValue( player, kv.Value.Name );
|
||||
player.GetType().GetField("InternalName").SetValue( player, kv.Value.Name );
|
||||
player.GetType().GetField("Country").SetValue( player, this.GetCountries().FirstOrDefault(c => kv.Value.Race == c.Name) );
|
||||
|
||||
AddPlayer(player);
|
||||
|
||||
// Todo: Obsolete usage of "World.NeutralPlayer"
|
||||
if (kv.Value.Name == "Neutral")
|
||||
NeutralPlayer = player;
|
||||
}
|
||||
|
||||
Timer.Time( "worldActor: {0}" );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user