コード例 #1
0
ファイル: Combat.cs プロジェクト: zerk-js/SOTSII-SOS
        public static Combat Create(
            App game,
            OrbitCameraController cameraController,
            CombatInput input,
            CombatSensor sensor,
            StarSystem system,
            CombatGrid grid,
            Vector3 origin,
            float radius,
            int duration,
            Player[] players,
            Dictionary <Player, Dictionary <Player, PlayerCombatDiplomacy> > diplomacyStates,
            bool simulateOnly = false)
        {
            List <int>    list       = ((IEnumerable <Player>)players).Where <Player>((Func <Player, bool>)(x => !x.IsStandardPlayer)).Select <Player, int>((Func <Player, int>)(x => x.ObjectID)).ToList <int>();
            Combat        combat     = new Combat();
            List <object> objectList = new List <object>();

            objectList.Add((object)cameraController.GetObjectID());
            objectList.Add((object)input.GetObjectID());
            objectList.Add((object)sensor.GetObjectID());
            objectList.Add((object)system.GetObjectID());
            objectList.Add((object)grid.GetObjectID());
            objectList.Add((object)origin);
            objectList.Add((object)radius);
            objectList.Add((object)duration);
            objectList.Add((object)game.LocalPlayer.GetObjectID());
            objectList.Add((object)simulateOnly);
            objectList.Add((object)players.Length);
            foreach (Player player in players)
            {
                objectList.Add((object)player.ObjectID);
            }
            objectList.Add((object)diplomacyStates.Count);
            foreach (KeyValuePair <Player, Dictionary <Player, PlayerCombatDiplomacy> > diplomacyState in diplomacyStates)
            {
                objectList.Add((object)diplomacyState.Key.GetObjectID());
                objectList.Add((object)diplomacyState.Value.Count);
                foreach (KeyValuePair <Player, PlayerCombatDiplomacy> keyValuePair in diplomacyState.Value)
                {
                    objectList.Add((object)keyValuePair.Key.GetObjectID());
                    objectList.Add((object)keyValuePair.Value);
                }
            }
            objectList.Add((object)list.Count);
            foreach (int num in list)
            {
                objectList.Add((object)num);
            }
            game.AddExistingObject((IGameObject)combat, objectList.ToArray());
            return(combat);
        }