static public void SendItems(NetworkUser networkUser)
 {
     Data.RefreshInfo(networkUser.localUser.userProfile.fileName);
     if (Data.modEnabled)
     {
         Dictionary <int, int> itemsPurchased = new Dictionary <int, int>();
         if (Data.mode == DataEarntConsumable.mode)
         {
             itemsPurchased = DataEarntConsumable.itemsPurchased[Data.profile[Data.mode]];
         }
         else if (Data.mode == DataEarntPersistent.mode)
         {
             itemsPurchased = DataEarntPersistent.itemsPurchased[Data.profile[Data.mode]];
         }
         else if (Data.mode == DataFree.mode)
         {
             itemsPurchased = DataFree.itemsPurchased[Data.profile[Data.mode]];
         }
         else if (Data.mode == DataRandom.mode)
         {
             itemsPurchased = DataRandom.GenerateRandomItemList();
         }
         foreach (int itemID in itemsPurchased.Keys)
         {
             ItemPurchased itemPurchased = new ItemPurchased {
                 _itemID = itemID, _itemCount = itemsPurchased[itemID], _connectionID = networkUser.netId.Value
             };
             itemPurchased.Send(R2API.Networking.NetworkDestination.Server);
         }
         SpawnItems spawnItems = new SpawnItems {
             _mode = Data.mode, _connectionID = networkUser.netId.Value
         };
         spawnItems.Send(R2API.Networking.NetworkDestination.Server);
     }
 }
Beispiel #2
0
 // Is called when a player changes location to load/unload the correct assets.
 public void LoadLocation()
 {
     if (GameModel.sceneChanged == true)
     {
         for (int i = 0; i < locations.Length; i++)
         {
             if (locations[i].name == GameModel.nextLocale.Name)
             {
                 //unloads the items from the previous scene
                 SpawnItems.UnloadGameObjects();
                 //sets the next locations assets to be active
                 locations[i].gameObject.SetActive(true);
                 //sets the current locations assets to inactive
                 GameObject.Find(GameModel.currentLocale.Name).SetActive(false);
                 // Failsafe to tell the game that a scene has changed
                 GameModel.sceneChanged       = false;
                 GameModel.currentLocale      = GameModel.nextLocale;
                 GameModel.cPlayer.LocationId = GameModel.currentLocale.Name;
                 GameModel.ds.updatePlayer(GameModel.cPlayer);
                 PlayerSpawn(GameModel.currentPlayer);
                 SpawnItems.LoadGameObjects();
                 GameModel.menuController.exitText();
                 break;
             }
         }
     }
     else
     {
         GameModel.sceneChanged = true;
     }
 }
Beispiel #3
0
    public void askItem(Vector3 position, NetworkPlayer player)
    {
        Point2 region = NetworkRegions.getRegion(position);
        int    indexFromPositionServer = SpawnItems.getIndexFromPositionServer(region, position);

        if (indexFromPositionServer != -1)
        {
            GameObject modelFromPlayer = NetworkUserList.getModelFromPlayer(player);
            if (modelFromPlayer != null)
            {
                Inventory component = modelFromPlayer.GetComponent <Inventory>();
                if (component.hasSpace(SpawnItems.regions[region.x, region.y].items[indexFromPositionServer]) == 0)
                {
                    component.addItem(SpawnItems.regions[region.x, region.y].items[indexFromPositionServer]);
                    base.networkView.RPC("destroyItem", RPCMode.All, new object[] { position });
                    NetworkSounds.askSound("Sounds/General/take", component.transform.position, 0.1f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
                    NetworkManager.error(Texts.ALERT_ITEM_ADDED, string.Empty, player);
                    if (!modelFromPlayer.networkView.isMine)
                    {
                        modelFromPlayer.networkView.RPC("tookItem", player, new object[0]);
                    }
                    else
                    {
                        modelFromPlayer.GetComponent <Player>().tookItem();
                    }
                }
            }
        }
    }
Beispiel #4
0
    public void tryAddItem(int id, int amount)
    {
        if (ItemWeight.getWeight(id) != -1000)
        {
            ServerItem serverItem = new ServerItem(id, ItemAmount.getAmount(id), ItemState.getState(id), Vector3.zero);
            Vector3    position   = base.transform.position;

            if (base.GetComponent <Player>().vehicle != null)
            {
                position = base.GetComponent <Player>().vehicle.getPosition();
            }

            for (int i = 0; i < amount; i++)
            {
                if (this.hasSpace(serverItem) != 0)
                {
                    SpawnItems.dropItem(id, position);
                }
                else
                {
                    this.addItem(serverItem);
                }
            }
        }
    }
Beispiel #5
0
    // Start is called before the first frame update

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.layer == 13)
        {
            spawnItems = GameObject.FindGameObjectWithTag("Game Manager").GetComponent <SpawnItems>();
            spawnItems.SpawnOne((GameObject)Resources.Load(gameObject.name));
        }
    }
