Exemplo n.º 1
0
        private EnemyController CreateController()
        {
            EnemyController controller;

            switch (this.enemyType)
            {
            case EnemyType.Mine:
                controller = new MineController(this);
                break;

            case EnemyType.Drone:
                controller = new DroneController(this);
                break;

            case EnemyType.MineLayer:
                controller = new MineLayerController(this);
                break;

            case EnemyType.Warrior:
                controller = new WarriorController(this);
                break;

            case EnemyType.Warlord:
                controller = new WarriorController(this);
                break;

            default:
                controller = new MineController(this);
                break;
            }
            return(controller);
        }
    public ISerializable <ShipControllerPersistance> SetObject(ShipControllerPersistance serializedObject)
    {
        this._fleetCommandQueue = new FleetCommandQueue();
        this._fleetCommandQueue.SetObject(serializedObject.fleetCommandQueuePersistance);

        MineController mineController = GetComponent <MineController>();

        if (mineController != null)
        {
            mineController.SetObject(serializedObject.mineControllerPersistance);
        }

        ResourceStorageController resourceStorageController = GetComponent <ResourceStorageController>();

        if (resourceStorageController != null)
        {
            resourceStorageController.SetObject(serializedObject.resourceStoragePersistance);
        }

        foreach (TurretControllerPersistance turretControllerPersistance in serializedObject.turretControllerPersistances)
        {
            transform.GetChild(turretControllerPersistance.turretIndex).GetComponent <TurretController>().SetObject(turretControllerPersistance);
        }

        this._ship    = serializedObject.ship;
        this.shipType = serializedObject.shipType;

        return(this);
    }
Exemplo n.º 3
0
    private void Start()
    {
        collisionController = GetComponent <CollisionController>();
        PlayerMovement playerMovement = GameObject.FindWithTag("Player").GetComponent <PlayerMovement>();

        gravity          = playerMovement.GetGravity();
        terminalVelocity = playerMovement.GetTerminalVelocity();
        child            = transform.Find("Pickaxe");
        playerTransform  = playerMovement.transform;
        rend             = child.GetComponent <SpriteRenderer>();
        mineController   = playerTransform.GetComponent <MineController>();
    }
Exemplo n.º 4
0
        public MineCommand(MapObject source, MapObject target) : base(source, target, CommandType.Mine)
        {
            resourceStorageController = source.GetComponent <ResourceStorageController>();
            mineController            = source.GetComponent <MineController>();

            if (target != null)
            {
                asteroidController = target.GetComponent <AsteroidController>() ?? null;
            }

            base.destinationOffset = 2f;
            player = PlayerDatabase.Instance.GetObjectPlayer(source.gameObject);
        }
Exemplo n.º 5
0
    public void InitMineLand()
    {
        int initX = 0 - (MINE_WIDE * s_mineRow / 2);
        int initY = 0 - (MINE_HIGH * s_mineColumn / 2);

        GameObject minePrefab = Resources.Load <GameObject>("MinePrefab");

        for (byte r = 0; r < s_mineRow; ++r)
        {
            for (byte c = 0; c < s_mineColumn; ++c)
            {
                GameObject mineGo = GameObject.Instantiate <GameObject>(minePrefab);
                mineGo.name = "mine_" + r + "_" + c;
                mineGo.transform.SetParent(GlobalRef.SceneRoot, false);
                mineGo.transform.localPosition = new Vector3(
                    initX + r * MINE_WIDE + MINE_WIDE / 2,
                    initY + c * MINE_HIGH + MINE_HIGH / 2,
                    0);
                MineController mController = mineGo.GetComponent <MineController>();
                mController.Row    = r;
                mController.Column = c;
                if (s_mines[r * s_mineColumn + c] > 8)
                {
                    mController.IsMine = true;
                    mController.m_bomb.gameObject.SetActive(true);
                    mController.m_number.gameObject.SetActive(false);
                    mController.m_cover.gameObject.SetActive(true);
                }
                else
                {
                    mController.IsMine = false;
                    mController.m_bomb.gameObject.SetActive(false);
                    mController.m_number.gameObject.SetActive(true);
                    mController.m_cover.gameObject.SetActive(true);
                }
                mController.Opened = false;
            }
        }


        Cmd.BattleClientReady req = new Cmd.BattleClientReady();
        MemoryStream          ms2 = new MemoryStream();

        Serializer.Serialize <Cmd.BattleClientReady>(ms2, req);
        NetMgr.Instance.SendMsgToGate(req.id, ms2.ToArray());
    }
