コード例 #1
0
ファイル: Program.cs プロジェクト: duelist-X/windbot
        public static void InitDatas(string databasePath)
        {
            Rand = new Random();
            DecksManager.Init();

            string[] dbPaths;
            //If databasePath is an absolute path like "‪C:/ProjectIgnis/expansions/cards.cdb",
            //then Path.GetFullPath("../‪C:/ProjectIgnis/expansions/cards.cdb" would give an error,
            //due to containing a colon that's not part of a volume identifier.
            if (Path.IsPathRooted(databasePath))
            {
                dbPaths = new string[] { databasePath }
            }
            ;
            else
            {
                dbPaths = new string[] {
                    Path.GetFullPath(databasePath),
                    Path.GetFullPath("../" + databasePath),
                    Path.GetFullPath("../expansions/" + databasePath)
                }
            };

            foreach (var absPath in dbPaths)
            {
                if (File.Exists(absPath))
                {
                    NamedCardsManager.Init(absPath);
                    return;
                }
            }
            Logger.WriteErrorLine("Can't find cards database file.");
            Logger.WriteErrorLine("Please place cards.cdb next to WindBot.exe or Bot.exe .");
        }
        private static void Run(String pass, String serverIP, int serverPort, int version, String room = "", string cdb = "cards.cdb")
        {
            ProVersion = version;
            if (pass == "--")
            {
                pass = "";
            }
            if (room == "[null]")
            {
                room = "";
            }
            Console.WriteLine(pass + " " + serverIP + ":" + serverPort + " 0x" + version.ToString("x") + " room:" + room);
            Rand = new Random();
            CardsManager.Init(cdb);
            DecksManager.Init();

            // Start two clients and connect them to the same room. Which deck is gonna win?
            AIGameClient clientA = new AIGameClient(pass, serverIP, serverPort, room);

            clientA.Start();
            while (clientA.Connection.IsConnected)
            {
                clientA.Tick();
                Thread.Sleep(1);
            }
            //Thread.Sleep(3000);
        }
コード例 #3
0
 public static void InitAndroid(string assetPath, string databasePath, string confPath)
 {
     Program.Rand = new Random();
     AssetPath    = assetPath;
     DecksManager.Init();
     NamedCardsManager.Init(databasePath);
     ReadBots(confPath);
 }
コード例 #4
0
 public static void InitAndroid(string assetPath)
 {
     NamedCardsManager.SetThreadSafe();
     Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
     Program.Rand      = new Random();
     Program.AssetPath = assetPath;
     DecksManager.Init();
 }
コード例 #5
0
        public static void InitDatas(string databasePath)
        {
            Rand = new Random();
            DecksManager.Init();
            string absolutePath = Path.GetFullPath(databasePath);

            NamedCardsManager.Init(absolutePath);
        }
コード例 #6
0
ファイル: PlayerActions.cs プロジェクト: Monjananja/ForNomad
    private void Start()
    {
        player  = this.gameObject.GetComponent <PlayerManager>();
        ui      = this.gameObject.GetComponent <PlayerUI>();
        manager = GameObject.Find("GameManager").GetComponent <GameManager>();
        decks   = GameObject.Find("GameManager").GetComponent <DecksManager>();

        enemy   = otherPlayer.GetComponent <PlayerManager>();
        enemyUI = otherPlayer.GetComponent <PlayerUI>();
    }
コード例 #7
0
ファイル: DecksManager.cs プロジェクト: Apparum/JeuDeCharles
 private void Awake()
 {
     if (decksManager == null)
     {
         decksManager = this;
     }
     else if (decksManager != this)
     {
         Destroy(gameObject);
     }
 }