Beispiel #6
0
 // Use this for initialization
 void Start()
 {
     spawn                = FindObjectOfType <SpawnItems>();
     colorChangeScript    = GetComponent <ChangeOverlordColor>();
     spriteCanvas         = GetComponentInChildren <Image>(); //this works now!
     spriteCanvas.enabled = false;
     StartCoroutine(BufferTimeBetweenChoosingItems());        //wait 1 sec and then show item to get!
 }
Beispiel #7
0
 private void Spawn(int[] items, Vector3 position)
 {
     // Spawning
     for (int i = 0; i < items.Length; i++)
     {
         int num = items [i];
         SpawnItems.spawnItem(num, 1, position);
     }
 }
Beispiel #8
0
 public static void Logout()
 {
     SpawnItems.UnloadGameObjects();
     if (finished)
     {
         ds.DropItems();
         SceneManager.LoadScene(0);
     }
 }
Beispiel #9
0
 public static void drop(int id, int amount, string state, Vector3 position)
 {
     if (!ItemState.getMarket(id) && (ItemType.getType(id) != 7 || state != string.Empty))
     {
         position = position + new Vector3(UnityEngine.Random.Range(-0.75f, 0.75f), 0f, UnityEngine.Random.Range(-0.75f, 0.75f));
         Physics.Raycast(position + new Vector3(0f, 2f, 0f), Vector3.down, out SpawnItems.hit, 16f, RayMasks.STATIC);
         position = SpawnItems.hit.point + new Vector3(0f, 0.25f, 0f);
         SpawnItems.spawn(id, amount, state, position);
     }
 }
Beispiel #10
0
    }  // end deploySpawn

    public void SpawnItem(SpawnItems thisSpawn)
    {
        foreach (instanceList inList in InstanceList)
        {
            if (thisSpawn == inList.SpawnItem)
            {
                CheckOverrideAssignment(inList);
                DeploySpawn(inList.Prefab, inList.ShotDirection, inList.AnimTriggerA, inList.AnimTriggerB, inList.SpawnItem, inList.V3CoordsOverride, inList.v3CoordsOverrideObject);
            }
        }
    }
 private void Awake()
 {
     if (instance != null)
     {
         Destroy(gameObject);
     }
     else
     {
         instance = this;
     }
 }
Beispiel #12
0
        public void GiveJobItems(Character character, WayPoint spawnPoint)
        {
            if (SpawnItems == null)
            {
                return;
            }

            foreach (XElement itemElement in SpawnItems.Elements())
            {
                InitializeJobItem(character, spawnPoint, itemElement);
            }
        }
 static public void AttemptSpawnItems(SpawnItems spawnInfo)
 {
     if (spawnInfo._mode != -1 && spawnInfo._connectionID != 0)
     {
         if (!status[spawnInfo._connectionID][0])
         {
             modes[spawnInfo._connectionID]     = spawnInfo._mode;
             status[spawnInfo._connectionID][0] = true;
             SpawnItems(spawnInfo._connectionID);
         }
     }
 }
Beispiel #14
0
        private void SpawnItem(CommandArgs args)
        {
            int num  = System.Convert.ToInt32(args.Parameters[0]);
            int num2 = 1;

            if (args.Parameters.Count == 2)
            {
                num2 = System.Convert.ToInt32(args.Parameters[1]);
            }
            Vector3 position = args.sender.position;

            for (int i = 0; i < num2; i++)
            {
                SpawnItems.spawnItem(num, 1, position);
            }
        }
