Пример #1
0
 public void Confirm()
 {
     SaveProgram("Player1");
     GameObject.FindObjectOfType <GameManager>().CloseProgramEditor();
     ReloadScene();
     PlayersManager.GetPlayerByName("Player1").LoadProgramInAllTanks(0);
 }
Пример #2
0
        public void ConstructTank(int index)
        {
            if (IsLocked)
            {
                GameObject.FindObjectOfType <GameManager>().Notify("Factory Is occupied!", this.Player);
            }
            else
            {
                var player = PlayersManager.GetPlayerByName(this.Player);
                var gameObjectBlueprint = player.TanksBlueprints[index];
                var tankScript          = gameObjectBlueprint.GetComponent <Tank>();

                var cost = tankScript.CalculateCost();
                var time = tankScript.CalculateSpawningTime();

                if (player.Resources < cost)
                {
                    GameObject.FindObjectOfType <GameManager>().Notify("No enough minerals!", this.Player);
                    return;
                }
                else
                {
                    player.Resources -= cost;
                    StartCoroutine(BeginConstruction(tankScript, time));
                    return;
                }
            }
        }
Пример #3
0
 public void LoadProgram(int index)
 {
     if (PlayersManager.GetPlayerByName(this.Player).Programs.Count > index)
     {
         ProgramController = new ProgramController(this.Player, 0);
     }
 }
        public void ChangeScene()
        {
            var tankObject = GameObject.FindGameObjectWithTag("Tank");

            tankObject.SetActive(false);
            DontDestroyOnLoad(tankObject);

            var tankScript = tankObject.GetComponent <Tank>();

            tankScript.Player = "Player1";

            PlayersManager.GetPlayerByName("Player1").RegisterTankBlueprint(tankObject);
            SceneManager.LoadScene("Program Develop Scene", LoadSceneMode.Single);
        }
        private void Start()
        {
            Tank.IsLocked = true;
            PlayersManager.AddPlayer("Dummy Player", "Dummy Site");

            List <Command> program = new List <Command>();

            program.Add(new ClearMemory());

            PlayersManager.GetPlayerByName("Dummy Player").RegisterNewProgram(program);

            Tank.gameObject.SetActive(true);

            FillDropdowns();
        }
Пример #6
0
        private void SaveProgram(string player)
        {
            var programmingPanel = GameObject.FindGameObjectWithTag("Programming Panel");
            var blocks           = programmingPanel.transform.GetComponentsInChildren <CommandInstanceBlock>();
            var childCount       = programmingPanel.transform.childCount;

            //Decoding Target Blocks To Jump Indexes
            foreach (var block in blocks)
            {
                if (block is JumpCommandInstanceBlock)
                {
                    var jumpTarget           = (block as JumpCommandInstanceBlock).TargetBlock;
                    int consideringJumpIndex = jumpTarget.transform.GetSiblingIndex();
                    while (true)
                    {
                        if (consideringJumpIndex == childCount - 1)
                        {
                            consideringJumpIndex = 0;
                        }
                        else
                        {
                            consideringJumpIndex++;
                        }

                        var commandBlock = programmingPanel.transform.GetChild(consideringJumpIndex).GetComponent <CommandInstanceBlock>();
                        if (commandBlock != null)
                        {
                            var command = (block as JumpCommandInstanceBlock).Command;
                            (command as JumpCommand).JumpPosition = blocks.ToList().IndexOf(commandBlock);
                            break;
                        }
                    }
                }
            }

            var program = blocks.Select(u => u.Command).ToList();

            PlayersManager.GetPlayerByName(player).SaveProgramAtLocationOrAddAtTheEnd(program, 0);
        }
Пример #7
0
 private void ClearAllPlayer1Programs()
 {
     PlayersManager.GetPlayerByName("Player1").Programs.Clear();
 }
Пример #8
0
 public ProgramController(string player, int index)
 {
     _program       = PlayersManager.GetPlayerByName(player).Programs[index];
     ProgramCounter = 0;
 }
Пример #9
0
 private void Start()
 {
     this.HP = 1000;
     PlayersManager.GetPlayerByName(this.Player).RegisterFactory(this);
 }
Пример #10
0
 private void RegisterReference()
 {
     PlayersManager.GetPlayerByName(this.Player).RegisterTank(this);
 }
Пример #11
0
 private void OnDestroy()
 {
     PlayersManager.GetPlayerByName(this.Player).UnregisterTank(this);
 }