private void Shoot()
    {
        if (OwnController.Info.GetComponent <StateBar>().CurrentEnergy >= 10)
        {
            GameObject bullet = Instantiate(Bullet, transform.position, transform.rotation);
            bullet.GetComponent <BulletController>().Damage = _damage;
            bullet.GetComponent <BulletController>().Speed  = _bulletSpeed;
            //OwnController.Info.GetComponent<StateBar>().ConsumeEnergy(10);
            BulletController bulletController = bullet.GetComponent <BulletController>();
            bulletController.target         = Target.GetComponent <ColliderController>().GameBody;
            bulletController.targetCollider = Target;
            bulletController.isShoot        = true;
            bulletController.Camp           = OwnController.Camp;

            MessageBox.MessageBase MB = new MessageBox.MessageBase();
            MB.Type = "SendBulletMessage";
            MessageBox.Position SP = new MessageBox.Position
            {
                x = transform.position.x,
                y = transform.position.y
            };
            MessageBox.SendBulletMessage SBM = new MessageBox.SendBulletMessage();
            SBM.ShooterID     = OwnController.id;
            SBM.StartPosition = JsonUtility.ToJson(SP);
            SBM.TargetID      = Target.gameObject.GetComponent <OtherObjectController>().id;
            MB.Message        = JsonUtility.ToJson(SBM);
            WS.Send(JsonUtility.ToJson(MB));
        }
    }
Beispiel #2
0
    public void initialize(MessageBox.InitializeMessage message)
    {
        _camp = GetOtherCamp(message.Camp);
        Debug.Log("Camp:" + _camp);
        MessageBox.Position position = JsonUtility.FromJson <MessageBox.Position>(message.PlayerPosition);
        GameObject          player   = Instantiate(Player, new Vector3(position.x, position.y, 0), new Quaternion());

        player.name = "Player";
        player.GetComponent <PlayerController>().id   = message.PlayerID;
        player.GetComponentInChildren <StateBar>().id = message.PlayerID;
        Collector.Others.Add(new Collector.KeyValuePair
        {
            key   = message.PlayerID,
            value = player
        });
        position = JsonUtility.FromJson <MessageBox.Position>(message.HingePosition);
        GameObject hinge = Instantiate(Hinge, new Vector3(position.x, position.y, 0), new Quaternion());

        hinge.name = "Hinge";
        hinge.GetComponent <HingeController>().id    = message.HingeID;
        hinge.GetComponentInChildren <StateBar>().id = message.HingeID;
        Collector.Others.Add(new Collector.KeyValuePair
        {
            key   = message.HingeID,
            value = hinge
        });
    }
Beispiel #3
0
    public void initializeOthers(MessageBox.OtherInitializeMessage message)
    {
        Color OtherCamp = GetOtherCamp(message.Camp);

        MessageBox.Position position    = JsonUtility.FromJson <MessageBox.Position>(message.PlayerPosition);
        GameObject          otherPlayer = Instantiate(OtherPlayer, new Vector3(position.x, position.y, 0), new Quaternion());

        otherPlayer.GetComponent <OtherObjectController>().id   = message.PlayerID;
        otherPlayer.GetComponent <OtherObjectController>().type = OtherObjectController.Type.Player;
        otherPlayer.GetComponent <OtherObjectController>().SendMessage("Init", OtherCamp);
        position = JsonUtility.FromJson <MessageBox.Position>(message.HingePosition);
        GameObject otherHinge = Instantiate(OtherHinge, new Vector3(position.x, position.y, 0), new Quaternion());

        otherHinge.GetComponent <OtherObjectController>().id   = message.HingeID;
        otherHinge.GetComponent <OtherObjectController>().type = OtherObjectController.Type.Hinge;
        otherHinge.GetComponent <OtherObjectController>().SendMessage("Init", OtherCamp);
    }
