Ejemplo n.º 1
0
 public bool TheCardEffectThatICantDoInACSharpFile(Player player, EntrogicPlayer ePlayer, ModCard card)
 {
     if (ePlayer.IsDestroyNextCard_InnerRage)
     {
         ePlayer.IsDestroyNextCard_InnerRage = false;
         List <int> elementCardNumber = new List <int>();
         for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
         {
             if (ePlayer.CardReadyType[i] == 0)
             {
                 continue;
             }
             Item item = new Item();
             item.SetDefaults(ePlayer.CardReadyType[i]);
             ModItem modItem = item.modItem;
             ModCard modCard = (ModCard)modItem;
             if (modCard.series == CardSeriesID.Element)
             {
                 elementCardNumber.Add(i);
             }
         }
         if (elementCardNumber.Count > 0)
         {
             int chooseCard = Main.rand.Next(0, elementCardNumber.Count);
             ePlayer.CardSetToGrave(ePlayer.CardHandType[number], number, true, 1, true);
             ePlayer.CardHandType[number] = ePlayer.CardReadyType[elementCardNumber[chooseCard]];
             ePlayer.CardHandCost[number] = ePlayer.CardReadyCost[elementCardNumber[chooseCard]];
             ePlayer.CardReadyType[elementCardNumber[chooseCard]] = 0;
             ePlayer.CardReadyCost[elementCardNumber[chooseCard]] = 0;
             return(false);
         }
         return(true);
     }
     return(true);
 }
Ejemplo n.º 2
0
        public void ActiveAnimation()
        {
            StartAnimation = true;
            AnimationTimer = 0;

            Player           clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer   clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);
            NPC              npc             = Main.npc[clientModPlayer.CardGameNPCIndex];
            CardFightableNPC fightNPC        = (CardFightableNPC)npc.modNPC;
            Item             item            = new Item();
            // 命名空间的第一个字符串即为Mod内部名(当然乱命名也没法了)
            Mod currentCardMod = ModLoader.GetMod(fightNPC.currentCard.GetType().FullName.Split('.')[0]);

            // 通过类名寻找相应物品
            item.SetDefaults(currentCardMod.GetItem(fightNPC.currentCard.GetType().Name).item.type);
            inventoryItem = item;
            //foreach (var card in Entrogic.ModItems)
            //{
            //    // 通过命名空间寻找相应卡牌
            //    if (card.GetType().FullName == fightNPC.currentCard.GetType().FullName)
            //    {
            //        Item item = new Item();
            //        item.SetDefaults(card.item.type);
            //        inventoryItem = item;
            //    }
            //}
        }
Ejemplo n.º 3
0
        public override void HoldItem(Player player)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            for (int i = 0; i < ePlayer.CardType.Length; i++)
            {
                try
                {
                    if (ePlayer.CardType[i] != 0)
                    {
                        Item Item = new Item();
                        Item.SetDefaults(ePlayer.CardType[i]);
                        if (((ModCard)Item.modItem).series != CardSeriesID.Undead)
                        {
                            return;
                        }
                    }
                }
                catch
                {
                    return;
                }
            }
            ePlayer.CardHandMax++;
            ePlayer.ManaMax++;
        }
Ejemplo n.º 4
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            Player         clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);
            bool           Animationing    = StartAnimation && AnimationTimer >= 1 ? true : false;

            uiWidth  = 38;
            uiHeight = 50;
            NPC npc = Main.npc[clientModPlayer.CardGameNPCIndex];
            CardFightableNPC fightNPC = (CardFightableNPC)npc.modNPC;

            if (Animationing)
            {
                Texture2D t     = Main.itemTexture[inventoryItem.type];
                var       frame = Main.itemAnimations[inventoryItem.type] != null ? Main.itemAnimations[inventoryItem.type].GetFrame(Main.itemTexture[inventoryItem.type]) : Main.itemTexture[inventoryItem.type].Frame(1, 1, 0, 0);

                Main.spriteBatch.SafeEnd();
                Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.LinearClamp, DepthStencilState.Default, RasterizerState.CullNone, null, Main.UIScaleMatrix);
                // Retrieve reference to shader
                var whiteBlur = GameShaders.Misc["Entrogic:WhiteBlur"];
                // Reset back to default value.
                whiteBlur.UseOpacity(0f);
                if (AnimationTimer > 15f)
                {
                    whiteBlur.UseOpacity(MathHelper.Min((AnimationTimer - 15f) / 14f, 1f));
                }
                whiteBlur.Apply(null);

                spriteBatch.Draw(t, AnimationPosition + fatherPosition, (Rectangle?)frame, Color.White);

                // As mentioned above, be sure not to forget this step.
                Main.spriteBatch.SafeEnd();
                Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, null, null, null, Main.UIScaleMatrix);
            }
        }