Exemplo n.º 6
0
    public GameObject SpawnMine(MineType type, float minScale, float maxScale, float minSpeed, float maxSpeed)
    {
        // Position
        Vector3 pos = transform.position;

        pos.x = Random.Range(minPosX, maxPosX);

        // Init
        GameObject mine;

        if (type == MineType.Blue)
        {
            mine = Instantiate(blueMinePrefab, pos, Quaternion.identity);
        }
        else
        {
            mine = Instantiate(redMinePrefab, pos, Quaternion.identity);
        }
        MineController mineCtrlr = mine.GetComponent <MineController>();

        mineCtrlr.explosionVFX        = explosionVFX;
        mineCtrlr.explosionSoundCtrlr = explosionSoundCtrlr;

        // Rotation
        mine.transform.localRotation = Random.rotation;

        // Size
        Vector3 scale = mine.transform.localScale;

        scale *= Random.Range(minScale, maxScale);
        mine.transform.localScale = scale;

        // Speed
        Rigidbody2D rb = mine.GetComponent <Rigidbody2D>();

        rb.gravityScale *= Random.Range(minSpeed, maxSpeed);

        return(mine);
    }
    public ShipControllerPersistance Serialize()
    {
        List <TurretControllerPersistance> turretControllerPersistances = new List <TurretControllerPersistance>();

        TurretController[] turretControllers = GetComponentsInChildren <TurretController>();

        foreach (TurretController turretController in turretControllers)
        {
            turretControllerPersistances.Add(turretController.Serialize());
        }

        ShipControllerPersistance shipControllerPersistance = new ShipControllerPersistance(Ship, shipType, GetComponent <MapObject>().Serialize(), _fleetCommandQueue.Serialize(), turretControllerPersistances, true);

        MineController            mineController            = GetComponent <MineController>();
        ResourceStorageController resourceStorageController = GetComponent <ResourceStorageController>();

        shipControllerPersistance.mineControllerPersistance = mineController != null?mineController.Serialize() : null;

        shipControllerPersistance.resourceStoragePersistance = resourceStorageController != null?resourceStorageController.Serialize() : null;

        return(shipControllerPersistance);
    }
Exemplo n.º 8
0
    public static bool ParseBattleOpenMineNtf(byte[] msg_, int msgLen_)
    {
        MemoryStream ms = new MemoryStream(msg_, 0, msgLen_);

        Cmd.BattleOpenMineNtf rcv = Serializer.Deserialize <Cmd.BattleOpenMineNtf>(ms);

        string    mineName  = "mine_" + rcv.row + "_" + rcv.column;
        Transform mineTrans = GlobalRef.SceneRoot.FindChild(mineName);

        if (null == mineTrans)
        {
            Utility.LogWarning("open mine not found (" + rcv.row + ":" + rcv.column + ")");
            return(true);
        }

        MineController mController = mineTrans.gameObject.GetComponent <MineController>();

        mController.m_cover.gameObject.SetActive(false);
        mController.Opened = true;

        Utility.Log("battle open mine ntf (" + rcv.row + ":" + rcv.column + ")");
        return(true);
    }
Exemplo n.º 9
0
 public void OnWeaponsChanged()
 {
     if (m_mineController != null)
       Destroy(m_mineController);
     m_mineController = ScriptableObject.CreateInstance<MineController>() as MineController;
     m_mineController.Init(this);
 }
Exemplo n.º 10
0
 public void Start()
 {
     mineController      = GetComponent <MineController>();
     collisionController = GetComponent <CollisionController>();
     UpdateKinematics();
 }
Exemplo n.º 11
0
 //=========================================//
 private void Awake()
 {
     instance = this;
     //
     CreateGhosts();
 }