Пример #1
0
        public void GainXP(int amount, bool first = true)
        {
            if (XPToLevel() == -1)
            {
                return;
            }

            if (first)
            {
                K2Player.SendIfLocal(new GainXPPacket(amount));
            }

            XP += amount;
            if (XP >= XPToLevel())
            {
                XP -= XPToLevel();
                LevelUp();
                GainXP(0, false);
            }

            if (first)
            {
                CombatText.NewText(Player.getRect(), new Color(127, 159, 255), amount + " XP");
            }
        }
Пример #2
0
        public override void NPCLoot(NPC npc)
        {
            if (npc.lifeMax < 10)
            {
                return;
            }
            if (npc.friendly)
            {
                return;
            }
            if (npc.townNPC)
            {
                return;
            }

            RPGCharacter character = K2Player.Get().Character;
            int          baseExp   = (int)Math.Round(Level * Math.Pow(OriginalLife, 0.5) / 4 + 3);

            Prefix.NPCLoot(npc, character, ref baseExp);

            character.GainXP(baseExp * 2 / (Main.expertMode ? 3 : 2));

            if (npc.boss)
            {
                Main.player.DoActive(player =>
                {
                    K2Player k2player = K2Player.Get(player);

                    if (npc.type == NPCID.WallofFlesh && k2player.Inventory.Unlocked < 2)
                    {
                        k2player.Inventory.Unlocked = 2;
                    }
                    else if (k2player.Inventory.Unlocked < 1)
                    {
                        k2player.Inventory.Unlocked = 1;
                    }
                });
            }

            foreach (KeyValuePair <Predicate <NPC>, int> kvp in LevelLocks.levelPlateaus)
            {
                if (kvp.Key(npc))
                {
                    character.SetLevel(kvp.Value + 1);
                }
            }
        }
Пример #3
0
 public InventoryHandler(K2Player k2player)
 {
     K2Player  = k2player;
     lootLogic = new ItemLootLogic(this, k2player);
 }
Пример #4
0
 protected override void Click()
 {
     K2Player.OpenStatAllocationGUI();
 }
Пример #5
0
 internal ItemLootLogic(InventoryHandler inventory, K2Player k2player)
 {
     this.inventory = inventory;
     this.k2player  = k2player;
 }