Пример #1
0
        void fillAwards(UserSearchDTO user)
        {
            var green  = Achievements.GetGreenStar(user);
            var red    = Achievements.GetRedStar(user);
            var blue   = Achievements.GetBlueStar(user);
            var awards = new ObservableCollection <AwardViewModel>();

            awards.Add(new AwardViewModel(AchievementsHelper.GetWPFIconForRedStar(red), AchievementsHelper.GetStarToolTip(AchievementsHelper.CategorySportName, red)));
            awards.Add(new AwardViewModel(AchievementsHelper.GetWPFIconForBlueStar(blue), AchievementsHelper.GetStarToolTip(AchievementsHelper.CategoryFamousName, blue)));
            awards.Add(new AwardViewModel(AchievementsHelper.GetWPFIconForGreenStar(green), AchievementsHelper.GetStarToolTip(AchievementsHelper.CategorySocialName, green)));


            lstAwards.ItemsSource = awards;
            grAwards.SetVisible(red != AchievementStar.None || blue != AchievementStar.None || green != AchievementStar.None);
            //var blueStar = AchievementsHelper.GetIconForBlueStar(blue);
            //var greenStar = AchievementsHelper.GetIconForGreenStar(green);
            //if (redStar != null || blueStar != null || greenStar != null)
            //{
            //    picRedStar.Image = redStar;
            //    picBlueStar.Image = blueStar;
            //    picBlueStar.Visible = blueStar != null;
            //    picRedStar.Visible = redStar != null;
            //    picGreenStar.Image = greenStar;
            //    picGreenStar.Visible = greenStar != null;
            //    ControlHelper.AddSuperTip(toolTipController1, picGreenStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategorySocialName), green));
            //    ControlHelper.AddSuperTip(toolTipController1, picBlueStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategoryFamousName), blue));
            //    ControlHelper.AddSuperTip(toolTipController1, picRedStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategorySportName), red));
            //    grAwards.Visible = true;
            //}
            //else
            //{
            //    grAwards.Visible = false;
            //}
            //grAwards.SetVisible(Awards.Count > 0);
        }
Пример #2
0
        private void bSolarEclipse_onLeftClick(object sender, EventArgs e)
        {
            Main.dayTime = true;
            Main.time    = 32400.1;

            if (Main.netMode != 1)
            {
                AchievementsHelper.NotifyProgressionEvent(1);
                Main.eclipse = true;
                AchievementsHelper.NotifyProgressionEvent(2);
                if (Main.eclipse)
                {
                    if (Main.netMode == 0)
                    {
                        Main.NewText(Lang.misc[20].Value, (byte)50, byte.MaxValue, (byte)130, false);
                    }
                    else if (Main.netMode == 2)
                    {
                        NetMessage.BroadcastChatMessage(Lang.misc[20].ToNetworkText(), new Color(50, 255, 130), -1);
                    }
                }
                if (Main.netMode == 2)
                {
                    NetMessage.SendData(7, -1, -1, null, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0);
                }
            }
        }
 public static void NotifyItemPickup(Player player, Item item, int customStack)
 {
     if (AchievementsHelper.OnItemPickup != null)
     {
         AchievementsHelper.OnItemPickup(player, (short)item.netID, customStack);
     }
 }
Пример #4
0
        public static bool CompleteConstructionVehicle(Pawn worker, Frame __instance)
        {
            if (__instance.def.entityDefToBuild is VehicleBuildDef def && def.thingToSpawn != null)
            {
                VehiclePawn vehicle = VehicleSpawner.GenerateVehicle(def.thingToSpawn, worker.Faction);
                __instance.resourceContainer.ClearAndDestroyContents(DestroyMode.Vanish);
                Map map = __instance.Map;
                __instance.Destroy(DestroyMode.Vanish);

                if (def.soundBuilt != null)
                {
                    def.soundBuilt.PlayOneShot(new TargetInfo(__instance.Position, map, false));
                }
                vehicle.SetFaction(worker.Faction);
                GenSpawn.Spawn(vehicle, __instance.Position, map, __instance.Rotation, WipeMode.FullRefund, false);
                worker.records.Increment(RecordDefOf.ThingsConstructed);

                vehicle.Rename();
                //Quality?
                //Art?
                //Tale RecordTale LongConstructionProject?
                AchievementsHelper.TriggerVehicleConstructionEvent(vehicle);
                return(false);
            }
            return(true);
        }
Пример #5
0
        void fillAwards(UserSearchDTO user)
        {
            var green     = Achievements.GetGreenStar(user);
            var red       = Achievements.GetRedStar(user);
            var blue      = Achievements.GetBlueStar(user);
            var redStar   = AchievementsHelper.GetIconForRedStar(red);
            var blueStar  = AchievementsHelper.GetIconForBlueStar(blue);
            var greenStar = AchievementsHelper.GetIconForGreenStar(green);

            if (redStar != null || blueStar != null || greenStar != null)
            {
                picRedStar.Image     = redStar;
                picBlueStar.Image    = blueStar;
                picBlueStar.Visible  = blueStar != null;
                picRedStar.Visible   = redStar != null;
                picGreenStar.Image   = greenStar;
                picGreenStar.Visible = greenStar != null;
                ControlHelper.AddSuperTip(toolTipController1, picGreenStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategorySocialName), green));
                ControlHelper.AddSuperTip(toolTipController1, picBlueStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategoryFamousName), blue));
                ControlHelper.AddSuperTip(toolTipController1, picRedStar, null, AchievementsHelper.GetStarToolTip(string.Format("<b>{0}</b>", AchievementsHelper.CategorySportName), red));
                grAwards.Visible = true;
            }
            else
            {
                grAwards.Visible = false;
            }
        }
 public override bool UseItem(Player player)
 {
     if (Main.moonPhase == 4)
     {
         if (Main.netMode == NetmodeID.Server)
         {
             NetMessage.BroadcastChatMessage(NetworkText.FromKey("The moon phase advanced in order to start the blood moon."), new Color(255, 255, 0));
         }
         else if (Main.netMode == NetmodeID.SinglePlayer)                 // Single Player
         {
             Main.NewText("The moon phase advanced in order to start the blood moon.", 255, 255, 0);
         }
         Main.moonPhase++;
     }
     Main.bloodMoon = true;
     AchievementsHelper.NotifyProgressionEvent(4);
     if (Main.netMode == NetmodeID.SinglePlayer)
     {
         Main.NewText(Lang.misc[8].Value, 50, byte.MaxValue, 130);
     }
     else if (Main.netMode == NetmodeID.Server)
     {
         NetMessage.BroadcastChatMessage(Lang.misc[8].ToNetworkText(), new Color(50, 255, 130));
     }
     if (Main.netMode == NetmodeID.Server)
     {
         NetMessage.SendData(7);
     }
     return(true);
 }
 public static void NotifyItemCraft(Recipe recipe)
 {
     if (AchievementsHelper.OnItemCraft != null)
     {
         AchievementsHelper.OnItemCraft((short)recipe.createItem.netID, recipe.createItem.stack);
     }
 }
