コード例 #1
0
        private void sortChips(List <ElementChip> chips)
        {
            ElementChip current  = new ElementChip();
            int         length   = chipList.Count;
            Boolean     complete = false;
            int         sorted   = 0;

            while (complete == false)
            {
                for (int i = 0; i < length; i++)
                {
                    for (int j = 0; j < length - 1; j++)
                    {
                        if (chips[j].value > chips[j + 1].value)
                        {
                            current      = chips[j];
                            chips[j]     = chips[j + 1];
                            chips[j + 1] = current;
                            sorted++;
                        }
                    }
                }
                if (sorted == 0)
                {
                    complete = true;
                }
                sorted = 0;
            }
        }
コード例 #2
0
        private void backButton_Click(object sender, EventArgs e)
        {
            //register number of parts removed from list due to crafting
            deletedLength = deletedParts.Count;

            //if front page, act as menu button
            if (frontPage == true)
            {
                this.Owner.Show();
                this.Close();
            }

            //if party member page, add deleted chip back to list, then display
            else if (partyMemberPage == true)
            {
                chipList.Add(deletedChip);
                deletedChip = null;
                sortChips(chipList);
                displayChips();
                partyMemberPage = false;
                chipPage        = true;
            }

            //if final page, show crafting party members list
            else if (finalPage == true)
            {
                craftStats.comparison.Clear();
                craftStats.stats.Clear();
                insertPartyMembersCraft();
                displayPartyMemberCraft();

                finalPage       = false;
                partyMemberPage = true;
            }

            //if chip page or not full part list, add last deleted part back
            else
            {
                inventoryParts.Add(deletedParts[deletedParts.Count - 1]);
                deletedParts.RemoveAt(deletedParts.Count - 1);
                sortParts(inventoryParts);
                parts--;

                //if parts are zero, next back will take to main menu
                if (parts == 0)
                {
                    frontPage = true;
                }
                sortParts(inventoryParts);
                displayParts();
                partPage = true;
                chipPage = false;
            }
        }
コード例 #3
0
        private void confirmButton_Click(object sender, EventArgs e)
        {
            //can only craft with two or more parts
            if (parts >= 2)
            {
                frontPage = false;
                //if final page, add new stats to party member
                if (finalPage == true)
                {
                    selectedWeapon.health        = craftStats.stats[0];
                    selectedWeapon.meleeAttack   = craftStats.stats[1];
                    selectedWeapon.meleeDefence  = craftStats.stats[2];
                    selectedWeapon.rangedAttack  = craftStats.stats[3];
                    selectedWeapon.rangedDefence = craftStats.stats[4];
                    selectedWeapon.movementSpeed = craftStats.stats[5];
                    selectedWeapon.attackSpeed   = craftStats.stats[6];
                    selectedWeapon.status        = craftStats.status;

                    //store weapon in inventory database, then clear all temporary variables & loop back to start
                    storeWeapon(selectedWeapon);
                    displayParts();
                    craftStats.comparison.Clear();
                    craftStats.stats.Clear();

                    finalPage = false;
                    frontPage = true;
                }

                //if chip page, save current chip in case of back button, then display list of party members to craft the weapon
                else if (chipPage == true)
                {
                    ElementChip current = menuBox.SelectedItem as ElementChip;
                    inventoryParts.Remove(current);
                    deletedChip = current;
                    getWeapon(value, current.element);
                    //displayPartyMembers
                    insertPartyMembersCraft();
                    displayPartyMemberCraft();
                    partyMemberPage = true;
                    chipPage        = false;
                    finalPage       = false;
                }

                //if party member page, multiply crafted weapon stats by party members crafting modifiers
                else if (partyMemberPage == true)
                {
                    PartyMemberCraft p = menuBox.SelectedItem as PartyMemberCraft;
                    getStats(p.name);

                    //use blank party member craft to store weapon stats
                    craftStats.addStats(selectedWeapon.health, stats[0].health);
                    craftStats.addStats(selectedWeapon.meleeAttack, stats[0].meleeAttack);
                    craftStats.addStats(selectedWeapon.meleeDefence, stats[0].meleeDefence);
                    craftStats.addStats(selectedWeapon.rangedAttack, stats[0].rangedAttack);
                    craftStats.addStats(selectedWeapon.rangedDefence, stats[0].rangedDefence);
                    craftStats.addStats(selectedWeapon.movementSpeed, stats[0].movementSpeed);
                    craftStats.addStats(selectedWeapon.attackSpeed, stats[0].attackSpeed);
                    craftStats.addStatus(selectedWeapon.status, stats[0].status);

                    //print out before and after stats to demonstrate changes to user
                    displayStats(craftStats);

                    partyMemberPage = false;
                    finalPage       = true;
                }
                else
                {
                    partPage = false;
                    insertChips();
                    sortChips(chipList);
                    displayChips();
                    //frontPage = false;
                    chipPage = true;
                }
            }
        }