コード例 #8
0
ファイル: Program.cs プロジェクト: szefo09/windbot
        internal static void Main(string[] args)
        {
            Logger.WriteLine("WindBot starting...");

            Config.Load(args);
            Rand = new Random();
            List <FileInfo>      databases    = new List <FileInfo>();
            List <DirectoryInfo> databaseDirs = new List <DirectoryInfo> {
                new DirectoryInfo("../ygopro"),
                new DirectoryInfo(Path.GetFullPath(Environment.CurrentDirectory)),
                new DirectoryInfo("../ygopro/expansions"),
                new DirectoryInfo("../ygopro/expansions/official")
            };

            databases.Add(new FileInfo(Config.GetString("DbPath", "cards.cdb")));
            foreach (DirectoryInfo databaseDir in databaseDirs)
            {
                if (databaseDir.Exists)
                {
                    databases.AddRange(databaseDir.GetFiles("*.cdb").OrderByDescending(x => x.Name).ToList());
                }
            }
            databases = databases.OrderByDescending(x => x.Name).ToList();
            foreach (FileInfo database in databases)
            {
                if (database.Exists)
                {
                    Logger.WriteLine(database.FullName);
                    InitDatas(database.FullName);
                }
            }
            DecksManager.Init();
            bool serverMode = Config.GetBool("ServerMode", false);

            if (serverMode)
            {
                // Run in server mode, provide a http interface to create bot.
                int serverPort = Config.GetInt("ServerPort", 2399);
                RunAsServer(serverPort);
            }
            else
            {
                // Join the host specified on the command line.
                if (args.Length == 0)
                {
                    Logger.WriteErrorLine("=== WARN ===");
                    Logger.WriteLine("No input found, tring to connect to localhost YGOPro host.");
                    Logger.WriteLine("If it fail, the program will quit sliently.");
                }
                RunFromArgs();
            }
        }
コード例 #9
0
 public static void InitAndroid(string assetPath)
 {
     Program.Rand = new Random();
     AssetPath    = assetPath;
     DecksManager.Init();
     try
     {
         NamedCardsManager.Init(assetPath + "/cards.cdb");
     }
     catch (Exception e)
     {
         Logger.WriteErrorLine(e.ToString());
     }
 }
コード例 #10
0
ファイル: GameManager.cs プロジェクト: Monjananja/ForNomad
    // Start is called before the first frame update
    private void Start()
    {
        cardsData      = this.gameObject.GetComponent <CardsData>();
        decks          = this.gameObject.GetComponent <DecksManager>();
        ui             = this.gameObject.GetComponent <GeneralUI>();
        player1        = GameObject.Find("Player1").GetComponent <PlayerManager>();
        player2        = GameObject.Find("Player2").GetComponent <PlayerManager>();
        player1UI      = GameObject.Find("Player1").GetComponent <PlayerUI>();
        player2UI      = GameObject.Find("Player2").GetComponent <PlayerUI>();
        player1Actions = GameObject.Find("Player1").GetComponent <PlayerActions>();
        player2Actions = GameObject.Find("Player2").GetComponent <PlayerActions>();

        InitializeGame();
    }
コード例 #11
0
ファイル: WindBot.cs プロジェクト: duelist-X/windbot
 public static void InitAndroid(string assetPath)
 {
     Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
     Program.Rand      = new Random();
     Program.AssetPath = assetPath;
     DecksManager.Init();
     try
     {
         NamedCardsManager.Init(assetPath + "/cards.cdb");
     }
     catch (Exception e)
     {
         Logger.WriteErrorLine(e.ToString());
     }
 }
コード例 #12
0
        private static void Run(String username, String deck, String serverIP, int serverPort, String room)
        {
            Rand = new Random();
            CardsManager.Init();
            DecksManager.Init();

            // Start two clients and connect them to the same room. Which deck is gonna win?
            GameClient clientA = new GameClient(username, deck, serverIP, serverPort, room);

            clientA.Start();
            while (clientA.Connection.IsConnected)
            {
                clientA.Tick();
                Thread.Sleep(1);
            }
        }
