コード例 #1
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]++;
            }
        }
コード例 #2
0
ファイル: CardUI.cs プロジェクト: Crapsky233/Entrogic
 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);
 }
コード例 #3
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);
        }
コード例 #4
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;
        }
コード例 #5
0
        public override bool HaveDrawCard(Player player, int number, int a, ref int type, ref int cost)
        {
            NPC   target      = null;
            float distanceMax = 128000f;

            foreach (NPC npc in Main.npc)
            {
                if (npc.active && !npc.friendly)
                {
                    // 计算与玩家的距离
                    float currentDistance = Vector2.Distance(npc.Center, Main.MouseWorld);
                    if (currentDistance < distanceMax)
                    {
                        distanceMax = currentDistance;
                        target      = npc;
                    }
                }
            }
            Item i = new Item();

            i.SetDefaults(type);
            ModCard        card    = (ModCard)i.modItem;
            EntrogicPlayer ePlayer = EntrogicPlayer.ModPlayer(player);
            float          power   = 1f;

            if (ePlayer.GetHoldItem() != null)
            {
                power = ePlayer.GetHoldItem().shootSpeed * 0.8f;
            }
            if (target != null)
            {
                Vector2 vec = (target.Center - player.Center).ToRotation().ToRotationVector2() * i.shootSpeed;
                card.AttackEffects(player, i.shoot, player.Center, target.Center, vec.X, vec.Y, player.GetWeaponDamage(i), player.GetWeaponKnockback(i, 0.5f), i.shootSpeed + power);
            }
            else
            {
                card.AttackEffects(player, i.shoot, player.Center, player.Center, Main.rand.NextFloat(-10f, 10f), Main.rand.NextFloat(-10f, 10f), player.GetWeaponDamage(i), player.GetWeaponKnockback(i, 0.5f), i.shootSpeed + power);
            }
            return(true);
        }
コード例 #6
0
ファイル: HandCardSlot.cs プロジェクト: Crapsky233/Entrogic
        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];
            CardFightableNPC fightNPC = (CardFightableNPC)npc.modNPC;

            if (StartAnimation)
            {
                Vector2 TargetPosition = new Vector2(274f, 252f);
                AnimationTimer++;
                if (AnimationTimer <= 15f)
                {
                    AnimationPosition = (TargetPosition - uiPosition) / 15f * AnimationTimer + uiPosition;
                }
                else if (AnimationTimer >= 25f)
                {
                    // 出击
                    if (inventoryItem.modItem is ModCard)
                    {
                        ModCard card         = (ModCard)inventoryItem.modItem;
                        Vector2 drawPosition = new Vector2(274f, 314f) + new Vector2(17f, 28f); // 元件在UI中的位置
                        drawPosition = CardGameUI.ToPlaygroundPos(drawPosition);
                        card.CardGameAttack(clientPlayer, npc, drawPosition, new Vector2(292f, 64f), PanelPos);

                        clientModPlayer.CardGameType[Index] = 0;
                    }
                    StartAnimation = false;
                }
            }
        }
コード例 #7
0
ファイル: FrmCard.cs プロジェクト: zanderzhg/His
        //****************************************************************************************************
        //显示数据
        private void showData()
        {
            DataTable dt = new ModCard().getSelect();

            if (dt == null)
            {
                btnUpdate.Enabled = false;
            }
            else
            {
                btnUpdate.Enabled = true;

                int intIndex = 0;
                if (grd.Rows.Count > 0)
                {
                    intIndex = grd.CurrentRow.Index;
                }

                grd.AutoGenerateColumns = false;
                grd.DataSource          = dt;
                grd.Rows[intIndex].Cells[1].Selected = true;
            }
        }
