Ejemplo n.º 1
0
 public override void machineRightClick(VendingMachineData vm, int i, int j)
 {
     Main.player[Main.myPlayer].chest = -1;
     Main.npcChatText = "";
     VendingMachine.chooseTalkingNPC(vm);
     Main.OpenHairWindow();
 }
Ejemplo n.º 2
0
 public override void machineRightClick(VendingMachineData vm, int i, int j)
 {
     Main.player[Main.myPlayer].chest = -1;
     Main.npcChatText = "";
     VendingMachine.chooseTalkingNPC(vm);
     if (Main.player[Main.myPlayer].taxMoney > 0)
     {
         int l = Main.player[Main.myPlayer].taxMoney;
         while (l > 0)
         {
             if (l > 1000000)
             {
                 int num26 = l / 1000000;
                 l -= 1000000 * num26;
                 int number = Item.NewItem((int)Main.player[Main.myPlayer].position.X, (int)Main.player[Main.myPlayer].position.Y, Main.player[Main.myPlayer].width, Main.player[Main.myPlayer].height, 74, num26, false, 0, false, false);
                 if (Main.netMode == 1)
                 {
                     NetMessage.SendData(21, -1, -1, null, number, 1f, 0f, 0f, 0, 0, 0);
                 }
             }
             else if (l > 10000)
             {
                 int num27 = l / 10000;
                 l -= 10000 * num27;
                 int number2 = Item.NewItem((int)Main.player[Main.myPlayer].position.X, (int)Main.player[Main.myPlayer].position.Y, Main.player[Main.myPlayer].width, Main.player[Main.myPlayer].height, 73, num27, false, 0, false, false);
                 if (Main.netMode == 1)
                 {
                     NetMessage.SendData(21, -1, -1, null, number2, 1f, 0f, 0f, 0, 0, 0);
                 }
             }
             else if (l > 100)
             {
                 int num28 = l / 100;
                 l -= 100 * num28;
                 int number3 = Item.NewItem((int)Main.player[Main.myPlayer].position.X, (int)Main.player[Main.myPlayer].position.Y, Main.player[Main.myPlayer].width, Main.player[Main.myPlayer].height, 72, num28, false, 0, false, false);
                 if (Main.netMode == 1)
                 {
                     NetMessage.SendData(21, -1, -1, null, number3, 1f, 0f, 0f, 0, 0, 0);
                 }
             }
             else
             {
                 int num29 = l;
                 if (num29 < 1)
                 {
                     num29 = 1;
                 }
                 l -= num29;
                 int number4 = Item.NewItem((int)Main.player[Main.myPlayer].position.X, (int)Main.player[Main.myPlayer].position.Y, Main.player[Main.myPlayer].width, Main.player[Main.myPlayer].height, 71, num29, false, 0, false, false);
                 if (Main.netMode == 1)
                 {
                     NetMessage.SendData(21, -1, -1, null, number4, 1f, 0f, 0f, 0, 0, 0);
                 }
             }
         }
         // Main.npcChatText = Lang.dialog(Main.rand.Next(380, 382), false);
         Main.player[Main.myPlayer].taxMoney = 0;
         return;
     }
 }