Beispiel #15
0
 public static void reset()
 {
     for (int i = 0; i < NetworkRegions.REGION_X; i++)
     {
         for (int j = 0; j < NetworkRegions.REGION_Y; j++)
         {
             Vector3[] item = new Vector3[SpawnItems.regions[i, j].items.Count];
             for (int k = 0; k < (int)item.Length; k++)
             {
                 item[k] = SpawnItems.regions[i, j].items[k].position;
             }
             for (int l = 0; l < (int)item.Length; l++)
             {
                 SpawnItems.tool.networkView.RPC("destroyItem", RPCMode.All, new object[] { item[l] });
             }
         }
     }
     for (int m = 0; m < SpawnItems.model.transform.FindChild("spawns").childCount; m++)
     {
         if ((ServerSettings.mode == 0 || ServerSettings.mode == 1) && UnityEngine.Random.@value > Loot.NORMAL_ITEM_CHANCE || ServerSettings.mode == 2 && UnityEngine.Random.@value > Loot.HARDCORE_ITEM_CHANCE || ServerSettings.mode == 3 && UnityEngine.Random.@value > Loot.GOLD_ITEM_CHANCE)
         {
             Transform child = SpawnItems.model.transform.FindChild("spawns").GetChild(m);
             int       loot  = Loot.getLoot(child.name);
             if (ItemWeight.getWeight(loot) != -1000)
             {
                 int type = ItemType.getType(loot);
                 if (type == 10)
                 {
                     SpawnItems.spawnItem(loot, UnityEngine.Random.Range(1, ItemAmount.getAmount(loot) + 1), child.position);
                 }
                 else if (type != 25)
                 {
                     SpawnItems.spawnItem(loot, ItemAmount.getAmount(loot), child.position);
                 }
                 else
                 {
                     for (int n = 0; n < UnityEngine.Random.Range(1, 4); n++)
                     {
                         SpawnItems.spawnItem(loot, ItemAmount.getAmount(loot), child.position + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), 0f, UnityEngine.Random.Range(-0.5f, 0.5f)));
                     }
                 }
             }
         }
     }
 }
Beispiel #16
0
 public void StartLocation()
 {
     parentLocation = GameObject.Find("Locations");
     parentLocation.GetComponentsInChildren <Transform>(true);
     locations = parentLocation.GetComponentsInChildren <Transform>(true);
     GameModel.currentPlayer = GameObject.Find("Player");
     // Loops through the locations transform array
     for (int i = 0; i < locations.Length; i++)
     {
         //trys to find a game object that matches the locations name
         if (locations[i].name == GameModel.currentLocale.Name)
         {
             //When successful it sets this locations assets to active
             locations[i].gameObject.SetActive(true);
         }
     }
     SpawnItems.LoadGameObjects();
 }
Beispiel #17
0
    void RunSupplySpecialTriggers(GameObject currentObject, SpawnItems spawnItem)
    {
        // can replace all this stuff, and inside of starEnemy, with reference to eNum
        string currentString = "";

        switch (spawnItem)
        {
        case SpawnItems.NA:
            break;

        case SpawnItems.OtherBullet:
            break;

        case SpawnItems.HeroBullet:
            break;

        case SpawnItems.SupplyBomb:
            currentString = "Bomb";
            break;

        case SpawnItems.SupplyLevelUp:
            currentString = "LevelUp";
            break;

        case SpawnItems.SupplyStarman:
            currentString = "Starman";
            break;

        case SpawnItems.EnemyPurple:
            break;

        default:
            break;
        }

        if (currentString != "")
        {
            if (currentObject.GetComponentInChildren <starEnemy>())
            {
                currentObject.GetComponentInChildren <starEnemy>().Extra = currentString;
            }
        }
    }
Beispiel #18
0
    public void destroyItem(Vector3 position)
    {
        int    indexFromPositionServer;
        Point2 region = NetworkRegions.getRegion(position);

        if (Network.isServer)
        {
            indexFromPositionServer = SpawnItems.getIndexFromPositionServer(region, position);
            if (indexFromPositionServer != -1 && indexFromPositionServer < SpawnItems.regions[region.x, region.y].items.Count)
            {
                SpawnItems.regions[region.x, region.y].items.RemoveAt(indexFromPositionServer);
            }
        }
        indexFromPositionServer = SpawnItems.getIndexFromPositionClient(region, position);
        if (indexFromPositionServer != -1 && indexFromPositionServer < SpawnItems.regions[region.x, region.y].models.Count)
        {
            UnityEngine.Object.Destroy(SpawnItems.regions[region.x, region.y].models[indexFromPositionServer]);
            SpawnItems.regions[region.x, region.y].models.RemoveAt(indexFromPositionServer);
        }
    }
Beispiel #19
0
 public void tryAddItem(int id, int amount, string state)
 {
     if (ItemWeight.getWeight(id) != -1000)
     {
         ServerItem serverItem = new ServerItem(id, amount, state, Vector3.zero);
         if (this.hasSpace(serverItem) != 0)
         {
             Vector3 position = base.transform.position;
             if (base.GetComponent <Player>().vehicle != null)
             {
                 position = base.GetComponent <Player>().vehicle.getPosition();
             }
             SpawnItems.drop(id, amount, state, position);
         }
         else
         {
             this.addItem(serverItem);
         }
     }
 }