Ejemplo n.º 5
0
        public void Update()
        {
            if (Main.dedServ)
            {
                return;
            }
            Player         clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);

            if (clientModPlayer.CardGameNPCIndex == -1)
            {
                return;
            }
            NPC npc = Main.npc[clientModPlayer.CardGameNPCIndex];

            if (StartAnimation)
            {
                Vector2 TargetPosition = new Vector2(274f, 90f);
                AnimationTimer++;
                if (AnimationTimer <= 15f)
                {
                    AnimationPosition = (TargetPosition - uiPosition) / 15f * AnimationTimer + uiPosition;
                }
                else if (AnimationTimer >= 30f)
                {
                    // 出击
                    // 我不想再改代码了,所以这里直接消失掉吧
                    StartAnimation = false;
                }
            }
        }
Ejemplo n.º 6
0
        public override void ClickEvent()
        {
            if (Main.dedServ || StartAnimation)
            {
                return;
            }
            Player         clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);

            if (clientModPlayer.CardGameNPCIndex == -1)
            {
                return;
            }
            NPC npc = Main.npc[clientModPlayer.CardGameNPCIndex];
            CardFightableNPC fightNPC = (CardFightableNPC)npc.modNPC;

            if (!PlayerTurn || clientModPlayer.CardGameLeftCard <= 0)
            {
                return;
            }
            clientModPlayer.CardGameLeftCard--;
            //Clicked = true;
            StartAnimation = true;
            AnimationTimer = 0;
        }
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            ePlayer.CanSwimTile = true;
            player.buffImmune[BuffID.Suffocation] = true;
        }
Ejemplo n.º 8
0
        public override void UpdateUI(GameTime gameTime)
        {
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            if (BookUIE != null && BookUI.IsActive)
            {
                BookUIE.Update(gameTime);
            }
            //if (BookPageUIE != null && Main.LocalPlayer.GetModPlayer<EntrogicPlayer>().ActiveBook)
            //    BookPageUIE.Update(gameTime);
            if (CardUIE != null && CardUI.IsActive)
            {
                CardUIE.Update(gameTime);
            }
            if (CardInventoryUIE != null && CardInventoryUI.IsActive)
            {
                CardInventoryUIE.Update(gameTime);
            }
            if (CardGameUIE != null && ePlayer.CardGameActive)
            {
                CardGameUIE.Update(gameTime);
            }
            //if (Main.netMode != NetmodeID.MultiplayerClient)
            //{
            int texNum = mimicryFrameCounter / 5;

            Main.itemTexture[ModContent.ItemType <拟态魔能>()] = ModTexturesTable[$"拟态魔能_{texNum.ToString()}"];
            //}
        }
Ejemplo n.º 9
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            //base.DrawSelf(spriteBatch); // HelpGrid是隐形的
            Player         player        = Main.LocalPlayer;
            EntrogicPlayer ePlayer       = player.GetModPlayer <EntrogicPlayer>();
            int            type          = ePlayer.CardHandType[number];
            Item           ContainedItem = new Item();

            ContainedItem.SetDefaults(type);
            if (ContainedItem.type != ItemID.None)
            {
                Texture2D tex   = Main.itemTexture[type];
                int       alpha = 80;
                if (IsMouseHovering)
                {
                    alpha = 255;
                }
                var frame = Main.itemAnimations[ContainedItem.type] != null ? Main.itemAnimations[ContainedItem.type].GetFrame(Main.itemTexture[ContainedItem.type]) : Main.itemTexture[ContainedItem.type].Frame(1, 1, 0, 0);
                spriteBatch.Draw(tex, position + Size * 0.5f - tex.Size() * 0.5f, new Rectangle?(frame), new Color(alpha, alpha, alpha, alpha), 0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f);
            }
            if (IsMouseHovering && type != 0 && ContainedItem != null)
            {
                Main.hoverItemName = ContainedItem.Name + "\r\n费用:" + ePlayer.CardHandCost[number];
                if (!hasTicked)
                {
                    Main.PlaySound(SoundID.MenuTick);
                    hasTicked = true;
                }
            }
            else
            {
                hasTicked = false;
            }
        }
