Esempio n. 1
0
        private void HandlePerkDetailsResponses(int responseID)
        {
            Model vm = GetDialogCustomData <Model>();

            switch (responseID)
            {
            case 1:     // Purchase Upgrade / Confirm Purchase
                if (vm.IsConfirmingPurchase)
                {
                    SetResponseText("PerkDetailsPage", 1, "Purchase Upgrade");
                    _perk.DoPerkUpgrade(GetPC(), vm.SelectedPerkID);
                    vm.IsConfirmingPurchase = false;
                    BuildPerkDetails();
                }
                else
                {
                    vm.IsConfirmingPurchase = true;
                    SetResponseText("PerkDetailsPage", 1, "CONFIRM PURCHASE");
                }
                break;

            case 2:     // Back
                vm.IsConfirmingPurchase = false;
                SetResponseText("PerkDetailsPage", 1, "Purchase Upgrade");
                BuildPerkList();
                ChangePage("PerkListPage");
                break;
            }
        }
Esempio n. 2
0
        private void HandlePerkDetailsResponses(int responseID)
        {
            Model           vm            = GetDialogCustomData <Model>();
            PlayerCharacter player        = _player.GetPlayerEntity(GetPC());
            bool            hasBackground = player.BackgroundID > 0;

            switch (responseID)
            {
            case 1:     // Purchase Upgrade / Confirm Purchase
                if (!hasBackground)
                {
                    GetPC().FloatingText("You must select a background before purchasing perks. Use the Background Token in your inventory to select one.");
                    return;
                }

                if (vm.IsConfirmingPurchase)
                {
                    SetResponseText("PerkDetailsPage", 1, "Purchase Upgrade");
                    _perk.DoPerkUpgrade(GetPC(), vm.SelectedPerkID);
                    vm.IsConfirmingPurchase = false;
                    BuildPerkDetails();
                }
                else
                {
                    vm.IsConfirmingPurchase = true;
                    SetResponseText("PerkDetailsPage", 1, "CONFIRM PURCHASE");
                }
                break;

            case 2:     // Back
                vm.IsConfirmingPurchase = false;
                SetResponseText("PerkDetailsPage", 1, "Purchase Upgrade");
                BuildPerkList();
                ChangePage("PerkListPage");
                break;
            }
        }
