public GameViewModel(IMvxNavigationService navigationService, FakeDAL dal, GameBuild game) { this.navigationService = navigationService; this.dal = dal; this.game = game; this.Name = game.Name; builds = new MvxObservableCollection <BuildViewModel>(dal.Get <Build>() .Where(x => x.Game.id == game.id) .Select(Create)); Builds = builds; ViewBuildCommand = new MvxAsyncCommand <BuildViewModel>(async b => await navigationService.Navigate(b)); NewBuildCommand = new MvxAsyncCommand(async() => { Busy = true; await RaisePropertyChanged("Busy"); var bvm = await Task.Run(() => { var build = new Build { Name = "New Build", Game = game }; dal.Save(build); return(Create(build)); }); builds.Add(bvm); Busy = false; await RaisePropertyChanged("Busy"); await navigationService.Navigate(bvm); }); }
public LevelParamViewModel(FakeDAL dal, BuildParameter p, int level, Build b, IMvxCommand <LevelParamViewModel> tap) { lp = dal.Get <BuildLevelParameter>() .Single(x => x.Game.id == p.Game.id && x.Build.id == b.id && x.Parameter.Type.id == p.Type.id && x.Parameter.id == p.id && x.Level == level); Amount = lp.Amount; Tap = tap; Name = p.Name; Level = level; }
public MainPageViewModel(IMvxNavigationService navigationService) { this.navigationService = navigationService; var dal = FakeDAL.OurFakeDal(); var underrail = d_Underrail.Generate(dal); Games.Add(new GameViewModel(navigationService, dal, underrail)); ViewGameCommand = new MvxAsyncCommand <GameViewModel>(async g => await navigationService.Navigate(g)); Test = "this was bound"; }
public BaseTest() { dal = FakeDAL.OurFakeDal(); underrail = d_Underrail.Generate(dal); var build = new Build { Name = "New Build", Game = underrail }; dal.Save(build); manager = new BuildDefinitionManager(dal, underrail, build); }
public MultiParamTypeViewModel(FakeDAL dal, BuildParameterType t, BuildDefinitionManager manager) : base(dal, t, manager) { // Edit defaults ChainChange = false; CellChangeAmount = 1; TappedCell = null; Increase = new MvxCommand(() => Change(+CellChangeAmount)); Decrease = new MvxCommand(() => Change(-CellChangeAmount)); // our params var oprms = dal.Get <BuildParameter>().Where(x => x.Type.id == t.id && x.Game.id == t.Game.id); // Set up cols, grouped IList <CHVM> grp = new List <CHVM>(), prm = new List <CHVM>(); var gg = oprms.GroupBy(x => x.Category); foreach (var pg in gg) { bool frs = true; foreach (var p in pg) { grp.Add(frs ? new CHVM { CSpan = pg.Count(), Name = pg.Key } : null); prm.Add(new CHVM { CSpan = 1, Name = p.Name, Sub = true }); frs = false; } } CHeaders = grp.Where(x => x != null && x.Name != null).Any() ? new[] { grp, prm }.ToList() : new[] { prm }.ToList(); // cells, same order as col headers! var tapCommand = new MvxCommand <LevelParamViewModel>(lp => { if (TappedCell != null) { TappedCell.IsSelected = false; } lp.IsSelected = true; TappedCell = lp; CanIncrease = CanChange(+CellChangeAmount); CanDecrease = CanChange(-CellChangeAmount); }); var plk = oprms.ToDictionary(x => x.Name); Cells = Enumerable.Range(1, t.Game.MaxLevel) .Select(l => prm.Select(x => new LevelParamViewModel(dal, plk[x.Name], l, manager.build, tapCommand)) .ToList() as IList <LevelParamViewModel> ) .ToList(); }
public BuildViewModel(FakeDAL dal, Build build) { this.build = build; this.dal = dal; id = build.id; Name = build.Name; Game = build.Game.Name; manager = new BuildDefinitionManager(dal, build.Game, build); ParameterTypes = new MvxObservableCollection <ParamTypeViewModel>(dal.Get <BuildParameterType>() .Where(x => x.Game.id == build.Game.id) .Select(GetVM)).Concat(new[] { new Lolmodek(dal, new BuildParameterType { Game = build.Game, Name = "HAHA" }, manager) }).ToList(); }
//GET: Course/Sync public async Task <IActionResult> Sync() { List <Course> dbCourses = DAL.GetCourses(); List <Course> catCourses = FakeDAL.GetCoursesFromCatalog(); foreach (Course course in catCourses) { int chk = (from dbCrs in dbCourses where (dbCrs.Department.Abbreviation == course.Department.Abbreviation && dbCrs.Number == course.Number) select dbCrs).Count(); if (chk < 1) { DAL.AddCourse(course); } } return(RedirectToAction(nameof(Index))); }
public ParamTypeViewModel(FakeDAL dal, BuildParameterType t, BuildDefinitionManager manager) { this.dal = dal; this.manager = manager; this.t = t; Name = t.Name; Type = GetType().Name; var Popup = new MvxCommand <string>(s => StatusModal = s); ClosePopup = new MvxCommand(() => StatusModal = null); // Row Headers RHeaders = Enumerable.Range(1, t.Game.MaxLevel) .Select(x => { var xx = EvaluateLevelStats(manager.LevelStatus(t, x), x); return(new[] { new RHVM { Level = x, Status = xx.status, Icon = xx.icon, StatusTap = Popup } }.ToList() as IList <RHVM>); }) .ToList(); manager.ParameterChanged += EvaluateStatsAroundLevel; }
public BinaryParamTypeViewModel(FakeDAL dal, BuildParameterType t, BuildDefinitionManager manager) : base(dal, t, manager) { Cells = Enumerable.Range(1, t.Game.MaxLevel) .Select(getLevel) .ToList(); }
public Lolmodek(FakeDAL dal, BuildParameterType t, BuildDefinitionManager manager) : base(dal, t, manager) { }
public static BuildLevelParameter Get(this FakeDAL dal, int level, BuildParameter param) { return(dal.Get <BuildLevelParameter>().Single(x => x.Parameter.id == param.id && x.Level == level)); }
public static GameBuild Generate(FakeDAL dal) { // or something //var g = dal.Get<GameBuild>().FirstOrDefault(x => x.Name == "Underrail"); //if (g != null) return g; // already there // Gam using (var builder = new DefinitionBuilder(dal, "Underrail", 25)) { using (var attributes = builder.ParameterType("Attributes", 3)) { t_attributes = attributes.ptype; attributes.LevelPoints(1, 19, 10); for (int i = 2; i <= builder.game.MaxLevel; i++) { attributes.LevelPoints(i, i % 4 == 0 ? 1 : 0, 20); } a_str = attributes.Parameter("Strength").Commit(); a_dex = attributes.Parameter("Dexterity").Commit(); a_agi = attributes.Parameter("Agility").Commit(); a_con = attributes.Parameter("Constitution").Commit(); a_per = attributes.Parameter("Perception").Commit(); a_wil = attributes.Parameter("Will").Commit(); a_int = attributes.Parameter("Intelligence").Commit(); } using (var skills = builder.ParameterType("Skills")) { t_skills = skills.ptype; skills.LevelPoints(1, 120, 15); for (int i = 2; i <= builder.game.MaxLevel; i++) { skills.LevelPoints(i, 40, 15 + (i - 1) * 5); } skills.SCategory("Offense"); s_guns = skills.Parameter("Guns").Commit(); s_throwing = skills.Parameter("Throwing").Commit(); s_crossbows = skills.Parameter("Crossbows").Commit(); s_melee = skills.Parameter("Melee").Commit(); skills.SCategory("Defense"); s_dodge = skills.Parameter("Dodge").Commit(); s_evasion = skills.Parameter("Evasion").Commit(); skills.SCategory("Subterfuge"); s_stealth = skills.Parameter("Stealth").Commit(); s_hacking = skills.Parameter("Hacking").Commit(); s_lockpicking = skills.Parameter("Lockpicking").Commit(); s_pickpocketing = skills.Parameter("Pickpocketing").Commit(); s_traps = skills.Parameter("Traps").Commit(); skills.SCategory("Technology"); s_mechanics = skills.Parameter("Mechanics").Commit(); s_electronics = skills.Parameter("Electronics").Commit(); s_chemistry = skills.Parameter("Chemistry").Commit(); s_biology = skills.Parameter("Biology").Commit(); s_tailoring = skills.Parameter("Tailoring").Commit(); skills.SCategory("Psi"); s_thoughtcontrol = skills.Parameter("Thought Control").Commit(); s_psychokinesis = skills.Parameter("Psychokinesis").Commit(); s_metathermics = skills.Parameter("Metathermics").Commit(); // s_temporalmanipulation = skills.Parameter("TemporalManipulation").Commit(); skills.SCategory("Social"); s_persuasion = skills.Parameter("Persuasion").Commit(); s_intimidation = skills.Parameter("Intimidation").Commit(); s_mercantile = skills.Parameter("Mercantile").Commit(); } using (var psi = builder.ParameterType("Psi Abilities")) { t_psi_abilities = psi.ptype; for (int i = 1; i <= builder.game.MaxLevel; i++) { psi.LevelPoints(i, 0, 1); } psi.SCategory("Metathermics"); p_cryokinesis = psi.Parameter("Cryokinesis", 0).Require(0, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_pyrokinesis = psi.Parameter("Pyrokinesis", 0).Require(25, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_cryostasis = psi.Parameter("Cryostasis", 0).Require(35, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_pyrokinetic_stream = psi.Parameter("Pyrokinetic Stream", 0).Require(35, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_cryokinetic_orb = psi.Parameter("Cryokinetic Orb", 0).Require(40, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_thermodynamic_destabilisation = psi.Parameter("Thermodynamic Destabilisation", 0).Require(50, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_cryo_shield = psi.Parameter("Cryo Sheild", 0).Require(55, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_exothermic_aura = psi.Parameter("Exothermic Aura", 0).Require(70, s_metathermics).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); psi.SCategory("Psychokinesis"); p_telekinetic_punch = psi.Parameter("Telekinetic Punch", 0).Require(0, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_force_field = psi.Parameter("Force Field", 0).Require(25, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_electrokinesis = psi.Parameter("Electrokinesis", 0).Require(30, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_force_emission = psi.Parameter("Force Emission", 0).Require(35, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_disruptive_field = psi.Parameter("Disruptive Field", 0).Require(40, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_electrokinetic_imprint = psi.Parameter("Electrokinetic Imprint", 0).Require(45, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_telekinetic_proxy = psi.Parameter("Telekinetic Proxy", 0).Require(55, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_implosion = psi.Parameter("Implosion", 0).Require(70, s_psychokinesis).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); psi.SCategory("Thought Control"); p_neural_overload = psi.Parameter("Neural Overload", 0).Require(0, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_frighten = psi.Parameter("Frighten", 0).Require(30, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_billocation = psi.Parameter("Billocation", 0).Require(35, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_mental_breakdown = psi.Parameter("Mental Breakdown", 0).Require(45, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_psi_cognitive_interruption = psi.Parameter("Psi-cognitive Interruption", 0).Require(55, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_enrage = psi.Parameter("Enrage", 0).Require(60, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_psuedo_spatial_projection = psi.Parameter("Psuedo-spatial Projection", 0).Require(65, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); p_neurovisual_disruption = psi.Parameter("Neurovisual Disruption", 0).Require(70, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); } using (var feats = builder.ParameterType("Feats")) { t_feats = feats.ptype; feats.LevelPoints(1, 2, 1); for (int i = 2; i <= builder.game.MaxLevel; i++) { feats.LevelPoints(i, i % 2 == 0 ? 1 : 0, 1); } f_expertise = feats.Parameter("Expertise").ImplyLevelReq().Commit(); f_nimble = feats.Parameter("Nimble").ImplyLevelReq().Commit(); f_ninja_looter = feats.Parameter("Ninja Looter").ImplyLevelReq().Commit(); f_opportunist = feats.Parameter("Opportunist").ImplyLevelReq().Commit(); f_pack_rathound = feats.Parameter("Pack Rathound").ImplyLevelReq().Commit(); f_paranoia = feats.Parameter("Paranoia").ImplyLevelReq().Commit(); f_quick_pockets = feats.Parameter("Quick Pockets").ImplyLevelReq().Commit(); f_recklessness = feats.Parameter("Recklessness").ImplyLevelReq().Commit(); f_snooping = feats.Parameter("Snooping").ImplyLevelReq().Commit(); f_aimed_shot = feats.Parameter("Aimed Shot").Require(10, s_guns).OrRequire(10, s_crossbows).Require(06, a_per).ImplyLevelReq().Commit(); f_armor_sloping = feats.Parameter("Armor Sloping").Require(06, a_int).Require(15, s_mechanics).ImplyLevelReq().Commit(); f_burglar = feats.Parameter("Burglar").Require(7, a_dex).Require(15, s_lockpicking).OrRequire(15, s_hacking).ImplyLevelReq().Commit(); f_clothier = feats.Parameter("Clothier").Require(7, a_int).Require(15, s_tailoring).ImplyLevelReq().Commit(); f_conditioning = feats.Parameter("Conditioning").Require(5, a_con).ImplyLevelReq().Commit(); f_doctor = feats.Parameter("Doctor").Require(15, s_biology).ImplyLevelReq().Commit(); f_fast_metabolism = feats.Parameter("Fast Metabolism").Require(6, a_con).ImplyLevelReq().Commit(); f_gun_nut = feats.Parameter("Gun Nut").Require(7, a_int).Require(15, s_mechanics).ImplyLevelReq().Commit(); f_gunslinger = feats.Parameter("Gunslinger").Require(7, a_dex).Require(15, s_guns).ImplyLevelReq().Commit(); f_heavy_punch = feats.Parameter("Heavy Punch").Require(5, a_str).Require(15, s_melee).ImplyLevelReq().Commit(); f_hit_and_run = feats.Parameter("Hit and Run").Require(7, a_agi).ImplyLevelReq().Commit(); f_juggernaut = feats.Parameter("Juggernaut").Require(7, a_str).Require(7, a_str).ImplyLevelReq().Commit(); f_marksman = feats.Parameter("Marksman").Require(5, a_dex).Require(15, s_crossbows).ImplyLevelReq().Commit(); f_power_management = feats.Parameter("Power Management").Require(7, a_int).Require(15, s_electronics).ImplyLevelReq().Commit(); f_skinner = feats.Parameter("Skinner").Require(7, a_int).Require(15, s_tailoring).ImplyLevelReq().Commit(); f_sprint = feats.Parameter("Sprint").Require(6, a_agi).ImplyLevelReq().Commit(); f_stoicism = feats.Parameter("Stoicism").Require(7, a_wil).Require(7, a_con).ImplyLevelReq().Commit(); f_suppressive_fire = feats.Parameter("Suppressive Fire").Require(6, a_per).Require(10, s_guns).ImplyLevelReq().Commit(); f_sure_step = feats.Parameter("Sure Step").Require(5, a_agi).ImplyLevelReq().Commit(); f_survival_instincts = feats.Parameter("Survival Instincts").Require(9, a_con).ImplyLevelReq().Commit(); f_thick_skull = feats.Parameter("Thick Skull").Require(10, a_con).ImplyLevelReq().Commit(); f_corporeal_projection = feats.Parameter("Corporeal Projection").Require(1, p_telekinetic_punch).OrRequire(1, p_force_emission).Require(7, a_str).ImplyLevelReq().Commit(); f_disassemble = feats.Parameter("Disassemble").Require(7, a_int).Require(20, s_electronics).OrRequire(20, s_mechanics).ImplyLevelReq().Commit(); f_interloper = feats.Parameter("Interloper").Require(7, a_agi).Require(20, s_stealth).ImplyLevelReq().Commit(); var b_psychosis = feats.Parameter("Psychosis"); var b_tranquility = feats.Parameter("Tranquility"); f_psychosis = b_psychosis.ImplyLevelReq().Commit(); f_tranquility = b_tranquility.ImplyLevelReq().Commit(); b_tranquility.Require(1, f_psi_empathy).Exclude(1, f_psychosis).ImplyLevelReq().Commit(); b_psychosis.Require(1, f_psi_empathy).Exclude(1, f_tranquility).ImplyLevelReq().Commit(); f_pummel = feats.Parameter("Pummel").Require(20, s_melee).ImplyLevelReq().Commit(); f_yell = feats.Parameter("Yell").Require(20, s_intimidation).ImplyLevelReq().Commit(); f_cerebral_trauma = feats.Parameter("Cerebral Trauma").Require(25, s_thoughtcontrol).Require(1, p_neural_overload).ImplyLevelReq().Commit(); f_dirty_kick = feats.Parameter("Dirty Kick").Require(25, s_melee).ImplyLevelReq().Commit(); f_force_user = feats.Parameter("Force User").Require(7, a_wil).Require(1, p_telekinetic_punch).OrRequire(1, p_force_field).Require(25, s_psychokinesis).ImplyLevelReq().Commit(); f_high_technicalities = feats.Parameter("High-Technicalities").Require(5, a_int).Require(25, s_guns).ImplyLevelReq().Commit(); f_kneecap_shot = feats.Parameter("Kneecap Shot").Require(4, a_per).Require(25, s_guns).OrRequire(25, s_crossbows).ImplyLevelReq().Commit(); f_lightning_punches = feats.Parameter("Lightning Punches").Require(8, a_dex).Require(25, s_melee).ImplyLevelReq().Commit(); f_point_shot = feats.Parameter("Point Shot").Require(6, a_per).Require(6, a_dex).Require(25, s_guns).ImplyLevelReq().Commit(); f_quick_tinkering = feats.Parameter("Quick Tinkering").Require(25, s_traps).Require(7, a_dex).ImplyLevelReq().Commit(); f_steadfast_aim = feats.Parameter("Steadfast Aim").Require(5, a_str).Require(6, a_dex).Require(25, s_guns).ImplyLevelReq().Commit(); f_vile_weaponry = feats.Parameter("Vile Weaponry").Require(10, s_biology).Require(25, s_crossbows).OrRequire(25, s_melee).OrRequire(25, s_traps).ImplyLevelReq().Commit(); f_weaponsmith = feats.Parameter("Weaponsmith").Require(6, a_int).Require(25, s_mechanics).ImplyLevelReq().Commit(); f_bowyer = feats.Parameter("Bowyer").Require(7, a_int).Require(30, s_mechanics).ImplyLevelReq().Commit(); f_concussive_shots = feats.Parameter("Concussive Shots").Require(30, s_crossbows).ImplyLevelReq().Commit(); f_crippling_strike = feats.Parameter("Crippling Strike").Require(30, s_melee).ImplyLevelReq().Commit(); f_escape_artist = feats.Parameter("Escape Artist").Require(7, a_dex).Require(30, s_dodge).ImplyLevelReq().Commit(); f_grenadier = feats.Parameter("Grenadier").Require(6, a_dex).Require(40, s_throwing).ImplyLevelReq().Commit(); f_meditation = feats.Parameter("Meditation").Require(7, a_wil).Require(5, a_int).Require(1, f_tranquility).Require(50, s_thoughtcontrol).OrRequire(50, s_metathermics).OrRequire(50, s_psychokinesis).ImplyLevelReq().Commit(); f_mental_subversion = feats.Parameter("Mental Subversion").Require(6, a_wil).Require(30, s_thoughtcontrol).Require(1, p_neural_overload).OrRequire(1, p_frighten).ImplyLevelReq().Commit(); f_thermodynamicity = feats.Parameter("Thermodynamicity").Require(1, p_cryokinesis).Require(1, p_pyrokinesis).Require(30, s_metathermics).ImplyLevelReq().Commit(); f_trap_expert = feats.Parameter("Trap Expert").Require(6, a_dex).Require(30, s_traps).ImplyLevelReq().Commit(); f_ballistics = feats.Parameter("Ballistics").Require(6, a_int).Require(35, s_tailoring).ImplyLevelReq().Commit(); f_cooked_shot = feats.Parameter("Cooked Shot").Require(5, a_dex).Require(35, s_guns).Require(25, s_chemistry).ImplyLevelReq().Commit(); f_deflection = feats.Parameter("Deflection").Require(6, a_dex).Require(35, s_melee).ImplyLevelReq().Commit(); f_hypertoxicity = feats.Parameter("Hypertoxicity").Require(35, s_biology).ImplyLevelReq().Commit(); f_last_stand = feats.Parameter("Last Stand").Require(5, t_level).Require(9, a_con).ImplyLevelReq().Commit(); f_neurology = feats.Parameter("Neurology").Require(7, a_int).Require(35, s_biology).ImplyLevelReq().Commit(); f_practical_physicist = feats.Parameter("Practical Physicist").Require(7, a_int).Require(35, s_electronics).ImplyLevelReq().Commit(); f_pyromaniac = feats.Parameter("Pyromaniac").Require(1, p_pyrokinesis).Require(35, s_metathermics).ImplyLevelReq().Commit(); f_salesman = feats.Parameter("Salesman").Require(35, s_mercantile).ImplyLevelReq().Commit(); f_snipe = feats.Parameter("Snipe").Require(10, a_per).Require(30, s_stealth).Require(35, s_guns).OrRequire(35, s_crossbows).Require(1, f_aimed_shot).ImplyLevelReq().Commit(); f_ambush = feats.Parameter("Ambush").Require(6, a_per).Require(40, s_stealth).ImplyLevelReq().Commit(); f_cheap_shots = feats.Parameter("Cheap Shots").Require(6, a_dex).Require(5, a_int).Require(40, s_melee).ImplyLevelReq().Commit(); f_expose_weakness = feats.Parameter("Expose Weakness").Require(5, a_int).Require(40, s_melee).ImplyLevelReq().Commit(); f_fancy_footwork = feats.Parameter("Fancy Footwork").Require(7, a_agi).Require(40, s_melee).Require(40, s_dodge).ImplyLevelReq().Commit(); f_full_auto = feats.Parameter("Full Auto").Require(7, a_str).Require(40, s_guns).ImplyLevelReq().Commit(); f_hypothermia = feats.Parameter("Hypothermia").Require(1, p_cryokinesis).OrRequire(1, p_cryostasis).Require(40, s_metathermics).ImplyLevelReq().Commit(); f_mad_chemist = feats.Parameter("Mad Chemist").Require(7, a_int).Require(40, s_chemistry).ImplyLevelReq().Commit(); f_pinning = feats.Parameter("Pinning").Require(7, a_dex).Require(40, s_throwing).ImplyLevelReq().Commit(); f_premeditation = feats.Parameter("Premeditation").Require(6, a_int).Require(1, f_psi_empathy).Require(40, s_thoughtcontrol).OrRequire(40, s_metathermics).OrRequire(40, s_psychokinesis).ImplyLevelReq().Commit(); f_psychostatic_electricity = feats.Parameter("Psychostatic Electricity").Require(1, p_electrokinesis).OrRequire(1, p_electrokinetic_imprint).Require(40, s_psychokinesis).ImplyLevelReq().Commit(); f_uncanny_dodge = feats.Parameter("Uncanny Dodge").Require(8, a_agi).Require(40, s_dodge).ImplyLevelReq().Commit(); f_wrestling = feats.Parameter("Wrestling").Require(40, s_melee).Require(7, a_str).ImplyLevelReq().Commit(); f_bone_breaker = feats.Parameter("Bone Breaker").Require(7, a_str).Require(45, s_melee).ImplyLevelReq().Commit(); f_cryogenic_induction = feats.Parameter("Cryogenic Induction").Require(1, p_cryostasis).Require(50, s_metathermics).ImplyLevelReq().Commit(); f_evasive_maneuvers = feats.Parameter("Evasive Maneuvers").Require(6, a_agi).Require(50, s_evasion).ImplyLevelReq().Commit(); f_fatal_throw = feats.Parameter("Fatal Throw").Require(8, a_dex).Require(50, s_throwing).ImplyLevelReq().Commit(); f_guard = feats.Parameter("Guard").Require(8, t_level).Require(7, a_str).Require(50, s_melee).ImplyLevelReq().Commit(); f_psionic_mania = feats.Parameter("Psionic Mania").Require(8, a_wil).Require(50, s_thoughtcontrol).OrRequire(50, s_metathermics).OrRequire(50, s_psychokinesis).ImplyLevelReq().Commit(); f_rapid_fire = feats.Parameter("Rapid Fire").Require(50, s_guns).ImplyLevelReq().Commit(); f_ripper = feats.Parameter("Ripper").Require(10, a_dex).Require(5, a_wil).Require(50, s_melee).OrRequire(50, s_throwing).ImplyLevelReq().Commit(); f_spec_ops = feats.Parameter("Spec Ops").Require(6, a_agi).Require(50, s_guns).ImplyLevelReq().Commit(); f_special_tactics = feats.Parameter("Special Tactics").Require(6, a_int).Require(50, s_crossbows).ImplyLevelReq().Commit(); f_taste_for_blood = feats.Parameter("Taste for Blood").Require(50, s_melee).ImplyLevelReq().Commit(); f_three_pointer = feats.Parameter("Three Pointer").Require(7, a_dex).Require(50, s_throwing).ImplyLevelReq().Commit(); f_cut_throat = feats.Parameter("Cut Throat").Require(10, a_dex).Require(55, s_melee).Require(45, s_stealth).ImplyLevelReq().Commit(); f_telekinetic_undulation = feats.Parameter("Telekinetic Undulation").Require(1, p_telekinetic_proxy).Require(5, a_wil).ImplyLevelReq().Commit(); f_blitz = feats.Parameter("Blitz").Require(10, t_level).Require(10, a_agi).ImplyLevelReq().Commit(); f_concentrated_fire = feats.Parameter("Concentrated Fire").Require(8, a_per).Require(60, s_guns).ImplyLevelReq().Commit(); f_sharpshooter = feats.Parameter("Sharpshooter").Require(60, s_guns).OrRequire(60, s_crossbows).Require(1, f_aimed_shot).Require(10, a_per).ImplyLevelReq().Commit(); f_combo = feats.Parameter("Combo").Require(8, a_dex).Require(65, s_melee).ImplyLevelReq().Commit(); f_neural_overclocking = feats.Parameter("Neural Overclocking").Require(10, a_wil).Require(1, f_psi_empathy).Require(65, s_metathermics).OrRequire(65, s_thoughtcontrol).OrRequire(65, s_psychokinesis).ImplyLevelReq().Commit(); f_execute = feats.Parameter("Execute").Require(70, s_guns).Require(1, f_opportunist).ImplyLevelReq().Commit(); f_critical_power = feats.Parameter("Critical Power").Require(75, s_melee).OrRequire(75, s_guns).OrRequire(75, s_crossbows).ImplyLevelReq().Commit(); f_deadly_snares = feats.Parameter("Deadly Snares").Require(10, a_per).Require(75, s_crossbows).Require(50, s_traps).ImplyLevelReq().Commit(); f_elemental_bolts = feats.Parameter("Elemental Bolts").Require(75, s_crossbows).ImplyLevelReq().Commit(); f_locus_of_control = feats.Parameter("Locus of Control").Require(10, a_wil).Require(75, s_thoughtcontrol).Require(1, f_psi_empathy).ImplyLevelReq().Commit(); f_super_slam = feats.Parameter("Super Slam").Require(10, a_str).Require(75, s_melee).ImplyLevelReq().Commit(); f_commando = feats.Parameter("Commando").Require(80, s_guns).ImplyLevelReq().Commit(); f_eviscerate = feats.Parameter("Eviscerate").Require(80, s_melee).Require(8, a_dex).ImplyLevelReq().Commit(); f_split_spare = feats.Parameter("Split Spare").Require(10, a_dex).Require(80, s_throwing).ImplyLevelReq().Commit(); f_heavyweight = feats.Parameter("Heavyweight").Require(10, a_str).Require(100, s_melee).ImplyLevelReq().Commit(); f_psi_empathy = feats.Parameter("Psi Empathy", 0).ImplyLevelReq().Commit(); f_fisherman = feats.Parameter("Fisherman", 0).ImplyLevelReq().Commit(); f_hunter = feats.Parameter("Hunter", 0).ImplyLevelReq().Commit(); f_echoing_soliloquy = feats.Parameter("Echoing Soliloquy", 0).ImplyLevelReq().Commit(); } return(builder.game); } }