Ejemplo n.º 10
0
        public void StartGame()
        {
            Player           clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer   clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);
            NPC              npc             = Main.npc[clientModPlayer.CardGameNPCIndex];
            CardFightableNPC fightNPC        = (CardFightableNPC)npc.modNPC;

            clientModPlayer.CardGamePlayerHealth = clientModPlayer.CardGamePlayerMaxHealth;
            clientModPlayer.CardGameActive       = true;
            clientModPlayer.CardGaming           = true;
            fightNPC.CardGameHealth = fightNPC.CardGameHealthMax;
            fightNPC.CardGaming     = true;
            Main.npcChatText        = "";

            PlayerTurnOver = false;
            clientModPlayer.CardGamePlayerTurn = true;
            IsUseBiggerTexture = true;
            clientModPlayer._bullets.Clear();
            clientModPlayer._particles.Clear();
            clientModPlayer.CardGameLeftCard = 1;
            //List<int> buffer = new List<int>();
            //foreach (int card in clientModPlayer.CardType)
            //    buffer.Add(card);
            //for (int i = 0; i < clientModPlayer.CardGameType.Length; i++)
            //{
            //    int chosed = Main.rand.Next(0, buffer.Count);
            //    clientModPlayer.CardGameType[i] = buffer[chosed];
            //    buffer.RemoveAt(chosed);
            //}

            Main.PlaySound(Entrogic.Instance.GetLegacySoundSlot(SoundType.Custom, "Sounds/Custom/CGChangeTurn"));
            TimerCountdown = 0;
            AnimationTimer = 0;
            TurnText       = Language.GetTextValue("Mods.Entrogic.Common.PlayerTurn");
        }
Ejemplo n.º 11
0
        private void Clicked(UIMouseEvent evt, UIElement listeningElement)
        {
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            Vector2   bookPos   = new Vector2((Main.screenWidth - bookSize.X) / 2, (Main.screenHeight - bookSize.Y) / 2);
            Rectangle rectLeft  = new Rectangle((int)bookPos.X, (int)(bookPos.Y + bookSize.Y - 117), 72, 117);
            Rectangle rectRight = new Rectangle((int)(bookPos.X + bookSize.X - 72), (int)(bookPos.Y + bookSize.Y - 117), 72, 117);

            if (mouseRect.Intersects(rectLeft) && ePlayer.PageNum > 1)
            {
                Main.PlaySound(SoundID.MenuOpen);
                ePlayer.PageNum -= 1;
                MessageHelper.SendBookInfo(Main.LocalPlayer.whoAmI, ePlayer.PageNum, ePlayer.IsBookActive);
            }
            int MaxPage = 1;

            if (ePlayer.GetHoldItem() != null)
            {
                if (ePlayer.GetHoldItem().GetGlobalItem <EntrogicItem>().book)
                {
                    MaxPage = ((ModBook)ePlayer.GetHoldItem().modItem).MaxPage;
                }
            }
            if (mouseRect.Intersects(rectRight) && ePlayer.PageNum < MaxPage)
            {
                Main.PlaySound(SoundID.MenuOpen);
                ePlayer.PageNum += 1;
                MessageHelper.SendBookInfo(Main.LocalPlayer.whoAmI, ePlayer.PageNum, ePlayer.IsBookActive);
            }
        }
Ejemplo n.º 12
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            if (!BookUI.IsActive)
            {
                return;
            }
            if (ePlayer.GetHoldItem() != null)
            {
                if (ePlayer.GetHoldItem().GetGlobalItem <EntrogicItem>().book)
                {
                    if (((ModBook)ePlayer.GetHoldItem().modItem).PageTexture[num] != null)
                    {
                        tex = ((ModBook)ePlayer.GetHoldItem().modItem).PageTexture[num];
                    }
                }
            }
            float alpha = 1.0f;

            //base.Draw(spriteBatch); // 不使用原绘制方案
            ChatManager.DrawColorCodedString(spriteBatch, Main.fontMouseText, ePlayer.PageNum.ToString(), new Vector2(Left.Pixels, Top.Pixels), Color.White, 0f, Vector2.Zero, Vector2.One);
            spriteBatch.Draw(tex, new Vector2(Left.Pixels, Top.Pixels), null, new Color(alpha, alpha, alpha, alpha), 0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 0f);
        }
