예제 #1
0
        public int CreatePickup(int model, Vector3 pos, Vector3 rot, int amount, uint respawnTime, int dimension, int customModel = 0)
        {
            int localEntityHash;
            var obj = new PickupProperties();

            obj.Position    = pos;
            obj.Rotation    = rot;
            obj.ModelHash   = model;
            obj.RespawnTime = respawnTime;
            obj.Amount      = amount;
            obj.Dimension   = dimension;
            obj.Alpha       = 255;
            obj.Flag        = 0;
            obj.CustomModel = customModel;
            obj.EntityType  = (byte)EntityType.Pickup;

            lock (ServerEntities)
            {
                localEntityHash = GetId();
                ServerEntities.Add(localEntityHash, obj);
            }

            var packet = new CreateEntity();

            packet.EntityType = (byte)EntityType.Pickup;
            packet.Properties = obj;
            packet.NetHandle  = localEntityHash;

            Program.ServerInstance.SendToAll(packet, PacketType.CreateEntity, true, ConnectionChannel.EntityBackend);

            return(localEntityHash);
        }
예제 #2
0
        public int CreatePickup(int model, Vector3 pos, Vector3 rot, int amount, uint respawnTime, int dimension, int customModel = 0)
        {
            int localEntityHash;
            var obj = new PickupProperties
            {
                Position    = pos,
                Rotation    = rot,
                ModelHash   = model,
                RespawnTime = respawnTime,
                Amount      = amount,
                Dimension   = dimension,
                Alpha       = 255,
                Flag        = 0,
                CustomModel = customModel,
                EntityType  = (byte)EntityType.Pickup
            };

            lock (ServerEntities)
            {
                localEntityHash = GetId();
                ServerEntities.Add(localEntityHash, obj);
            }

            var packet = new CreateEntity
            {
                EntityType = (byte)EntityType.Pickup,
                Properties = obj,
                NetHandle  = localEntityHash
            };

            Program.ServerInstance.SendToAll(packet, PacketType.CreateEntity, true, ConnectionChannel.EntityBackend);

            return(localEntityHash);
        }
    // Update is called once per frame
    void Update()
    {
        if (canSpawn == true)
        {
            int        random = Random.Range(0, GameObjs.Count);
            GameObject item   = (GameObject)Instantiate(GameObjs[random], transform.position, transform.rotation);
            //set the item's initial spawn point
            PickupProperties pickup = item.GetComponent <PickupProperties>();
            pickup.setSpawn(gameObject);


            canSpawn  = false;
            currTimer = SpawnTimer;
        }
        if (timeRunning)
        {
            if (currTimer <= 0)
            {
                canSpawn    = true;
                timeRunning = false;
                currTimer   = SpawnTimer;
            }
            else
            {
                currTimer--;
            }
        }
    }
예제 #4
0
	public void updateItems(PickupProperties item){
		
		myItems.Add (item);
        updateAtk(getNodeAtk() + item.attackModifier());
        updateDef(getNodeDef() + item.defenseModifier());

    }
예제 #5
0
    // check on collision with another collider
    /*** must be trigger enabled ***/
    void OnTriggerEnter(Collider other)
    {
        if (canPickUpL || canPickUpR)
        {
            // if other object is a "Pickup":
            if (other.gameObject.CompareTag("Pickup"))
            {
                GameObject otherObject = other.gameObject;

                // append item to a node representing
                if (canPickUpL)
                {
                    AppendItem(otherObject, leftArm);
                }
                if (canPickUpR)
                {
                    AppendItem(otherObject, rightArm);
                }

                // obtain pickup's properties
                pickupProperties = otherObject.GetComponent <PickupProperties>();
                if (pickupProperties != null)
                {
                    pickupProperties.PrintProperties(); // print'em
                }
            }
        }
    }
예제 #6
0
 public void Init(Main main, PickupType pickupType)
 {
     this.main             = main;
     this.pickupType       = pickupType;
     this.pickupProperties = Pickup.pickupTypeToProperties[pickupType];
     gridSpacing           = main.GetGridSpacing();
     groundYPos            = (pickupProperties.scale.y / 2) - main.GetPlayerHeight() / 2;
 }
예제 #7
0
 void OnTriggerEnter(Collider col)
 {
     if(col.tag == playerTag)
     {
         PickupProperties pickupProperties = new PickupProperties(type, value);
         col.SendMessageUpwards("OnPickUp", pickupProperties);
         Destroy(gameObject);
     }
 }
예제 #8
0
        public void RespawnPickup(int netHandle, PickupProperties prop)
        {
            prop.PickedUp = false;

            var packet = new CreateEntity();

            packet.EntityType = (byte)EntityType.Pickup;
            packet.Properties = prop;
            packet.NetHandle  = netHandle;

            Program.ServerInstance.SendToAll(packet, PacketType.CreateEntity, true, ConnectionChannel.EntityBackend);
        }
예제 #9
0
 public void effectItemsDur()
 {
     for (int i = 0; i < myItems.Count; i++)
     {
         PickupProperties curr_item = (PickupProperties)myItems [i];
         curr_item.useDurability();
         if (curr_item.durability() <= 0)
         {
             updateAtk(getNodeAtk() - curr_item.attackModifier());
             updateDef(getNodeDef() - curr_item.defenseModifier());
             Destroy(curr_item.gameObject);
             myItems.Remove(curr_item);
         }
     }
 }
예제 #10
0
    void OnPickUp(PickupProperties pickup)
    {
        switch(pickup.type)
        {
            case PickupType.Score:
                scorePickUps += pickup.value;
                break;
            case PickupType.Heal:
                ScoreManager.Score += pickup.value;
                damageablePlayer.Health += pickup.value;
                break;
            default:
                Debug.Log("Empty pickup processed. " + pickup.ToString());
                break;
        }

    }
예제 #11
0
        public int CreatePickup(int model, Vector3 pos, Vector3 rot, int amount)
        {
            int localEntityHash = ++EntityCounter;
            var obj             = new PickupProperties();

            obj.Position   = pos;
            obj.Rotation   = rot;
            obj.ModelHash  = model;
            obj.Amount     = amount;
            obj.EntityType = (byte)EntityType.Pickup;
            ServerEntities.Add(localEntityHash, obj);

            var packet = new CreateEntity();

            packet.EntityType = (byte)EntityType.Pickup;
            packet.Properties = obj;
            packet.NetHandle  = localEntityHash;

            Program.ServerInstance.SendToAll(packet, PacketType.CreateEntity, true);

            return(localEntityHash);
        }
예제 #12
0
    // check on collision with another collider
    /*** must be trigger enabled ***/
    void OnTriggerEnter(Collider other) {

        if (canPickUpL || canPickUpR) {

            // if other object is a "Pickup":
            if (other.gameObject.CompareTag("Pickup")) {

                GameObject otherObject = other.gameObject;

                // append item to a node representing 
                if(canPickUpL)
                    AppendItem(otherObject, leftArm);
                if (canPickUpR)
                    AppendItem(otherObject, rightArm);

                // obtain pickup's properties
                pickupProperties = otherObject.GetComponent<PickupProperties>();
                if (pickupProperties != null)
                    pickupProperties.PrintProperties(); // print'em

            }
        }

    }
예제 #13
0
 public void updateItems(PickupProperties item)
 {
     myItems.Add(item);
     updateAtk(getNodeAtk() + item.attackModifier());
     updateDef(getNodeDef() + item.defenseModifier());
 }