Пример #8
0
        public static void Heal()
        {
            int num27  = CalculatePriceForHeal();
            int health = Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife;

            if (health == 0)
            {
                return;
            }

            if (Main.player[Main.myPlayer].BuyItem(num27, -1))
            {
                AchievementsHelper.HandleNurseService(num27);
                Main.PlaySound(SoundID.Item4, -1, -1);
                Main.player[Main.myPlayer].HealEffect(health, true);

                Main.player[Main.myPlayer].statLife += health;
                if (true)
                {
                    for (int i = 0; i < Player.MaxBuffs; i++)
                    {
                        int num9 = Main.player[Main.myPlayer].buffType[i];
                        if (Main.debuff[num9] && Main.player[Main.myPlayer].buffTime[i] > 0 && BuffLoader.CanBeCleared(num9))
                        {
                            Main.player[Main.myPlayer].DelBuff(i);
                            i = -1;
                        }
                    }
                }
                PlayerHooks.PostNurseHeal(Main.player[Main.myPlayer], Main.npc[Main.player[Main.myPlayer].talkNPC], health, true, num27);
            }
        }
	void Awake()
	{
		if(instance != null)
		{
			Destroy(gameObject);
			return;
		}

		instance = this;

		transform.parent = null;
		DontDestroyOnLoad(gameObject);

		#if ACHIEVEMENTS_IMPLEMENTED
			#if UNITY_IOS
			GameCenterManager.reportAchievementFinishedEvent += OnReportSuccess;
			GameCenterManager.reportAchievementFailedEvent += OnReportFailed;
			GameCenterManager.playerAuthenticatedEvent += PlayerAuthenticated;
			#elif UNITY_ANDROID
			GPGManager.authenticationSucceededEvent += PlayerAuthenticated;
			GPGManager.authenticationFailedEvent += PlayerAuthenticatedFailed;
			GPGManager.incrementAchievementSucceededEvent += OnReportSuccess;
			GPGManager.incrementAchievementFailedEvent += OnReportFailed;
			#endif
		#endif
	}
 public static void NotifyTileDestroyed(Player player, ushort tile)
 {
     if (!Main.gameMenu && _isMining && AchievementsHelper.OnTileDestroyed != null)
     {
         AchievementsHelper.OnTileDestroyed(player, tile);
     }
 }
 public static void NotifyNPCKilledDirect(Player player, int npcNetID)
 {
     if (AchievementsHelper.OnNPCKilled != null)
     {
         AchievementsHelper.OnNPCKilled(player, (short)npcNetID);
     }
 }
Пример #12
0
        public override void Click(UIMouseEvent evt)
        {
            base.Click(evt);

            if (CanInteract?.Invoke(Item, Main.mouseItem) ?? true)
            {
                Item.newAndShiny = false;
                Player player = Main.LocalPlayer;

                if (ItemSlot.ShiftInUse)
                {
                    Main.NewText("move to inventory");
                    return;
                }

                Item temp = Item;
                Utils.Swap(ref temp, ref Main.mouseItem);
                Item = temp;

                if (Item.stack > 0)
                {
                    AchievementsHelper.NotifyItemPickup(player, Item);
                }
                if (Item.type == 0 || Item.stack < 1)
                {
                    Item = new Item();
                }
                if (Main.mouseItem.IsTheSameAs(Item))
                {
                    Utils.Swap(ref Item.favorited, ref Main.mouseItem.favorited);
                    if (Item.stack != Item.maxStack && Main.mouseItem.stack != Main.mouseItem.maxStack)
                    {
                        if (Main.mouseItem.stack + Item.stack <= Main.mouseItem.maxStack)
                        {
                            Item.stack          += Main.mouseItem.stack;
                            Main.mouseItem.stack = 0;
                        }
                        else
                        {
                            int delta = Main.mouseItem.maxStack - Item.stack;
                            Item.stack           += delta;
                            Main.mouseItem.stack -= delta;
                        }
                    }
                }
                if (Main.mouseItem.type == 0 || Main.mouseItem.stack < 1)
                {
                    Main.mouseItem = new Item();
                }
                if (Main.mouseItem.type > 0 || Item.type > 0)
                {
                    Terraria.Recipe.FindRecipes();
                    Main.PlaySound(7);
                }

                OnInteract?.Invoke();
            }

            SendUpdate();
        }
Пример #13
0
        public override bool UnlockChest(int i, int j, ref short frameXAdjustment, ref int dustType, ref bool manual)
        {
            if (!NPC.downedPlantBoss)
            {
                return(false);
            }

            AchievementsHelper.NotifyProgressionEvent(20);
            return(true);
        }
Пример #14
0
 public static void SwapEquip(ref Item item)
 {
     item = ArmorSwap(item, out bool flag);
     if (flag)
     {
         Main.EquipPageSelected = 0;
         AchievementsHelper.HandleOnEquip(Main.player[Main.myPlayer], item, item.accessory ? 10 : 8);
     }
     Recipe.FindRecipes();
 }
 public static void NotifyProgressionEvent(int eventID)
 {
     if (Main.netMode == 2)
     {
         NetMessage.SendData(98, -1, -1, "", eventID);
     }
     else if (AchievementsHelper.OnProgressionEvent != null)
     {
         AchievementsHelper.OnProgressionEvent(eventID);
     }
 }
Пример #16
0
        public override bool OnPickup(Item item, Player player)
        {
            switch (item.type)
            {
            case ItemID.CopperCoin:
            case ItemID.SilverCoin:
            case ItemID.GoldCoin:
            case ItemID.PlatinumCoin:
                return(true);
            }

            var myplayer = TmlHelpers.SafelyGetModPlayer <ExtensibleInventoryPlayer>(player);

            int oldStack = item.stack;

            if (myplayer.Library.CurrentBook.Share(player, item) > 0)
            {
                if (item.stack == 0)
                {
                    item.stack  = oldStack;
                    item.active = true;

                    if (player.whoAmI == Main.myPlayer)
                    {
                        Recipe.FindRecipes();
                    }

                    ItemText.NewText(item, oldStack, false, false);
                    Main.PlaySound(7, (int)player.position.X, (int)player.position.Y, 1, 1f, 0f);
                    AchievementsHelper.NotifyItemPickup(player, item);

                    item.stack  = 0;
                    item.active = false;
                }
            }

            if (item.stack != oldStack)
            {
                Item worldItem = Main.item[item.whoAmI];

                if (worldItem != null && !worldItem.IsAir && !worldItem.IsNotTheSameAs(item))
                {
                    if (Main.netMode != 0)
                    {
                        NetMessage.SendData(MessageID.SyncItem, -1, -1, null, item.whoAmI, 0f, 0f, 0f, 0, 0, 0);
                    }
                }
            }

            return(true);
            //return item.stack > 0;
        }
Пример #17
0
 private void TriggerBloodMoon()
 {
     Main.bloodMoon = true;
     AchievementsHelper.NotifyProgressionEvent(4);
     if (Main.netMode == 0)
     {
         Main.NewText(Lang.misc[8], 50, 255, 130, false);
     }
     else if (Main.netMode == 2)
     {
         NetMessage.SendData(25, -1, -1, Lang.misc[8], 255, 50f, 255f, 130f, 0, 0, 0);
     }
 }
Пример #18
0
 private void TriggerBloodMoon()
 {
     Main.bloodMoon = true;
     AchievementsHelper.NotifyProgressionEvent(4);
     if (Main.netMode == 0)
     {
         Main.NewText(Lang.misc[8].Value, 50, 255, 130, false);
     }
     else if (Main.netMode == 2)
     {
         NetMessage.BroadcastChatMessage(Lang.misc[8].ToNetworkText(), new Color(50, 255, 130), -1);
     }
 }
Пример #19
0
 private void TriggerEclipse()
 {
     Main.eclipse = true;
     AchievementsHelper.NotifyProgressionEvent(2);
     if (Main.netMode == 0)
     {
         Main.NewText(Lang.misc[20], 50, 255, 130, false);
     }
     else if (Main.netMode == 2)
     {
         NetMessage.SendData(25, -1, -1, Lang.misc[20], 255, 50f, 255f, 130f, 0, 0, 0);
         NetMessage.SendData(7, -1, -1, "", 0, 0f, 0f, 0f, 0, 0, 0);
     }
 }
