Пример #1
0
    private void Start()
    {
        colliders = GetComponentsInChildren <Collider2D>();
        disableColliders(colliders);

        if (canMove)
        {
            movement = GetComponent <ItemMovement>();
        }

        if (isRigid)
        {
            rigid = GetComponent <Rigidbody2D>();
            rigid.gravityScale = 0;
        }

        if (isStar)
        {
            star = GetComponent <Star>();
        }

        Vector3 startPos = transform.position;
        Vector3 endPos   = new Vector3(transform.position.x, transform.position.y + blockMovement.moveUpDistance, transform.position.z);

        StartCoroutine(MoveUp(startPos, endPos));
    }
Пример #2
0
 private void Start()
 {
     movement = GetComponentInParent <ItemMovement>();
     if (isShell)
     {
         movement.canMove = false;
         StartCoroutine(waitforRespawn());
     }
 }
Пример #3
0
 public void Shoot(ItemMovement.direction dir)
 {
     GameObject go = (GameObject)Instantiate(shootee, this.transform.position, Quaternion.identity);
     go.transform.parent = this.gameObject.transform;
     if (dir == ItemMovement.direction.LEFT)
     {
         go.transform.localScale = new Vector3(go.transform.localScale.x * -1, go.transform.localScale.y, go.transform.localScale.z);
     }
 }
Пример #4
0
    private void Start()
    {
        animator   = GetComponentInParent <Animator>();
        renderer   = GetComponentInParent <SpriteRenderer>();
        enemyRigid = GetComponentInParent <Rigidbody2D>();
        movement   = GetComponentInParent <ItemMovement>();
        manager    = GameObject.FindGameObjectWithTag("Manager").GetComponent <GameManager>();

        colliders = transform.parent.GetComponentsInChildren <Collider2D>();
    }
Пример #5
0
    /// <summary>
    /// Convert the item movement data into a data component.
    /// </summary>
    public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
    {
        var movement = new ItemMovement
        {
            heightFactor = heightFactor,
            deltaDegrees = deltaDegrees
        };

        dstManager.AddComponentData(entity, movement);
    }
Пример #6
0
    public void TryPurchaseItem(int cost, GameObject ItemPrefab)
    {
        PriceToPay    = -1 * cost;
        PurchasedItem = Instantiate(ItemPrefab);
        ItemMovement ItemMove = PurchasedItem.AddComponent <ItemMovement>();

        ItemMove.Purchased(Player.transform.position, this);
        PlacingObject = true;
        SmoothCamera.instance.SwapTransform(PurchasedItem.transform, CameraLookAtTrans.transform, true);
        Canvas.CloseShop();
    }
Пример #7
0
        public override void Update(GameTime gameTime)
        {
            Body.Hikuah(12);
            SourceRect = ItemMovement.Animate(gameTime);
            if (GetPosition().X > CowGameScreen.Graphics.PreferredBackBufferWidth && CowGameScreen.WorldOnFocus.RightWorld != null)
            {
                CowGameScreen.ChangeWorld(this, Direction.Right);
            }

            if (GetPosition().X + GetPosition().Width < 0 && CowGameScreen.WorldOnFocus.LeftWorld != null)
            {
                CowGameScreen.ChangeWorld(this, Direction.Left);
            }
        }
Пример #8
0
    public void MoveItem(Vector3Int origin, Direction direction, Transform item)
    {
        ItemMovement movement = new ItemMovement(origin, direction, item);

        itemMovements.Add(movement);
        movementLookup[origin] = movement;

        // Check for special case of two conveyors facing each other
        if (movementLookup.TryGetValue(movement.Destination, out var destMovement) && destMovement.Destination == movement.Origin)
        {
            BlockMovement(movement.Origin);
            BlockMovement(movement.Destination);
        }
    }
        protected override OpResult _Store(ItemMovement _obj)
        {
            if (_obj == null)
            {
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.ObjectIsNull, _obj, "ItemMovement object cannot be created as it is null"));
            }

            if (Exists(_obj))
            {
                ExecuteNonQuery(GetQuery_UpdateQuery(_obj));
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Updated, _obj));
            }

            ExecuteNonQuery(GetQuery_InsertQuery(_obj));
            _obj.FromDb = true;

            return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Created, _obj));
        }
Пример #10
0
    private void OnDisable()
    {
        GameController.Instance.AddScore(1);
        GameObject effect = EffectPool.Instance.GetFromPool((int)eTYPE_EFFECT.ROCK_TYPE);

        effect.transform.position = this.transform.position;
        SoundController.Instance.PlayeEffectSound(eEffectClips.ExpRock);

        int getItem = 0;

        getItem = Random.Range(0, 100);
        if (getItem <= 30)
        {
            int          idx     = Random.Range(0, 2);
            ItemMovement newItem = itemPool.GetFromPool(idx);
            newItem.transform.position = this.transform.position;
        }
    }
    IEnumerator Spawn()
    {
        yield return(new WaitForSeconds(timeBetweenSpawns));

        GameObject go = Instantiate(prefab, startPositions[Random.Range(0, startPositions.Count)], Quaternion.identity);

        go.GetComponent <SpriteRenderer>().color = (Random.Range(0, 100) <= 35)
            ?
                                                   Color.black
            :
                                                   colors[Random.Range(0, colors.Length - 1)];

        ItemMovement goItem = go.GetComponent <ItemMovement>();

        goItem.speed = Random.Range(minSpeed, maxSpeed);

        if (run)
        {
            StartCoroutine(Spawn());
        }
    }
