Example #1
0
        public override IEnumerator Main()
        {
            Machine.ChangeSideEvent.Invoke();
            var board  = SceneSingleton.Get <Board>();
            var client = Machine.GetComponent <TcpClientProxy>();

            client.Send("change_side");
            board.Enable = false;
            RegisterStateOnlyEvent(client.ReceiveEvent, (s) =>
            {
                {
                    var rx    = new Regex(@"ai_move (\d+) (\d+)");
                    var match = rx.Match(s);
                    if (match.Success)
                    {
                        var groups = match.Groups;
                        board.AIMove(new Vector2Int(int.Parse(groups[1].Value), int.Parse(groups[2].Value)));
                        var winrx = new Regex(@"win");
                        if (winrx.Match(s).Success)
                        {
                            Machine.AIWinEvent.Invoke();
                        }
                        else
                        {
                            Machine.ChangeState(new WaitPlayerMove());
                        }
                    }
                }
            });
            yield break;
        }
Example #2
0
        public override IEnumerator Main()
        {
            Machine.WaitPlayerEvent.Invoke();
            var board = SceneSingleton.Get <Board>();

            board.Enable = true;
            RegisterStateOnlyEvent(board.PlayerMove, (pos) =>
            {
                var client = Machine.GetComponent <TcpClientProxy>();
                client.Send(string.Format("move {0} {1}", pos.x, pos.y));
                Machine.ChangeState(new WaitPlayerMoveAnswer());
            });
            yield break;
        }
        private static void MenuCommand(MenuCommand menuCommand)
        {
            var scene = SceneManager.GetActiveScene();

            if (SceneSingleton <SceneVariables> .InstantiatedIn(scene))
            {
                EditorUtility.DisplayDialog("Scene Variables", "The scene already contains a variables object.", "OK");
                return;
            }

            var go = SceneSingleton <SceneVariables> .InstanceIn(scene).gameObject;

            GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject);
            Undo.RegisterCreatedObjectUndo(go, "Create Scene Variables");
            Selection.activeObject = go;
        }
Example #4
0
    private void Start()
    {
        board = SceneSingleton.Get <Board>();
        board.Elems[Position.x, Position.y] = this;

        var     rectTransform = GetComponent <RectTransform>();
        Vector2 pos           = Position;

        pos -= new Vector2(board.Size.x - 1, board.Size.y - 1) / 2;
        pos.Scale(board.Stride);
        rectTransform.localPosition = pos;
        gameObject.name             = string.Format("BoardElem[{0}, {1}]", Position.x, Position.y);

        button = GetComponent <Button>();
        button.onClick.AddListener(OnClick);

        text = GetComponentInChildren <Text>();
    }
Example #5
0
    void FixedUpdate()
    {
        var light = GetComponent <Light2D>();

        if (light.lightType == Light2D.LightType.Point)
        {
            Vector2 origin = transform.position;
            var     player = SceneSingleton.Get <Player>();
            Vector2 target = player.transform.position;
            Vector2 dir    = target - origin;
            if (!Physics2D.Raycast(origin, dir.normalized, dir.magnitude, blockLayer) && dir.magnitude < light.pointLightOuterRadius)
            {
                Vector2 localDir = transform.InverseTransformDirection(dir);
                var     angle    = Vector2.Angle(Vector2.up, localDir);
                if (angle * 2 < light.pointLightOuterAngle)
                {
                    player.UpdateInLights(this, true);
                    return;
                }
            }
            player.UpdateInLights(this, false);
        }
    }
 private void OnDestroy()
 {
     SceneSingleton <SceneVariables> .OnDestroy(this);
 }
 private void Awake()
 {
     SceneSingleton <SceneVariables> .Awake(this);
 }
 public static bool InstantiatedIn(Scene scene)
 {
     return(SceneSingleton <SceneVariables> .InstantiatedIn(scene));
 }
 public static SceneVariables Instance(Scene scene)
 {
     return(SceneSingleton <SceneVariables> .InstanceIn(scene));
 }
Example #10
0
 void Awake()
 {
     sceneSingleton = this;
 }
Example #11
0
 private void Awake()
 {
     instance = this;
 }
Example #12
0
 public void ChangeToScene(string sceneName)
 {
     SceneSingleton.LoadScene(sceneName);
 }
Example #13
0
 public void ChangeToScene(int buildIndex)
 {
     SceneSingleton.LoadScene(buildIndex);
 }