Пример #20
0
        // Adapted from the vanilla Player class method
        public void PickTile(Player player, int x, int y)
        {
            int  tileId      = player.hitTile.HitObject(x, y, 1);
            Tile tile        = Main.tile[x, y];
            int  actualPower = ShovelMethods.DigPower(tile.type, Shovel);

            if (actualPower < 100 && Pick >= Shovel)
            {
                player.PickTile(x, y, Pick);
                return;
            }
            else if (actualPower == 0)
            {
                player.PickTile(x, y, Math.Max(Shovel / 8, 1));
                return;
            }
            if (!WorldGen.CanKillTile(x, y))
            {
                actualPower = 0;
            }

            if (player.hitTile.AddDamage(tileId, actualPower, true) >= 100)
            {
                AchievementsHelper.CurrentlyMining = true;
                player.hitTile.Clear(tileId);
                bool wasActive = tile.active();
                WorldGen.KillTile(x, y, false, false, false);
                if (wasActive && !tile.active())
                {
                    AchievementsHelper.HandleMining();
                }

                AchievementsHelper.CurrentlyMining = false;
            }
            else
            {
                WorldGen.KillTile(x, y, true, false, false);
            }

            if (Main.netMode == NetmodeID.MultiplayerClient)
            {
                NetMessage.SendData(MessageID.TileChange, -1, -1, null, 0, x, y);
            }

            if (actualPower != 0)
            {
                player.hitTile.Prune();
            }
        }
Пример #21
0
        internal static void Create(Recipe r)
        {
            if (r.P_GroupDef as RecipeDef == null)
            {
                r.CreateBasic();
            }
            else
            {
                r.CreateUnion();
            }

            AchievementsHelper.NotifyItemCraft(r);
            AchievementsHelper.NotifyItemPickup(Main.player[Main.myPlayer], r.createItem);
            Recipe.FindRecipes();
        }
Пример #22
0
 public override bool UseItem(Player player)
 {
     if (player.itemAnimation > 0 && player.statManaMax >= 200 && player.statManaMax < 300 && player.itemTime == 0)
     {
         player.itemTime      = PlayerHooks.TotalUseTime(item.useTime, player, item);
         player.statManaMax2 += 10;
         player.GetModPlayer <TemperatePlayer>().ArcaneCrystals += 1;
         player.statMana += 10;
         if (Main.myPlayer == player.whoAmI)
         {
             player.ManaEffect(10);
         }
         AchievementsHelper.HandleSpecialEvent(player, AchievementHelperID.Special.ConsumeStar);
     }
     return(false);
 }
Пример #23
0
        private static void ToggleOpenSpecialChest(int tX, int tY, Player player, int specialChestType)
        {
            Main.stackSplit = 600;

            // Clicked and current chest is already open
            if (specialChestType == player.chest)
            {
                player.chest = -1;
                Main.PlaySound(SoundID.MenuClose);
            }

            // Clicked and another chest is open
            else if (specialChestType != player.chest && player.chest == -1)
            {
                player.chest         = specialChestType;
                Main.playerInventory = true;
                if (PlayerInput.GrappleAndInteractAreShared)
                {
                    PlayerInput.Triggers.JustPressed.Grapple = false;
                }
                Main.recBigList = false;
                Main.PlaySound(SoundID.MenuOpen);
                player.chestX = tX;
                player.chestY = tY;
                if (Main.tile[tX, tY].frameX >= 36 && Main.tile[tX, tY].frameX < 72)
                {
                    AchievementsHelper.HandleSpecialEvent(player, 16);
                }
            }

            // Switching between chests
            else
            {
                player.chest         = specialChestType;
                Main.playerInventory = true;
                if (PlayerInput.GrappleAndInteractAreShared)
                {
                    PlayerInput.Triggers.JustPressed.Grapple = false;
                }
                Main.recBigList = false;
                Main.PlaySound(SoundID.MenuTick);
                player.chestX = tX;
                player.chestY = tY;
            }
            Recipe.FindRecipes();
        }
Пример #24
0
 private void bBloodmoon_onLeftClick(object sender, EventArgs e)
 {
     Main.dayTime = false;
     Main.time    = 0.0;
     if (Main.moonPhase == 0)
     {
         Main.moonPhase++;
     }
     WorldGen.spawnEye = false;
     Main.bloodMoon    = true;
     AchievementsHelper.NotifyProgressionEvent(4);
     if (Main.netMode == 0)
     {
         Main.NewText(Lang.misc[8].Value, 50, 255, 130, false);
     }
     else if (Main.netMode == 2)
     {
         NetMessage.BroadcastChatMessage(Lang.misc[8].ToNetworkText(), new Microsoft.Xna.Framework.Color(50, 255, 130), -1);
     }
 }
Пример #25
0
        /*
         *      public override void ScrollWheel(UIScrollWheelEvent evt)
         * {
         * if (!Main.keyState.IsKeyDown(Keys.LeftAlt)) return;
         *
         * if (evt.ScrollWheelValue > 0)
         * {
         * if (Main.mouseItem.type == Item.type && Main.mouseItem.stack < Main.mouseItem.maxStack)
         * {
         * Main.mouseItem.stack++;
         * if (--Item.stack <= 0) Item.TurnToAir();
         * }
         * else if (Main.mouseItem.IsAir)
         * {
         * Main.mouseItem = Item.Clone();
         * Main.mouseItem.stack = 1;
         * if (--Item.stack <= 0) Item.TurnToAir();
         * }
         * }
         * else if (evt.ScrollWheelValue < 0)
         * {
         * if (Item.type == Main.mouseItem.type && Item.stack < Item.maxStack)
         * {
         * Item.stack++;
         * if (--Main.mouseItem.stack <= 0) Main.mouseItem.TurnToAir();
         * }
         * else if (Item.IsAir)
         * {
         * Item = Main.mouseItem.Clone();
         * Item.stack = 1;
         * if (--Main.mouseItem.stack <= 0) Main.mouseItem.TurnToAir();
         * }
         * }
         * }
         */

        public override void Click(UIMouseEvent evt)
        {
            Item.newAndShiny = false;
            Player player = Main.LocalPlayer;

            if (ItemSlot.ShiftInUse)
            {
                Item = Utility.PutItemInInventory(Item);

                OnInteract?.Invoke();

                base.Click(evt);

                return;
            }

            if (Main.mouseItem.IsAir)
            {
                Main.mouseItem = Network.ExtractItem(Item);
            }
            else
            {
                Network.InsertItem(ref Main.mouseItem);
                Main.PlaySound(SoundID.Grab);
            }

            if (Item.stack > 0)
            {
                AchievementsHelper.NotifyItemPickup(player, Item);
            }

            if (Main.mouseItem.type > 0 || Item.type > 0)
            {
                Recipe.FindRecipes();
                Main.PlaySound(SoundID.Grab);
            }

            OnInteract?.Invoke();

            base.Click(evt);
        }
Пример #26
0
 public override bool UseItem(Item item, Player player)
 {
     if (item.type == mod.ItemType("BlazingHeart") && player.itemAnimation > 0 && player.statLifeMax >= 300 && player.statLifeMax < 400 && player.itemTime == 0)
     {
         player.itemTime      = (int)((float)item.useTime / PlayerHooks.TotalUseTimeMultiplier(player, item));
         player.statLifeMax  += 10;
         player.statLifeMax2 += 10;
         player.statLife     += 10;
         if (Main.myPlayer == player.whoAmI)
         {
             player.HealEffect(10, true);
         }
         AchievementsHelper.HandleSpecialEvent(player, 2);
     }
     if (item.type == mod.ItemType("DazzlingHeart") && player.itemAnimation > 0 && player.statLifeMax >= 400 && player.statLifeMax < 450 && player.itemTime == 0)
     {
         player.itemTime      = (int)((float)item.useTime / PlayerHooks.TotalUseTimeMultiplier(player, item));
         player.statLifeMax  += 5;
         player.statLifeMax2 += 5;
         player.statLife     += 5;
         if (Main.myPlayer == player.whoAmI)
         {
             player.HealEffect(5, true);
         }
         AchievementsHelper.HandleSpecialEvent(player, 2);
     }
     if (item.type == 1291 && player.itemAnimation > 0 && player.statLifeMax >= 450 && player.statLifeMax < 500 && player.itemTime == 0)
     {
         player.itemTime      = (int)((float)item.useTime / PlayerHooks.TotalUseTimeMultiplier(player, item));
         player.statLifeMax  += 5;
         player.statLifeMax2 += 5;
         player.statLife     += 5;
         if (Main.myPlayer == player.whoAmI)
         {
             player.HealEffect(5, true);
         }
         AchievementsHelper.HandleSpecialEvent(player, 2);
     }
     return(base.UseItem(item, player));
 }
        private async void ProcessGetLeaderboardUI()
        {
            ShowProgressBar(true);

            try
            {
                var leaderBoardModel = await MyILPClient.GetLeaderboard();

                tbMyName.Text        = UserInformation.FullName;
                tbMyBatch.Text       = UserInformation.LGName;
                tbMyLevel.Text       = AchievementsHelper.GetAchievementString(leaderBoardModel.MyPoints);
                gridMain.DataContext = leaderBoardModel;
            }
            catch (HttpRequestException exception)
            {
                tbMyBatch.Text = string.Empty;
                tbMyLevel.Text = "No internet connection";
                (new MessageDialog(exception.Message, "Error")).ShowAsync().GetResults();
            }
            finally
            {
                ShowProgressBar(false);
            }
        }