Ejemplo n.º 3
0
        public static void chooseTalkingNPC(VendingMachineData vm)
        {
            Mod mod = ModLoader.GetMod("VendingMachines");

            if (Main.player[Main.myPlayer].talkNPC < 0 || Main.player[Main.myPlayer].talkNPC >= Main.npc.Length)
            {
                for (int i = Main.npc.Length - 5; i >= 0; i--)
                {
                    if (Main.npc[i].active && Main.npc[i].type == ModContent.NPCType <InvisibleAllShopNPC>() && (Main.npc[i].ai[0] == -1 || Main.npc[i].ai[0] == Main.myPlayer))
                    {
                        Main.npc[i].ai[0]  = Main.myPlayer;
                        Main.npc[i].Center = new Vector2(vm.x * 16 + 24, vm.y * 16 + 32);//Main.player[Main.myPlayer].Center;
                        // Main.npc[i].name = "";
                        Main.player[Main.myPlayer].talkNPC = i;
                        return;
                    }
                }
                for (int i = Main.npc.Length - 5; i >= 0; i--)
                {
                    if (!Main.npc[i].active)
                    {
                        Main.npc[i] = new Terraria.NPC();
                        Main.npc[i].SetDefaults(ModContent.NPCType <InvisibleAllShopNPC>());
                        Main.npc[i].ai[0]  = Main.myPlayer;
                        Main.npc[i].Center = new Vector2(vm.x * 16 + 24, vm.y * 16 + 32);//Main.player[Main.myPlayer].Center;
                        // Main.npc[i].name = "";
                        Main.player[Main.myPlayer].talkNPC = i;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 4
0
 public override void machineRightClick(VendingMachineData vm, int i, int j)
 {
     Main.player[Main.myPlayer].chest = -1;
     Main.npcChatText = "";
     VendingMachine.chooseTalkingNPC(vm);
     Main.recBigList       = false;
     Main.playerInventory  = true;
     Main.InGuideCraftMenu = true;
     Main.InReforgeMenu    = false;
 }
        public async Task <ActionResult <VendingMachineData> > GetMachineState()
        {
            await this.vendingMachine.LoadMachine();

            var vendingMachineData = new VendingMachineData()
            {
                CurrentInsertedAmount = this.vendingMachine.CurrentInsertedAmount,
                AvailableProducts     = this.vendingMachine.Products.Where(product => product.Quantity > 0).ToList(),
                AvailableCoins        = this.vendingMachine.CoinsAvailable
            };

            return(Ok(vendingMachineData));
        }
        public async Task <IActionResult> Index()
        {
            var model = new VendingMachineData();

            try
            {
                model.Products      = (await _vendingService.GetAvailableProductsAsync()).Products;
                model.Denominations = _vendingService.GetDenominations();
                model.Deposit       = (await _vendingService.GetDepositAsync()).TotalAmount;
            }
            catch (HttpRequestException e)
            {
                model.ErrorMessage = e.Message;
            }
            return(View(model));
        }
Ejemplo n.º 7
0
        public override void machineRightClick(VendingMachineData vm, int i, int j)
        {
            Main.player[Main.myPlayer].chest = -1;
            Main.npcChatText = "";
            VendingMachine.chooseTalkingNPC(vm);
            Main.PlaySound(12, -1, -1, 1, 1f, 0f);
            int num30 = Main.player[Main.myPlayer].FindItem(ItemID.Sets.ExoticPlantsForDyeTrade);

            if (num30 != -1)
            {
                Main.player[Main.myPlayer].inventory[num30].stack--;
                if (Main.player[Main.myPlayer].inventory[num30].stack <= 0)
                {
                    Main.player[Main.myPlayer].inventory[num30] = new Item();
                }
                Main.PlaySound(24, -1, -1, 1, 1f, 0f);
                Main.player[Main.myPlayer].GetDyeTraderReward();
            }
            return;
        }
Ejemplo n.º 8
0
 public virtual void machineRightClick(VendingMachineData vm, int i, int j)
 {
 }
Ejemplo n.º 9
0
 public CancelPurchaseSteps(VendingMachineData vendingMachineData)
 {
     _vendingMachineData = vendingMachineData;
 }
Ejemplo n.º 10
0
 public PurchaseProductSteps(VendingMachineData vendingMachineData)
 {
     _vendingMachineData = vendingMachineData;
 }
Ejemplo n.º 11
0
 public VendingMachineSteps(VendingMachineData vendingMachineData)
 {
     _vendingMachineData = vendingMachineData;
 }
Ejemplo n.º 12
0
        public override bool NewRightClick(int i, int j)
        {
            int x = i; int y = j;

            while (Main.tile[x, y].frameY % 70 != 0)
            {
                y--;
            }
            while (Main.tile[x, y].frameX % 54 != 0)
            {
                x--;
            }


            int vmID = VendingMachineWorld.GetVendingMachineFromCoordinates(x, y);

            if (vmID < 0)
            {
                Main.NewText("No vending Machine Found...");
                return(false);
            }

            VendingMachineData vm = VendingMachineWorld.vm[vmID];

            if (vm.isItem)
            {
                Main.player[Main.myPlayer].chest = -1;
                Main.npcChatText = "";

                int  type = SoulOfNPC.getTypeFromItemTag(vm.id);
                Item itm  = new Item();
                itm.SetDefaults(type);

                VendingMachineItem vendor = itm.modItem as VendingMachineItem;
                if (vendor != null)
                {
                    if (vendor.replaceRightClick)
                    {
                        vendor.machineRightClick(vm, i, j);
                    }
                    else
                    {
                        Main.npcShop = Main.MaxShopIDs - 1;
                        chooseTalkingNPC(vm);
                        Main.recBigList       = false;
                        Main.playerInventory  = true;
                        Main.InGuideCraftMenu = false;
                        Main.InReforgeMenu    = false;
                        for (int k = 0; k < InvisibleAllShopNPC.shopChest.item.Length; k++)
                        {
                            InvisibleAllShopNPC.shopChest.item[k] = new Item();
                        }
                        vendor.SetupShop(InvisibleAllShopNPC.shopChest);
                        Main.instance.shop[Main.npcShop].SetupShop(ModContent.NPCType <InvisibleAllShopNPC>());
                    }
                }
            }
            else
            {
                int type = SoulOfNPC.getTypeFromNPCTag(vm.id);

                Main.npcShop = NPCToShop(type);

                if (type == NPCID.TravellingMerchant)
                {
                    Main.player[Main.myPlayer].chest = -1;
                    Main.npcChatText = "";
                    for (int k = 0; k < 40; k++)
                    {
                        if (Main.instance.shop[Main.npcShop].item[k] == null)
                        {
                            Main.instance.shop[Main.npcShop].item[k] = new Item();
                        }
                        Main.instance.shop[Main.npcShop].item[k].SetDefaults(Main.travelShop[k]);
                    }
                    Main.InGuideCraftMenu = false;
                    Main.InReforgeMenu    = false;
                    Main.recBigList       = false;
                    Main.playerInventory  = true;
                    chooseTalkingNPC(vm);
                }

                /*Nurse code overrides the normal vending machine shop for the behaviour of the nurse heal option.*/

                else if (type == NPCID.Nurse)
                {
                    int num5 = Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife;
                    for (int k = 0; k < 22; k++)
                    {
                        int num6 = Main.player[Main.myPlayer].buffType[k];
                        if (Main.debuff[num6] && Main.player[Main.myPlayer].buffTime[k] > 5 && BuffLoader.CanBeCleared(num6))
                        {
                            num5 += 1000;
                        }
                    }

                    if (Main.player[Main.myPlayer].BuyItem(num5))
                    {
                        AchievementsHelper.HandleNurseService(num5);
                        Main.PlaySound(SoundID.Item4, -1, -1);
                        Main.player[Main.myPlayer].HealEffect(Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife, true);
                        Main.player[Main.myPlayer].statLife = Main.player[Main.myPlayer].statLifeMax2;
                        for (int k = 0; k < 22; k++)
                        {
                            int num23 = Main.player[Main.myPlayer].buffType[k];
                            if (Main.debuff[num23] && Main.player[Main.myPlayer].buffTime[k] > 0 && BuffLoader.CanBeCleared(num23))
                            {
                                Main.player[Main.myPlayer].DelBuff(k);
                                k = -1;
                            }
                        }
                        return(true);
                    }
                }
                else
                {
                    Main.player[Main.myPlayer].chest = -1;
                    Main.npcChatText = "";
                    chooseTalkingNPC(vm);
                    Main.recBigList       = false;
                    Main.playerInventory  = true;
                    Main.InGuideCraftMenu = false;
                    Main.InReforgeMenu    = false;
                    Main.instance.shop[Main.npcShop].SetupShop(Main.npcShop < Main.MaxShopIDs - 1 ? Main.npcShop : type);
                }
            }
            return(true);
        }