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; } }
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; } }
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; } }
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); }