Пример #28
0
        private bool TryPlaceItem(ref Item item, ref Item target, bool isCoin, bool incrementStack)
        {
            bool dispose = false;

            if (target.type == 0 && !incrementStack)
            {
                target = item;
                ItemText.NewText(item, item.stack);
                AchievementsHelper.NotifyItemPickup(Player, item);
                dispose = true;
            }
            else if (incrementStack && target.type > 0 && target.stack < target.maxStack && item.IsTheSameAs(target))
            {
                if (item.stack + target.stack <= target.maxStack)
                {
                    target.stack += item.stack;
                    ItemText.NewText(item, item.stack);
                    AchievementsHelper.NotifyItemPickup(Player, item);
                    dispose = true;
                }
                else
                {
                    AchievementsHelper.NotifyItemPickup(Player, item, target.maxStack - target.stack);
                    item.stack -= target.maxStack - target.stack;
                    ItemText.NewText(item, target.maxStack - target.stack);
                    target.stack = target.maxStack;
                }
            }

            Main.PlaySound(isCoin ? SoundID.CoinPickup : SoundID.Grab, (int)Player.position.X, (int)Player.position.Y, 1, 1f, 0f);
            if (Player.whoAmI == Main.myPlayer)
            {
                API.FindRecipes();
            }
            return(dispose);
        }
 public static void Load()
 {
     if (Main.netMode != 2)
     {
         Achievement achievement = new Achievement("TIMBER");
         achievement.AddCondition(ItemPickupCondition.Create(9, 619, 2504, 620, 2503, 2260, 621, 911, 1729));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BENCHED");
         achievement.AddCondition(ItemCraftCondition.Create(ItemID.Sets.Workbenches));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("NO_HOBO");
         achievement.AddCondition(ProgressionEventCondition.Create(8));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OBTAIN_HAMMER");
         achievement.AddCondition(ItemPickupCondition.Create(2775, 2746, 3505, 654, 3517, 7, 3493, 2780, 1513, 2516, 660, 3481, 657, 922, 3511, 2785, 3499, 3487, 196, 367, 104, 797, 2320, 787, 1234, 1262, 3465, 204, 217, 1507, 3524, 3522, 3525, 3523, 4317, 1305));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OOO_SHINY");
         achievement.AddCondition(TileDestroyedCondition.Create(7, 6, 9, 8, 166, 167, 168, 169, 22, 204, 58, 107, 108, 111, 221, 222, 223, 211));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEART_BREAKER");
         achievement.AddCondition(TileDestroyedCondition.Create(12));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEAVY_METAL");
         achievement.AddCondition(ItemPickupCondition.Create(35, 716));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("I_AM_LOOT");
         achievement.AddCondition(CustomFlagCondition.Create("Peek"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STAR_POWER");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HOLD_ON_TIGHT");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("EYE_ON_YOU");
         achievement.AddCondition(NPCKilledCondition.Create(4));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SMASHING_POPPET");
         achievement.AddCondition(ProgressionEventCondition.Create(7));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WORM_FODDER");
         achievement.AddCondition(NPCKilledCondition.Create(13, 14, 15));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MASTERMIND");
         achievement.AddCondition(NPCKilledCondition.Create(266));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WHERES_MY_HONEY");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STING_OPERATION");
         achievement.AddCondition(NPCKilledCondition.Create(222));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BONED");
         achievement.AddCondition(NPCKilledCondition.Create(35));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DUNGEON_HEIST");
         achievement.AddCondition(ItemPickupCondition.Create(327));
         achievement.AddCondition(ProgressionEventCondition.Create(19));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ITS_GETTING_HOT_IN_HERE");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MINER_FOR_FIRE");
         achievement.AddCondition(ItemCraftCondition.Create(122));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STILL_HUNGRY");
         achievement.AddCondition(NPCKilledCondition.Create(113, 114));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ITS_HARD");
         achievement.AddCondition(ProgressionEventCondition.Create(9));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BEGONE_EVIL");
         achievement.AddCondition(ProgressionEventCondition.Create(6));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("EXTRA_SHINY");
         achievement.AddCondition(TileDestroyedCondition.Create(107, 108, 111, 221, 222, 223));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEAD_IN_THE_CLOUDS");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LIKE_A_BOSS");
         achievement.AddCondition(ItemPickupCondition.Create(1133, 1331, 1307, 267, 1293, 557, 544, 556, 560, 43, 70));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BUCKETS_OF_BOLTS");
         achievement.AddCondition(NPCKilledCondition.Create(125, 126));
         achievement.AddConditions(NPCKilledCondition.CreateMany(127, 134));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DRAX_ATTAX");
         achievement.AddCondition(ItemCraftCondition.Create(579, 990));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PHOTOSYNTHESIS");
         achievement.AddCondition(TileDestroyedCondition.Create(211));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GET_A_LIFE");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THE_GREAT_SOUTHERN_PLANTKILL");
         achievement.AddCondition(NPCKilledCondition.Create(262));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TEMPLE_RAIDER");
         achievement.AddCondition(ProgressionEventCondition.Create(22));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LIHZAHRDIAN_IDOL");
         achievement.AddCondition(NPCKilledCondition.Create(245));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ROBBING_THE_GRAVE");
         achievement.AddCondition(ItemPickupCondition.Create(1513, 938, 963, 977, 1300, 1254, 1514, 679, 759, 1446, 1445, 1444, 1183, 1266, 671, 3291, 4679));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BIG_BOOTY");
         achievement.AddCondition(ProgressionEventCondition.Create(20));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FISH_OUT_OF_WATER");
         achievement.AddCondition(NPCKilledCondition.Create(370));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OBSESSIVE_DEVOTION");
         achievement.AddCondition(NPCKilledCondition.Create(439));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STAR_DESTROYER");
         achievement.AddConditions(NPCKilledCondition.CreateMany(517, 422, 507, 493));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("CHAMPION_OF_TERRARIA");
         achievement.AddCondition(NPCKilledCondition.Create(398));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BLOODBATH");
         achievement.AddCondition(ProgressionEventCondition.Create(5));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SLIPPERY_SHINOBI");
         achievement.AddCondition(NPCKilledCondition.Create(50));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GOBLIN_PUNTER");
         achievement.AddCondition(ProgressionEventCondition.Create(10));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WALK_THE_PLANK");
         achievement.AddCondition(ProgressionEventCondition.Create(11));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("KILL_THE_SUN");
         achievement.AddCondition(ProgressionEventCondition.Create(3));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DO_YOU_WANT_TO_SLAY_A_SNOWMAN");
         achievement.AddCondition(ProgressionEventCondition.Create(12));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TIN_FOIL_HATTER");
         achievement.AddCondition(ProgressionEventCondition.Create(13));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BALEFUL_HARVEST");
         achievement.AddCondition(ProgressionEventCondition.Create(15));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ICE_SCREAM");
         achievement.AddCondition(ProgressionEventCondition.Create(14));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STICKY_SITUATION");
         achievement.AddCondition(ProgressionEventCondition.Create(16));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("REAL_ESTATE_AGENT");
         achievement.AddCondition(ProgressionEventCondition.Create(17));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("NOT_THE_BEES");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("JEEPERS_CREEPERS");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FUNKYTOWN");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("INTO_ORBIT");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ROCK_BOTTOM");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MECHA_MAYHEM");
         achievement.AddCondition(ProgressionEventCondition.Create(21));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GELATIN_WORLD_TOUR");
         achievement.AddConditions(NPCKilledCondition.CreateMany(-5, -6, 1, 81, 71, -3, 147, 138, -10, 50, 59, 16, -7, 244, -8, -1, -2, 184, 204, 225, -9, 141, 183, -4));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FASHION_STATEMENT");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("VEHICULAR_MANSLAUGHTER");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BULLDOZER");
         achievement.AddCondition(CustomIntCondition.Create("Pick", 10000));
         achievement.UseTrackerFromCondition("Pick");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THERE_ARE_SOME_WHO_CALL_HIM");
         achievement.AddCondition(NPCKilledCondition.Create(45));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DECEIVER_OF_FOOLS");
         achievement.AddCondition(NPCKilledCondition.Create(196));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SWORD_OF_THE_HERO");
         achievement.AddCondition(ItemPickupCondition.Create(757));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LUCKY_BREAK");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THROWING_LINES");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DYE_HARD");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SICK_THROW");
         achievement.AddCondition(ItemPickupCondition.Create(3389));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FREQUENT_FLYER");
         achievement.AddCondition(CustomFloatCondition.Create("Pay", 10000f));
         achievement.UseTrackerFromCondition("Pay");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THE_CAVALRY");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("COMPLETELY_AWESOME");
         achievement.AddCondition(ItemPickupCondition.Create(98));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TIL_DEATH");
         achievement.AddCondition(NPCKilledCondition.Create(53));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ARCHAEOLOGIST");
         achievement.AddCondition(NPCKilledCondition.Create(52));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PRETTY_IN_PINK");
         achievement.AddCondition(NPCKilledCondition.Create(-4));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("RAINBOWS_AND_UNICORNS");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("YOU_AND_WHAT_ARMY");
         achievement.AddCondition(CustomFlagCondition.Create("Spawn"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PRISMANCER");
         achievement.AddCondition(ItemPickupCondition.Create(495));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("IT_CAN_TALK");
         achievement.AddCondition(ProgressionEventCondition.Create(18));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WATCH_YOUR_STEP");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MARATHON_MEDALIST");
         achievement.AddCondition(CustomFloatCondition.Create("Move", 1106688f));
         achievement.UseTrackerFromCondition("Move");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GLORIOUS_GOLDEN_POLE");
         achievement.AddCondition(ItemPickupCondition.Create(2294));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SERVANT_IN_TRAINING");
         achievement.AddCondition(CustomFlagCondition.Create("Finish"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GOOD_LITTLE_SLAVE");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 10));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TROUT_MONKEY");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 25));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FAST_AND_FISHIOUS");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 50));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SUPREME_HELPER_MINION");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 200));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TOPPED_OFF");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SLAYER_OF_WORLDS");
         achievement.AddCondition(NPCKilledCondition.Create(13, 14, 15));
         achievement.AddCondition(NPCKilledCondition.Create(113, 114));
         achievement.AddCondition(NPCKilledCondition.Create(125, 126));
         achievement.AddConditions(NPCKilledCondition.CreateMany(4, 266, 35, 50, 222, 134, 127, 262, 245, 439, 398, 370));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("YOU_CAN_DO_IT");
         achievement.AddCondition(ProgressionEventCondition.Create(1));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MATCHING_ATTIRE");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         int num = 0;
         Main.Achievements.RegisterIconIndex("TIMBER", num++);
         Main.Achievements.RegisterIconIndex("NO_HOBO", num++);
         Main.Achievements.RegisterIconIndex("OBTAIN_HAMMER", num++);
         Main.Achievements.RegisterIconIndex("HEART_BREAKER", num++);
         Main.Achievements.RegisterIconIndex("OOO_SHINY", num++);
         Main.Achievements.RegisterIconIndex("HEAVY_METAL", num++);
         Main.Achievements.RegisterIconIndex("I_AM_LOOT", num++);
         Main.Achievements.RegisterIconIndex("STAR_POWER", num++);
         Main.Achievements.RegisterIconIndex("HOLD_ON_TIGHT", num++);
         Main.Achievements.RegisterIconIndex("EYE_ON_YOU", num++);
         Main.Achievements.RegisterIconIndex("SMASHING_POPPET", num++);
         Main.Achievements.RegisterIconIndex("WORM_FODDER", num++);
         Main.Achievements.RegisterIconIndex("MASTERMIND", num++);
         Main.Achievements.RegisterIconIndex("WHERES_MY_HONEY", num++);
         Main.Achievements.RegisterIconIndex("STING_OPERATION", num++);
         Main.Achievements.RegisterIconIndex("BONED", num++);
         Main.Achievements.RegisterIconIndex("DUNGEON_HEIST", num++);
         Main.Achievements.RegisterIconIndex("ITS_GETTING_HOT_IN_HERE", num++);
         Main.Achievements.RegisterIconIndex("MINER_FOR_FIRE", num++);
         Main.Achievements.RegisterIconIndex("STILL_HUNGRY", num++);
         Main.Achievements.RegisterIconIndex("ITS_HARD", num++);
         Main.Achievements.RegisterIconIndex("BEGONE_EVIL", num++);
         Main.Achievements.RegisterIconIndex("EXTRA_SHINY", num++);
         Main.Achievements.RegisterIconIndex("HEAD_IN_THE_CLOUDS", num++);
         Main.Achievements.RegisterIconIndex("LIKE_A_BOSS", num++);
         Main.Achievements.RegisterIconIndex("BUCKETS_OF_BOLTS", num++);
         Main.Achievements.RegisterIconIndex("DRAX_ATTAX", num++);
         Main.Achievements.RegisterIconIndex("PHOTOSYNTHESIS", num++);
         Main.Achievements.RegisterIconIndex("GET_A_LIFE", num++);
         Main.Achievements.RegisterIconIndex("THE_GREAT_SOUTHERN_PLANTKILL", num++);
         Main.Achievements.RegisterIconIndex("TEMPLE_RAIDER", num++);
         Main.Achievements.RegisterIconIndex("LIHZAHRDIAN_IDOL", num++);
         Main.Achievements.RegisterIconIndex("ROBBING_THE_GRAVE", num++);
         Main.Achievements.RegisterIconIndex("BIG_BOOTY", num++);
         Main.Achievements.RegisterIconIndex("FISH_OUT_OF_WATER", num++);
         Main.Achievements.RegisterIconIndex("OBSESSIVE_DEVOTION", num++);
         Main.Achievements.RegisterIconIndex("STAR_DESTROYER", num++);
         Main.Achievements.RegisterIconIndex("CHAMPION_OF_TERRARIA", num++);
         Main.Achievements.RegisterIconIndex("BLOODBATH", num++);
         Main.Achievements.RegisterIconIndex("GOBLIN_PUNTER", num++);
         Main.Achievements.RegisterIconIndex("KILL_THE_SUN", num++);
         Main.Achievements.RegisterIconIndex("WALK_THE_PLANK", num++);
         Main.Achievements.RegisterIconIndex("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", num++);
         Main.Achievements.RegisterIconIndex("TIN_FOIL_HATTER", num++);
         Main.Achievements.RegisterIconIndex("BALEFUL_HARVEST", num++);
         Main.Achievements.RegisterIconIndex("ICE_SCREAM", num++);
         Main.Achievements.RegisterIconIndex("SLIPPERY_SHINOBI", num++);
         Main.Achievements.RegisterIconIndex("STICKY_SITUATION", num++);
         Main.Achievements.RegisterIconIndex("REAL_ESTATE_AGENT", num++);
         Main.Achievements.RegisterIconIndex("NOT_THE_BEES", num++);
         Main.Achievements.RegisterIconIndex("JEEPERS_CREEPERS", num++);
         Main.Achievements.RegisterIconIndex("FUNKYTOWN", num++);
         Main.Achievements.RegisterIconIndex("INTO_ORBIT", num++);
         Main.Achievements.RegisterIconIndex("ROCK_BOTTOM", num++);
         Main.Achievements.RegisterIconIndex("MECHA_MAYHEM", num++);
         Main.Achievements.RegisterIconIndex("GELATIN_WORLD_TOUR", num++);
         Main.Achievements.RegisterIconIndex("FASHION_STATEMENT", num++);
         Main.Achievements.RegisterIconIndex("VEHICULAR_MANSLAUGHTER", num++);
         Main.Achievements.RegisterIconIndex("BULLDOZER", num++);
         Main.Achievements.RegisterIconIndex("THERE_ARE_SOME_WHO_CALL_HIM", num++);
         Main.Achievements.RegisterIconIndex("DECEIVER_OF_FOOLS", num++);
         Main.Achievements.RegisterIconIndex("SWORD_OF_THE_HERO", num++);
         Main.Achievements.RegisterIconIndex("LUCKY_BREAK", num++);
         Main.Achievements.RegisterIconIndex("THROWING_LINES", num++);
         Main.Achievements.RegisterIconIndex("DYE_HARD", num++);
         Main.Achievements.RegisterIconIndex("FREQUENT_FLYER", num++);
         Main.Achievements.RegisterIconIndex("THE_CAVALRY", num++);
         Main.Achievements.RegisterIconIndex("COMPLETELY_AWESOME", num++);
         Main.Achievements.RegisterIconIndex("TIL_DEATH", num++);
         Main.Achievements.RegisterIconIndex("ARCHAEOLOGIST", num++);
         Main.Achievements.RegisterIconIndex("PRETTY_IN_PINK", num++);
         Main.Achievements.RegisterIconIndex("RAINBOWS_AND_UNICORNS", num++);
         Main.Achievements.RegisterIconIndex("YOU_AND_WHAT_ARMY", num++);
         Main.Achievements.RegisterIconIndex("PRISMANCER", num++);
         Main.Achievements.RegisterIconIndex("IT_CAN_TALK", num++);
         Main.Achievements.RegisterIconIndex("WATCH_YOUR_STEP", num++);
         Main.Achievements.RegisterIconIndex("MARATHON_MEDALIST", num++);
         Main.Achievements.RegisterIconIndex("GLORIOUS_GOLDEN_POLE", num++);
         Main.Achievements.RegisterIconIndex("SERVANT_IN_TRAINING", num++);
         Main.Achievements.RegisterIconIndex("GOOD_LITTLE_SLAVE", num++);
         Main.Achievements.RegisterIconIndex("TROUT_MONKEY", num++);
         Main.Achievements.RegisterIconIndex("FAST_AND_FISHIOUS", num++);
         Main.Achievements.RegisterIconIndex("SUPREME_HELPER_MINION", num++);
         Main.Achievements.RegisterIconIndex("TOPPED_OFF", num++);
         Main.Achievements.RegisterIconIndex("SLAYER_OF_WORLDS", num++);
         Main.Achievements.RegisterIconIndex("YOU_CAN_DO_IT", num++);
         Main.Achievements.RegisterIconIndex("SICK_THROW", num++);
         Main.Achievements.RegisterIconIndex("MATCHING_ATTIRE", num++);
         Main.Achievements.RegisterIconIndex("BENCHED", num++);
         AchievementCategory category = AchievementCategory.Slayer;
         Main.Achievements.RegisterAchievementCategory("EYE_ON_YOU", category);
         Main.Achievements.RegisterAchievementCategory("SLIPPERY_SHINOBI", category);
         Main.Achievements.RegisterAchievementCategory("WORM_FODDER", category);
         Main.Achievements.RegisterAchievementCategory("MASTERMIND", category);
         Main.Achievements.RegisterAchievementCategory("STING_OPERATION", category);
         Main.Achievements.RegisterAchievementCategory("BONED", category);
         Main.Achievements.RegisterAchievementCategory("STILL_HUNGRY", category);
         Main.Achievements.RegisterAchievementCategory("BUCKETS_OF_BOLTS", category);
         Main.Achievements.RegisterAchievementCategory("THE_GREAT_SOUTHERN_PLANTKILL", category);
         Main.Achievements.RegisterAchievementCategory("LIHZAHRDIAN_IDOL", category);
         Main.Achievements.RegisterAchievementCategory("FISH_OUT_OF_WATER", category);
         Main.Achievements.RegisterAchievementCategory("OBSESSIVE_DEVOTION", category);
         Main.Achievements.RegisterAchievementCategory("STAR_DESTROYER", category);
         Main.Achievements.RegisterAchievementCategory("CHAMPION_OF_TERRARIA", category);
         Main.Achievements.RegisterAchievementCategory("GOBLIN_PUNTER", category);
         Main.Achievements.RegisterAchievementCategory("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", category);
         Main.Achievements.RegisterAchievementCategory("WALK_THE_PLANK", category);
         Main.Achievements.RegisterAchievementCategory("BALEFUL_HARVEST", category);
         Main.Achievements.RegisterAchievementCategory("ICE_SCREAM", category);
         Main.Achievements.RegisterAchievementCategory("TIN_FOIL_HATTER", category);
         Main.Achievements.RegisterAchievementCategory("TIL_DEATH", category);
         Main.Achievements.RegisterAchievementCategory("THERE_ARE_SOME_WHO_CALL_HIM", category);
         Main.Achievements.RegisterAchievementCategory("ARCHAEOLOGIST", category);
         Main.Achievements.RegisterAchievementCategory("PRETTY_IN_PINK", category);
         Main.Achievements.RegisterAchievementCategory("DECEIVER_OF_FOOLS", category);
         Main.Achievements.RegisterAchievementCategory("VEHICULAR_MANSLAUGHTER", category);
         category = AchievementCategory.Explorer;
         Main.Achievements.RegisterAchievementCategory("SMASHING_POPPET", category);
         Main.Achievements.RegisterAchievementCategory("BEGONE_EVIL", category);
         Main.Achievements.RegisterAchievementCategory("ITS_HARD", category);
         Main.Achievements.RegisterAchievementCategory("FUNKYTOWN", category);
         Main.Achievements.RegisterAchievementCategory("WATCH_YOUR_STEP", category);
         Main.Achievements.RegisterAchievementCategory("YOU_CAN_DO_IT", category);
         Main.Achievements.RegisterAchievementCategory("BLOODBATH", category);
         Main.Achievements.RegisterAchievementCategory("KILL_THE_SUN", category);
         Main.Achievements.RegisterAchievementCategory("STICKY_SITUATION", category);
         Main.Achievements.RegisterAchievementCategory("NO_HOBO", category);
         Main.Achievements.RegisterAchievementCategory("IT_CAN_TALK", category);
         Main.Achievements.RegisterAchievementCategory("HEART_BREAKER", category);
         Main.Achievements.RegisterAchievementCategory("I_AM_LOOT", category);
         Main.Achievements.RegisterAchievementCategory("ROBBING_THE_GRAVE", category);
         Main.Achievements.RegisterAchievementCategory("GET_A_LIFE", category);
         Main.Achievements.RegisterAchievementCategory("JEEPERS_CREEPERS", category);
         Main.Achievements.RegisterAchievementCategory("WHERES_MY_HONEY", category);
         Main.Achievements.RegisterAchievementCategory("DUNGEON_HEIST", category);
         Main.Achievements.RegisterAchievementCategory("BIG_BOOTY", category);
         Main.Achievements.RegisterAchievementCategory("ITS_GETTING_HOT_IN_HERE", category);
         Main.Achievements.RegisterAchievementCategory("INTO_ORBIT", category);
         Main.Achievements.RegisterAchievementCategory("ROCK_BOTTOM", category);
         Main.Achievements.RegisterAchievementCategory("OOO_SHINY", category);
         Main.Achievements.RegisterAchievementCategory("EXTRA_SHINY", category);
         Main.Achievements.RegisterAchievementCategory("PHOTOSYNTHESIS", category);
         category = AchievementCategory.Challenger;
         Main.Achievements.RegisterAchievementCategory("GELATIN_WORLD_TOUR", category);
         Main.Achievements.RegisterAchievementCategory("SLAYER_OF_WORLDS", category);
         Main.Achievements.RegisterAchievementCategory("REAL_ESTATE_AGENT", category);
         Main.Achievements.RegisterAchievementCategory("YOU_AND_WHAT_ARMY", category);
         Main.Achievements.RegisterAchievementCategory("TOPPED_OFF", category);
         Main.Achievements.RegisterAchievementCategory("MECHA_MAYHEM", category);
         Main.Achievements.RegisterAchievementCategory("BULLDOZER", category);
         Main.Achievements.RegisterAchievementCategory("NOT_THE_BEES", category);
         Main.Achievements.RegisterAchievementCategory("RAINBOWS_AND_UNICORNS", category);
         Main.Achievements.RegisterAchievementCategory("THROWING_LINES", category);
         Main.Achievements.RegisterAchievementCategory("FREQUENT_FLYER", category);
         Main.Achievements.RegisterAchievementCategory("LUCKY_BREAK", category);
         Main.Achievements.RegisterAchievementCategory("MARATHON_MEDALIST", category);
         Main.Achievements.RegisterAchievementCategory("SERVANT_IN_TRAINING", category);
         Main.Achievements.RegisterAchievementCategory("GOOD_LITTLE_SLAVE", category);
         Main.Achievements.RegisterAchievementCategory("TROUT_MONKEY", category);
         Main.Achievements.RegisterAchievementCategory("FAST_AND_FISHIOUS", category);
         Main.Achievements.RegisterAchievementCategory("SUPREME_HELPER_MINION", category);
         category = AchievementCategory.Collector;
         Main.Achievements.RegisterAchievementCategory("OBTAIN_HAMMER", category);
         Main.Achievements.RegisterAchievementCategory("BENCHED", category);
         Main.Achievements.RegisterAchievementCategory("HEAVY_METAL", category);
         Main.Achievements.RegisterAchievementCategory("STAR_POWER", category);
         Main.Achievements.RegisterAchievementCategory("MINER_FOR_FIRE", category);
         Main.Achievements.RegisterAchievementCategory("HEAD_IN_THE_CLOUDS", category);
         Main.Achievements.RegisterAchievementCategory("DRAX_ATTAX", category);
         Main.Achievements.RegisterAchievementCategory("PRISMANCER", category);
         Main.Achievements.RegisterAchievementCategory("SWORD_OF_THE_HERO", category);
         Main.Achievements.RegisterAchievementCategory("HOLD_ON_TIGHT", category);
         Main.Achievements.RegisterAchievementCategory("THE_CAVALRY", category);
         Main.Achievements.RegisterAchievementCategory("DYE_HARD", category);
         Main.Achievements.RegisterAchievementCategory("MATCHING_ATTIRE", category);
         Main.Achievements.RegisterAchievementCategory("FASHION_STATEMENT", category);
         Main.Achievements.RegisterAchievementCategory("COMPLETELY_AWESOME", category);
         Main.Achievements.RegisterAchievementCategory("TIMBER", category);
         Main.Achievements.RegisterAchievementCategory("SICK_THROW", category);
         Main.Achievements.RegisterAchievementCategory("GLORIOUS_GOLDEN_POLE", category);
         Main.Achievements.RegisterAchievementCategory("TEMPLE_RAIDER", category);
         Main.Achievements.RegisterAchievementCategory("LIKE_A_BOSS", category);
         Main.Achievements.Load();
         Main.Achievements.OnAchievementCompleted += OnAchievementCompleted;
         AchievementsHelper.Initialize();
     }
 }