Ejemplo n.º 13
0
        private void DrawBulletsParticles(SpriteBatch spriteBatch, bool allowPanelEntity = false)
        {
            EntrogicPlayer clientModPlayer = EntrogicPlayer.ModPlayer(Main.LocalPlayer);

            // Draw子弹
            foreach (var bullet in clientModPlayer._bullets.ToArray())
            {
                if (bullet.IsRemoved)
                {
                    continue;
                }
                if ((bullet.Position.X < -108f || bullet.Position.Y < -62f ||
                     bullet.Position.X + bullet.Size.X > 432f || bullet.Position.Y + bullet.Size.Y > 316f) &&
                    (!allowPanelEntity || !bullet.IsPanelBullet))
                {
                    continue;
                }
                bullet.Draw(spriteBatch);
            }
            // Draw粒子
            foreach (var particle in clientModPlayer._particles.ToArray())
            {
                if (particle.IsRemoved)
                {
                    continue;
                }
                if ((particle.Position.X < 0f || particle.Position.Y < 0f ||
                     particle.Position.X + particle.Size.X > PanelSize.X || particle.Position.Y + particle.Size.Y > PanelSize.Y) &&
                    (!allowPanelEntity || !particle.IsPanelParticle))
                {
                    continue;
                }
                particle.Draw(spriteBatch);
            }
        }
Ejemplo n.º 14
0
        public override void MinionEffects(Player player, Vector2 position, int damage, float knockBack, int number)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
            {
                bool hasCard = false;
                if (ePlayer.CardReadyType[i] == 0)
                {
                    for (int j = 0; j < ePlayer.CardGraveType.Length; j++)
                    {
                        if (ePlayer.CardGraveType[j] != 0)
                        {
                            ePlayer.CardReadyType[i] = ePlayer.CardGraveType[j];
                            Item item = new Item();
                            item.SetDefaults(ePlayer.CardGraveType[j]);
                            ModCard card = (ModCard)item.modItem;
                            ePlayer.CardReadyCost[i] = card.costMana;
                            ePlayer.CardGraveType[j] = 0;
                            hasCard = true;
                            break;
                        }
                    }
                    if (!hasCard)
                    {
                        break;
                    }
                }
                ePlayer.CardReadyCost[i]++;
            }
        }
Ejemplo n.º 15
0
        public override void SpecialEffects(Player player, Vector2 position, int damage, float knockBack, int number, int packType, bool special, bool drawCard)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            // 角度变化
            for (int a = 0; a < 4; a++)
            {
                // 角度变化
                for (float rad = -MathHelper.TwoPi / 16f; rad < MathHelper.TwoPi; rad += MathHelper.TwoPi / 8f)
                {
                    Vector2 finalVec = (0f + rad).ToRotationVector2() * 20f;
                    // 射出去!
                    int p = Projectile.NewProjectile(player.position, finalVec, item.shoot, damage, knockBack, player.whoAmI);
                    Main.projectile[p].timeLeft += a * 15;
                }
            }
            if (ePlayer.LibNum <= 0)
            {
                return;
            }
            while (true)
            {
                for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
                {
                    if (Main.rand.NextBool(5) && ePlayer.CardReadyType[i] != 0)
                    {
                        ePlayer.CardReadyCost[i]++;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 16
0
        public override int DrawCardAmount(Player player, int number, ref bool[] series, ref bool[] style)
        {
            EntrogicPlayer ePlayer      = player.GetModPlayer <EntrogicPlayer>();
            int            cardsWeOuted = 0;

            for (int a = 0; a < 3; a++)
            {
                List <int> canOutCards = new List <int>();
                for (int i = 0; i < ePlayer.CardHandType.Length; i++)
                {
                    if (ePlayer.CardHandType[i] == 0 || i == number)
                    {
                        continue;
                    }
                    canOutCards.Add(i);
                }
                if (canOutCards.Count > 0)
                {
                    int chooseCard = Main.rand.Next(0, canOutCards.Count);
                    ePlayer.CardSetToGrave(ePlayer.CardHandType[canOutCards[chooseCard]], canOutCards[chooseCard], true);
                    ePlayer.CardHandType[canOutCards[chooseCard]] = 0;
                    ePlayer.CardHandCost[canOutCards[chooseCard]] = 0;
                    cardsWeOuted++;
                }
            }
            for (int i = 0; i < series.Length; i++)
            {
                series[i] = true;
            }
            for (int i = 0; i < style.Length; i++)
            {
                style[i] = true;
            }
            return(cardsWeOuted);
        }
Ejemplo n.º 17
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            ePlayer.CardHandMax             += 2;
            ePlayer.CardPassStatDelay       -= 4 * 60;
            ePlayer.IsDelayCycle_StaticWatch = true;
        }
Ejemplo n.º 18
0
        public override void HoldItem(Player player)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();
            CardBuffPlayer cPlayer = player.GetModPlayer <CardBuffPlayer>();

            ePlayer.ManaMax--;
            ePlayer.CardHandMax--;
        }
Ejemplo n.º 19
0
        private void RightClicked(UIMouseEvent evt, UIElement listeningElement)
        {
            EntrogicPlayer plr = Main.LocalPlayer.GetModPlayer <EntrogicPlayer>();

            IsActive         = false;
            plr.IsBookActive = IsActive;
            MessageHelper.SendBookInfo(Main.LocalPlayer.whoAmI, plr.PageNum, plr.IsBookActive);
        }
Ejemplo n.º 20
0
        // As a modder, you could also opt to make these overrides also sealed. Up to the modder
        public override void ModifyWeaponDamage(Player player, ref float add, ref float mult, ref float flat)
        {
            add  += EntrogicPlayer.ModPlayer(player).arcaneDamageAdd;
            mult *= EntrogicPlayer.ModPlayer(player).arcaneDamageMult;

            // 收取25%的魔法伤害加成
            add  += player.magicDamage * 0.25f;
            mult *= MathHelper.Max(player.magicDamageMult * 0.25f, 1f);
        }
Ejemplo n.º 21
0
        public override void HoldItem(Item item, Player player)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            ePlayer.PickPowerHand = item.pick;
            if (glove && !Main.dedServ)
            {
                CardUI.IsActive = true;
            }
        }