コード例 #13
0
ファイル: SaveGameData.cs プロジェクト: Jagurt/FrIENDS
    public SaveGameData()
    {
        // Saving Players

        if (!GameManager.singleton)
        {
            return;
        }

        turnPhase = GameManager.singleton.turnPhase;

        playersData = new List <PlayerSaveData>();

        foreach (var player in GameManager.singleton.playersObjects)
        {
            //Debug.Log("Save Player: " + player);
            playersData.Add(player.GetComponent <PlayerInGame>().GetPlayerData());
        }

        // Saving Cards that are in decks

        discardedCards = new List <string>();

        DecksManager serverDecksManager = GameManager.singleton.ServerDecksManager;

        for (int i = 0; i < serverDecksManager.DiscardedDoorsDeck.childCount; i++)
        {
            discardedCards.Add(serverDecksManager.DiscardedDoorsDeck.GetChild(i).GetComponent <Card>().GetCardData());
        }

        for (int i = 0; i < serverDecksManager.DiscardedTreasuresDeck.childCount; i++)
        {
            discardedCards.Add(serverDecksManager.DiscardedTreasuresDeck.GetChild(i).GetComponent <Card>().GetCardData());
        }

        for (int i = 0; i < serverDecksManager.DiscardedSpellsDeck.childCount; i++)
        {
            discardedCards.Add(serverDecksManager.DiscardedSpellsDeck.GetChild(i).GetComponent <Card>().GetCardData());
        }

        for (int i = 0; i < serverDecksManager.DiscardedHelpHandsDeck.childCount; i++)
        {
            discardedCards.Add(serverDecksManager.DiscardedHelpHandsDeck.GetChild(i).GetComponent <Card>().GetCardData());
        }
    }
コード例 #14
0
ファイル: Draggable.cs プロジェクト: Jagurt/FrIENDS
    /// <summary> Assign card which owns this script to correct deck. </summary>
    IEnumerator GetAdopted()
    {
        // Wait for serverGameManager
        while (!serverGameManager)
        {
            serverGameManager = GameManager.singleton;
            yield return(new WaitForEndOfFrame());
        }
        // Wait for serverDecksManager
        while (!serverDecksManager)
        {
            serverDecksManager = GameManager.singleton.ServerDecksManager;
            yield return(new WaitForEndOfFrame());
        }

        // Wait for Decks
        while (!serverDecksManager.SpellsDeck)
        {
            yield return(new WaitForEndOfFrame());
        }

        // Put card to correct deck.
        switch (GetComponent <Card>().cardValues.deck)
        {
        case Deck.Doors:
            serverDecksManager.DoorsDeck.GetComponent <DrawCardZone>().ReceiveCard(this.transform);
            break;

        case Deck.Treasures:
            serverDecksManager.TreasuresDeck.GetComponent <DrawCardZone>().ReceiveCard(this.transform);
            break;

        case Deck.HelpingHand:
            serverDecksManager.HelpHandsDeck.GetComponent <DrawCardZone>().ReceiveCard(this.transform);
            break;

        case Deck.Spells:
            serverDecksManager.SpellsDeck.GetComponent <DrawCardZone>().ReceiveCard(this.transform);
            break;
        }
    }
コード例 #15
0
ファイル: Program.cs プロジェクト: ygodueltech/windbot
        public static void InitDatas(string databasePath)
        {
            Rand = new Random();
            DecksManager.Init();
            string absolutePath = Path.GetFullPath(databasePath);

            if (!File.Exists(absolutePath))
            {
                // In case windbot is placed in a folder under ygopro folder
                absolutePath = Path.GetFullPath("../" + databasePath);
            }
            if (!File.Exists(absolutePath))
            {
                Logger.WriteErrorLine("Can't find cards database file.");
                Logger.WriteErrorLine("Please place cards.cdb next to WindBot.exe or Bot.exe .");
                Logger.WriteLine("Press any key to quit...");
                Console.ReadKey();
                System.Environment.Exit(1);
            }
            NamedCardsManager.Init(absolutePath);
        }
コード例 #16
0
 public static void InitDatas(string databasePath)
 {
     Rand = new Random();
     DecksManager.Init();
     string[] dbPaths =
     {
         Path.GetFullPath(databasePath),
         Path.GetFullPath("../" + databasePath),
         Path.GetFullPath("../expansions/" + databasePath)
     };
     foreach (var absPath in dbPaths)
     {
         if (File.Exists(absPath))
         {
             NamedCardsManager.Init(absPath);
             return;
         }
     }
     Logger.WriteErrorLine("Can't find cards database file.");
     Logger.WriteErrorLine("Please place cards.cdb next to WindBot.exe or Bot.exe .");
 }