Beispiel #20
0
    public void tellBackpack(int setBackpack, NetworkMessageInfo info)
    {
        /*if (HackCheck(info))
         *  return;*/

        if (Network.isServer && this.backpack != -1 && ItemType.getType(this.backpack) == 2)
        {
            SpawnItems.dropItem(this.backpack, base.transform.position);
        }
        this.backpack = setBackpack;
        if (this.character != null)
        {
            this.character.backpack = this.backpack;
            this.character.wear();
        }
        if (Network.isServer)
        {
            base.GetComponent <Inventory>().resize(BagSize.getWidth(this.backpack), BagSize.getHeight(this.backpack), BagSize.getCapacity(this.backpack));
        }
    }
Beispiel #21
0
    public override void trigger()
    {
        int num = Player.inventory.hasSpace(new ServerItem(int.Parse(base.name), 1, string.Empty, Vector3.zero));

        if (num == 0)
        {
            if (Equipment.model == null)
            {
                Viewmodel.play("take");
            }
            SpawnItems.takeItem(base.gameObject);
        }
        else if (num == 1)
        {
            //HUDGame.openError(Texts.ERROR_NO_SPACE, "Textures/Icons/errror");
        }
        else if (num == 2)
        {
            //HUDGame.openError(Texts.ERROR_NO_WEIGHT, "Textures/Icons/errror");
        }
    }
Beispiel #22
0
 public void damage(int amount)
 {
     if (!this.dead)
     {
         AI aI = this;
         aI.health = aI.health - amount;
         if (this.health <= 0)
         {
             base.networkView.RPC("tellDead", RPCMode.All, new object[0]);
             if (UnityEngine.Random.@value > this.chanceDrop)
             {
                 for (int i = 0; i < UnityEngine.Random.Range(this.minDrops, this.maxDrops + 1); i++)
                 {
                     SpawnItems.dropItem(Loot.getLoot(this.loot), base.transform.position);
                 }
             }
             base.transform.rotation = Quaternion.Euler(0f, (float)UnityEngine.Random.Range(0, 360), 0f);
             base.Invoke("respawn", (float)UnityEngine.Random.Range(100, 140));
         }
     }
 }
Beispiel #23
0
    public void respawn()
    {
        Transform child = SpawnItems.model.transform.FindChild("spawns").GetChild(UnityEngine.Random.Range(0, SpawnItems.model.transform.FindChild("spawns").childCount));

        if ((int)SpawnItems.getItems(child.position, 2f).Length == 0)
        {
            int loot = Loot.getLoot(child.name);
            int type = ItemType.getType(loot);
            if (ItemWeight.getWeight(loot) != -1000 || type == 30)
            {
                if (type == 10)
                {
                    SpawnItems.spawnItem(loot, UnityEngine.Random.Range(1, ItemAmount.getAmount(loot) + 1), child.position);
                }
                else if (type == 25)
                {
                    for (int i = 0; i < UnityEngine.Random.Range(1, 4); i++)
                    {
                        SpawnItems.spawnItem(loot, ItemAmount.getAmount(loot), child.position + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), 0f, UnityEngine.Random.Range(-0.5f, 0.5f)));
                    }
                }
                else if (loot == 30000)
                {
                    SpawnItems.spawnItem(11, 1, child.position);
                    SpawnItems.spawnItem(4017, 1, child.position);
                    SpawnItems.spawnItem(5017, 1, child.position);
                }
                else if (loot != 30001)
                {
                    SpawnItems.spawnItem(loot, ItemAmount.getAmount(loot), child.position);
                }
                else
                {
                    SpawnItems.spawnItem(12, 1, child.position);
                    SpawnItems.spawnItem(4018, 1, child.position);
                    SpawnItems.spawnItem(5018, 1, child.position);
                }
            }
        }
    }
