public void addFactionTechniqueCompletedEntry(GameDate date, Faction f, FactionDetail.Technique t) { /* * this.addTableEntry(date, composeFactionList(f), * String.Format(yearTableStrings["upgradeTechniqueCompleted"], f.Name, t.Name), false); * */ }
public Technique GetTechnique(int techniqueID) { Technique technique = null; this.Techniques.TryGetValue(techniqueID, out technique); return(technique); }
public List <string> LoadFromString(TechniqueTable allTechniques, string techniqueIDs) { List <string> errorMsg = new List <string>(); char[] separator = new char[] { ' ', '\n', '\r', '\t' }; string[] strArray = techniqueIDs.Split(separator, StringSplitOptions.RemoveEmptyEntries); Technique technique = null; try { for (int i = 0; i < strArray.Length; i++) { if (allTechniques.Techniques.TryGetValue(int.Parse(strArray[i]), out technique)) { this.AddTechnique(technique); } else { errorMsg.Add("技巧ID" + strArray[i] + "不存在"); } } } catch { errorMsg.Add("技巧列表应为半型空格分隔的技巧ID"); } return(errorMsg); }
public bool AddTechnique(Technique technique) { if (this.Techniques.ContainsKey(technique.ID)) { return false; } this.Techniques.Add(technique.ID, technique); return true; }
public bool AddTechnique(Technique technique) { if (this.Techniques.ContainsKey(technique.ID)) { return(false); } this.Techniques.Add(technique.ID, technique); return(true); }
public void LoadFromString(TechniqueTable allTechniques, string techniqueIDs) { char[] separator = new char[] { ' ', '\n', '\r', '\t' }; string[] strArray = techniqueIDs.Split(separator, StringSplitOptions.RemoveEmptyEntries); Technique technique = null; for (int i = 0; i < strArray.Length; i++) { if (allTechniques.Techniques.TryGetValue(int.Parse(strArray[i]), out technique)) { this.AddTechnique(technique); } } }
public int getTechniqueActualReputation(Technique technique) { if (this.techniqueReputationRateDecrease.Count == 0) return technique.Reputation; return (int)Math.Round(technique.Reputation * (1 - this.techniqueReputationRateDecrease.Max())); }
private void faction_OnTechniqueFinished(Faction faction, Technique technique) { faction.Scenario.GameScreen.FactionTechniqueFinished(faction, technique); }
private void faction_OnUpgradeTechnique(Faction faction, Technique technique, Architecture architecture) { faction.Scenario.GameScreen.FactionUpgradeTechnique(faction, technique, architecture); }
public int getTechniqueActualTime(Technique technique) { if (this.techniqueTimeRateDecrease.Count == 0) return technique.Days; return (int)Math.Round(technique.Days * (1 - techniqueTimeRateDecrease.Max())); }
public bool LoadFromDatabase(string connectionString) { int num; Animation animation; OleDbConnection connection = new OleDbConnection(connectionString); connection.Open(); OleDbDataReader reader = new OleDbCommand("Select * From TerrainDetail", connection).ExecuteReader(); while (reader.Read()) { TerrainDetail terrainDetail = new TerrainDetail(); terrainDetail.ID = (short)reader["ID"]; terrainDetail.Name = reader["Name"].ToString(); terrainDetail.GraphicLayer = (int)reader["GraphicLayer"]; terrainDetail.ViewThrough = (bool)reader["ViewThrough"]; terrainDetail.RoutewayBuildFundCost = (int)reader["RoutewayBuildFundCost"]; terrainDetail.RoutewayActiveFundCost = (int)reader["RoutewayActiveFundCost"]; terrainDetail.RoutewayBuildWorkCost = (int)reader["RoutewayBuildWorkCost"]; terrainDetail.RoutewayConsumptionRate = (float)reader["RoutewayConsumptionRate"]; terrainDetail.FoodDeposit = (int)reader["FoodDeposit"]; terrainDetail.FoodRegainDays = (int)reader["FoodRegainDays"]; terrainDetail.FoodSpringRate = (float)reader["FoodSpringRate"]; terrainDetail.FoodSummerRate = (float)reader["FoodSummerRate"]; terrainDetail.FoodAutumnRate = (float)reader["FoodAutumnRate"]; terrainDetail.FoodWinterRate = (float)reader["FoodWinterRate"]; terrainDetail.FireDamageRate = (float)reader["FireDamageRate"]; this.AllTerrainDetails.AddTerrainDetail(terrainDetail); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Color", connection).ExecuteReader(); while (reader.Read()) { Color item = new Color(); item.PackedValue = uint.Parse(reader["Code"].ToString()); this.AllColors.Add(item); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From IdealTendencyKind", connection).ExecuteReader(); while (reader.Read()) { IdealTendencyKind t = new IdealTendencyKind(); t.ID = (short)reader["ID"]; t.Name = reader["Name"].ToString(); t.Offset = (short)reader["Offset"]; this.AllIdealTendencyKinds.Add(t); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From CharacterKind", connection).ExecuteReader(); while (reader.Read()) { CharacterKind kind2 = new CharacterKind(); kind2.ID = (short)reader["ID"]; kind2.Name = reader["Name"].ToString(); kind2.IntelligenceRate = (float)reader["IntelligenceRate"]; kind2.ChallengeChance = (short)reader["ChallengeChance"]; kind2.ControversyChance = (short)reader["ControversyChance"]; this.AllCharacterKinds.Add(kind2); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From ArchitectureKind", connection).ExecuteReader(); while (reader.Read()) { ArchitectureKind architectureKind = new ArchitectureKind(); architectureKind.ID = (short)reader["ID"]; architectureKind.Name = reader["Name"].ToString(); architectureKind.AgricultureBase = (short)reader["AgricultureBase"]; architectureKind.AgricultureUnit = (short)reader["AgricultureUnit"]; architectureKind.CommerceBase = (short)reader["CommerceBase"]; architectureKind.CommerceUnit = (short)reader["CommerceUnit"]; architectureKind.TechnologyBase = (short)reader["TechnologyBase"]; architectureKind.TechnologyUnit = (short)reader["TechnologyUnit"]; architectureKind.DominationBase = (short)reader["DominationBase"]; architectureKind.DominationUnit = (short)reader["DominationUnit"]; architectureKind.MoraleBase = (short)reader["MoraleBase"]; architectureKind.MoraleUnit = (short)reader["MoraleUnit"]; architectureKind.EnduranceBase = (short)reader["EnduranceBase"]; architectureKind.EnduranceUnit = (short)reader["EnduranceUnit"]; architectureKind.PopulationBase = (int)reader["PopulationBase"]; architectureKind.PopulationUnit = (int)reader["PopulationUnit"]; architectureKind.PopulationBoundary = (int)reader["PopulationBoundary"]; architectureKind.ViewDistance = (short)reader["ViewDistance"]; architectureKind.ViewDistanceIncrementDivisor = (short)reader["VDIncrementDivisor"]; architectureKind.HasObliqueView = (bool)reader["HasObliqueView"]; architectureKind.HasLongView = (bool)reader["HasLongView"]; architectureKind.HasPopulation = (bool)reader["HasPopulation"]; architectureKind.HasAgriculture = (bool)reader["HasAgriculture"]; architectureKind.HasCommerce = (bool)reader["HasCommerce"]; architectureKind.HasTechnology = (bool)reader["HasTechnology"]; architectureKind.HasDomination = (bool)reader["HasDomination"]; architectureKind.HasMorale = (bool)reader["HasMorale"]; architectureKind.HasEndurance = (bool)reader["HasEndurance"]; architectureKind.HasHarbor = (bool)reader["HasHarbor"]; architectureKind.FacilityPositionUnit = (short)reader["FacilityPositionUnit"]; architectureKind.FundMaxUnit = (int)reader["FundMaxUnit"]; architectureKind.FoodMaxUnit = (int)reader["FoodMaxUnit"]; try { architectureKind.CountToMerit = (bool)reader["CountToMerit"]; } catch (Exception) { architectureKind.CountToMerit = architectureKind.ID == 1 ? true : false; } this.AllArchitectureKinds.AddArchitectureKind(architectureKind); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From SectionAIDetail", connection).ExecuteReader(); while (reader.Read()) { SectionAIDetail sectionAIDetail = new SectionAIDetail(); sectionAIDetail.ID = (short)reader["ID"]; sectionAIDetail.Name = reader["Name"].ToString(); sectionAIDetail.Description = reader["Description"].ToString(); sectionAIDetail.OrientationKind = (SectionOrientationKind)((short)reader["OrientationKind"]); sectionAIDetail.AutoRun = (bool)reader["AutoRun"]; sectionAIDetail.ValueAgriculture = (bool)reader["ValueAgriculture"]; sectionAIDetail.ValueCommerce = (bool)reader["ValueCommerce"]; sectionAIDetail.ValueTechnology = (bool)reader["ValueTechnology"]; sectionAIDetail.ValueDomination = (bool)reader["ValueDomination"]; sectionAIDetail.ValueMorale = (bool)reader["ValueMorale"]; sectionAIDetail.ValueEndurance = (bool)reader["ValueEndurance"]; sectionAIDetail.ValueTraining = (bool)reader["ValueTraining"]; sectionAIDetail.ValueRecruitment = (bool)reader["ValueRecruitment"]; sectionAIDetail.ValueNewMilitary = (bool)reader["ValueNewMilitary"]; sectionAIDetail.ValueOffensiveCampaign = (bool)reader["ValueOffensiveCampaign"]; sectionAIDetail.AllowInvestigateTactics = (bool)reader["AllowInvestigateTactics"]; sectionAIDetail.AllowOffensiveTactics = (bool)reader["AllowOffensiveTactics"]; sectionAIDetail.AllowPersonTactics = (bool)reader["AllowPersonTactics"]; sectionAIDetail.AllowOffensiveCampaign = (bool)reader["AllowOffensiveCampaign"]; sectionAIDetail.AllowFundTransfer = (bool)reader["AllowFundTransfer"]; sectionAIDetail.AllowFoodTransfer = (bool)reader["AllowFoodTransfer"]; sectionAIDetail.AllowMilitaryTransfer = (bool)reader["AllowMilitaryTransfer"]; try { sectionAIDetail.AllowFacilityRemoval = (bool)reader["AllowFacilityRemoval"]; } catch { sectionAIDetail.AllowFacilityRemoval = true; } this.AllSectionAIDetails.AddSectionAIDetail(sectionAIDetail); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From InfluenceKind", connection).ExecuteReader(); while (reader.Read()) { num = (short)reader["ID"]; InfluenceKind ik = InfluenceKindFactory.CreateInfluenceKindByID(num); if (ik != null) { ik.ID = num; ik.Type = (InfluenceType)((short)reader["Type"]); ik.Name = reader["Name"].ToString(); try { ik.Combat = (bool)reader["Combat"]; } catch { ik.Combat = true; } this.AllInfluenceKinds.AddInfluenceKind(ik); } } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Influence", connection).ExecuteReader(); while (reader.Read()) { Influence influence = new Influence(); influence.ID = (short)reader["ID"]; influence.Name = reader["Name"].ToString(); influence.Description = reader["Description"].ToString(); influence.Parameter = reader["Parameter"].ToString(); influence.Parameter2 = reader["Parameter2"].ToString(); influence.Kind = this.AllInfluenceKinds.GetInfluenceKind((short)reader["Kind"]); if (influence.Kind != null) { this.AllInfluences.AddInfluence(influence); } } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From ConditionKind", connection).ExecuteReader(); while (reader.Read()) { num = (short)reader["ID"]; ConditionKind ck = ConditionKindFactory.CreateConditionKindByID(num); if (ck != null) { ck.ID = num; ck.Name = reader["Name"].ToString(); this.AllConditionKinds.AddConditionKind(ck); } } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Condition", connection).ExecuteReader(); while (reader.Read()) { Condition condition = new Condition(); condition.ID = (short)reader["ID"]; condition.Name = reader["Name"].ToString(); condition.Parameter = reader["Parameter"].ToString(); condition.Parameter2 = reader["Parameter2"].ToString(); condition.Kind = this.AllConditionKinds.GetConditionKind((short)reader["Kind"]); this.AllConditions.AddCondition(condition); } connection.Close(); /// connection.Open(); reader = new OleDbCommand("Select * From TroopEventEffectKind", connection).ExecuteReader(); while (reader.Read()) { num = (short)reader["ID"]; EventEffectKind e = EventEffectKindFactory.CreateEventEffectKindByID(num); if (e != null) { e.ID = num; e.Name = reader["Name"].ToString(); this.AllTroopEventEffectKinds.AddEventEffectKind(e); } } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From TroopEventEffect", connection).ExecuteReader(); while (reader.Read()) { GameObjects.TroopDetail.EventEffect.EventEffect effect = new GameObjects.TroopDetail.EventEffect.EventEffect(); effect.ID = (short)reader["ID"]; effect.Name = reader["Name"].ToString(); effect.Parameter = reader["Parameter"].ToString(); effect.Kind = this.AllTroopEventEffectKinds.GetEventEffectKind((short)reader["Kind"]); this.AllTroopEventEffects.AddEventEffect(effect); } connection.Close(); ////////////////////////////////////////////////////////// connection.Open(); reader = new OleDbCommand("Select * From EventEffectKind", connection).ExecuteReader(); while (reader.Read()) { num = (short)reader["ID"]; GameObjects.ArchitectureDetail.EventEffect.EventEffectKind e = GameObjects.ArchitectureDetail.EventEffect.EventEffectKindFactory.CreateEventEffectKindByID(num); if (e != null) { e.ID = num; e.Name = reader["Name"].ToString(); this.AllEventEffectKinds.AddEventEffectKind(e); } } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From EventEffect", connection).ExecuteReader(); while (reader.Read()) { GameObjects.ArchitectureDetail.EventEffect.EventEffect effect = new GameObjects.ArchitectureDetail.EventEffect.EventEffect(); effect.ID = (short)reader["ID"]; effect.Name = reader["Name"].ToString(); effect.Parameter = reader["Parameter"].ToString(); effect.Parameter2 = reader["Parameter2"].ToString(); effect.Kind = this.AllEventEffectKinds.GetEventEffectKind((short)reader["Kind"]); this.AllEventEffects.AddEventEffect(effect); } connection.Close(); ////// connection.Open(); reader = new OleDbCommand("Select * From FacilityKind", connection).ExecuteReader(); while (reader.Read()) { FacilityKind facilityKind = new FacilityKind(); facilityKind.ID = (short)reader["ID"]; facilityKind.Name = reader["Name"].ToString(); try { facilityKind.AILevel = (float)reader["AILevel"]; } catch { facilityKind.AILevel = 1; } facilityKind.PositionOccupied = (int)reader["PositionOccupied"]; facilityKind.TechnologyNeeded = (int)reader["TechnologyNeeded"]; facilityKind.FundCost = (int)reader["FundCost"]; facilityKind.PointCost = (int)reader["PointCost"]; facilityKind.MaintenanceCost = (int)reader["MaintenanceCost"]; facilityKind.Days = (short)reader["Days"]; facilityKind.Endurance = (int)reader["Endurance"]; facilityKind.UniqueInArchitecture = (bool)reader["UniqueInArchitecture"]; facilityKind.UniqueInFaction = (bool)reader["UniqueInFaction"]; facilityKind.PopulationRelated = (bool)reader["PopulationRelated"]; facilityKind.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); facilityKind.rongna = (short)reader["rongna"]; facilityKind.bukechaichu = (bool)reader["bukechaichu"]; facilityKind.Conditions.LoadFromString(this.AllConditions, reader["Conditions"].ToString()); this.AllFacilityKinds.AddFacilityKind(facilityKind); } connection.Close(); /////////////////////////////////////////////////////////////////////// connection.Open(); reader = new OleDbCommand("Select * From DisasterKind", connection).ExecuteReader(); while (reader.Read()) { zainanzhongleilei zainanzhonglei = new zainanzhongleilei(); zainanzhonglei.ID = (short)reader["ID"]; zainanzhonglei.Name = reader["名称"].ToString(); zainanzhonglei.shijianxiaxian = (short)reader["时间下限"]; zainanzhonglei.shijianshangxian = (short)reader["时间上限"]; zainanzhonglei.renkoushanghai = (short)reader["人口伤害"]; zainanzhonglei.tongzhishanghai = (short)reader["统治伤害"]; zainanzhonglei.naijiushanghai = (short)reader["耐久伤害"]; zainanzhonglei.nongyeshanghai = (short)reader["农业伤害"]; zainanzhonglei.shangyeshanghai = (short)reader["商业伤害"]; zainanzhonglei.jishushanghai = (short)reader["技术伤害"]; zainanzhonglei.minxinshanghai = (short)reader["民心伤害"]; this.suoyouzainanzhonglei.Addzainanzhonglei(zainanzhonglei); } connection.Close(); /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// connection.Open(); reader = new OleDbCommand("Select * From guanjuezhonglei", connection).ExecuteReader(); while (reader.Read()) { guanjuezhongleilei guanjuedezhonglei = new guanjuezhongleilei(); guanjuedezhonglei.ID = (short)reader["ID"]; guanjuedezhonglei.Name = reader["名称"].ToString(); guanjuedezhonglei.shengwangshangxian = (int)reader["声望上限"]; guanjuedezhonglei.xuyaogongxiandu = (int)reader["需要贡献度"]; guanjuedezhonglei.xuyaochengchi = (short)reader["需要城池"]; this.suoyouguanjuezhonglei.Addguanjuedezhonglei(guanjuedezhonglei); } connection.Close(); /////////////////////////////////////////////////////////////////////// connection.Open(); reader = new OleDbCommand("Select * From Technique", connection).ExecuteReader(); while (reader.Read()) { Technique technique = new Technique(); technique.ID = (short)reader["ID"]; technique.Kind = (short)reader["Kind"]; technique.DisplayRow = (short)reader["DisplayRow"]; technique.DisplayCol = (short)reader["DisplayCol"]; technique.Name = reader["Name"].ToString(); technique.Description = reader["Description"].ToString(); technique.PreID = (short)reader["PreID"]; technique.PostID = (short)reader["PostID"]; technique.Reputation = (int)reader["Reputation"]; technique.FundCost = (int)reader["FundCost"]; technique.PointCost = (int)reader["PointCost"]; technique.Days = (short)reader["Days"]; technique.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); this.AllTechniques.AddTechnique(technique); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Skill", connection).ExecuteReader(); while (reader.Read()) { Skill skill = new Skill(); skill.ID = (short)reader["ID"]; skill.DisplayRow = (short)reader["DisplayRow"]; skill.DisplayCol = (short)reader["DisplayCol"]; skill.Kind = (short)reader["Kind"]; skill.Level = (short)reader["Level"]; skill.Combat = (bool)reader["Combat"]; skill.Name = reader["Name"].ToString(); skill.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); skill.Conditions.LoadFromString(this.AllConditions, reader["Conditions"].ToString()); this.AllSkills.AddSkill(skill); } connection.Close(); int titleKindShift = 0; connection.Open(); try { reader = new OleDbCommand("Select * From TitleKind", connection).ExecuteReader(); while (reader.Read()) { TitleKind tk = new TitleKind(); tk.ID = (short)reader["ID"]; tk.Name = reader["KName"].ToString(); tk.Combat = (bool)reader["Combat"]; tk.StudyDay = (short)reader["StudyDay"]; tk.SuccessRate = (short)reader["SuccessRate"]; this.AllTitleKinds.AddTitleKind(tk); } } catch { TitleKind tk = new TitleKind(); tk.ID = 1; tk.Name = "个人称号"; tk.Combat = false; tk.StudyDay = 90; this.AllTitleKinds.AddTitleKind(tk); tk = new TitleKind(); tk.ID = 2; tk.Name = "战斗称号"; tk.Combat = true; tk.StudyDay = 90; this.AllTitleKinds.AddTitleKind(tk); titleKindShift = 1; } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Title", connection).ExecuteReader(); while (reader.Read()) { Title title = new Title(); title.ID = (short)reader["ID"]; title.Kind = this.AllTitleKinds.GetTitleKind((short)reader["Kind"] + titleKindShift); title.Level = (short)reader["Level"]; title.Combat = (bool)reader["Combat"]; title.Name = reader["Name"].ToString(); title.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); title.Conditions.LoadFromString(this.AllConditions, reader["Conditions"].ToString()); this.AllTitles.AddTitle(title); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From MilitaryKind", connection).ExecuteReader(); while (reader.Read()) { MilitaryKind militaryKind = new MilitaryKind(); militaryKind.ID = (short)reader["ID"]; militaryKind.Type = (MilitaryType)((short)reader["Type"]); militaryKind.Name = reader["Name"].ToString(); militaryKind.Description = reader["Description"].ToString(); militaryKind.Merit = (short)reader["Merit"]; militaryKind.Speed = (short)reader["Speed"]; militaryKind.TitleInfluence = (short)reader["TitleInfluence"]; militaryKind.CreateCost = (int)reader["CreateCost"]; militaryKind.CreateTechnology = (int)reader["CreateTechnology"]; militaryKind.IsShell = (bool)reader["IsShell"]; militaryKind.CreateBesideWater = (bool)reader["CreateBesideWater"]; militaryKind.Offence = (short)reader["Offence"]; militaryKind.Defence = (short)reader["Defence"]; militaryKind.OffenceRadius = (short)reader["OffenceRadius"]; militaryKind.CounterOffence = (bool)reader["CounterOffence"]; militaryKind.BeCountered = (bool)reader["BeCountered"]; militaryKind.ObliqueOffence = (bool)reader["ObliqueOffence"]; militaryKind.ArrowOffence = (bool)reader["ArrowOffence"]; militaryKind.AirOffence = (bool)reader["AirOffence"]; militaryKind.ContactOffence = (bool)reader["ContactOffence"]; militaryKind.OffenceOnlyBeforeMove = (bool)reader["OffenceOnlyBeforeMove"]; militaryKind.ArchitectureDamageRate = (float)reader["ArchitectureDamageRate"]; militaryKind.ArchitectureCounterDamageRate = (float)reader["ArchitectureCounterDamageRate"]; militaryKind.StratagemRadius = (short)reader["StratagemRadius"]; militaryKind.ObliqueStratagem = (bool)reader["ObliqueStratagem"]; militaryKind.ViewRadius = (short)reader["ViewRadius"]; militaryKind.ObliqueView = (bool)reader["ObliqueView"]; militaryKind.Movability = (short)reader["Movability"]; militaryKind.OneAdaptabilityKind = (short)reader["OneAdaptabilityKind"]; militaryKind.PlainAdaptability = (short)reader["PlainAdaptability"]; militaryKind.GrasslandAdaptability = (short)reader["GrasslandAdaptability"]; militaryKind.ForrestAdaptability = (short)reader["ForrestAdaptability"]; militaryKind.MarshAdaptability = (short)reader["MarshAdaptability"]; militaryKind.MountainAdaptability = (short)reader["MountainAdaptability"]; militaryKind.WaterAdaptability = (short)reader["WaterAdaptability"]; militaryKind.RidgeAdaptability = (short)reader["RidgeAdaptability"]; militaryKind.WastelandAdaptability = (short)reader["WastelandAdaptability"]; militaryKind.DesertAdaptability = (short)reader["DesertAdaptability"]; militaryKind.CliffAdaptability = (short)reader["CliffAdaptability"]; militaryKind.PlainRate = (float)reader["PlainRate"]; militaryKind.GrasslandRate = (float)reader["GrasslandRate"]; militaryKind.ForrestRate = (float)reader["ForrestRate"]; militaryKind.MarshRate = (float)reader["MarshRate"]; militaryKind.MountainRate = (float)reader["MountainRate"]; militaryKind.WaterRate = (float)reader["WaterRate"]; militaryKind.RidgeRate = (float)reader["RidgeRate"]; militaryKind.WastelandRate = (float)reader["WastelandRate"]; militaryKind.DesertRate = (float)reader["DesertRate"]; militaryKind.CliffRate = (float)reader["CliffRate"]; militaryKind.InjuryChance = (short)reader["InjuryRate"]; try { militaryKind.FireDamageRate = (float)reader["FireDamageRate"]; militaryKind.RecruitLimit = (int)reader["RecruitLimit"]; } catch { try { militaryKind.FireDamageRate = (bool)reader["AfraidOfFire"] ? 3.0f : 1.0f; militaryKind.RecruitLimit = (bool)reader["Unique"] ? 1 : 1000; } catch { militaryKind.FireDamageRate = 1.0f; militaryKind.RecruitLimit = 10000; } } militaryKind.FoodPerSoldier = (short)reader["FoodPerSoldier"]; militaryKind.RationDays = (int)reader["RationDays"]; militaryKind.PointsPerSoldier = (int)reader["PointsPerSoldier"]; militaryKind.MinScale = (int)reader["MinScale"]; militaryKind.MaxScale = (int)reader["MaxScale"]; militaryKind.OffencePerScale = (short)reader["OffencePerScale"]; militaryKind.DefencePerScale = (short)reader["DefencePerScale"]; militaryKind.CanLevelUp = (bool)reader["CanLevelUp"]; militaryKind.LevelUpKindID = (short)reader["LevelUpKindID"]; militaryKind.LevelUpExperience = (int)reader["LevelUpExperience"]; militaryKind.OffencePer100Experience = (short)reader["OffencePer100Experience"]; militaryKind.DefencePer100Experience = (short)reader["DefencePer100Experience"]; militaryKind.AttackDefaultKind = (TroopAttackDefaultKind)((short)reader["AttackDefaultKind"]); militaryKind.AttackTargetKind = (TroopAttackTargetKind)((short)reader["AttackTargetKind"]); militaryKind.CastDefaultKind = (TroopCastDefaultKind)((short)reader["CastDefaultKind"]); militaryKind.CastTargetKind = (TroopCastTargetKind)((short)reader["CastTargetKind"]); militaryKind.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); militaryKind.zijinshangxian = (int)reader["zijinshangxian"]; this.AllMilitaryKinds.AddMilitaryKind(militaryKind); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From MilitaryKind", connection).ExecuteReader(); while (reader.Read()) { MilitaryKind current = this.AllMilitaryKinds.GetMilitaryKindList().GetGameObject((short)reader["ID"]) as MilitaryKind; current.successor = new MilitaryKindTable(); current.successor.LoadFromString(this.AllMilitaryKinds, reader["Successor"].ToString()); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From InformationKind", connection).ExecuteReader(); while (reader.Read()) { InformationKind kind9 = new InformationKind(); kind9.ID = (short)reader["ID"]; kind9.Level = (InformationLevel)((short)reader["iLevel"]); kind9.Oblique = (bool)reader["Oblique"]; kind9.Radius = (short)reader["Radius"]; kind9.CostFund = (int)reader["CostFund"]; this.AllInformationKinds.Add(kind9); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From AttackDefaultKind", connection).ExecuteReader(); while (reader.Read()) { AttackDefaultKind kind10 = new AttackDefaultKind(); kind10.ID = (short)reader["ID"]; kind10.Name = reader["Name"].ToString(); this.AllAttackDefaultKinds.Add(kind10); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From AttackTargetKind", connection).ExecuteReader(); while (reader.Read()) { AttackTargetKind kind11 = new AttackTargetKind(); kind11.ID = (short)reader["ID"]; kind11.Name = reader["Name"].ToString(); this.AllAttackTargetKinds.Add(kind11); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From CombatMethod", connection).ExecuteReader(); while (reader.Read()) { CombatMethod combatMethod = new CombatMethod(); combatMethod.ID = (short)reader["ID"]; combatMethod.Name = reader["Name"].ToString(); combatMethod.Description = reader["Description"].ToString(); combatMethod.Combativity = (short)reader["Combativity"]; combatMethod.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); combatMethod.AttackDefault = this.AllAttackDefaultKinds.GetGameObject((short)reader["AttackDefault"]) as AttackDefaultKind; combatMethod.AttackTarget = this.AllAttackTargetKinds.GetGameObject((short)reader["AttackTarget"]) as AttackTargetKind; combatMethod.ArchitectureTarget = (bool)reader["ArchitectureTarget"]; combatMethod.CastConditions.LoadFromString(this.AllConditions, reader["CastConditions"].ToString()); combatMethod.ViewingHostile = (bool)reader["ViewingHostile"]; combatMethod.AnimationKind = (TileAnimationKind)((short)reader["AnimationKind"]); this.AllCombatMethods.AddCombatMethod(combatMethod); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Stunt", connection).ExecuteReader(); while (reader.Read()) { Stunt stunt = new Stunt(); stunt.ID = (short)reader["ID"]; stunt.Name = reader["Name"].ToString(); stunt.Combativity = (short)reader["Combativity"]; stunt.Period = (short)reader["Period"]; stunt.Animation = (short)reader["Animation"]; stunt.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); stunt.CastConditions.LoadFromString(this.AllConditions, reader["CastConditions"].ToString()); stunt.LearnConditions.LoadFromString(this.AllConditions, reader["LearnConditions"].ToString()); stunt.AIConditions.LoadFromString(this.AllConditions, reader["AIConditions"].ToString()); this.AllStunts.AddStunt(stunt); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From CastDefaultKind", connection).ExecuteReader(); while (reader.Read()) { CastDefaultKind kind12 = new CastDefaultKind(); kind12.ID = (short)reader["ID"]; kind12.Name = reader["Name"].ToString(); this.AllCastDefaultKinds.Add(kind12); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From CastTargetKind", connection).ExecuteReader(); while (reader.Read()) { CastTargetKind kind13 = new CastTargetKind(); kind13.ID = (short)reader["ID"]; kind13.Name = reader["Name"].ToString(); this.AllCastTargetKinds.Add(kind13); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Stratagem", connection).ExecuteReader(); while (reader.Read()) { Stratagem stratagem = new Stratagem(); stratagem.ID = (short)reader["ID"]; stratagem.Name = reader["Name"].ToString(); stratagem.Description = reader["Description"].ToString(); stratagem.Combativity = (short)reader["Combativity"]; stratagem.Chance = (short)reader["Chance"]; stratagem.TechniquePoint = (int)reader["TechniquePoint"]; stratagem.Friendly = (bool)reader["Friendly"]; stratagem.Self = (bool)reader["Self"]; stratagem.AnimationKind = (TileAnimationKind)((short)reader["AnimationKind"]); stratagem.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); stratagem.CastDefault = this.AllCastDefaultKinds.GetGameObject((short)reader["CastDefault"]) as CastDefaultKind; stratagem.CastTarget = this.AllCastTargetKinds.GetGameObject((short)reader["CastTarget"]) as CastTargetKind; stratagem.ArchitectureTarget = (bool)reader["ArchitectureTarget"]; stratagem.RequireInfluenceToUse = (bool)reader["RequireInfluneceToUse"]; this.AllStratagems.AddStratagem(stratagem); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From TroopAnimation", connection).ExecuteReader(); while (reader.Read()) { animation = new Animation(); animation.ID = (short)reader["ID"]; animation.Name = reader["Name"].ToString(); animation.FrameCount = (short)reader["FrameCount"]; animation.StayCount = (short)reader["StayCount"]; this.AllTroopAnimations.AddAnimation(animation); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From TileAnimation", connection).ExecuteReader(); while (reader.Read()) { animation = new Animation(); animation.ID = (short)reader["ID"]; animation.Name = reader["Name"].ToString(); animation.FrameCount = (short)reader["FrameCount"]; animation.StayCount = (short)reader["StayCount"]; animation.Back = (bool)reader["Back"]; this.AllTileAnimations.AddAnimation(animation); } connection.Close(); connection.Open(); reader = new OleDbCommand("Select * From Biography", connection).ExecuteReader(); while (reader.Read()) { Biography biography = new Biography(); biography.ID = (short)reader["ID"]; biography.Brief = reader["Brief"].ToString(); biography.Romance = reader["Romance"].ToString(); biography.History = reader["History"].ToString(); biography.FactionColor = (short)reader["FactionColor"]; biography.MilitaryKinds.LoadFromString(this.AllMilitaryKinds, reader["MilitaryKinds"].ToString()); this.AllBiographies.AddBiography(biography); } connection.Close(); connection.Open(); try { reader = new OleDbCommand("Select * From TextMessageMap", connection).ExecuteReader(); while (reader.Read()) { int pid = (short)reader["Person"]; TextMessageKind kind = (TextMessageKind) (short) reader["Kind"]; List<string> messages = new List<string>(); StaticMethods.LoadFromString(messages, reader["Messages"].ToString()); this.AllTextMessages.AddTextMessages(pid, kind, messages); } } catch { reader = new OleDbCommand("Select * From TextMessage", connection).ExecuteReader(); while (reader.Read()) { int pid = (short)reader["ID"]; List<string> messages = new List<string>(); StaticMethods.LoadFromString(messages, reader["CriticalStrike"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Critical, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["CriticalStrikeOnArchitecture"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.CriticalArchitecture, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["ReceiveCriticalStrike"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.BeCritical, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["Surround"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Surround, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["Rout"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Rout, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["DualInitiativeWin"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.DualActiveWin, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["DualPassiveWin"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.DualPassiveWin, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["ControversyInitiativeWin"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.ControversyActiveWin, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["ControversyPassiveWin"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.ControversyPassiveWin, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["Chaos"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Chaos, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["DeepChaos"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.DeepChaos, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["CastDeepChaos"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.CastDeepChaos, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["RecoverFromChaos"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.RecoverChaos, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["TrappedByStratagem"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.TrappedByStratagem, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["HelpedByStratagem"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.HelpedByStratagem, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["ResistHarmfulStratagem"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.ResistHarmfulStratagem, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["ResistHelpfulStratagem"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.ResistHelpfulStratagem, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["AntiAttack"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.AntiAttack, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["BreakWall"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.BreakWall, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["OutburstAngry"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Angry, messages); messages.Clear(); StaticMethods.LoadFromString(messages, reader["OutburstQuiet"].ToString()); this.AllTextMessages.AddTextMessages(pid, TextMessageKind.Calm, messages); } } connection.Close(); connection.Open(); try { reader = new OleDbCommand("Select * From BiographyAdjectives", connection).ExecuteReader(); while (reader.Read()) { int t; BiographyAdjectives b = new BiographyAdjectives(); b.ID = (short)reader["ID"]; int.TryParse(reader["Strength"].ToString(), out t); b.Strength = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Command"].ToString(), out t); b.Command = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Intelligence"].ToString(), out t); b.Intelligence = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Politics"].ToString(), out t); b.Politics = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Glamour"].ToString(), out t); b.Glamour = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Braveness"].ToString(), out t); b.Braveness = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Calmness"].ToString(), out t); b.Calmness = t; b.ID = (short)reader["ID"]; int.TryParse(reader["PersonalLoyalty"].ToString(), out t); b.PersonalLoyalty = t; b.ID = (short)reader["ID"]; int.TryParse(reader["Ambition"].ToString(), out t); b.Ambition = t; b.Male = (bool)reader["Male"]; b.Female = (bool)reader["Female"]; StaticMethods.LoadFromString(b.Text, reader["BioText"].ToString()); StaticMethods.LoadFromString(b.SuffixText, reader["SuffixText"].ToString()); this.AllBiographyAdjectives.Add(b); } } catch { } connection.Close(); return true; }
public int getTechniqueActualPointCost(Technique technique) { if (this.techniquePointCostRateDecrease.Count == 0) return technique.PointCost; return (int) Math.Round(technique.PointCost * (1 - this.techniquePointCostRateDecrease.Max())); }
public override void FactionUpgradeTechnique(Faction faction, Technique technique, Architecture architecture) { if (!base.Scenario.IsCurrentPlayer(faction)) { faction.TextDestinationString = technique.Name; this.Plugins.GameRecordPlugin.AddBranch(faction, "UpgradeTechnique", faction.Capital.Position); } }
public List<string> LoadTechnique(OleDbConnection connection, GameScenario scen) { List<string> errorMsg = new List<string>(); connection.Open(); OleDbDataReader reader = new OleDbCommand("Select * From Technique", connection).ExecuteReader(); while (reader.Read()) { Technique technique = new Technique(); technique.Scenario = scen; technique.ID = (short)reader["ID"]; technique.Kind = (short)reader["Kind"]; technique.DisplayRow = (short)reader["DisplayRow"]; technique.DisplayCol = (short)reader["DisplayCol"]; technique.Name = reader["Name"].ToString(); technique.Description = reader["Description"].ToString(); technique.PreID = (short)reader["PreID"]; technique.PostID = (short)reader["PostID"]; technique.Reputation = (int)reader["Reputation"]; technique.FundCost = (int)reader["FundCost"]; technique.PointCost = (int)reader["PointCost"]; technique.Days = (short)reader["Days"]; List<string> e = technique.Influences.LoadFromString(this.AllInfluences, reader["Influences"].ToString()); if (e.Count > 0) { errorMsg.Add("技巧ID" + technique.ID); errorMsg.AddRange(e); } try { List<string> f = technique.Conditions.LoadFromString(this.AllConditions, reader["Conditions"].ToString()); if (f.Count > 0) { errorMsg.Add("技巧ID" + technique.ID); errorMsg.AddRange(f); } } catch { } this.AllTechniques.AddTechnique(technique); } connection.Close(); return errorMsg; }
public virtual void FactionTechniqueFinished(Faction faction, Technique technique) { }
private bool IsTechniqueUpgradable(Technique t) { return (!this.HasTechnique(t.ID) && ((t.PreID < 0) || this.HasTechnique(t.PreID))); }
private void AITechniques() { if ((this.ArchitectureCount != 0) && (this.UpgradingTechnique < 0)) { if (this.PlanTechnique == null) { if (this.PreferredTechniqueKinds.Count > 0) { List<Technique> list = new List<Technique>(); float preferredTechniqueComplition = this.GetPreferredTechniqueComplition(); foreach (Technique technique in base.Scenario.GameCommonData.AllTechniques.Techniques.Values) { if (!this.IsTechniqueUpgradable(technique)) { continue; } if (this.GetTechniqueUsefulness(technique) <= 0) continue; if (preferredTechniqueComplition < 0.5f) { if (this.PreferredTechniqueKinds.IndexOf(technique.Kind) >= 0) { list.Add(technique); } } else if (preferredTechniqueComplition < 0.75f) { if ((this.PreferredTechniqueKinds.IndexOf(technique.Kind) >= 0) || GameObject.Chance(0x19)) { list.Add(technique); } } else if (preferredTechniqueComplition < 1f) { if ((this.PreferredTechniqueKinds.IndexOf(technique.Kind) >= 0) || GameObject.Chance(50)) { list.Add(technique); } } else if ((this.PreferredTechniqueKinds.IndexOf(technique.Kind) >= 0) || GameObject.Chance(0x4b)) { list.Add(technique); } } if (list.Count > 0) { this.PlanTechnique = list[GameObject.Random(list.Count)]; } else { this.PlanTechnique = this.GetRandomTechnique(); } } else { this.PlanTechnique = this.GetRandomTechnique(); } } if (this.PlanTechnique != null) { if (((this.TechniquePoint + this.TechniquePointForTechnique) >= this.getTechniqueActualPointCost(this.PlanTechnique)) && (this.Reputation >= this.getTechniqueActualReputation(this.PlanTechnique))) { if (this.ArchitectureCount > 1) { this.Architectures.PropertyName = "Fund"; this.Architectures.IsNumber = true; this.Architectures.ReSort(); } this.PlanTechniqueArchitecture = this.Architectures[0] as Architecture; if (this.PlanTechniqueArchitecture.Fund >= this.getTechniqueActualFundCost(this.PlanTechnique)) { this.DepositTechniquePointForTechnique(this.TechniquePointForTechnique); this.UpgradeTechnique(this.PlanTechnique, this.PlanTechniqueArchitecture); this.PlanTechniqueArchitecture = null; this.PlanTechnique = null; } } else if ((this.Reputation >= this.getTechniqueActualReputation(this.PlanTechnique)) && GameObject.Chance(0x21)) { this.SaveTechniquePointForTechnique(this.getTechniqueActualPointCost(this.PlanTechnique) / this.PlanTechnique.Days); } else if (GameObject.Chance(10)) { this.PlanTechniqueArchitecture = null; this.PlanTechnique = null; } } } }
public void UpgradeTechnique(Technique technique, Architecture architecture) { this.UpgradingTechnique = technique.ID; this.UpgradingDaysLeft = getTechniqueActualTime(technique); if (this.TechniquePoint < this.getTechniqueActualPointCost(technique)) { this.DepositTechniquePointForTechnique(this.getTechniqueActualPointCost(technique) - this.TechniquePoint); if (this.TechniquePoint < this.getTechniqueActualPointCost(technique)) { this.DepositTechniquePointForFacility(this.getTechniqueActualPointCost(technique) - this.TechniquePoint); } } this.DecreaseTechniquePoint(this.getTechniqueActualPointCost(technique)); architecture.DecreaseFund(this.getTechniqueActualFundCost(technique)); ExtensionInterface.call("UpgradeTechnique", new Object[] { this.Scenario, this }); if (this.OnUpgradeTechnique != null) { this.OnUpgradeTechnique(this, technique, architecture); } }
public bool MatchTechnique(Technique technique, Architecture architecture) { return (((((this.TotalTechniquePoint >= this.getTechniqueActualPointCost(technique)) && (this.Reputation >= this.getTechniqueActualReputation(technique))) && (architecture.Fund >= this.getTechniqueActualFundCost(technique))) && (this.HasTechnique(technique.PreID) || (technique.PreID < 0))) && (this.UpgradingTechnique < 0)); }
public int GetTechniqueUsefulness(Technique tech) { int result = 0; foreach (Influences.Influence i in tech.Influences.GetInfluenceList()) { switch (i.Kind.ID) { case 1030: case 2400: case 2420: case 2430: if (!GlobalVariables.LiangdaoXitong) break; result = Math.Max(100, result); break; case 2000: case 2010: case 2020: case 2030: case 2200: case 2210: case 2220: case 2230: case 2240: case 2250: if (int.Parse(i.Parameter) == 3) { bool hasWater = false; foreach (Architecture a in this.Architectures) { if (a.IsBesideWater) { hasWater = true; break; } } if (!hasWater) break; } else if (int.Parse(i.Parameter) == 4) { bool hasSiege = false; foreach (MilitaryKind mk in this.AvailableMilitaryKinds.MilitaryKinds.Values) { if (mk.Type == MilitaryType.器械) { hasSiege = true; } } if (!hasSiege) break; } else if (int.Parse(i.Parameter) == 0) { bool hasSiege = false; foreach (MilitaryKind mk in this.AvailableMilitaryKinds.MilitaryKinds.Values) { if (mk.Type == MilitaryType.步兵) { hasSiege = true; } } if (!hasSiege) break; } else if (int.Parse(i.Parameter) == 1) { bool hasSiege = false; foreach (MilitaryKind mk in this.AvailableMilitaryKinds.MilitaryKinds.Values) { if (mk.Type == MilitaryType.弩兵) { hasSiege = true; } } if (!hasSiege) break; } else if (int.Parse(i.Parameter) == 2) { bool hasSiege = false; foreach (MilitaryKind mk in this.AvailableMilitaryKinds.MilitaryKinds.Values) { if (mk.Type == MilitaryType.骑兵) { hasSiege = true; } } if (!hasSiege) break; } result = Math.Max(100, result); break; default: result = Math.Max(100, result); break; } } return result; }
public virtual void FactionUpgradeTechnique(Faction faction, Technique technique, Architecture architecture) { }
public override void FactionTechniqueFinished(Faction faction, Technique technique) { if (((base.Scenario.CurrentPlayer == null) || base.Scenario.IsCurrentPlayer(faction)) || GlobalVariables.SkyEye) { faction.Leader.TextDestinationString = technique.Name; this.Plugins.tupianwenziPlugin.SetPosition(ShowPosition.Bottom); this.Plugins.tupianwenziPlugin.SetGameObjectBranch(faction.Leader, faction.Leader, "FactionTechniqueFinished"); this.Plugins.tupianwenziPlugin.IsShowing = true; } }