コード例 #8
0
        public override void OnGloveUseCard(Player player)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            for (int i = 0; i < ePlayer.CardHandType.Length; i++)
            {
                if (ePlayer.CardHandType[i] == 0)
                {
                    Item item = new Item();
                    item.SetDefaults(ItemType <ArcaneMissle>());
                    ModCard card = (ModCard)item.modItem;
                    ePlayer.CardHandType[i] = ItemType <ArcaneMissle>();
                    ePlayer.CardHandCost[i] = card.costMana;
                    if (Main.hardMode)
                    {
                        item.SetDefaults(ItemType <ArcaneMissle_Electromagnetism>());
                        card = (ModCard)item.modItem;
                        ePlayer.CardHandType[i] = ItemType <ArcaneMissle_Electromagnetism>();
                        ePlayer.CardHandCost[i] = card.costMana;
                    }
                    break;
                }
            }
        }
コード例 #9
0
ファイル: CardUI.cs プロジェクト: Crapsky233/Entrogic
        internal void UseThisCard()
        {
            bool Active = false;

            if (Main.LocalPlayer.inventory[Main.LocalPlayer.selectedItem] != null && Main.LocalPlayer.inventory[Main.LocalPlayer.selectedItem].type != ItemID.None)
            {
                if (Main.LocalPlayer.inventory[Main.LocalPlayer.selectedItem].GetGlobalItem <EntrogicItem>().glove)
                {
                    Active = true;
                }
            }
            if (Main.mouseItem != null && Main.mouseItem.type != ItemID.None)
            {
                if (Main.mouseItem.GetGlobalItem <EntrogicItem>().glove)
                {
                    Active = true;
                }
            }
            if (!Active)
            {
                return;
            }
            Player         player  = Main.LocalPlayer;
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();
            CardBuffPlayer cPlayer = player.GetModPlayer <CardBuffPlayer>();

            if (ePlayer.CardHandType[number] != 0)
            {
                Item item = new Item();
                item.SetDefaults(ePlayer.CardHandType[number]);
                ModItem mItem = item.modItem;
                ModCard card  = (ModCard)mItem;
                if (card.special || !card.CanUseCard() || !TheCardEffectThatICantDoInACSharpFile(player, ePlayer, card))
                {
                    return;
                }
                if (ePlayer.ManaLeft < ePlayer.CardHandCost[number])
                {
                    return;
                }
                if (ePlayer.IsTwoCards_CryptTreasure)
                {
                    if (ePlayer.TwoCardsCount_CryptTreasure <= 0)
                    {
                        return;
                    }
                    ePlayer.TwoCardsCount_CryptTreasure--;
                }
                if (Main.mouseItem != null && Main.mouseItem.type != ItemID.None) // 手套使用物品
                {
                    if (Main.mouseItem.GetGlobalItem <EntrogicItem>().glove)
                    {
                        ((ModCard)Main.mouseItem.modItem).OnGloveUseCard(player);
                    }
                } // 手套使用物品
                if (player.inventory[player.selectedItem] != null && player.inventory[player.selectedItem].type != ItemID.None) // 手套使用物品
                {
                    if (player.inventory[player.selectedItem].GetGlobalItem <EntrogicItem>().glove)
                    {
                        ((ModCard)player.inventory[player.selectedItem].modItem).OnGloveUseCard(player);
                    }
                } // 手套使用物品
                if (card.minion)
                {
                    card.MinionEffects(player, player.Center, item.damage, item.knockBack, number);
                    ePlayer.ManaLeft -= ePlayer.CardHandCost[number];
                    goto End;
                }
                ePlayer.ManaLeft -= ePlayer.CardHandCost[number];
                cPlayer.attackCardRemainingTimes    = card.attackCardRemainingTimes;
                cPlayer.attackCardRemainingTimesMax = card.attackCardRemainingTimes;
                cPlayer.card  = item;
                cPlayer.mCard = card;
End:
                ePlayer.CardUseCount++;
                if (item.buffType != -1)
                {
                    player.AddBuff(item.buffType, item.buffTime);
                }
                int manaHealAmount = (int)MathHelper.Min(card.healMana, EntrogicPlayer.ManaTrueMax - ePlayer.ManaLeft);
                ePlayer.ManaLeft += manaHealAmount;
                #region Draw Cards
                bool[] series             = new bool[4];
                bool[] style              = new bool[3]; // 0-攻击, 1-仆从, 2-特殊
                string eventMessageSeries = "";
                string eventMessageStyle  = "";
                int    amount             = card.DrawCardAmount(player, number, ref series, ref style);
                #region Find String
                bool firstSeries = false;
                for (int i = 0; i < series.Length; i++)
                {
                    if (!series[i])
                    {
                        goto FindSeries;
                    }
                }
                eventMessageSeries += Language.GetTextValue("Mods.Entrogic.All");
                goto FindStyle;
FindSeries:
                if (series[0])
                {
                    eventMessageSeries += Language.GetTextValue("Mods.Entrogic.SeriesNone");
                    firstSeries         = true;
                }
                if (series[1])
                {
                    if (firstSeries)
                    {
                        eventMessageSeries += "、";
                    }
                    eventMessageSeries += Language.GetTextValue("Mods.Entrogic.SeriesElement");
                    firstSeries         = true;
                }
                if (series[2])
                {
                    if (firstSeries)
                    {
                        eventMessageSeries += "、";
                    }
                    eventMessageSeries += Language.GetTextValue("Mods.Entrogic.SeriesOrganism");
                    firstSeries         = true;
                }
                if (series[3])
                {
                    if (firstSeries)
                    {
                        eventMessageSeries += "、";
                    }
                    eventMessageSeries += Language.GetTextValue("Mods.Entrogic.SeriesUndead");
                }
FindStyle:
                for (int i = 0; i < style.Length; i++)
                {
                    if (!style[i])
                    {
                        goto StillFindingStyle;
                    }
                }
                goto EndFinding;
StillFindingStyle:
                if (style[0])
                {
                    eventMessageStyle += Language.GetTextValue("Mods.Entrogic.CardAttack");
                }
                if (style[1] || style[2])
                {
                    eventMessageStyle += Language.GetTextValue("Mods.Entrogic.CardMinion");
                }
EndFinding:
                #endregion
                if (amount != 0 && ePlayer.LibNum > 0)
                {
                    int cardGot = 0;
                    for (int a = 0; a < amount; a++)
                    {
                        List <int> canChooseCards = new List <int>();
                        for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
                        {
                            if (ePlayer.CardReadyType[i] == 0)
                            {
                                continue;
                            }
                            Item iI = new Item();
                            iI.SetDefaults(ePlayer.CardReadyType[i]);
                            ModCard cI = (ModCard)iI.modItem;
                            bool    meetsRequirements = false;
                            if (!cI.minion && !cI.special && style[0] || cI.minion && !cI.special && style[1] || !cI.minion && cI.special && style[2])
                            {
                                for (int j = 0; j < series.Length; j++)
                                {
                                    if (cI.series == j && series[j])
                                    {
                                        meetsRequirements = true;
                                        break;
                                    }
                                }
                            }
                            if (meetsRequirements)
                            {
                                canChooseCards.Add(i);
                            }
                        }
                        if (canChooseCards.Count > 0)
                        {
                            if (a != 0)
                            {
                                for (int i = 0; i < ePlayer.CardHandType.Length; i++)
                                {
                                    if (ePlayer.CardHandType[i] == 0)
                                    {
                                        int chooseCard = Main.rand.Next(0, canChooseCards.Count);
                                        int type = ePlayer.CardReadyType[canChooseCards[chooseCard]], cost = ePlayer.CardReadyCost[canChooseCards[chooseCard]];
                                        if (card.HaveDrawCard(player, number, a, ref type, ref cost))
                                        {
                                            cardGot++;
                                            ePlayer.CardHandType[i] = type;
                                            ePlayer.CardHandCost[i] = cost;
                                            ePlayer.CardReadyType[canChooseCards[chooseCard]] = 0;
                                            ePlayer.CardReadyCost[canChooseCards[chooseCard]] = 0;
                                        }
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                int chooseCard = Main.rand.Next(0, canChooseCards.Count);
                                int type = ePlayer.CardReadyType[canChooseCards[chooseCard]], cost = ePlayer.CardReadyCost[canChooseCards[chooseCard]];
                                if (!card.HaveDrawCard(player, number, a, ref type, ref cost))
                                {
                                    continue;
                                }
                                ePlayer.CardSetToGrave(ePlayer.CardHandType[number], number, false, 1, true);
                                cardGot++;
                                ePlayer.CardHandType[number] = type;
                                ePlayer.CardHandCost[number] = cost;
                                ePlayer.CardReadyType[canChooseCards[chooseCard]] = 0;
                                ePlayer.CardReadyCost[canChooseCards[chooseCard]] = 0;
                            }
                        }
                    }
                    string text = Language.GetTextValue("Mods.Entrogic.CardDrawCard", item.Name, cardGot, eventMessageSeries, eventMessageStyle);
                    if (!card.HaveDrawCardMessage(player, ref text, cardGot, eventMessageSeries, eventMessageStyle, number))
                    {
                        return;
                    }
                    ePlayer.NewRecentCardMessage(text, true);
                    return;
                }
                #endregion
                if (!card.NoUseNormalDelete)
                {
                    int type = ePlayer.CardHandType[number];
                    ePlayer.CardHandType[number] = 0;
                    ePlayer.CardSetToGrave(type, number);
                    ePlayer.CardHandCost[number] = 0;
                }
            }
        }
コード例 #10
0
        public override void Click(UIMouseEvent evt)
        {
            EntrogicPlayer player    = Main.LocalPlayer.GetModPlayer <EntrogicPlayer>();
            Item           mouseItem = Main.mouseItem;

            if (mouseItem.type != ItemID.None) // 特殊判断:如果手上物品不是卡牌就return
            {
                if (!mouseItem.GetGlobalItem <EntrogicItem>().card)
                {
                    return;
                }
            } // 特殊判断:如果手上物品不是卡牌就return
            if (mouseItem.type == ItemID.None && player.CardType[number] == 0)
            {
                return;
            }
            if (mouseItem.type != ItemID.None)
            {
                ModCard card = (ModCard)mouseItem.modItem;
                if (card.rare == CardRareID.GrandUnified)
                {
                    for (int i = 0; i < player.CardType.Length; i++)
                    {
                        if (player.CardType[i] != 0)
                        {
                            Item item = new Item();
                            item.SetDefaults(player.CardType[i]);
                            ModCard mCard = (ModCard)item.modItem;
                            if (mCard.rare == CardRareID.GrandUnified)
                            {
                                return;
                            }
                        }
                    }
                }
                else
                {
                    List <int> maxStacks = new List <int> {
                        6, 3, 2, 1
                    };
                    int theAmountOfCardsLikeMe = 0;
                    for (int i = 0; i < player.CardType.Length; i++)
                    {
                        if (player.CardType[i] != 0)
                        {
                            Item item = new Item();
                            item.SetDefaults(player.CardType[i]);
                            ModCard mCard = (ModCard)item.modItem;
                            if (player.CardType[i] == mouseItem.type)
                            {
                                theAmountOfCardsLikeMe++;
                                if (theAmountOfCardsLikeMe >= maxStacks[mCard.rare])
                                {
                                    return;
                                }
                            }
                        }
                    }
                }
            }
            Main.PlaySound(SoundID.Grab, -1, -1, 1, 1f, 0.0f);
            if (player.CardType[number] != 0 && mouseItem.type == ItemID.None)
            {
                Item item = new Item();
                item.SetDefaults(player.CardType[number]);
                Main.mouseItem          = item;
                player.CardType[number] = 0;
                return;
            }
            if (!mouseItem.GetGlobalItem <EntrogicItem>().card || mouseItem.GetGlobalItem <EntrogicItem>().glove)
            {
                return;
            }
            else if (player.CardType[number] == mouseItem.type && mouseItem.stack < mouseItem.maxStack)
            {
                player.CardType[number] = 0;
                Main.mouseItem.stack++;
                return;
            }
            if (player.CardType[number] != 0)
            {
                if (mouseItem.stack <= 1)
                {
                    Item item = new Item();
                    item.SetDefaults(player.CardType[number]);
                    player.CardType[number] = mouseItem.type;
                    Main.mouseItem          = item;
                }
            }
            else
            {
                Main.mouseItem.stack--;
                player.CardType[number] = mouseItem.type;
            }
        }
コード例 #11
0
        //****************************************************************************************************
        //加载
        private void FrmCardEdit_Load(object sender, EventArgs e)
        {
            if (intId == 0)
            {
                ParseCombobox.setUserLevel(cmbUserLevelId);
                ParseCombobox.setRegisterType(cmbRegisterTypeId);
                ParseCombobox.setSex(cmbSex);
                ParseCombobox.setCertificateType(cmbCertificateTypeId);
                ParseCombobox.setNation(cmbNation);
                ParseCombobox.setUserType(cmbUserTypeId);
                ParseCombobox.setJobType(cmbJobTypeId);
                ParseCombobox.setBlood(cmbBlood);
                ParseCombobox.setMarital(cmbMarital);
                ParseCombobox.setRelation(cmbLinkmanRelationId);
                ParseCombobox.setUserSource(cmbUserSourceId);
                ParseCombobox.setWorker(cmbHospitalWorkerId);
                ParseCombobox.setWorker(cmbReserverWorkerId);
                ParseCombobox.setDepartment(cmbReserverDepartmentId);
            }
            else
            {
                DataRow dr = new ModCard().getFind(intId);
                if (dr == null)
                {
                    Function.showMessage("记录为空");
                }
                else
                {
                    txtCardCode.Text        = dr["cardCode"].ToString();
                    txtUserCode.Text        = dr["userCode"].ToString();
                    txtRealname.Text        = dr["realname"].ToString();
                    txtCertificateCode.Text = dr["certificateCode"].ToString();
                    dtpBirthday.Value       = Function.getDate(dr["birthday"]);
                    nudAge.Value            = Convert.ToInt32(dr["age"].ToString());
                    txtTel.Text             = dr["tel"].ToString();
                    txtPost.Text            = dr["post"].ToString();
                    txtLinkman.Text         = dr["linkman"].ToString();
                    txtLinkmanTel.Text      = dr["linkmanTel"].ToString();
                    //Province
                    //City
                    //County
                    txtAddress.Text = dr["address"].ToString();
                    txtHospitalWorkerContent.Text = dr["hospitalWorkerContent"].ToString();
                    txtReserverCode.Text          = dr["reserverCode"].ToString();
                    txtAllergicHistory.Text       = dr["allergicHistory"].ToString();
                    txtContent.Text = dr["content"].ToString();

                    ParseCombobox.setUserLevel(cmbUserLevelId, dr["userLevelId"]);
                    ParseCombobox.setRegisterType(cmbRegisterTypeId, dr["registerTypeId"]);
                    ParseCombobox.setSex(cmbSex, dr["sex"]);
                    ParseCombobox.setCertificateType(cmbCertificateTypeId, dr["certificateTypeId"]);
                    ParseCombobox.setNation(cmbNation, dr["nation"]);
                    ParseCombobox.setUserType(cmbUserTypeId, dr["userTypeId"]);
                    ParseCombobox.setJobType(cmbJobTypeId, dr["jobTypeId"]);
                    ParseCombobox.setBlood(cmbBlood, dr["blood"]);
                    ParseCombobox.setMarital(cmbMarital, dr["marital"]);
                    ParseCombobox.setRelation(cmbLinkmanRelationId, dr["linkmanRelationId"]);
                    ParseCombobox.setUserSource(cmbUserSourceId, dr["userSourceId"]);
                    ParseCombobox.setWorker(cmbHospitalWorkerId, dr["hospitalWorkerId"]);
                    ParseCombobox.setWorker(cmbReserverWorkerId, dr["reserverWorkerId"]);
                    ParseCombobox.setDepartment(cmbReserverDepartmentId, dr["reserverDepartmentId"]);
                }
            }
        }
コード例 #12
0
ファイル: Worldflipper.cs プロジェクト: Crapsky233/Entrogic
        public override void MinionEffects(Player player, Vector2 position, int damage, float knockBack, int number)
        {
            EntrogicPlayer ePlayer = player.GetModPlayer <EntrogicPlayer>();

            int[] StayForWhile = new int[250];
            while (true)
            {
                for (int j = 0; j < ePlayer.CardReadyType.Length; j++)
                {
                    if (ePlayer.CardReadyType[j] != 0 && Main.rand.NextBool(4))
                    {
                        bool hasGrid = false;
                        for (int i = 0; i < ePlayer.CardHandType.Length; i++)
                        {
                            if (ePlayer.CardHandType[i] == 0)
                            {
                                ePlayer.CardHandType[i]  = ePlayer.CardReadyType[j];
                                ePlayer.CardHandCost[i]  = ePlayer.CardReadyCost[j] - 1;
                                ePlayer.CardHandCost[i]  = Math.Max(ePlayer.CardHandCost[i], 0);
                                ePlayer.CardReadyType[j] = 0;
                                ePlayer.CardReadyCost[j] = 0;
                                hasGrid = true;
                                break;
                            }
                        }
                        if (!hasGrid)
                        {
                            StayForWhile[j]          = ePlayer.CardReadyType[j];
                            ePlayer.CardReadyType[j] = 0;
                            ePlayer.CardReadyCost[j] = 0;
                        }
                    }
                }
                if (ePlayer.LibNum <= 0)
                {
                    break;
                }
            }
            for (int i = 0; i < ePlayer.CardReadyType.Length; i++)
            {
                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;
                            break;
                        }
                    }
                }
            }
            for (int i = 0; i < ePlayer.CardGraveType.Length; i++)
            {
                if (ePlayer.CardGraveType[i] == 0)
                {
                    for (int j = 0; j < StayForWhile.Length; j++)
                    {
                        if (StayForWhile[j] != 0)
                        {
                            ePlayer.CardGraveType[i] = StayForWhile[j];
                            StayForWhile[j]          = 0;
                            break;
                        }
                    }
                }
            }
        }