Beispiel #24
0
    public void askDrop(int x, int y, bool all, NetworkPlayer player)
    {
        GameObject playerModel = NetworkUserList.getModelFromPlayer(player);

        if (playerModel != null)
        {
            Inventory inventory = playerModel.GetComponent <Inventory>();
            if (x >= 0 && y >= 0 && x < inventory.width && y < inventory.height && inventory.items[x, y].amount > 0)
            {
                Vector3 position = inventory.transform.position;
                if (inventory.transform.GetComponent <Player>().vehicle != null)
                {
                    position = inventory.transform.GetComponent <Player>().vehicle.getPosition();
                }
                if (!ItemStackable.getStackable(inventory.items[x, y].id))
                {
                    SpawnItems.drop(inventory.items[x, y].id, inventory.items[x, y].amount, inventory.items[x, y].state, position);
                    inventory.useItem(x, y);
                }
                else if (!all)
                {
                    SpawnItems.drop(inventory.items[x, y].id, 1, inventory.items[x, y].state, position);
                    inventory.useItem(x, y);
                }
                else
                {
                    for (int i = 0; i < inventory.items[x, y].amount; i++)
                    {
                        SpawnItems.drop(inventory.items[x, y].id, 1, inventory.items[x, y].state, position);
                    }
                    inventory.deleteItem(x, y);
                }
                inventory.syncItem(x, y);
                NetworkSounds.askSound("Sounds/General/drop", position, 0.2f, UnityEngine.Random.Range(0.9f, 1.1f), 1f);
            }
        }
    }
Beispiel #25
0
    public void drop()
    {
        Vector3 position = base.transform.position;

        if (base.GetComponent <Player>().vehicle != null)
        {
            position = base.GetComponent <Player>().vehicle.getPosition();
        }
        if (this.shirt != -1)
        {
            SpawnItems.dropItem(this.shirt, position);
        }
        if (this.pants != -1)
        {
            SpawnItems.dropItem(this.pants, position);
        }
        if (this.hat != -1)
        {
            SpawnItems.dropItem(this.hat, position);
        }
        if (this.backpack != -1)
        {
            SpawnItems.dropItem(this.backpack, position);
        }
        if (this.vest != -1)
        {
            SpawnItems.dropItem(this.vest, position);
        }
        this.shirt    = -1;
        this.pants    = -1;
        this.hat      = -1;
        this.backpack = -1;
        this.vest     = -1;
        this.item     = -1;
        this.state    = string.Empty;
        base.networkView.RPC("tellAllClothes", RPCMode.All, new object[] { this.face, this.shirt, this.pants, this.hat, this.hair, this.backpack, this.vest, this.item, this.state, this.skinColor, this.hairColor, this.arm });
    }
Beispiel #26
0
    public void resize(int setWidth, int setHeight, int setCapacity)
    {
        ClientItem[,] clientItem = new ClientItem[setWidth, setHeight];
        int weight = 0;

        for (int i = 0; i < setWidth; i++)
        {
            for (int j = 0; j < setHeight; j++)
            {
                clientItem[i, j] = new ClientItem(-1, 0, string.Empty);
            }
        }
        if (this.items != null)
        {
            Vector3 position = base.transform.position;

            if (base.GetComponent <Player>().vehicle != null)
            {
                position = base.GetComponent <Player>().vehicle.getPosition();
            }

            for (int k = 0; k < this.width; k++)
            {
                for (int l = 0; l < this.height; l++)
                {
                    if (k < setWidth && l < setHeight)
                    {
                        if (this.items[k, l].id != -1)
                        {
                            if (ItemStackable.getStackable(this.items[k, l].id))
                            {
                                clientItem[k, l]        = this.items[k, l];
                                clientItem[k, l].amount = 0;

                                for (int m = 0; m < this.items[k, l].amount; m++)
                                {
                                    if (weight + ItemWeight.getWeight(this.items[k, l].id) > setCapacity)
                                    {
                                        SpawnItems.drop(this.items[k, l].id, 1, this.items[k, l].state, position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f)));
                                    }
                                    else
                                    {
                                        clientItem[k, l].amount = clientItem[k, l].amount + 1;
                                        weight = weight + ItemWeight.getWeight(this.items[k, l].id);
                                    }
                                }

                                if (clientItem[k, l].amount == 0)
                                {
                                    clientItem[k, l].id    = -1;
                                    clientItem[k, l].state = string.Empty;
                                }
                            }
                            else if (weight + ItemWeight.getWeight(this.items[k, l].id) > setCapacity)
                            {
                                SpawnItems.drop(this.items[k, l].id, this.items[k, l].amount, this.items[k, l].state, position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f)));
                            }
                            else
                            {
                                clientItem[k, l] = this.items[k, l];
                                weight           = weight + ItemWeight.getWeight(this.items[k, l].id);
                            }
                        }
                    }
                    else if (this.items[k, l].id != -1)
                    {
                        if (!ItemStackable.getStackable(this.items[k, l].id))
                        {
                            SpawnItems.drop(this.items[k, l].id, this.items[k, l].amount, this.items[k, l].state, position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f)));
                        }
                        else
                        {
                            for (int n = 0; n < this.items[k, l].amount; n++)
                            {
                                SpawnItems.drop(this.items[k, l].id, 1, this.items[k, l].state, position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f)));
                            }
                        }
                    }
                }
            }
        }

        this.width    = setWidth;
        this.height   = setHeight;
        this.weight   = weight;
        this.capacity = setCapacity;

        if (base.networkView.owner != Network.player)
        {
            base.networkView.RPC("syncSize", base.networkView.owner, new object[] { this.width, this.height, this.capacity });
        }
        else
        {
            this.syncSize_Pizza(this.width, this.height, this.capacity);
        }

        this.items = clientItem;
        for (int o = 0; o < this.width; o++)
        {
            for (int p = 0; p < this.height; p++)
            {
                this.syncItem(o, p);
            }
        }
    }