Пример #12
0
    private void RaycastHandling()
    {
        if (Physics.Raycast(camTransform.position, camTransform.forward, out hit, float.MaxValue))
        {
            lastItem    = currentItem;
            currentItem = hit.collider.GetComponent <ItemMovement>();

            if (currentItem != null)
            {
                gravityMode = currentItem.GetGravityMode();
            }

            if (currentItem != null && !alreadyActived)
            {
                currentItem.SetGravityMode(ItemMovement.GravityMode.Self);
            }

            if (lastItem != null && currentItem != lastItem && !alreadyActived)
            {
                lastItem.SetGravityMode(ItemMovement.GravityMode.World);
            }
        }

        if (currentItem == null)
        {
            if (alreadyActived)
            {
                currentItem = lastItem;
            }

            lastItem = null;
        }

        if (currentItem != null)
        {
            gravityMode = currentItem.GetGravityMode();
        }
    }
Пример #13
0
 public void KillGravity(ItemMovement item)
 {
     itemMovement = item;
     Debug.Log(item.name);
     item.gameObject.GetComponent <Rigidbody>().useGravity = false;
 }
Пример #14
0
 public override void Update(GameTime gameTime)
 {
     Body.Stop();
     SourceRect = ItemMovement.Animate(gameTime);
 }
Пример #15
0
 public void Start()
 {
     itemMovement = transform.GetComponentInParent <ItemMovement>();
     GetComponent <BoxCollider>().isTrigger = true;
     this.gameObject.layer = 2; // set into ignore raycast layer.
 }
 private DbUpdateStatement GetQuery_UpdateQuery(ItemMovement _obj)
 {
     return(DbMgr.CreateUpdateClause("ItemMovement", GetFields(_obj), "ItemMovementID", _obj.ItemMovementID));
 }
Пример #17
0
 public void Shoot(ItemMovement.direction dir)
 {
     GameObject go = (GameObject) Instantiate(shootee, this.transform.position, Quaternion.identity);
     go.GetComponent<ItemMovement>().dir = dir;
 }
Пример #18
0
    // Evaluate movements & Write output
    void LateUpdate()
    {
        if (!TickInfo.Ticking)
        {
            return;
        }

        // Evaluate movements
        foreach (var movement in itemMovements)
        {
            // If there is no belt in the destination, we're blocked
            if (!belts.ContainsKey(movement.Destination))
            {
                BlockMovement(movement.Origin);
                continue;
            }

            // If there is a belt, check for blocking
            if (movementLookup.TryGetValue(movement.Destination, out var aheadMovement))
            {
                if (aheadMovement.Blocked)
                {
                    //print("Ahead is blocked (origin: " + movement.Origin + ")");
                    BlockMovement(movement.Origin);
                }
                else
                {
                    //print("Adding dependency from " + movement.Origin + " to " + movement.Destination);
                    movementDependency.Add(movement.Origin, movement.Destination);
                }
            }

            // Check priority
            if (!movement.Blocked)
            {
                var center     = movement.Destination;
                var centerBelt = belts[center];
                //print($"Center: {center}");

                // Get surrounding positions in order of priority
                var behind           = center + centerBelt.Direction.Opposite().Vector3Int();
                var clockwise        = center + centerBelt.Direction.Clockwise().Vector3Int();
                var counterClockwise = center + centerBelt.Direction.CounterClockwise().Vector3Int();
                var front            = center + centerBelt.Direction.Vector3Int();

                ItemMovement[] priorityMovements = new ItemMovement[4];

                priorityMovements[0] = movementLookup.ContainsKey(behind) ? movementLookup[behind] : null;
                priorityMovements[1] = movementLookup.ContainsKey(clockwise) ? movementLookup[clockwise] : null;
                priorityMovements[2] = movementLookup.ContainsKey(counterClockwise) ? movementLookup[counterClockwise] : null;
                priorityMovements[3] = movementLookup.ContainsKey(front) ? movementLookup[front] : null;

                bool foundGoodMovement = false;
                for (int i = 0; i < 4; i++)
                {
                    if (priorityMovements[i] == null || priorityMovements[i].Destination != center)
                    {
                        continue;
                    }
                    if (!foundGoodMovement && !priorityMovements[i].Blocked)
                    {
                        foundGoodMovement = true;
                    }
                    else
                    {
                        BlockMovement(priorityMovements[i].Origin);
                    }
                }
            }
        }

        // Write output
        foreach (var movement in itemMovements)
        {
            var belt = belts[movement.Origin];
            belt.Moving = !movement.Blocked;
        }
    }
        private DbInsertStatement GetQuery_InsertQuery(ItemMovement _obj)
        {
            Dictionary <string, DbFieldEntry> fields = GetFields(_obj);

            return(DbMgr.CreateInsertClause("ItemMovement", fields));
        }