public override string GetStatString(PartSchematic diffSchem) { bool showDiff = diffSchem != null; string retStr = string.Empty; if (showDiff) { WeaponPartSchematic diffWeapon = (WeaponPartSchematic)diffSchem; string damageStr = string.Format("Damage:\n{0} => {2}{1}</color>", diffWeapon.Damage, Damage, getColorBasedChangeInVal(diffWeapon.Damage, Damage)); string rangeStr = string.Format("Range:\n{0} => {2}{1}</color>", diffWeapon.Range, Range, getColorBasedChangeInVal(diffWeapon.Range, Range)); string reloadTimeStr = string.Format("Reload Time:\n{0} => {2}{1}</color>", diffWeapon.ReloadTimeInSec, ReloadTimeInSec, getColorBasedChangeInVal(diffWeapon.ReloadTimeInSec, ReloadTimeInSec, false)); string fireStrengthStr = string.Format("Fire Strength:\n{0} => {2}{1}</color>", diffWeapon.ShootImpulse, ShootImpulse, getColorBasedChangeInVal(diffWeapon.ShootImpulse, ShootImpulse)); string tierStr = string.Format("Tier:\n{0} => {1}", diffWeapon.Tier, Tier); retStr = string.Format("Bullet Type:\n{0} => {1}\n{2}\n{3}\n{4}\n{5}\n{6}", diffWeapon.BulletType, BulletType, damageStr, rangeStr, reloadTimeStr, fireStrengthStr, tierStr); } else { retStr = string.Format("Bullet Type:\n{0}\nDamage:\n{1}\nRange:\n{2}\nReload Time:\n{3}\nFire Strength:\n{4}\nTier:\n{5}", BulletType, Damage, Range, ReloadTimeInSec, ShootImpulse, Tier); } return(retStr); }
public override string GetStatString(PartSchematic diffSchem) { bool showDiff = diffSchem != null; string retStr = string.Empty; if (showDiff) { HullPartSchematic diffHull = (HullPartSchematic)diffSchem; string diffWeightRestrictStr = "(" + String.Join(", ", new List <WeaponTier>(diffHull.WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")"; string weightRestrictStr = "(" + String.Join(", ", new List <WeaponTier>(WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")"; string armorStr = string.Format("Armour:\n{0} => {2}{1}</color>", diffHull.Armour, Armour, getColorBasedChangeInVal(diffHull.Armour, Armour)); string energyPowerStr = string.Format("Move Force:\n{0} => {2}{1}</color>", diffHull.EnginePower, EnginePower, getColorBasedChangeInVal(diffHull.EnginePower, EnginePower)); string weightStr = string.Format("Weight:\n{0} => {2}{1}</color>", diffHull.Weight, Weight, getColorBasedChangeInVal(diffHull.Weight, Weight, false)); string angularDragStr = string.Format("Angular Drag:\n{0} => {2}{1}</color>", diffHull.AngularDrag, AngularDrag, getColorBasedChangeInVal(diffHull.AngularDrag, AngularDrag, false)); retStr = string.Format("{0}\n{1}\n{2}\n{3}\nWeapon Weight Restrictions:\n{4} => {5}", armorStr, energyPowerStr, weightStr, angularDragStr, diffWeightRestrictStr, weightRestrictStr); } else { string weightRestrictStr = "(" + String.Join(", ", new List <WeaponTier>(WeaponTierRestrictions).ConvertAll(i => i.ToString()).ToArray()) + ")"; retStr = string.Format("Armour:\n{0}\nEnergy Power:\n{1}\n Weight:\n{2}\nAngular Drag:\n{3}\nWeapon Weight Restrictions:\n{4}", Armour, EnginePower, Weight, AngularDrag, weightRestrictStr); } return(retStr); }
public void UpdatePartText(PartSchematic selectedPart, PartSchematic equippedPart) { if (selectedPart != null) { text.text = selectedPart.GetStatString(equippedPart); } else { text.text = ""; } }
public PartSchematic GetPartFromName(PartSchematic.PartType pType, string name) { PartSchematic part = null; Dictionary <string, PartSchematic> partSchematics = partSchematicDics[pType]; if (partSchematics.ContainsKey(name)) { part = partSchematics[name]; } return(part); }
public void UpdateEquippedParts(PartSchematic newPart) { PartSlot curPickedSlot = PickedPartsItem.Slot; PartSchematic oldPart = curPickedSlot.Part; curPickedSlot.UpdatePart(newPart); if (newPart != null && newPart.PType == PartSchematic.PartType.Hull) { HullPartSchematic oldHull = (HullPartSchematic)oldPart; HullPartSchematic newHull = (HullPartSchematic)newPart; if (oldHull.OrigWeaponDirs.Length != newHull.OrigWeaponDirs.Length) { int lengthDiff = newHull.OrigWeaponDirs.Length - oldHull.OrigWeaponDirs.Length; if (lengthDiff > 0) { for (int i = 0; i < lengthDiff; ++i) { EquippedParts.Add(new PartSlot(null, PartSchematic.PartType.Weapon, EquippedParts.Count)); } } else if (lengthDiff < 0) { for (int i = 0; i < Math.Abs(lengthDiff); ++i) { EquippedParts.RemoveAt(EquippedParts.Count - 1); } } } int count = 0; foreach (PartSlot slot in EquippedParts) { if (slot.PartType == PartSchematic.PartType.Weapon) { PartSchematic.WeaponTier tier = newHull.WeaponTierRestrictions[count]; if (slot.Part != null && ((WeaponPartSchematic)slot.Part).Tier > tier) { slot.UpdatePart(null); } count += 1; } } } updateTankDisplayToCurrent(); }
private void generateOtherItems() { List <PartSchematic> allParts = new List <PartSchematic>(PartsManager.Instance.GetPartsOfType(handler.PickedPartsItem.Slot.PartType)); List <PartSchematic> parts = new List <PartSchematic>(); if (handler.PickedPartsItem.Slot.PartType == PartSchematic.PartType.Weapon) { parts.Add(null); HullPartSchematic curHull = (HullPartSchematic)handler.EquippedParts[0].Part; PartSchematic.WeaponTier tier = curHull.WeaponTierRestrictions[handler.PickedPartsItem.Slot.Idx - 1]; allParts = allParts.FindAll(w => ((WeaponPartSchematic)w).Tier <= tier); } parts.AddRange(allParts); float itemAnchorStep = 1f / 9f; for (int i = 0; i < parts.Count; ++i) { PartSchematic schem = parts[i]; OtherPartsItem item = handler.OtherPartsItemPool.GetObject().GetComponent <OtherPartsItem>(); item.transform.SetParent(handler.OtherPartsItemsRoot, false); Vector2 anchorMin = new Vector2(0, 1 - (i + 1) * itemAnchorStep); Vector2 anchorMax = new Vector2(1, 1 - (i) * itemAnchorStep); RectTransform rect = item.GetComponent <RectTransform>(); rect.anchorMin = anchorMin; rect.anchorMax = anchorMax; rect.offsetMin = new Vector2(); rect.offsetMax = new Vector2(); rect.localScale = new Vector3(1, 1, 1); item.Init(schem, handler); item.GetComponent <Button>().onClick.AddListener(delegate { ownedItemSelected(item); }); items.Add(item); } }
private void initEquippedPartsViaPlayerSchematic() { EquippedParts = new List <PartSlot>(); TankSchematic playerSchematic = PlayerManager.Instance.TankSchematic; List <PartSchematic> schematics = new List <PartSchematic> { playerSchematic.HullSchematic, }; schematics.AddRange(playerSchematic.WeaponSchematics); for (int i = 0; i < schematics.Count; ++i) { PartSchematic schematic = schematics[i]; PartSchematic.PartType pType = (schematic != null) ? schematic.PType : PartSchematic.PartType.Weapon; EquippedParts.Add(new PartSlot(schematic, pType, i)); } }
public void UpdatePartInfo(PartSchematic part) { PartSchematic equipPart = PickedPartsItem != null ? PickedPartsItem.Slot.Part : null; partInfo.UpdatePartText(part, equipPart); }
public abstract string GetStatString(PartSchematic equippedSchem);
public void Init(PartSchematic schematic, CustomizationHandler _handler) { Part = schematic; partNameDisplay.text = Part != null ? Part.Name : "Empty"; handler = _handler; }
public void UpdatePart(PartSchematic part) { Part = part; }
public PartSlot(PartSchematic part, PartSchematic.PartType pType, int idx) { Part = part; PartType = pType; Idx = idx; }