Beispiel #27
0
    public void drop()
    {
        //this.resize(0, 0, 0);
        Vector3 position = base.transform.position;

        int maxItems       = height * width;
        int droppableItems = (int)(maxItems * 0.60);

        List <int> list = new List <int>();

        int i = 0;

        do
        {
            int rand = UnityEngine.Random.Range(0, maxItems - 1);
            if (!list.Contains(rand))
            {
                list.Add(rand);
                i++;
            }
        } while (i < droppableItems);

        foreach (int item in list)
        {
            int itemX = item / height;
            int itemY = item % height;

            try {
                if (!ItemStackable.getStackable(this.items[itemX, itemY].id))
                {
                    SpawnItems.drop(this.items[itemX, itemY].id, this.items[itemX, itemY].amount, this.items[itemX, itemY].state, position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f)));
                }
                else
                {
                    for (int n = 0; n < this.items[itemX, itemY].amount; n++)
                    {
                        SpawnItems.drop(
                            this.items[itemX, itemY].id,
                            1,
                            this.items[itemX, itemY].state,
                            position + new Vector3(UnityEngine.Random.Range(-1.5f, 1.5f), 0f, UnityEngine.Random.Range(-1.5f, 1.5f))
                            );
                    }
                }

                this.items[itemX, itemY].amount = 0;
                this.items[itemX, itemY].id     = -1;
                this.items[itemX, itemY].state  = String.Empty;
            }
            catch (Exception e)
            {
                Console.WriteLine("Error while dropping item: " + e.Data + " X: " + itemX + " Y:" + itemY);
            }
        }

        weight = 0;
        for (int itemX = 0; itemX < this.width; itemX++)
        {
            for (int itemY = 0; itemY < this.height; itemY++)
            {
                this.syncItem(itemX, itemY);
                this.weight += ItemWeight.getWeight(this.items[itemX, itemY].id) * this.items[itemX, itemY].amount;
            }
        }

        this.syncWeight();
    }
