Exemplo n.º 1
0
    void Start()
    {
        // Temporary!!!
        myTurn = (Random.Range(0, 2) == 1) ? true : false;

        Input.multiTouchEnabled = false;

        dolls      = new List <CharacterDoll>();
        playerDoll = new List <CharacterDoll>();
        enemyDoll  = new List <CharacterDoll>();
        skills     = new List <Skill>();

        board = Board.Instance;
        board.Initialize();

        PushAllDolls();

        DollController.Instance.Initialize();

        u = GameUIManager.Instance;
        u.Initialize();
        u.ShowCharacters();

        place = PlaceMode.Instance;
        place.StartPlaceMode();

        SoundManager.Instance.PlayBGM(gameBgm);
    }
Exemplo n.º 2
0
 private void horizontalRadio_CheckedChanged(object sender, EventArgs e)
 {
     if (mode != PlaceMode.None && horizontalRadio.Checked)
     {
         mode = (PlaceMode)((int)mode + 5);
     }
 }
        public void StartDrag(PlaceMode placeMode)
        {
            if (Placed)
            {
                return;
            }
            if (Dragging)
            {
                return;
            }
            Dragging = true;
            Input.InputManager.Input.EditorMode.Place.UsePressed();
            switch (placeMode)
            {
            case PlaceMode.None:
                dragCoroutine = StartCoroutine(DragProcess());
                break;

            case PlaceMode.Click:
                dragCoroutine = StartCoroutine(ClickMove());
                break;

            case PlaceMode.Drag:
                dragCoroutine = StartCoroutine(ClickMove());
                break;
            }
        }
Exemplo n.º 4
0
 private void verticalRadio_CheckedChanged(object sender, EventArgs e)
 {
     if (mode != PlaceMode.None && verticalRadio.Checked)
     {
         mode = (PlaceMode)((int)mode - 5);
     }
 }
Exemplo n.º 5
0
 private void boatBtn_Click(object sender, EventArgs e)
 {
     if (verticalRadio.Checked)
     {
         mode = PlaceMode.VBoat;
     }
     else if (horizontalRadio.Checked)
     {
         mode = PlaceMode.HBoat;
     }
 }
Exemplo n.º 6
0
 private void destroyerBtn_Click(object sender, EventArgs e)
 {
     if (verticalRadio.Checked)
     {
         mode = PlaceMode.VDestroyer;
     }
     else if (horizontalRadio.Checked)
     {
         mode = PlaceMode.HDestroyer;
     }
 }
Exemplo n.º 7
0
 private void submarineBtn_Click(object sender, EventArgs e)
 {
     if (verticalRadio.Checked)
     {
         mode = PlaceMode.VSubmarine;
     }
     else if (horizontalRadio.Checked)
     {
         mode = PlaceMode.HSubmarine;
     }
 }
Exemplo n.º 8
0
 private void battleShipBtn_Click(object sender, EventArgs e)
 {
     if (verticalRadio.Checked)
     {
         mode = PlaceMode.VBattleship;
     }
     else if (horizontalRadio.Checked)
     {
         mode = PlaceMode.HBattleship;
     }
 }
Exemplo n.º 9
0
        /// <summary>
        /// Set the place mode
        /// </summary>
        /// <param name="pm">Mode</param>
        public void SetPlaceMode(PlaceMode pm)
        {
            switch (pm)
            {
            case PlaceMode.mousePos:
                placeInScreenCenter = false;
                break;

            case PlaceMode.screenCenter:
                placeInScreenCenter = true;
                break;
            }
        }
Exemplo n.º 10
0
        public Vector3 GridToWorld(Vector2 pos, PlaceMode placeMode = PlaceMode.Axis)
        {
            switch (placeMode)
            {
            case PlaceMode.Axis:
                break;

            case PlaceMode.TileCenter:
                pos = pos + Vector2.one * 0.5f;
                break;

            default:
                throw new NotImplementedException();
            }
            pos = transform.TransformPoint(pos);
            return(pos * scale);
        }
Exemplo n.º 11
0
 private void HandleInputModes()
 {
     if (Input.GetKey(KeyCode.LeftControl))
     {
         placeMode = PlaceMode.Flat;
     }
     else
     {
         placeMode = PlaceMode.Vertical;
     }
     if (Input.GetKey(KeyCode.LeftShift))
     {
         continuousInput = true;
     }
     else
     {
         continuousInput = false;
     }
 }