コード例 #13
0
        internal static bool AllowPutin(Item inventoryItem, Item itemToPut, int Index)
        {
            EntrogicPlayer player = Main.LocalPlayer.GetModPlayer <EntrogicPlayer>();

            if (itemToPut.type != ItemID.None)
            {
                if (!itemToPut.GetGlobalItem <EntrogicItem>().card)
                {
                    return(false);
                }
            } // 特殊判断:如果手上物品不是卡牌就return
            if (itemToPut.type == ItemID.None && player.CardType[Index] == 0)
            {
                return(false);
            }
            if (itemToPut.type != ItemID.None)
            {
                if (!itemToPut.GetGlobalItem <EntrogicItem>().card || itemToPut.GetGlobalItem <EntrogicItem>().glove)
                {
                    return(false);
                }
                ModCard card = (ModCard)itemToPut.modItem;
                if (card.rare == CardRareID.GrandUnified)
                {
                    // 如果本框牌也是大统一,让你过
                    if (inventoryItem.type != ItemID.None && inventoryItem.GetGlobalItem <EntrogicItem>().card&& ((ModCard)inventoryItem.modItem).rare == CardRareID.GrandUnified)
                    {
                        return(true);
                    }
                    for (int i = 0; i < player.CardType.Length; i++)
                    {
                        if (player.CardType[i] != 0)
                        {
                            Item item = new Item();
                            item.SetDefaults(player.CardType[i]);
                            ModCard mCard = (ModCard)item.modItem;
                            if (mCard.rare == CardRareID.GrandUnified)
                            {
                                return(false);
                            }
                        }
                    }
                }
                else
                {
                    List <int> maxStacks = new List <int> {
                        6, 3, 2, 1
                    };
                    int theAmountOfCardsLikeMe = 0;
                    for (int i = 0; i < player.CardType.Length; i++)
                    {
                        if (player.CardType[i] != 0)
                        {
                            Item item = new Item();
                            item.SetDefaults(player.CardType[i]);
                            ModCard mCard = (ModCard)item.modItem;
                            if (player.CardType[i] == itemToPut.type)
                            {
                                theAmountOfCardsLikeMe++;
                                if (theAmountOfCardsLikeMe >= maxStacks[mCard.rare])
                                {
                                    return(false);
                                }
                            }
                        }
                    }
                }
            }
            return(true);
        }