Beispiel #28
0
        //   public static PointF NewVector(float speed, float angle)
        //   {
        //       float rangle = (float)(angle * Math.PI);
        //
        //       speed *= angle;
        //
        //       return new PointF((float)Math.Cos(rangle) * speed, (float)Math.Sin(rangle) * speed);
        //   }


        public static async void MovementThread()
        {
            while (Player.MovementEnabled)
            {
                if (GraphicsDrawing.FreezeState == false)
                {
                    //Check collition with Zone
                    if (Player.PlayerObj.IntersectsWith(UIElements.ZoneObj))
                    {
                        Player.Score++;
                    }

                    //Ensures diagonal and normal movement is even
                    //Otherwise diagonal movement would be slightly faster
                    bool DirDiagonal = false;
                    if (Player.Dir_Left && Player.Dir_Up)
                    {
                        DirDiagonal = true;
                    }
                    else if (Player.Dir_Up && Player.Dir_Right)
                    {
                        DirDiagonal = true;
                    }
                    else if (Player.Dir_Right && Player.Dir_Down)
                    {
                        DirDiagonal = true;
                    }
                    else if (Player.Dir_Down && Player.Dir_Left)
                    {
                        DirDiagonal = true;
                    }
                    else
                    {
                        DirDiagonal = false;
                    }


                    //Left Border collision
                    if (Player.Dir_Left)
                    {
                        if (Player.PlayerObj.IntersectsWith(UIElements.BorderLeft_Obj) == false)
                        {
                            //Player movement
                            if (DirDiagonal)
                            {
                                Player.Location.X -= Player.Speed / 1.5f;

                                //Camera movement
                                UIElements.GraphicsOffset_X += Player.Speed / 1.5f * UIElements.CameraSpeed;
                            }
                            else
                            {
                                Player.Location.X -= Player.Speed;

                                //Camera movement
                                UIElements.GraphicsOffset_X += Player.Speed * UIElements.CameraSpeed;
                            }
                        }
                    }
                    //Right Border collision
                    if (Player.Dir_Right)
                    {
                        if (Player.PlayerObj.IntersectsWith(UIElements.BorderRight_Obj) == false)
                        {
                            //Player movement
                            if (DirDiagonal)
                            {
                                Player.Location.X += Player.Speed / 1.5f;

                                //Camera movement
                                UIElements.GraphicsOffset_X -= Player.Speed / 1.5f * UIElements.CameraSpeed;
                            }
                            else
                            {
                                Player.Location.X += Player.Speed;

                                //Camera movement
                                UIElements.GraphicsOffset_X -= Player.Speed * UIElements.CameraSpeed;
                            }
                        }
                    }
                    //Top Border collision
                    if (Player.Dir_Up)
                    {
                        if (Player.PlayerObj.IntersectsWith(UIElements.BorderTop_Obj) == false)
                        {
                            if (DirDiagonal)
                            {
                                Player.Location.Y -= Player.Speed / 1.5f;

                                //Camera movement
                                UIElements.GraphicsOffset_Y += (Player.Speed / 1.5f * UIElements.CameraSpeed);
                            }
                            else
                            {
                                Player.Location.Y -= Player.Speed;

                                //Camera movement
                                UIElements.GraphicsOffset_Y += (Player.Speed * UIElements.CameraSpeed);
                            }
                        }
                    }
                    //Bottom Border collision
                    if (Player.Dir_Down)
                    {
                        if (Player.PlayerObj.IntersectsWith(UIElements.BorderBottom_Obj) == false)
                        {
                            //Player movement
                            if (DirDiagonal)
                            {
                                Player.Location.Y += Player.Speed / 1.5f;

                                //Camera movement
                                UIElements.GraphicsOffset_Y -= (Player.Speed / 1.5f * UIElements.CameraSpeed);
                            }
                            else
                            {
                                Player.Location.Y += Player.Speed;

                                //Camera movement
                                UIElements.GraphicsOffset_Y -= (Player.Speed * UIElements.CameraSpeed);
                            }
                        }
                    }

                    //Rotates player
                    if (Player.Dir_Down && Player.Dir_Right)
                    {
                        Player.Vector += Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Down && Player.Dir_Left)
                    {
                        Player.Vector -= Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Up && Player.Dir_Right)
                    {
                        Player.Vector += Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Up && Player.Dir_Left)
                    {
                        Player.Vector -= Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Up)
                    {
                        Player.Vector += Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Down)
                    {
                        Player.Vector -= Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Left)
                    {
                        Player.Vector -= Player.Speed * 3.5f;
                    }
                    else if (Player.Dir_Right)
                    {
                        Player.Vector += Player.Speed * 3.5f;
                    }

                    SpawnItems.PowerUpCollision();

                    SpawnItems.ItemCollision();

                    //Loop Delay
                    await Task.Delay(Player.MoveTick);
                }
                else
                {
                    Thread.Sleep(50);
                }
            }
        }
Beispiel #29
0
    private void Update()
    {
        if (Input.GetKeyUp(keyInteract))
        {
            if (target != null)
            {
                switch (targetTag)
                {
                case "Seedbag":
                    Seedbag seedbag = target.GetComponent <Seedbag>();
                    if (seedbag != null && product == null)
                    {
                        seedbag.Interact(crop, hasCan, this);
                    }
                    break;

                case "Field":
                    Field field = target.GetComponent <Field>();
                    if (field != null && product == null)
                    {
                        field.Interact(crop, hasCan, this);
                    }
                    break;

                case "Can":
                    Can can = target.GetComponent <Can>();
                    if (can != null && product == null)
                    {
                        can.Interact(crop, hasCan, this);
                    }
                    break;

                case "Table":
                    Table table = target.GetComponent <Table>();
                    if (table != null)
                    {
                        table.Interact(crop, product, hasCan, this);
                    }
                    break;

                case "Trash":
                    Trash trash = target.GetComponent <Trash>();
                    if (trash != null)
                    {
                        trash.Interact(crop, product, hasCan, this);
                    }
                    break;

                case "Tree":
                    Trees tree = target.GetComponent <Trees>();
                    if (tree != null)
                    {
                        tree.Interact(crop, hasCan, this);
                    }
                    break;

                case "ProductionB":
                    ProductionBuilding building = target.GetComponent <ProductionBuilding>();
                    if (building != null)
                    {
                        if (crop != null)
                        {
                            product = crop.MakeProductFromCrop();
                            if (product != null)
                            {
                                building.Interact(product, this);
                            }
                        }
                        else if (product != null)
                        {
                            building.Interact(product, this);
                        }
                        else if (crop == null)
                        {
                            building.Interact(null, this);
                        }
                    }
                    break;

                case "SpawnedItems":
                    SpawnItems items = target.GetComponent <SpawnItems>();
                    if (items != null && product == null)
                    {
                        items.Interact(crop, hasCan, this);
                    }
                    break;

                case "Well":
                    Well well = target.GetComponent <Well>();
                    if (well != null && product == null)
                    {
                        well.Interact(crop, hasCan, this);
                    }
                    break;

                case "TargetPoint":
                    TargetPoint point = target.GetComponent <TargetPoint>();
                    if (point != null)
                    {
                        if (crop != null)
                        {
                            product = crop.MakeProductFromCrop();
                        }
                        if (product != null)
                        {
                            point.Interact(product, this);
                        }
                    }
                    break;
                }
            }
            else if (hasCan) //for placing the can
            {
                can.GetComponent <Can>().Interact(crop, hasCan, this);
            }
        }
    }