Ejemplo n.º 22
0
        public override void MinionEffects(Player player, Vector2 position, int damage, float knockBack, int number)
        {
            int healAmount = (int)MathHelper.Min(30f, player.statLifeMax2 - player.statLife);

            player.statLife += healAmount;
            player.HealEffect(healAmount);
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            ePlayer.MoreCard_EnergyRecovery++;
        }
Ejemplo n.º 23
0
        public override void SpecialEffects(Player player, Vector2 position, int damage, float knockBack, int number, int packType, bool special, bool drawCard)
        {
            if (!special)
            {
                return;
            }
            EntrogicPlayer ePlayer            = player.GetModPlayer <EntrogicPlayer>();
            int            gotCard            = 0;
            List <int>     organismCardNumber = new List <int>();

            for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
            {
                if (ePlayer.CardReadyType[i] == 0 || (i == number && packType == 2))
                {
                    continue;
                }
                Item it = new Item();
                it.SetDefaults(ePlayer.CardReadyType[i]);
                ModItem modItem = it.modItem;
                ModCard modCard = (ModCard)modItem;
                if (modCard.series == CardSeriesID.Organism)
                {
                    organismCardNumber.Add(i);
                }
            }
            if (organismCardNumber.Count > 0)
            {
                if (packType != 1)
                {
                    for (int i = 0; i < ePlayer.CardHandType.Length; i++)
                    {
                        if (ePlayer.CardHandType[i] == 0)
                        {
                            int chooseCard = Main.rand.Next(0, organismCardNumber.Count);
                            ePlayer.CardHandType[i] = ePlayer.CardReadyType[organismCardNumber[chooseCard]];
                            ePlayer.CardHandCost[i] = ePlayer.CardReadyCost[organismCardNumber[chooseCard]];
                            ePlayer.CardReadyType[organismCardNumber[chooseCard]] = 0;
                            ePlayer.CardReadyCost[organismCardNumber[chooseCard]] = 0;
                            gotCard++;
                            break;
                        }
                    }
                }
                else
                {
                    int chooseCard = Main.rand.Next(0, organismCardNumber.Count);
                    ePlayer.CardHandType[number] = ePlayer.CardReadyType[organismCardNumber[chooseCard]];
                    ePlayer.CardHandCost[number] = ePlayer.CardReadyCost[organismCardNumber[chooseCard]];
                    ePlayer.CardReadyType[organismCardNumber[chooseCard]] = 0;
                    ePlayer.CardReadyCost[organismCardNumber[chooseCard]] = 0;
                    gotCard++;
                }
            }
            ePlayer.NewRecentCardMessage(Language.GetTextValue("Mods.Entrogic.CardDrawCard", item.Name, gotCard, Language.GetTextValue("Mods.Entrogic.SeriesOrganism"), ""), true);
        }