Exemplo n.º 12
0
        public void Update(IXNAGame _game)
        {
            if (Game.Keyboard.IsKeyPressed(Microsoft.Xna.Framework.Input.Keys.F))
            {
                var bol = PhysicsHelper.CreateDynamicSphereActor(Engine.Scene, 1, 1);
                bol.GlobalPosition = Game.SpectaterCamera.CameraPosition +
                                     Game.SpectaterCamera.CameraDirection * 5;
                bol.LinearVelocity = Game.SpectaterCamera.CameraDirection * 5;
            }


            Plane p   = new Plane(Vector3.Up, 0);
            var   ray = Game.GetWereldViewRay(new Vector2(Game.Window.ClientBounds.Width * 0.5f,
                                                          Game.Window.ClientBounds.Height * 0.5f));

            ray.Direction.Normalize();
            Ray worldRay = new Ray(ray.Position, ray.Direction);
            //worldRay.dir.normalize(); //Important!!

            //var hit = Engine.Scene.RaycastClosestShape(worldRay, ShapesType.All, uint.MaxValue, 1000, uint.MaxValue, null);
            var numHits = Engine.Scene.RaycastAllShapes(worldRay, raycastReport, ShapesType.All);

            if (numHits != raycastReport.Hits.Count)
            {
                throw new InvalidOperationException("I dont seem to understand how this works");
            }

            RaycastHit closestHit;

            closestHit          = new RaycastHit();
            closestHit.Distance = float.PositiveInfinity;
            closestHit.Shape    = null;

            for (int i = 0; i < raycastReport.Hits.Count; i++)
            {
                var hit = raycastReport.Hits[i];
                if (ghostComponent != null)
                {
                    if (ghostComponent.ContainsShape(hit.Shape))
                    {
                        continue;
                    }
                }

                if (hit.Distance < closestHit.Distance && hit.Distance < 1000)
                {
                    closestHit = hit;
                }
            }

            raycastReport.Hits.Clear();

            if (Game.Keyboard.IsKeyDown(Keys.C))
            {
                if (closestHit.Shape != null)
                {
                    if (ghostComponent != null)
                    {
                        ghostComponent.PlaceAtHit(closestHit);
                    }
                }
            }


            if (Game.Keyboard.IsKeyPressed(Keys.X))
            {
                ICogComponent comp = findComponentWithShape(closestHit.Shape);
                if (comp != null)
                {
                    comp.DisposeActors();
                    components.Remove(comp);
                }
            }



            if (Game.Keyboard.IsKeyDown(Keys.R))
            {
                temp(Game, actor);

                /*mobileCog.Dispose();
                 * mobileCog = CreateCog(triangleMesh, engine.Scene);*/
            }

            if (Game.Keyboard.IsKeyPressed(Keys.Enter) || Game.Keyboard.IsKeyPressed(Keys.A))
            {
                switch (placeMode)
                {
                case PlaceMode.StaticBox:
                    ghostComponent = new StaticBox(Engine);
                    components.Add(ghostComponent);
                    break;

                case PlaceMode.Cog:
                    ghostComponent = new Cog(this, Engine);
                    components.Add(ghostComponent);
                    break;
                }
            }


            if (Game.Keyboard.IsKeyPressed(Keys.NumPad9))
            {
                placeMode = PlaceMode.StaticBox;
            }
            if (Game.Keyboard.IsKeyPressed(Keys.NumPad1))
            {
                placeMode = PlaceMode.Cog;
            }



            Engine.Update(Game.Elapsed);
        }
Exemplo n.º 13
0
    /*
     * PlaceMode
     * 1. myTurn이 true일 경우 현재 차례(order)의 캐릭터를 가져온다.
     * 2. UI에서 현재 차례의 캐릭터를 보여주고(스케일, 화살표 등) 타이머를 맞춘다.
     * 3. 보드의 격자를 선택하면 표식을 두고 다시 클릭하거나 '선택'버튼을 누르면 배치된다.
     * 4. 타이머가 0이 되었을 경우 랜덤(임시)으로 배치한다.
     * 5. 현재 차례의 캐릭터가 배치되었으면 상대방에게 차례를 넘긴다.
     */

    void Awake()
    {
        _instance = this;
    }
Exemplo n.º 14
0
 private void HandleInputModes()
 {
     if (Input.GetKey(KeyCode.LeftControl))
     {
         placeMode = PlaceMode.Flat;
     }
     else
     {
         placeMode = PlaceMode.Vertical;
     }
     if (Input.GetKey(KeyCode.LeftShift))
     {
         continuousInput = true;
     }
     else
     {
         continuousInput = false;
     }
 }
Exemplo n.º 15
0
        private void playerCanvas_Click(object sender, EventArgs e)
        {
            MouseEventArgs m = (MouseEventArgs)e;
            shipPlacement  ship;

            switch (mode)
            {
            case PlaceMode.HCarrier:
            case PlaceMode.VCarrier:
                ship = new shipPlacement()
                {
                    x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode
                };
                if (client.PlaceShip(uid, ship))
                {
                    placements.Add(ship);
                    carrierBtn.Visible = false;
                }
                mode = PlaceMode.None;
                break;

            case PlaceMode.HBattleship:
            case PlaceMode.VBattleship:
                ship = new shipPlacement()
                {
                    x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode
                };
                if (client.PlaceShip(uid, ship))
                {
                    placements.Add(ship);
                    battleShipBtn.Visible = false;
                }
                mode = PlaceMode.None;
                break;

            case PlaceMode.HSubmarine:
            case PlaceMode.VSubmarine:
                ship = new shipPlacement()
                {
                    x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode
                };
                if (client.PlaceShip(uid, ship))
                {
                    placements.Add(ship);
                    submarineBtn.Visible = false;
                }
                mode = PlaceMode.None;
                break;

            case PlaceMode.HDestroyer:
            case PlaceMode.VDestroyer:
                ship = new shipPlacement()
                {
                    x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode
                };
                if (client.PlaceShip(uid, ship))
                {
                    placements.Add(ship);
                    destroyerBtn.Visible = false;
                }
                mode = PlaceMode.None;
                break;

            case PlaceMode.HBoat:
            case PlaceMode.VBoat:
                ship = new shipPlacement()
                {
                    x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode
                };
                if (client.PlaceShip(uid, ship))
                {
                    placements.Add(ship);
                    boatBtn.Visible = false;
                }
                mode = PlaceMode.None;
                break;
            }
            Draw();
            if (placements.Count >= 5)
            {
                shipPlacementGrp.Visible = false;
                startBtn.Enabled         = true;
            }
        }
Exemplo n.º 16
0
 public shipPlacement(int x, int y, PlaceMode placement)
 {
     this.x         = x;
     this.y         = y;
     this.placement = placement;
 }