Beispiel #30
0
    public void destroyBarricade(Vector3 position)
    {
        int indexFromPositionServer;

        ClientItem[,] crateItems;
        Point2  region  = NetworkRegions.getRegion(position);
        bool    flag    = false;
        int     item    = -1;
        Vector3 vector3 = Vector3.zero;

        if (Network.isServer)
        {
            indexFromPositionServer = SpawnBarricades.getIndexFromPositionServer(region, position);
            if (SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id == 16019 || SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id == 16025 || SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id == 16023)
            {
                if (SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id != 16019)
                {
                    string[] strArrays = Packer.unpack(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].state, '\u005F');
                    crateItems = InteractionInterface.getCrateItems(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id, Sneaky.expose(strArrays[2]));
                }
                else
                {
                    crateItems = InteractionInterface.getCrateItems(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id, Sneaky.expose(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].state));
                }
                for (int i = 0; i < 2; i++)
                {
                    for (int j = 0; j < BarricadeStats.getCapacity(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id); j++)
                    {
                        if (!ItemStackable.getStackable(crateItems[i, j].id))
                        {
                            SpawnItems.drop(crateItems[i, j].id, crateItems[i, j].amount, crateItems[i, j].state, position);
                        }
                        else
                        {
                            for (int k = 0; k < crateItems[i, j].amount; k++)
                            {
                                SpawnItems.drop(crateItems[i, j].id, 1, crateItems[i, j].state, position);
                            }
                        }
                    }
                }
            }
            else if (ExplosiveStats.getDamage(SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id) != 0)
            {
                flag = true;
                item = SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id;
                if (SpawnBarricades.regions[region.x, region.y].barricades[indexFromPositionServer].id != 16015)
                {
                    vector3 = position + Vector3.up;
                    NetworkEffects.askEffect("Effects/grenade", position, Quaternion.Euler(-90f, 0f, 0f), -1f);
                    NetworkSounds.askSoundMax("Sounds/Projectiles/grenade", position, 1f, UnityEngine.Random.Range(0.95f, 1.05f), 4f, 64f);
                }
                else
                {
                    vector3 = position + SpawnBarricades.regions[region.x, region.y].models[indexFromPositionServer].transform.up;
                    NetworkEffects.askEffect("Effects/bomb", position, Quaternion.Euler(-90f, 0f, 0f), -1f);
                    NetworkSounds.askSoundMax("Sounds/Projectiles/bomb", position, 1f, UnityEngine.Random.Range(0.95f, 1.05f), 4f, 64f);
                }
            }
            if (indexFromPositionServer != -1 && indexFromPositionServer < SpawnBarricades.regions[region.x, region.y].barricades.Count)
            {
                SpawnBarricades.regions[region.x, region.y].barricades.RemoveAt(indexFromPositionServer);
            }
        }
        indexFromPositionServer = SpawnBarricades.getIndexFromPositionClient(region, position);
        if (indexFromPositionServer != -1 && indexFromPositionServer < SpawnBarricades.regions[region.x, region.y].models.Count)
        {
            UnityEngine.Object.Destroy(SpawnBarricades.regions[region.x, region.y].models[indexFromPositionServer]);
            SpawnBarricades.regions[region.x, region.y].models.RemoveAt(indexFromPositionServer);
        }
        if (flag)
        {
            ExplosionTool.explode(vector3, (float)ExplosiveStats.getRange(item), ExplosiveStats.getDamage(item));
        }
    }