private void LoadPowers(SqlConnection con, MonsterPattern monster) { using (SqlCommand cmd = new SqlCommand($@" SELECT MP.*, MPA.* FROM CORE.MONSTER_POWER MP LEFT JOIN CORE.MONSTER_POWER_ATTACK MPA ON MP.ID = MPA.MONSTER_POWER_ID WHERE MONSTER_ID = @id", con)) { cmd.Parameters.Add("id", SqlDbType.Int).Value = monster.Id; using (SqlDataReader reader = cmd.ExecuteReader()) { monster.Powers.Clear(); while (reader.HasRows && reader.Read()) { PowerCategory category = (PowerCategory)reader.GetInt32(6); MonsterPower power; switch (category) { case PowerCategory.Attack: if (reader.IsDBNull(9)) { throw new Exception($"Incomplete database entries for attack power with id {reader.GetInt32(0)}."); } MonsterAttackPower attackPower = new MonsterAttackPower(); attackPower.AttackType = (PowerAttackType)reader.GetInt32(9); if (!reader.IsDBNull(10)) { attackPower.AttackBonus = reader.GetInt32(10); } else { attackPower.AttackBonus = null; } if (!reader.IsDBNull(11)) { attackPower.TargetDefense = (Defense)reader.GetInt32(11); } else { attackPower.TargetDefense = null; } attackPower.Basic = reader.GetBoolean(12); power = attackPower; break; case PowerCategory.Utility: power = new MonsterUtilityPower(); break; default: throw new Exception($"Power category {category.ToString()} is not supported."); } power.Name = reader.GetString(2); power.Detail = reader.GetString(3); power.Action = (PowerAction)reader.GetInt32(4); power.Recharge = (PowerRecharge)reader.GetInt32(5); power.Requirement = (!reader.IsDBNull(7) ? reader.GetString(7) : null); monster.Powers.Add(power); } } } }
private float PowerFallPerTickAssumingCategory(PowerCategory cat) { if (cat == PowerCategory.NoPower) { return(0); } if (DirectlyPowered(pawn)) { return(0); } if (pawn.HasValidCaravanPlatform() && pawn.GetCaravan() != null && pawn.GetCaravan().HasFuel()) { return(0); } return(2.66666666E-05f * this.PowerRate); }
public static PowerCategory GetRiderPowerCategory(string userId) { PowerCategory pc = new PowerCategory(); return pc; }
public static PowerCategory[] GetPowerCategories(string userId) { UserRider owner = UserRider.Load(userId); List<PowerCategory> pcs = new List<PowerCategory>(); string filename = owner.IsMale ? @"power_profile_male.csv" : @"power_profile_female.csv"; string[] curves = File.ReadAllLines(HttpContext.Current.Server.MapPath(@"~/App_Data/" + filename)); for (int i = 0; i < curves.Length; i++) { string[] cVals = curves[i].Split(','); PowerCategory pc = new PowerCategory { Category = int.Parse(cVals[0]), PowerAt5Sec = float.Parse(cVals[1]), PowerAt1Min = float.Parse(cVals[2]), PowerAt5Min = float.Parse(cVals[3]), PowerAt1Hr = float.Parse(cVals[4]) }; pcs.Add(pc); } return pcs.ToArray(); }