Beispiel #4
0
    void OnMessage(string data)
    {
        JsonUtility.FromJsonOverwrite(data, MessageBase);
        switch (MessageBase.Type)
        {
        case "InitializeMessage":
            JsonUtility.FromJsonOverwrite(MessageBase.Message, InitializeMessage);
            Initialize.SendMessage("initialize", InitializeMessage);
            break;

        case "PlayerPosition":
            JsonUtility.FromJsonOverwrite(MessageBase.Message, PlayerPosition);
            GameObject Player = new GameObject();
            foreach (Collector.KeyValuePair p in Collector.Others)
            {
                if (p.key == PlayerPosition.id)
                {
                    Player = p.value;
                }
            }
            Player.transform.position = new Vector3(PlayerPosition.x, PlayerPosition.y, 0);
            break;

        case "OtherInitializeMessage":
            JsonUtility.FromJsonOverwrite(MessageBase.Message, OtherInitializeMessage);
            Initialize.SendMessage("initializeOthers", OtherInitializeMessage);
            break;

        case "BulletMessage":
            JsonUtility.FromJsonOverwrite(MessageBase.Message, BulletMessage);
            MessageBox.Position SP = new MessageBox.Position();
            JsonUtility.FromJsonOverwrite(BulletMessage.StartPosition, SP);
            Debug.Log("SP: x:" + SP.x + "SP:y:" + SP.y);
            GameObject bullet = Instantiate(Bullet, new Vector3(SP.x, SP.y, 0), new Quaternion());
            foreach (Collector.KeyValuePair p in Collector.Others)
            {
                if (p.key == BulletMessage.TargetID)
                {
                    bullet.GetComponent <OtherBulletController>().target = p.value;
                }
            }
            bullet.GetComponent <OtherBulletController>().Camp    = Initialize.GetOtherCamp(BulletMessage.Camp);
            bullet.GetComponent <OtherBulletController>().isShoot = true;
            break;

        case "ChangeStateBar":
            Debug.Log(data);
            JsonUtility.FromJsonOverwrite(MessageBase.Message, ChangeStateBar);
            GameObject Object = new GameObject();
            foreach (Collector.KeyValuePair p in Collector.Others)
            {
                if (p.key == ChangeStateBar.id)
                {
                    Object = p.value;
                    Debug.Log("get Object");
                }
            }
            Object.GetComponentInChildren <StateBar>().ChangeInfoByMessage(ChangeStateBar);
            break;

        case "BuildMessage":
            Debug.Log("BuildMessage: " + data);
            JsonUtility.FromJsonOverwrite(MessageBase.Message, BuildMessage);
            MessageBox.Position P = JsonUtility.FromJson <MessageBox.Position>(BuildMessage.Position);
            switch (BuildMessage.Type)
            {
            case "Field":
                GameObject Field = Resources.Load <GameObject>("Prefabs/Field");
                GameObject field = Instantiate(Field, new Vector3(P.x, P.y, 0), new Quaternion());
                field.GetComponent <FieldController>().id    = BuildMessage.id;
                field.GetComponentInChildren <StateBar>().id = BuildMessage.id;
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = field
                });
                break;

            case "Reserve":
                GameObject Reserve = Resources.Load <GameObject>("Prefabs/Reserve");
                GameObject reserve = Instantiate(Reserve, new Vector3(P.x, P.y, 0), new Quaternion());
                reserve.GetComponent <FieldController>().id    = BuildMessage.id;
                reserve.GetComponentInChildren <StateBar>().id = BuildMessage.id;
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = reserve
                });
                break;

            case "Turret":
                GameObject Turret = Resources.Load <GameObject>("Prefabs/Turret");
                GameObject turret = Instantiate(Turret, new Vector3(P.x, P.y, 0), new Quaternion());
                turret.GetComponent <FieldController>().id    = BuildMessage.id;
                turret.GetComponentInChildren <StateBar>().id = BuildMessage.id;
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = turret
                });
                break;
            }
            break;

        case "OtherBuildMessage":
            Debug.Log("OtherBuildMessage: " + data);
            JsonUtility.FromJsonOverwrite(MessageBase.Message, BuildMessage);
            MessageBox.Position PP = JsonUtility.FromJson <MessageBox.Position>(BuildMessage.Position);
            switch (BuildMessage.Type)
            {
            case "Field":
                GameObject Field = Resources.Load <GameObject>("Prefabs/OtherField");
                GameObject field = Instantiate(Field, new Vector3(PP.x, PP.y, 0), new Quaternion());
                field.GetComponent <OtherObjectController>().id = BuildMessage.id;
                field.GetComponent <OtherObjectController>().SendMessage("Init", Initialize.GetOtherCamp(BuildMessage.Camp));
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = field
                });
                break;

            case "Reserve":
                GameObject Reserve = Resources.Load <GameObject>("Prefabs/OtherReserve");
                GameObject reserve = Instantiate(Reserve, new Vector3(PP.x, PP.y, 0), new Quaternion());
                reserve.GetComponent <OtherObjectController>().id = BuildMessage.id;
                reserve.GetComponent <OtherObjectController>().SendMessage("Init", Initialize.GetOtherCamp(BuildMessage.Camp));
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = reserve
                });
                break;

            case "Turret":
                GameObject Turret = Resources.Load <GameObject>("Prefabs/OtherTurret");
                GameObject turret = Instantiate(Turret, new Vector3(PP.x, PP.y, 0), new Quaternion());
                turret.GetComponent <OtherObjectController>().id = BuildMessage.id;
                turret.GetComponent <OtherObjectController>().SendMessage("Init", Initialize.GetOtherCamp(BuildMessage.Camp));
                Collector.Others.Add(new Collector.KeyValuePair
                {
                    key   = BuildMessage.id,
                    value = turret
                });
                break;
            }
            break;
        }
    }