Exemplo n.º 1
0
        public static void ApplyBackgroundBonuses(NWPlayer oPC)
        {
            var    dbPlayer = DataService.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;
                DataService.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 = "club_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:
                PerkService.DoPerkUpgrade(oPC, PerkType.ArmorBlueprints, true);
                break;

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

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

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

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

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

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

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

            case BackgroundType.Mandalorian:
                item1Resref = "man_armor";
                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;
            }
        }