Ejemplo n.º 24
0
        public override void ClickEvent()
        {
            Player         clientPlayer    = Main.LocalPlayer;
            EntrogicPlayer clientModPlayer = EntrogicPlayer.ModPlayer(clientPlayer);

            if (clientModPlayer.CardGamePlayerTurn)
            {
                Entrogic.Instance.CardGameUI.PlayerTurnOver = true;
                Main.PlaySound(SoundID.MenuTick);
            }
        }
Ejemplo n.º 25
0
        public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "\n原版及本Mod的凝胶类召唤物只占0.75个召唤位\n所有生物系列卡牌费用为1\n无摔落伤害";
            // 无摔落伤害
            player.noFallDmg = true;
            // 所有生物系列卡牌费用为1
            EntrogicPlayer ePlayer = EntrogicPlayer.ModPlayer(player);

            for (int a = 0; a < ePlayer.CardHandCost.Length; a++)
            {
                if (ePlayer.CardHandType[a] != 0)
                {
                    Item item = new Item();
                    item.SetDefaults(ePlayer.CardHandType[a]);
                    ModCard card = (ModCard)item.modItem;
                    if (card.series == CardSeriesID.Organism)
                    {
                        ePlayer.CardHandCost[a] = Math.Min(1, ePlayer.CardHandCost[a]);
                    }
                }
            }
            for (int a = 0; a < ePlayer.CardReadyCost.Length; a++)
            {
                if (ePlayer.CardReadyType[a] != 0)
                {
                    Item item = new Item();
                    item.SetDefaults(ePlayer.CardReadyType[a]);
                    ModCard card = (ModCard)item.modItem;
                    if (card.series == CardSeriesID.Organism)
                    {
                        ePlayer.CardReadyCost[a] = Math.Min(1, ePlayer.CardReadyCost[a]);
                    }
                }
            }
            // 凝胶类召唤物只占0.75个召唤位
            float[] i = new float[1001];
            foreach (Projectile proj in Main.projectile)
            {
                if (proj.minion && proj.active && proj.owner == player.whoAmI && proj.minionSlots > 0.75f && (proj.type == ProjectileID.BabySlime /* || proj.type == ProjectileType<Projectiles.衰落魔像.Stoneslime>()*/))
                {
                    i[proj.whoAmI] = proj.minionSlots;
                }
            }
            float MoreMinionSlots = 0;

            foreach (Projectile proj in Main.projectile)
            {
                if (i[proj.whoAmI] != 0)
                {
                    MoreMinionSlots += i[proj.whoAmI] - 0.75f;
                }
            }
            player.maxMinions += (int)MoreMinionSlots;
        }
Ejemplo n.º 26
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            if (ePlayer.ManaLeft <= number)
            {
                return;
            }
            base.Draw(spriteBatch);
        }
Ejemplo n.º 27
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime); // don't remove.
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            if (ContainsPoint(Main.MouseScreen) && ePlayer.CardHandType[number] != 0)
            {
                Main.LocalPlayer.mouseInterface = true;
            }
        }
Ejemplo n.º 28
0
 public void UpdateSlots(int index = -1)
 {
     if (index != -1)
     {
         Grid[index].inventoryItem.SetDefaults(EntrogicPlayer.ModPlayer(Main.LocalPlayer).CardType[index]);
     }
     for (int i = 0; i < Grid.Count; i++)
     {
         Grid[i].inventoryItem.SetDefaults(EntrogicPlayer.ModPlayer(Main.LocalPlayer).CardType[i]);
     }
 }
Ejemplo n.º 29
0
        public override void Update(GameTime gameTime)
        {
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            base.Update(gameTime); // don't remove.
            if (ContainsPoint(Main.MouseScreen) && BookUI.IsActive)
            {
                Main.LocalPlayer.mouseInterface = true;
            }
        }
Ejemplo n.º 30
0
        public override void Kill(int timeLeft)
        {
            Player         player    = Main.player[Main.myPlayer];
            EntrogicPlayer modPlayer = player.GetModPlayer <EntrogicPlayer>();

            for (int i = 0; i < 30; i++)
            {
                Dust d = Dust.NewDustDirect(projectile.position, projectile.width, projectile.height,
                                            MyDustId.TransparentPurple, 0, 0, 100, Color.Pink, 1f);
                d.noGravity = true;
            }
        }