Пример #30
0
 public override void OnLeftClick()
 {
     if (Main.mouseItem.stack == 1 && Main.mouseItem.dye > 0 && Item.type > 0 && Item.type != Main.mouseItem.type)
     {
         Utils.Swap <Item>(ref item, ref Main.mouseItem);
         Main.PlaySound(7, -1, -1, 1, 1f, 0f);
         if (Item.stack > 0)
         {
             AchievementsHelper.HandleOnEquip(Main.LocalPlayer, Item, 12);
         }
     }
     else if (Main.mouseItem.type == 0 && Item.type > 0)
     {
         Utils.Swap <Item>(ref item, ref Main.mouseItem);
         if (Item.type == 0 || Item.stack < 1)
         {
             Item = new Item();
         }
         if (Main.mouseItem.type == 0 || Main.mouseItem.stack < 1)
         {
             Main.mouseItem = new Item();
         }
         if (Main.mouseItem.type > 0 || Item.type > 0)
         {
             Recipe.FindRecipes();
             Main.PlaySound(7, -1, -1, 1, 1f, 0f);
         }
     }
     else if (Main.mouseItem.dye > 0 && Item.type == 0)
     {
         if (Main.mouseItem.stack == 1)
         {
             Utils.Swap <Item>(ref item, ref Main.mouseItem);
             if (Item.type == 0 || Item.stack < 1)
             {
                 Item = new Item();
             }
             if (Main.mouseItem.type == 0 || Main.mouseItem.stack < 1)
             {
                 Main.mouseItem = new Item();
             }
             if (Main.mouseItem.type > 0 || Item.type > 0)
             {
                 Recipe.FindRecipes();
                 Main.PlaySound(7, -1, -1, 1, 1f, 0f);
             }
         }
         else
         {
             Main.mouseItem.stack--;
             Item.SetDefaults(Main.mouseItem.type, false);
             Recipe.FindRecipes();
             Main.PlaySound(7, -1, -1, 1, 1f, 0f);
         }
         if (Item.stack > 0)
         {
             AchievementsHelper.HandleOnEquip(Main.LocalPlayer, Item, 12);
         }
     }
     Item.favorited = false;
 }
