public void Confirm() { SaveProgram("Player1"); GameObject.FindObjectOfType <GameManager>().CloseProgramEditor(); ReloadScene(); PlayersManager.GetPlayerByName("Player1").LoadProgramInAllTanks(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; } } }
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(); }
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); }
private void ClearAllPlayer1Programs() { PlayersManager.GetPlayerByName("Player1").Programs.Clear(); }
public ProgramController(string player, int index) { _program = PlayersManager.GetPlayerByName(player).Programs[index]; ProgramCounter = 0; }
private void Start() { this.HP = 1000; PlayersManager.GetPlayerByName(this.Player).RegisterFactory(this); }
private void RegisterReference() { PlayersManager.GetPlayerByName(this.Player).RegisterTank(this); }
private void OnDestroy() { PlayersManager.GetPlayerByName(this.Player).UnregisterTank(this); }