コード例 #17
0
ファイル: Program.cs プロジェクト: Kuro59/windbot
        public static void Main(string[] args)
        {

            UselessThings();
            timer = new System.Timers.Timer();
            timer.Interval = 3600 * 1000;
            timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
            timer.Enabled = true;
            timer.Start();
            Rand = new Random();
            CardsManager.Init();
            DecksManager.Init();
            Deck = new[] { "OldSchool", "Horus", "Exodia", "DamageBurn", "Dragunity", "Zexal Weapons", "Rank V" , "CyberDragon", "Exodia", "Corrompu", "BlueEyes", "Protecteurs", "Nekroz", "Blackwing"};
            try
            {
                clientSocket.Connect("127.0.0.1", 9001);
                connected = true;
                serverStream = clientSocket.GetStream();
                Thread actualiser = new Thread(Actualiser);
                actualiser.IsBackground = true;
                actualiser.Start();
                Thread duel = new Thread(Duel);
                duel.IsBackground = true;
                duel.Start();
                EnvoyerMsg("salt|");
                string Cmd = Console.ReadLine();
                if (Cmd == "stop")
                    EnvoyerMsg("deco|");
                else
                    Console.ReadLine();
            }
            catch (Exception ex)
            {
                connected = false;
                Console.WriteLine("Erreur :" + ex.ToString());
                return;
            }
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: knight00/windbot
        public static void InitDatas(string databasePath, string databasePaths)
        {
            Rand = new Random();
            DecksManager.Init();

            string[] dbPaths = null;
            try
            {
                if (databasePath == null && databasePaths != null)
                {
                    MemoryStream json = new MemoryStream(Convert.FromBase64String(databasePaths));
                    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(string[]));
                    dbPaths = serializer.ReadObject(json) as string[];
                }
            }
            catch (Exception)
            {
            }

            if (dbPaths == null)
            {
                if (databasePath == null)
                {
                    databasePath = "cards.cdb";
                }
                //If databasePath is an absolute path like "‪C:/ProjectIgnis/expansions/cards.cdb",
                //then Path.GetFullPath("../‪C:/ProjectIgnis/expansions/cards.cdb" would give an error,
                //due to containing a colon that's not part of a volume identifier.
                if (Path.IsPathRooted(databasePath))
                {
                    dbPaths = new string[] { databasePath }
                }
                ;
                else
                {
                    dbPaths = new string[] {
                        Path.GetFullPath(databasePath),
                        Path.GetFullPath("../" + databasePath),
                        Path.GetFullPath("../expansions/" + databasePath)
                    }
                };
            }

            bool loadedone = false;

            foreach (var absPath in dbPaths)
            {
                try
                {
                    if (File.Exists(absPath))
                    {
                        NamedCardsManager.LoadDatabase(absPath);
                        Logger.DebugWriteLine("Loaded database: " + absPath + ".");
                        loadedone = true;
                    }
                } catch (Exception ex)
                {
                    Logger.WriteErrorLine("Failed loading database: " + absPath + " error: " + ex);
                }
            }
            if (!loadedone)
            {
                Logger.WriteErrorLine("Can't find cards database file.");
                Logger.WriteErrorLine("Please place cards.cdb next to WindBot.exe or Bot.exe .");
            }
        }
コード例 #19
0
ファイル: Program.cs プロジェクト: mercury233/WindBotMobile
 public static void InitAndroid(string databasePath)
 {
     Rand = new Random();
     DecksManager.Init();
     NamedCardsManager.Init(databasePath);
 }
コード例 #20
0
 public static void InitAndroid(string assetPath)
 {
     Program.Rand = new Random();
     AssetPath    = assetPath;
     DecksManager.Init();
 }
コード例 #21
0
 public static void Init(string databasePath)
 {
     Rand = new Random();
     DecksManager.Init();
     InitCardsManager(databasePath);
 }