public void OnClickedBuyButton(int index) { TechnologyType technologyType = technologiesAvailable[index]; descriptionSelectedText.text = technologyInfo[(int)technologyType].Description; if (!logic.HasTechnology(technologyType)) { buyButton.gameObject.SetActive(true); } else { buyButton.gameObject.SetActive(false); } if (selectedButton == index) { BuySelectedButton(); } else { selectedButton = index; descriptionSelectedPanel.SetActive(true); } }
public Technology(String name, int defaultCost, int minCost, TechnologyType type) { Name = name; Type = type; DefaultCost = defaultCost; MinCost = minCost; }
public void BuySelectedButton() { if (selectedButton == -1) { return; } TechnologyType technologyType = technologiesAvailable[selectedButton]; if (!logic.HasTechnology(technologyType)) { if (logic.IsThereEnoughShields(technologyInfo[(int)technologyType].ShieldCost)) { logic.AddTechnology(technologyType); logic.TrySpendShields(technologyInfo[(int)technologyType].ShieldCost); ShowTechnologyButtons(); buyButton.gameObject.SetActive(false); selectedButton = -1; descriptionSelectedPanel.gameObject.SetActive(false); } else { descriptionSelectedText.text = NOT_ENOUGH_SHIELDS; } } else { descriptionSelectedText.text = ALREADY_RESEARCHED; } }
public async Task <ActionResult> EditTechnology(TechnologyType technology) { if (technology == null) { return(BadRequest()); } await _technologyRepo.Update(technology); return(new JsonResult("Success")); }
public async Task <string> GetUpgradeTechnologyUrl(HtmlDocument document, TechnologyType type) { return(await Task.Run(() => { var upgrdeTechnologyHtml = document .DocumentNode .Descendants("div") .First(n => n .Attributes .Any(a => a.Value.Contains($"research{(int) type}"))) .Descendants("a") .First(n => n .Attributes .Any(a => a.OriginalName == "onlick")) .GetAttributeValue("onclick", null); return Regex.Match(upgrdeTechnologyHtml, @"\'([^']*)\'").Groups[1].Value; })); }
private void ShowTechnologyButtons() { int i = 0; for (; i < technologiesAvailable.Count(); ++i) { TechnologyType technologyType = technologiesAvailable[i]; Sprite sprite = Resources.Load("UI/Icons/" + technologyInfo[(int)technologyType].Icon, typeof(Sprite)) as Sprite; buyingButtons[i].GetComponent <Image>().sprite = sprite; string buttonName = technologyType.ToString(); buttonName = buttonName.First().ToString() + buttonName.Substring(1).ToLower(); buyingButtons[i].gameObject.SetActive(true); nameTextsButton[i].text = buttonName; if (!logic.HasTechnology(technologyType)) { costTextsButton[i].text = technologyInfo[(int)technologyType].ShieldCost + " shields"; } else { costTextsButton[i].text = "Researched already"; } } }
private HtmlNode GetTechnologyNode(IEnumerable <HtmlNode> technologiesNode, TechnologyType type) { return(technologiesNode.FirstOrDefault(n => n.HasAttributes && n.Attributes.Any( a => a.Value.Contains($"research{(int) type}")))); }
public void Upgrade(TechnologyType tech) { techLevels[tech].upgrade(); }
internal bool HasTechnology(TechnologyType technologyType) { return(players[currentPlayer].HasTechnology(technologyType)); }
internal uint GetCostTechnology(TechnologyType technologyType) { return(technologyInfo[(int)technologyType].ShieldCost); }
internal void AddTechnology(TechnologyType technology) { technologyManager.Add(technology); }
public bool HasTechnology(TechnologyType technology) { return(technologies.Contains(technology)); }
public void Add(TechnologyType technology) { technologies.Add(technology); }
public int GetTechnologyDiscount(TechnologyType type) { return PlayerBoard.GetDiscount(type); }
private TechnologyBase GetTechnology(TechnologyType type, IEnumerable <HtmlNode> technologiesNode, PlayerPlanet planet) { var technologyNode = GetTechnologyNode(technologiesNode, type); var technologyLevel = GetTechnologyLevel(technologyNode); var canUpgradeStatus = CanUpgradeStatus(technologyNode); var techReached = canUpgradeStatus != "off"; var canUpgrade = techReached && canUpgradeStatus != "disabled"; switch (type) { case TechnologyType.EnergyTechnology: return(new EnergyTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.LaserTechnology: return(new LaserTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.IonTechnology: return(new IonTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.HyperspaceTechnology: return(new HyperspaceTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.PlasmaTechnology: return(new PlasmaTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.EspionageTechnology: return(new EspionageTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.ComputerTechnology: return(new ComputerTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.Astrophysics: return(new Astrophysics(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.IntergalacticResearchNetwork: return(new IntergalacticResearchNetwork(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.GravitonTechnology: return(new GravitonTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.WeaponTechnology: return(new WeaponTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.ShieldingTechnology: return(new ShieldingTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.ArmourTechnology: return(new ArmourTechnology(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.CombusionDrive: return(new CombustionDrive(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.ImpulseDrive: return(new ImpulseDrive(planet, technologyLevel, techReached, canUpgrade)); case TechnologyType.HyperspaceDrive: return(new HyperspaceDrive(planet, technologyLevel, techReached, canUpgrade)); default: return(null); } }
public Technology(string name, TechnologyType type) { Name = name; Type = type; }
public static string get(System.IO.Stream file) { StringBuilder result = new StringBuilder("{\"information\":["); DicomFile dcmFile = DicomFile.Open(file); DicomDataset dcmDataSet = dcmFile.Dataset; String patientName = dcmDataSet.Get <String>(DicomTag.PatientName); String patientID = dcmDataSet.Get <String>(DicomTag.PatientID); String patientSex = dcmDataSet.Get <String>(DicomTag.PatientSex); String tps = dcmDataSet.Get <String>(DicomTag.ManufacturerModelName); //摆位信息 DicomSequence patientSetupSequence = dcmDataSet.Get <DicomSequence>(DicomTag.PatientSetupSequence); IList <DicomDataset> patientSetupSequence_list = patientSetupSequence.Items; DicomDataset patientSetupSequence_list_d0 = patientSetupSequence_list.ElementAt(0); String postion = patientSetupSequence_list_d0.Get <String>(DicomTag.PatientPosition); result.Append("{\"id\":\"").Append(patientID).Append("\"") .Append(",\"lastName\":\"").Append(patientName.Split('^')[0]).Append("\"") .Append(",\"firstName\":\"").Append(patientName.Split('^')[1]).Append("\"") .Append(",\"tps\":\"").Append(tps).Append("\""); //Mu,射野总数 DicomDataset fractionGroupSequence = dcmDataSet.Get <DicomSequence>(DicomTag.FractionGroupSequence).Items[0]; String fieldTimes = fractionGroupSequence.Get <String>(DicomTag.NumberOfBeams);//射野总数 String all = ""; //总剂量 try { DicomDataset doseReferenceSequence = dcmDataSet.Get <DicomSequence>(DicomTag.DoseReferenceSequence).Items[0]; all = doseReferenceSequence.Get <String>(DicomTag.TargetPrescriptionDose); } catch (Exception e) { all = "0"; } //剂量次数 String numberOfFractionsPlanned = fractionGroupSequence.Get <String>(DicomTag.NumberOfFractionsPlanned); double once = (double.Parse(all) * 100) / double.Parse(numberOfFractionsPlanned); result.Append(",\"all\":\"").Append(double.Parse(all) * 100).Append("\"") .Append(",\"once\":\"").Append(once).Append("\"") .Append(",\"fieldTimes\":\"").Append(fieldTimes).Append("\"") .Append(",\"pos\":\"").Append(postion).Append("\"}") .Append("],\"details\":["); //含有Mu IList <DicomDataset> referencedBeamSequence_list = fractionGroupSequence.Get <DicomSequence>(DicomTag.ReferencedBeamSequence).Items; int i = 0; //射野信息 DicomSequence beamSequence = dcmDataSet.Get <DicomSequence>(DicomTag.BeamSequence); IList <DicomDataset> beamSequence_list = beamSequence.Items; foreach (DicomDataset d in beamSequence_list) { String a1 = d.Get <String>(DicomTag.BeamName); //射野ID String type = d.Get <String>(DicomTag.RadiationType); //射野类型 String technology = d.Get <String>(DicomTag.BeamType); //照射技术 String equipment = d.Get <String>(DicomTag.TreatmentMachineName); //放疗设备 String child = d.Get <String>(DicomTag.NumberOfControlPoints); //子野数 String mu = referencedBeamSequence_list.ElementAt(i++).Get <String>(DicomTag.BeamMeterset); //3个角 DicomDataset three = d.Get <DicomSequence>(DicomTag.ControlPointSequence).Items.ElementAt(0); String jjj = deleteLast(three.Get <String>(DicomTag.GantryAngle), 1); String jtj = deleteLast(three.Get <String>(DicomTag.BeamLimitingDeviceAngle), 1); String czj = deleteLast(three.Get <String>(DicomTag.PatientSupportAngle), 1); //jjj变化 String endjjj = d.Get <DicomSequence>(DicomTag.ControlPointSequence).Items.ElementAt(d.Get <DicomSequence>(DicomTag.ControlPointSequence).Items.Count - 1).Get <String>(DicomTag.GantryAngle); if (endjjj != null && endjjj != jjj) { jjj = jjj + "/" + endjjj; } //能量 String enery = d.Get <DicomSequence>(DicomTag.ControlPointSequence).Items.ElementAt(0).Get <String>(DicomTag.NominalBeamEnergy); String ypj = d.Get <DicomSequence>(DicomTag.ControlPointSequence).Items.ElementAt(0).Get <String>(DicomTag.SourceToSurfaceDistance);//源皮距 double ypjd = double.Parse(ypj) / 10.0; if (mu != null && mu != "") { double mudouble = Math.Round(double.Parse(mu), 2); mu = mudouble.ToString(); } TechnologyType ttype = TrchnologyTypeFactory.newInstance(technology); result.Append("{\"a1\":\"").Append(a1).Append("\"") .Append(",\"mu\":\"").Append(mu).Append("\"") .Append(",\"equipment\":\"").Append(equipment).Append("\"") .Append(",\"technology\":\"").Append(technology).Append("\"") .Append(",\"type\":\"").Append(type).Append("\"") .Append(",\"energyField\":\"").Append(enery).Append("\"") .Append(",\"ypj\":\"").Append(Math.Round(ypjd, 1, MidpointRounding.AwayFromZero)).Append("\"") .Append(",\"jjj\":\"").Append(jjj).Append("\"") .Append(",\"jtj\":\"").Append(jtj).Append("\"") .Append(",\"czj\":\"").Append(czj).Append("\"") .Append(",\"childs\":\"").Append(ttype.change(int.Parse(child))).Append("\"},");; } return(result.Remove(result.Length - 1, 1).Append("]}").ToString()); }
public Technology(ShipPart part, int defaultCost, int minCost, TechnologyType type) : this(part.Name, defaultCost, minCost, type) { ShipPart = part; }
public int GetDiscountNext(TechnologyType type) { var numTechs = Technologies.Where(x => x.Type == type).Count()+1; if (numTechs >= _techDiscounts.Count) return _techDiscounts[_techDiscounts.Count - 1]; return _techDiscounts[numTechs]; }
internal bool HasTechnology(TechnologyType technologyType) { return(technologyManager.HasTechnology(technologyType)); }
public int GetVPNext(TechnologyType type) { return 0; }
internal void AddTechnology(TechnologyType technologyType) { players[currentPlayer].AddTechnology(technologyType); OnScoreEvent(TypesScore.TECHNOLOGY, currentPlayer); }
private TechnologySegment CreateTechnologySegment(TechnologyType type) { var segment1 = new TechnologySegment(type.ToString(), Technologies.Where(x => x.Type == type).ToList()); var footer = new List<String>(); footer.Add("Discount: " + GetDiscount(type)); footer.Add("Next: " + GetDiscountNext(type)); footer.Add("VP: " + GetVP(type)); footer.Add("Next VP: " + GetVPNext(type)); segment1.Footer = footer.ToArray(); return segment1; }
public TechnologyBase GetTechnology(Planet planet, TechnologyType type) => PlayerTechnologies.First(t => t.BelongsTo.Id == planet.Id && t.Type == type);
public TechLevel(TechnologyType t, int c, int m) { type = t; current = c; max = m; }