Esempio n. 3
0
        public void ApplyBackgroundBonuses(NWPlayer oPC)
        {
            var    dbPlayer = _data.Single <Player>(x => x.ID == oPC.GlobalID);
            string pcName   = oPC.Name;
            int    classID  = oPC.Class1;

            string item1Resref   = "";
            int    item1Quantity = 1;
            string item2Resref   = "";
            int    item2Quantity = 1;

            switch ((BackgroundType)classID)
            {
            case BackgroundType.Freelancer:
                dbPlayer.UnallocatedSP = dbPlayer.UnallocatedSP + 3;
                _data.SubmitDataChange(dbPlayer, DatabaseActionType.Update);
                break;

            case BackgroundType.Smuggler:
                item1Resref = "blaster_s";
                break;

            case BackgroundType.Sharpshooter:
                item1Resref = "rifle_s";
                break;

            case BackgroundType.TerasKasi:
                item1Resref = "powerglove_t";
                break;

            case BackgroundType.SecurityOfficer:
                item1Resref = "baton_s";
                break;

            case BackgroundType.Berserker:
                item1Resref = "doubleaxe_z";
                break;

            case BackgroundType.Duelist:
                item1Resref = "kukri_d";
                break;

            case BackgroundType.Soldier:
                item1Resref = "greatsword_s";
                break;

            case BackgroundType.Armorsmith:
                _perk.DoPerkUpgrade(oPC, PerkType.ArmorBlueprints);
                break;

            case BackgroundType.Weaponsmith:
                _perk.DoPerkUpgrade(oPC, PerkType.WeaponBlueprints);
                break;

            case BackgroundType.Chef:
                _perk.DoPerkUpgrade(oPC, PerkType.FoodRecipes);
                break;

            case BackgroundType.Engineer:
                _perk.DoPerkUpgrade(oPC, PerkType.EngineeringBlueprints);
                break;

            case BackgroundType.Fabricator:
                _perk.DoPerkUpgrade(oPC, PerkType.FabricationBlueprints);
                break;

            case BackgroundType.Harvester:
                item1Resref = "scanner_r_h";
                item2Resref = "harvest_r_h";
                break;

            case BackgroundType.Scavenger:
                _perk.DoPerkUpgrade(oPC, PerkType.ScavengingExpert);
                break;

            case BackgroundType.Medic:
                _perk.DoPerkUpgrade(oPC, PerkType.ImmediateImprovement);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (!string.IsNullOrWhiteSpace(item1Resref))
            {
                NWItem oItem1 = (_.CreateItemOnObject(item1Resref, oPC.Object, item1Quantity));
                oItem1.IsCursed = true;
                oItem1.Name     = pcName + "'s " + oItem1.Name;
            }
            if (!string.IsNullOrWhiteSpace(item2Resref))
            {
                NWItem oItem2 = (_.CreateItemOnObject(item2Resref, oPC.Object, item2Quantity, ""));
                oItem2.IsCursed = true;
                oItem2.Name     = pcName + "'s " + oItem2.Name;
            }
        }
Esempio n. 4
0
        private void ApplyBackgroundBonuses(NWPlayer oPC, int backgroundID)
        {
            string          pcName   = oPC.Name;
            PlayerCharacter pcEntity = _db.PlayerCharacters.Single(x => x.PlayerID == oPC.GlobalID);

            string item1Resref   = "";
            int    item1Quantity = 1;
            string item2Resref   = "";
            int    item2Quantity = 1;

            switch ((BackgroundType)backgroundID)
            {
            case BackgroundType.Weaponsmith:
                _perk.DoPerkUpgrade(oPC, PerkType.WeaponBlueprints);
                break;

            case BackgroundType.Armorsmith:
                _perk.DoPerkUpgrade(oPC, PerkType.ArmorBlueprints);
                break;

            case BackgroundType.Knight:
                item1Resref = "bkg_knightarmor";
                break;

            case BackgroundType.Wizard:
                _perk.DoPerkUpgrade(oPC, PerkType.FireBlast);
                break;

            case BackgroundType.Cleric:
                _perk.DoPerkUpgrade(oPC, PerkType.Recover);
                break;

            case BackgroundType.Gunslinger:
                item1Resref   = "bkg_gunblaster";
                item2Resref   = "blaster_bullets";
                item2Quantity = 99;
                break;

            case BackgroundType.Rifleman:
                item1Resref   = "bkg_rifleman";
                item2Resref   = "rifle_bullets";
                item2Quantity = 99;
                break;

            case BackgroundType.Chef:
                _perk.DoPerkUpgrade(oPC, PerkType.FoodRecipes);
                break;

            case BackgroundType.Engineer:
                _perk.DoPerkUpgrade(oPC, PerkType.EngineeringBlueprints);
                break;

            case BackgroundType.Vagabond:
                pcEntity.UnallocatedSP = pcEntity.UnallocatedSP + 3;
                _db.SaveChanges();
                break;

            case BackgroundType.Guard:
                item1Resref = "bkg_guardlgswd";
                item2Resref = "bkg_guardshld";
                break;

            case BackgroundType.Berserker:
                item1Resref = "bkg_bersgswd";
                break;

            case BackgroundType.TwinBladeSpecialist:
                item1Resref = "bkg_spectwinbld";
                break;

            case BackgroundType.MartialArtist:
                item1Resref   = "bkg_mrtlglove";
                item2Resref   = "bkg_mtlshuriken";
                item2Quantity = 50;
                break;

            case BackgroundType.Miner:
                _perk.DoPerkUpgrade(oPC, PerkType.Miner);
                _perk.DoPerkUpgrade(oPC, PerkType.Miner);
                break;

            case BackgroundType.Lumberjack:
                _perk.DoPerkUpgrade(oPC, PerkType.Lumberjack);
                _perk.DoPerkUpgrade(oPC, PerkType.Lumberjack);
                break;

            case BackgroundType.ConstructionBuilder:
                _perk.DoPerkUpgrade(oPC, PerkType.VanityBlueprints);
                break;

            case BackgroundType.Medic:
                _perk.DoPerkUpgrade(oPC, PerkType.HealingKitExpert);
                _perk.DoPerkUpgrade(oPC, PerkType.ImmediateImprovement);
                break;

            case BackgroundType.Farmer:
                _perk.DoPerkUpgrade(oPC, PerkType.ExpertFarmer);
                break;
            }

            if (!string.IsNullOrWhiteSpace(item1Resref))
            {
                NWItem oItem1 = NWItem.Wrap(_.CreateItemOnObject(item1Resref, oPC.Object, item1Quantity));
                oItem1.IsCursed = true;
                oItem1.Name     = pcName + "'s " + oItem1.Name;
            }
            if (!string.IsNullOrWhiteSpace(item2Resref))
            {
                NWItem oItem2 = NWItem.Wrap(_.CreateItemOnObject(item2Resref, oPC.Object, item2Quantity, ""));
                oItem2.IsCursed = true;
                oItem2.Name     = pcName + "'s " + oItem2.Name;
            }

            _skill.ApplyStatChanges(oPC, null);
        }