Пример #31
0
        //TODO make IL
        //I method swapped because I could not get IL working
        private void On_LeftClick(On.Terraria.UI.ItemSlot.orig_LeftClick_ItemArray_int_int orig, Item[] inv, int context, int slot)
        {
            //Main.NewText(Main.cursorOverride);
            if (!(bool)overrideLeftClick.Invoke(null, new object[] { inv, context, slot }))
            {
                inv[slot].newAndShiny = false;
                Player player = Main.player[Main.myPlayer];
                bool   flag   = false;
                if ((uint)context <= 4u)
                {
                    flag = (player.chest == -1);
                }
                if (ControlInUse & flag)
                {
                    sellOrTrash.Invoke(null, new object[] { inv, context, slot });
                }
                else if (player.itemAnimation == 0 && player.itemTime == 0)
                {
                    switch (ItemSlot.PickItemMovementAction(inv, context, slot, Main.mouseItem))
                    {
                    case 0:
                        if (context == 6 && Main.mouseItem.type != ItemID.None)
                        {
                            inv[slot].SetDefaults(0, false);
                        }
                        Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                        if (inv[slot].stack > 0)
                        {
                            if (context != 0)
                            {
                                if ((uint)(context - 8) <= 4u || (uint)(context - 16) <= 1u)
                                {
                                    AchievementsHelper.HandleOnEquip(player, inv[slot], context);
                                }
                            }
                            else
                            {
                                AchievementsHelper.NotifyItemPickup(player, inv[slot]);
                            }
                        }
                        if (inv[slot].type == ItemID.None || inv[slot].stack < 1)
                        {
                            inv[slot] = new Item();
                        }
                        if (Main.mouseItem.IsTheSameAs(inv[slot]))
                        {
                            Utils.Swap <bool>(ref inv[slot].favorited, ref Main.mouseItem.favorited);
                            if (inv[slot].stack != inv[slot].maxStack && Main.mouseItem.stack != Main.mouseItem.maxStack)
                            {
                                if (Main.mouseItem.stack + inv[slot].stack <= Main.mouseItem.maxStack)
                                {
                                    inv[slot].stack     += Main.mouseItem.stack;
                                    Main.mouseItem.stack = 0;
                                }
                                else
                                {
                                    int num3 = Main.mouseItem.maxStack - inv[slot].stack;
                                    inv[slot].stack      += num3;
                                    Main.mouseItem.stack -= num3;
                                }
                            }
                        }
                        if (Main.mouseItem.type == ItemID.None || Main.mouseItem.stack < 1)
                        {
                            Main.mouseItem = new Item();
                        }
                        if (Main.mouseItem.type > ItemID.None || inv[slot].type > ItemID.None)
                        {
                            Recipe.FindRecipes();
                            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                        }
                        if (context == 3 && Main.netMode == NetmodeID.MultiplayerClient)
                        {
                            NetMessage.SendData(MessageID.SyncChestItem, -1, -1, null, player.chest, slot, 0f, 0f, 0, 0, 0);
                        }
                        break;

                    case 1:
                        if (Main.mouseItem.stack == 1 && Main.mouseItem.type > ItemID.None && inv[slot].type > ItemID.None && inv[slot].IsNotTheSameAs(Main.mouseItem))
                        {
                            Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                            if (inv[slot].stack > 0)
                            {
                                if (context != 0)
                                {
                                    if ((uint)(context - 8) <= 4u || (uint)(context - 16) <= 1u)
                                    {
                                        AchievementsHelper.HandleOnEquip(player, inv[slot], context);
                                    }
                                }
                                else
                                {
                                    AchievementsHelper.NotifyItemPickup(player, inv[slot]);
                                }
                            }
                        }
                        else if (Main.mouseItem.type == ItemID.None && inv[slot].type > ItemID.None)
                        {
                            Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                            if (inv[slot].type == ItemID.None || inv[slot].stack < 1)
                            {
                                inv[slot] = new Item();
                            }
                            if (Main.mouseItem.type == ItemID.None || Main.mouseItem.stack < 1)
                            {
                                Main.mouseItem = new Item();
                            }
                            if (Main.mouseItem.type <= ItemID.None && inv[slot].type <= ItemID.None)
                            {
                                break;
                            }
                            Recipe.FindRecipes();
                            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                        }
                        else if (Main.mouseItem.type > ItemID.None && inv[slot].type == ItemID.None)
                        {
                            if (Main.mouseItem.stack == 1)
                            {
                                Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                                if (inv[slot].type == ItemID.None || inv[slot].stack < 1)
                                {
                                    inv[slot] = new Item();
                                }
                                if (Main.mouseItem.type == ItemID.None || Main.mouseItem.stack < 1)
                                {
                                    Main.mouseItem = new Item();
                                }
                                if (Main.mouseItem.type > ItemID.None || inv[slot].type > ItemID.None)
                                {
                                    Recipe.FindRecipes();
                                    Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                                }
                            }
                            else
                            {
                                Main.mouseItem.stack--;
                                inv[slot].SetDefaults(Main.mouseItem.type, false);
                                Recipe.FindRecipes();
                                Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                            }
                            if (inv[slot].stack > 0)
                            {
                                if (context != 0)
                                {
                                    if ((uint)(context - 8) <= 4u || (uint)(context - 16) <= 1u)
                                    {
                                        AchievementsHelper.HandleOnEquip(player, inv[slot], context);
                                    }
                                }
                                else
                                {
                                    AchievementsHelper.NotifyItemPickup(player, inv[slot]);
                                }
                            }
                        }
                        break;

                    case 2:
                        if (Main.mouseItem.stack == 1 && Main.mouseItem.dye > 0 && inv[slot].type > ItemID.None && inv[slot].type != Main.mouseItem.type)
                        {
                            Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                            if (inv[slot].stack > 0)
                            {
                                if (context != 0)
                                {
                                    if ((uint)(context - 8) <= 4u || (uint)(context - 16) <= 1u)
                                    {
                                        AchievementsHelper.HandleOnEquip(player, inv[slot], context);
                                    }
                                }
                                else
                                {
                                    AchievementsHelper.NotifyItemPickup(player, inv[slot]);
                                }
                            }
                        }
                        else if (Main.mouseItem.type == ItemID.None && inv[slot].type > ItemID.None)
                        {
                            Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                            if (inv[slot].type == ItemID.None || inv[slot].stack < 1)
                            {
                                inv[slot] = new Item();
                            }
                            if (Main.mouseItem.type == ItemID.None || Main.mouseItem.stack < 1)
                            {
                                Main.mouseItem = new Item();
                            }
                            if (Main.mouseItem.type <= ItemID.None && inv[slot].type <= ItemID.None)
                            {
                                break;
                            }
                            Recipe.FindRecipes();
                            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                        }
                        else if (Main.mouseItem.dye > 0 && inv[slot].type == ItemID.None)
                        {
                            if (Main.mouseItem.stack == 1)
                            {
                                Utils.Swap <Item>(ref inv[slot], ref Main.mouseItem);
                                if (inv[slot].type == ItemID.None || inv[slot].stack < 1)
                                {
                                    inv[slot] = new Item();
                                }
                                if (Main.mouseItem.type == ItemID.None || Main.mouseItem.stack < 1)
                                {
                                    Main.mouseItem = new Item();
                                }
                                if (Main.mouseItem.type > ItemID.None || inv[slot].type > ItemID.None)
                                {
                                    Recipe.FindRecipes();
                                    Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                                }
                            }
                            else
                            {
                                Main.mouseItem.stack--;
                                inv[slot].SetDefaults(Main.mouseItem.type, false);
                                Recipe.FindRecipes();
                                Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                            }
                            if (inv[slot].stack > 0)
                            {
                                if (context != 0)
                                {
                                    if ((uint)(context - 8) <= 4u || (uint)(context - 16) <= 1u)
                                    {
                                        AchievementsHelper.HandleOnEquip(player, inv[slot], context);
                                    }
                                }
                                else
                                {
                                    AchievementsHelper.NotifyItemPickup(player, inv[slot]);
                                }
                            }
                        }
                        break;

                    case 3:
                        if (PlayerHooks.CanBuyItem(player, Main.npc[player.talkNPC], inv, inv[slot]))
                        {
                            Main.mouseItem       = inv[slot].Clone();
                            Main.mouseItem.stack = 1;
                            if (inv[slot].buyOnce)
                            {
                                Main.mouseItem.value *= 5;
                            }
                            else
                            {
                                Main.mouseItem.Prefix(-1);
                            }
                            Main.mouseItem.position = player.Center - new Vector2(Main.mouseItem.width, Main.mouseItem.headSlot) / 2f;
                            ItemText.NewText(Main.mouseItem, Main.mouseItem.stack, false, false);
                            if (inv[slot].buyOnce && --inv[slot].stack <= 0)
                            {
                                inv[slot].SetDefaults(0, false);
                            }
                            if (inv[slot].value > 0)
                            {
                                Main.PlaySound(SoundID.Coins, -1, -1, 1, 1f, 0f);
                            }
                            else
                            {
                                Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                            }
                            PlayerHooks.PostBuyItem(player, Main.npc[player.talkNPC], inv, Main.mouseItem);
                        }
                        break;

                    case 4:
                        if (PlayerHooks.CanSellItem(player, Main.npc[player.talkNPC], inv, Main.mouseItem))
                        {
                            Chest chest = Main.instance.shop[Main.npcShop];
                            if (player.SellItem(Main.mouseItem.value, Main.mouseItem.stack))
                            {
                                int num = chest.AddShop(Main.mouseItem);
                                Main.mouseItem.SetDefaults(0, false);
                                Main.PlaySound(SoundID.Coins, -1, -1, 1, 1f, 0f);
                                PlayerHooks.PostSellItem(player, Main.npc[player.talkNPC], chest.item, chest.item[num]);
                            }
                            else if (Main.mouseItem.value == 0)
                            {
                                int num2 = chest.AddShop(Main.mouseItem);
                                Main.mouseItem.SetDefaults(0, false);
                                Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0f);
                                PlayerHooks.PostSellItem(player, Main.npc[player.talkNPC], chest.item, chest.item[num2]);
                            }
                            Recipe.FindRecipes();
                        }
                        break;
                    }
                    if ((uint)context > 2u && context != 5)
                    {
                        inv[slot].favorited = false;
                    }
                }
            }
        }